From 31fb0398bbe94502cf172c1ce2e38a359c772b57 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=94=B0=E8=89=BA=E9=B9=8F?= <18382071280@163.com>
Date: Wed, 23 Aug 2023 16:36:00 +0800
Subject: [PATCH] =?UTF-8?q?fix(*)=20=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4Fe?=
=?UTF-8?q?ign=E9=A1=B9=E7=9B=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 2 +
Feign/pom.xml | 111 ++++
.../cn/crtech/feign/FeignApplication.java | 18 +
.../feign/config/FeignConfiguration.java | 14 +
.../feign/config/GetHeaderConfiguration.java | 78 +++
.../cn/crtech/feign/controller/AcctApi.java | 32 +
.../cn/crtech/feign/controller/AuthApi.java | 34 ++
.../cn/crtech/feign/controller/LsErpApi.java | 44 ++
.../cn/crtech/feign/controller/MnsApi.java | 87 +++
.../crtech/feign/controller/ResourceApi.java | 72 +++
.../cn/crtech/feign/controller/UserApi.java | 562 ++++++++++++++++++
.../cn/crtech/feign/dto/ChainUserDto.java | 27 +
.../java/cn/crtech/feign/dto/MessageDto.java | 15 +
.../java/cn/crtech/feign/dto/RegisterDto.java | 23 +
.../fallback/AcctClientFallbackFactory.java | 30 +
.../fallback/AuthClientFallbackFactory.java | 17 +
.../fallback/CloudMisFallbackFactory.java | 216 +++++++
.../fallback/LsErpClientFallbackFactory.java | 23 +
.../fallback/MnsClientFallbackFactory.java | 56 ++
.../ResourceClientFallbackFactory.java | 59 ++
.../fallback/TmClientFallbackFactory.java | 45 ++
.../cn/crtech/feign/pojo/AccountFlow.java | 52 ++
.../cn/crtech/feign/pojo/CompanyAccount.java | 33 +
.../java/cn/crtech/feign/pojo/Message.java | 87 +++
.../cn/crtech/feign/pojo/MessageList.java | 37 ++
.../cn/crtech/feign/pojo/WxMpMessage.java | 24 +
.../cn/crtech/feign/service/AcctClient.java | 22 +
.../cn/crtech/feign/service/AuthClient.java | 13 +
.../crtech/feign/service/CloudMisClient.java | 433 ++++++++++++++
.../cn/crtech/feign/service/LsErpClient.java | 18 +
.../cn/crtech/feign/service/MnsClient.java | 71 +++
.../crtech/feign/service/ResourceClient.java | 47 ++
.../cn/crtech/feign/service/TmClient.java | 33 +
Feign/src/main/resources/application-dev.yml | 18 +
Feign/src/main/resources/application-prod.yml | 18 +
Feign/src/main/resources/bootstrap-dev.yml | 12 +
Feign/src/main/resources/bootstrap-prod.yml | 12 +
Feign/src/main/resources/bootstrap.yml | 6 +
Feign/src/main/resources/logback.xml | 56 ++
39 files changed, 2557 insertions(+)
create mode 100644 Feign/pom.xml
create mode 100644 Feign/src/main/java/cn/crtech/feign/FeignApplication.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/config/FeignConfiguration.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/config/GetHeaderConfiguration.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/controller/AcctApi.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/controller/AuthApi.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/controller/LsErpApi.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/controller/MnsApi.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/controller/ResourceApi.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/controller/UserApi.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/dto/ChainUserDto.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/dto/MessageDto.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/dto/RegisterDto.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/fallback/AcctClientFallbackFactory.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/fallback/AuthClientFallbackFactory.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/fallback/CloudMisFallbackFactory.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/fallback/LsErpClientFallbackFactory.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/fallback/MnsClientFallbackFactory.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/fallback/ResourceClientFallbackFactory.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/fallback/TmClientFallbackFactory.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/pojo/AccountFlow.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/pojo/CompanyAccount.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/pojo/Message.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/pojo/MessageList.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/pojo/WxMpMessage.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/service/AcctClient.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/service/AuthClient.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/service/CloudMisClient.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/service/LsErpClient.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/service/MnsClient.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/service/ResourceClient.java
create mode 100644 Feign/src/main/java/cn/crtech/feign/service/TmClient.java
create mode 100644 Feign/src/main/resources/application-dev.yml
create mode 100644 Feign/src/main/resources/application-prod.yml
create mode 100644 Feign/src/main/resources/bootstrap-dev.yml
create mode 100644 Feign/src/main/resources/bootstrap-prod.yml
create mode 100644 Feign/src/main/resources/bootstrap.yml
create mode 100644 Feign/src/main/resources/logback.xml
diff --git a/.gitignore b/.gitignore
index c813d3b..ae31e7f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,3 +20,5 @@
/WXEngine/target/
/Auth/src/main/resources/application-test.yml
/Auth/src/main/resources/bootstrap-test.yml
+/Feign/src/main/resources/application-test.yml
+/Feign/src/main/resources/bootstrap-test.yml
diff --git a/Feign/pom.xml b/Feign/pom.xml
new file mode 100644
index 0000000..f6188c9
--- /dev/null
+++ b/Feign/pom.xml
@@ -0,0 +1,111 @@
+
+
+ 4.0.0
+
+ cn.crtech.cloud.feign
+ Feign
+ 1.0.1
+
+
+
+ cn.crtech.cloud.dependencies
+ Dependencies
+ 1.0.1
+
+
+
+
+
+ 8
+ 8
+ 1.8
+ UTF-8
+ UTF-8
+
+ 1.0.1
+ 10.7.4
+ 4.5.10
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-loadbalancer
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ io.lettuce
+ lettuce-core
+
+
+
+
+ redis.clients
+ jedis
+
+
+
+ org.apache.httpcomponents
+ httpclient
+ ${httpclient.version}
+
+
+
+ io.github.openfeign
+ feign-httpclient
+ ${feign.version}
+
+
+
+ cn.crtech.cloud.common
+ Common
+ ${common.version}
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+ -Dfile.encoding=UTF-8
+
+
+
+
+
diff --git a/Feign/src/main/java/cn/crtech/feign/FeignApplication.java b/Feign/src/main/java/cn/crtech/feign/FeignApplication.java
new file mode 100644
index 0000000..fd9b7c8
--- /dev/null
+++ b/Feign/src/main/java/cn/crtech/feign/FeignApplication.java
@@ -0,0 +1,18 @@
+package cn.crtech.feign;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@EnableDiscoveryClient
+@EnableFeignClients(basePackages = "cn.crtech.feign")
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class})
+public class FeignApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(FeignApplication.class, args);
+ }
+}
diff --git a/Feign/src/main/java/cn/crtech/feign/config/FeignConfiguration.java b/Feign/src/main/java/cn/crtech/feign/config/FeignConfiguration.java
new file mode 100644
index 0000000..a65dc09
--- /dev/null
+++ b/Feign/src/main/java/cn/crtech/feign/config/FeignConfiguration.java
@@ -0,0 +1,14 @@
+package cn.crtech.feign.config;
+
+import feign.Logger;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class FeignConfiguration {
+ // 日志级别
+ @Bean
+ Logger.Level feignLoggerLevel() {
+ return Logger.Level.FULL;
+ }
+}
diff --git a/Feign/src/main/java/cn/crtech/feign/config/GetHeaderConfiguration.java b/Feign/src/main/java/cn/crtech/feign/config/GetHeaderConfiguration.java
new file mode 100644
index 0000000..3addd9f
--- /dev/null
+++ b/Feign/src/main/java/cn/crtech/feign/config/GetHeaderConfiguration.java
@@ -0,0 +1,78 @@
+package cn.crtech.feign.config;
+
+import feign.RequestInterceptor;
+import feign.RequestTemplate;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Enumeration;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+@Slf4j
+@Configuration
+public class GetHeaderConfiguration {
+ private static final String X_REQUEST_ID = "Bearer ";
+
+ @Bean("requestInterceptor")
+ public RequestInterceptor requestInterceptor() {
+ return new RequestInterceptor() {
+ @Override
+ public void apply(RequestTemplate template) {
+
+ HttpServletRequest httpServletRequest = getHttpServletRequest();
+
+ if (httpServletRequest != null) {
+ //获取头信息
+ Map headers = getHeaders(httpServletRequest);
+ // 传递所有请求头,防止部分丢失
+
+ //将请求的头信息放入到RequestTemplate 的头信息中,当使用RequestTemplate发起请求时会自动添加头信息
+ for (Map.Entry entry : headers.entrySet()) {
+ template.header(entry.getKey(), entry.getValue());
+ }
+ // 微服务之间传递的唯一标识,区分大小写所以通过httpServletRequest获取
+ if (httpServletRequest.getHeader(X_REQUEST_ID) == null) {
+ template.header(X_REQUEST_ID);
+ }
+ }
+ }
+
+ /**
+ * RequestContextHolder 中获取 HttpServletRequest对象
+ *
+ * @return
+ */
+ private HttpServletRequest getHttpServletRequest() {
+ try {
+ return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ /**
+ * 获取头信息
+ *
+ * @param request
+ * @return
+ */
+ private Map getHeaders(HttpServletRequest request) {
+ Map map = new LinkedHashMap<>();
+ Enumeration enumeration = request.getHeaderNames();
+ if (enumeration != null) {
+ while (enumeration.hasMoreElements()) {
+ String key = enumeration.nextElement();
+ String value = request.getHeader(key);
+ map.put(key, value);
+ }
+ }
+ return map;
+ }
+ };
+ }
+}
diff --git a/Feign/src/main/java/cn/crtech/feign/controller/AcctApi.java b/Feign/src/main/java/cn/crtech/feign/controller/AcctApi.java
new file mode 100644
index 0000000..aaa1e90
--- /dev/null
+++ b/Feign/src/main/java/cn/crtech/feign/controller/AcctApi.java
@@ -0,0 +1,32 @@
+package cn.crtech.feign.controller;
+
+import cn.crtech.cloud.common.dto.Result;
+import cn.crtech.feign.pojo.AccountFlow;
+import cn.crtech.feign.pojo.CompanyAccount;
+import cn.crtech.feign.service.AcctClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class AcctApi {
+ @Autowired
+ private AcctClient acctClient;
+
+ @PostMapping("/acct/account/flow")
+ public Result accountFlowCreate(@RequestBody AccountFlow accountFlow) {
+ return acctClient.accountFlowCreate(accountFlow);
+ }
+
+ @RequestMapping(value = "/acct/companyAccount/insertCompanyAccount")
+ public Result insertCompanyAccount(@RequestBody CompanyAccount companyAccount) {
+ return acctClient.insertCompanyAccount(companyAccount);
+ }
+
+ @RequestMapping(value = "/acct/companyAccount/updateCompanyAccount")
+ public Result updateCompanyAccount(@RequestBody CompanyAccount companyAccount) {
+ return acctClient.updateCompanyAccount(companyAccount);
+ }
+}
diff --git a/Feign/src/main/java/cn/crtech/feign/controller/AuthApi.java b/Feign/src/main/java/cn/crtech/feign/controller/AuthApi.java
new file mode 100644
index 0000000..5887e0a
--- /dev/null
+++ b/Feign/src/main/java/cn/crtech/feign/controller/AuthApi.java
@@ -0,0 +1,34 @@
+package cn.crtech.feign.controller;
+
+import cn.crtech.cloud.common.dto.Result;
+import cn.crtech.feign.service.AuthClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * auth模块服务间调用Api
+ *
+ * @author TYP
+ * @since 2023-08-11 14:44
+ */
+
+@RestController
+public class AuthApi {
+ private AuthClient authClient;
+
+ @Autowired
+ public AuthApi(AuthClient authClient) {
+ this.authClient = authClient;
+ }
+
+ /**
+ * 权限数据刷新
+ *
+ * @return 返回处理结果
+ */
+ @PostMapping("/oauth/initRedis")
+ public Result initRedis() {
+ return authClient.initRedis();
+ }
+}
diff --git a/Feign/src/main/java/cn/crtech/feign/controller/LsErpApi.java b/Feign/src/main/java/cn/crtech/feign/controller/LsErpApi.java
new file mode 100644
index 0000000..c645be2
--- /dev/null
+++ b/Feign/src/main/java/cn/crtech/feign/controller/LsErpApi.java
@@ -0,0 +1,44 @@
+package cn.crtech.feign.controller;
+
+import cn.crtech.cloud.common.dto.Result;
+import cn.crtech.feign.dto.ChainUserDto;
+import cn.crtech.feign.service.LsErpClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class LsErpApi {
+ @Autowired
+ private LsErpClient lsErpClient;
+
+ /**
+ * 获取连锁公司选项
+ *
+ * @return 返回查询结果
+ */
+ @PostMapping("/ls/erp/loadChainOption")
+ public Result loadChainOption() {
+ try {
+ return lsErpClient.loadChainOption();
+ } catch (Exception e) {
+ return Result.error("查询失败");
+ }
+ }
+
+ /**
+ * 连锁用户注册
+ *
+ * @param userDto 注册信息对象
+ * @return 返回注册结果
+ */
+ @PostMapping("/ls/erp/registerUser")
+ public Result registerUser(@RequestBody ChainUserDto userDto) {
+ try {
+ return lsErpClient.registerUser(userDto);
+ } catch (Exception e) {
+ return Result.error("查询失败");
+ }
+ }
+}
diff --git a/Feign/src/main/java/cn/crtech/feign/controller/MnsApi.java b/Feign/src/main/java/cn/crtech/feign/controller/MnsApi.java
new file mode 100644
index 0000000..3bc623e
--- /dev/null
+++ b/Feign/src/main/java/cn/crtech/feign/controller/MnsApi.java
@@ -0,0 +1,87 @@
+package cn.crtech.feign.controller;
+
+import cn.crtech.cloud.common.dto.Result;
+import cn.crtech.feign.dto.MessageDto;
+import cn.crtech.feign.pojo.WxMpMessage;
+import cn.crtech.feign.service.MnsClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+@RestController
+public class MnsApi {
+ @Autowired
+ private MnsClient mnsClient;
+
+ @PostMapping("/mns/sendSystemMessage")
+ public Result sendSystemMessage(@RequestBody MessageDto message) {
+ return mnsClient.sendSystemMessage(message);
+ }
+
+ @PostMapping("/mns/sendWxMpTempMessage")
+ public Result sendWxMpTempMessage(@RequestBody WxMpMessage wxMpMessage) {
+ return mnsClient.sendWxMpTempMessage(wxMpMessage);
+ }
+
+ @GetMapping("/mns/sendSMS/{type}/{mobile}")
+ public Result sendSystemMessage(@PathVariable("type") String type, @PathVariable("mobile") String mobile) {
+ return mnsClient.sendSMS(type, mobile);
+ }
+
+ /**
+ * 分页条件查询系统消息内容
+ *
+ * @param params 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/mns/systemMessage/listQueryByPage")
+ Result listQueryByPage(Map params) {
+ return mnsClient.listQueryByPage(params);
+ }
+
+ /**
+ * 更新系统消息状态
+ *
+ * @param params 参数对象
+ * @return 返回执行结果
+ */
+ @PostMapping("/mns/systemMessage/updateSystemMessageStatus")
+ Result updateSystemMessageStatus(Map params) {
+ return mnsClient.updateSystemMessageStatus(params);
+ }
+
+ /**
+ * 查询系统消息
+ *
+ * @param params 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/mns/systemMessage/listByParams")
+ Result listByParams(Map params) {
+ return mnsClient.listByParams(params);
+ }
+
+ /**
+ * 发送(新增)系统消息
+ *
+ * @param params 参数对象
+ * @return 返回执行结果
+ */
+ @PostMapping("/mns/systemMessage/sendPlatForm")
+ Result sendPlatForm(Map params) {
+ return mnsClient.sendPlatForm(params);
+ }
+
+ /**
+ * 更新系统消息
+ *
+ * @param params 参数对象
+ * @return 返回执行结果
+ */
+ @PostMapping("/mns/systemMessage/update")
+ Result update(Map params) {
+ return mnsClient.update(params);
+ }
+
+}
diff --git a/Feign/src/main/java/cn/crtech/feign/controller/ResourceApi.java b/Feign/src/main/java/cn/crtech/feign/controller/ResourceApi.java
new file mode 100644
index 0000000..6c8f0d9
--- /dev/null
+++ b/Feign/src/main/java/cn/crtech/feign/controller/ResourceApi.java
@@ -0,0 +1,72 @@
+package cn.crtech.feign.controller;
+
+import cn.crtech.cloud.common.api.CommonResult;
+import cn.crtech.cloud.common.dto.Result;
+import cn.crtech.feign.service.ResourceClient;
+import feign.Response;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.Map;
+
+@Controller
+public class ResourceApi {
+ @Autowired
+ private ResourceClient resourceClient;
+
+ @RequestMapping(value = "/rm/upload", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ @ResponseBody
+ public CommonResult addFile(@RequestPart(name = "file") MultipartFile file,
+ @RequestParam(name = "path") String path,
+ @RequestParam(name = "name") String name,
+ @RequestParam(name = "description") String description) {
+
+ return resourceClient.addFile(file, path, name, description);
+ }
+
+ @GetMapping("/rm/s/{fileId}")
+ @ResponseBody
+ public CommonResult showUrl(@PathVariable(value = "fileId") String fileId) {
+ return resourceClient.showUrl(fileId);
+ }
+
+ @PostMapping("/rm/s/much")
+ @ResponseBody
+ public CommonResult showMuchUrl(@RequestBody Map params) {
+ return resourceClient.showMuchUrl(params);
+ }
+
+ @GetMapping("/rm/d/{fileId}")
+ @ResponseBody
+ public CommonResult downloadUrl(@PathVariable(value = "fileId") String fileId) {
+ return resourceClient.downloadUrl(fileId);
+ }
+
+ @PostMapping("/rm/remove")
+ @ResponseBody
+ public CommonResult remove(@RequestBody List fileIds) {
+ return resourceClient.remove(fileIds);
+ }
+
+ @GetMapping("/getFileStream")
+ public Response getFileStream(@RequestParam("fileId")String fileId) {
+ return resourceClient.getFileStream(fileId);
+ }
+
+ @GetMapping(value = {"/rm/byte/res/stream/{fileId}", "/rm/byte/down/stream/{fileId}"}, produces = "application/json;charset=utf-8")
+ @ResponseBody
+ public CommonResult getFileStreamByFileId(@PathVariable("fileId") String fileId) {
+ return resourceClient.getFileStreamByFileId(fileId);
+ }
+
+ @GetMapping("/rm/copyOfMinIoFile")
+ @ResponseBody
+ public Result copyOfMinIoFile(@RequestParam(value = "fileId") String fileId) {
+ return resourceClient.copyOfMinIoFile(fileId);
+ }
+
+}
diff --git a/Feign/src/main/java/cn/crtech/feign/controller/UserApi.java b/Feign/src/main/java/cn/crtech/feign/controller/UserApi.java
new file mode 100644
index 0000000..b37a2cb
--- /dev/null
+++ b/Feign/src/main/java/cn/crtech/feign/controller/UserApi.java
@@ -0,0 +1,562 @@
+package cn.crtech.feign.controller;
+
+import cn.crtech.cloud.common.dto.Result;
+import cn.crtech.feign.dto.RegisterDto;
+import cn.crtech.feign.service.CloudMisClient;
+import cn.crtech.feign.service.TmClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class UserApi {
+ private TmClient tmClient;
+ private CloudMisClient cloudMisClient;
+
+ @Autowired
+ public UserApi(TmClient tmClient, CloudMisClient cloudMisClient) {
+ this.tmClient = tmClient;
+ this.cloudMisClient = cloudMisClient;
+ }
+
+ /************************************* 公司角色 start *******************************************/
+ /**
+ * 条件查询公司角色数据
+ *
+ * @param obj 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/comRole/loadComRoleByPage")
+ public Result loadComRoleByPage(@RequestBody Map obj) {
+ return cloudMisClient.loadComRoleByPage(obj);
+ }
+
+ /**
+ * 创建公司角色数据信息
+ *
+ * @param obj 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comRole/createComRole")
+ public Result createComRole(@RequestBody Map obj) {
+ return cloudMisClient.createComRole(obj);
+ }
+
+ /**
+ * 修改公司角色数据信息
+ *
+ * @param obj 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comRole/updateComRole")
+ public Result updateComRole(@RequestBody Map obj) {
+ return cloudMisClient.updateComRole(obj);
+ }
+
+ /**
+ * 删除公司角色
+ *
+ * @param obj 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comRole/delComRole")
+ public Result delComRole(@RequestBody Map obj) {
+ return cloudMisClient.delComRole(obj);
+ }
+
+ /**
+ * 公司角色设定管理员
+ *
+ * @param obj 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comRole/setComAdminRole")
+ public Result setComAdminRole(@RequestBody Map obj) {
+ return cloudMisClient.setComAdminRole(obj);
+ }
+
+ /**
+ * 查询获取公司已授权绑定的产品数据
+ *
+ * @param obj 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comRole/loadComBindSeriesApp")
+ public Result loadComBindSeriesApp(@RequestBody Map obj) {
+ return cloudMisClient.loadComBindSeriesApp(obj);
+ }
+
+ /**
+ * 查询获取公司已授权绑定产品的菜单数据
+ *
+ * @param obj 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comRole/loadComAppPopedom")
+ public Result loadComAppPopedom(@RequestBody Map obj) {
+ return cloudMisClient.loadComAppPopedom(obj);
+ }
+
+ /**
+ * 查询获取公司已授权绑定产品菜单特殊权限数据
+ *
+ * @param obj 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comRole/loadComAppPopAuthority")
+ public Result loadComAppPopAuthority(@RequestBody Map obj) {
+ return cloudMisClient.loadComAppPopAuthority(obj);
+ }
+
+ /**
+ * 角色绑定授权
+ *
+ * @param params 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comRole/roleBindAuth")
+ public Result roleBindAuth(@RequestBody Map params) {
+ return cloudMisClient.roleBindAuth(params);
+ }
+
+ /**
+ * 查询角色绑定用户信息
+ *
+ * @param params 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/comRole/loadComRoleUser")
+ public Result loadComRoleUser(@RequestBody Map params) {
+ return cloudMisClient.loadComRoleUser(params);
+ }
+
+ /**
+ * 角色绑定用户信息
+ *
+ * @param params 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comRole/comRoleBindUser")
+ public Result comRoleBindUser(@RequestBody Map params) {
+ return cloudMisClient.comRoleBindUser(params);
+ }
+ /************************************* 公司角色 end *******************************************/
+
+ /************************************* 授权默认角色 start *******************************************/
+ /**
+ * 条件分页查询企业授权产品默认角色
+ *
+ * @param params 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/defaultRole/loadComAuthDefaultRoleByPage")
+ Result loadComAuthDefaultRoleByPage(@RequestBody Map params) {
+ return cloudMisClient.loadComAuthDefaultRoleByPage(params);
+ }
+
+ /**
+ * 查询默认角色授权数据
+ *
+ * @param params 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/defaultRole/loadDefaultRoleAuth")
+ Result loadDefaultRoleAuth(@RequestBody Map params) {
+ return cloudMisClient.loadDefaultRoleAuth(params);
+ }
+
+ /**
+ * 获取当前角色未绑定用户数据
+ *
+ * @param params 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/defaultRole/loadUnbindDefaultRoleUser")
+ Result loadUnbindDefaultRoleUser(@RequestBody Map params) {
+ return cloudMisClient.loadUnbindDefaultRoleUser(params);
+ }
+
+ /**
+ * 角色批量绑定用户
+ *
+ * @param params 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/defaultRole/defaultRoleBindUser")
+ Result defaultRoleBindUser(@RequestBody Map params) {
+ return cloudMisClient.defaultRoleBindUser(params);
+ }
+ /************************************* 授权默认角色 end *******************************************/
+
+ /************************************* 企业用户 start *******************************************/
+ /**
+ * 条件分页查询企业用户信息
+ *
+ * @param params 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/comUser/loadComUserByPage")
+ public Result loadComUserByPage(@RequestBody Map params) {
+ return cloudMisClient.loadComUserByPage(params);
+ }
+
+ /**
+ * 用户注册新增
+ *
+ * @param registerDto 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comUser/createComUser")
+ public Result createComUser(@RequestBody Map registerDto) {
+ return cloudMisClient.createComUser(registerDto);
+ }
+
+ /**
+ * 更新企业用户信息
+ *
+ * @param params 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comUser/updateComUser")
+ public Result updateComUser(@RequestBody Map params) {
+ return cloudMisClient.updateComUser(params);
+ }
+
+ /**
+ * 企业用户状态修改
+ *
+ * @param params 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comUser/changeComUserState")
+ public Result changeComUserState(@RequestBody Map params) {
+ return cloudMisClient.changeComUserState(params);
+ }
+
+ /**
+ * 获取企业角色内容
+ *
+ * @param params 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/comUser/loadComUserRoleData")
+ public Result loadComUserRoleData(@RequestBody Map params) {
+ return cloudMisClient.loadComUserRoleData(params);
+ }
+
+ /**
+ * 用户绑定角色
+ *
+ * @param params 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comUser/comUserBindRole")
+ public Result comUserBindRole(@RequestBody Map params) {
+ return cloudMisClient.comUserBindRole(params);
+ }
+ /************************************* 企业用户 end *******************************************/
+
+ /************************************* 企业信息 start *******************************************/
+ /**
+ * 获取企业信息
+ *
+ * @param params 参数对象
+ *
+ * - companyCode: 公司标识
+ *
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/com/loadComInfo")
+ public Result loadComInfo(@RequestBody Map params) {
+ return cloudMisClient.loadComInfo(params);
+ }
+ /************************************* 企业信息 end *******************************************/
+
+ /************************************* 个人企业 start *******************************************/
+ /**
+ * 修改用户默认企业
+ *
+ * @param params 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comUser/setDefaultCompany")
+ public Result setDefaultCompany(@RequestBody Map params) {
+ return cloudMisClient.setDefaultCompany(params);
+ }
+ /************************************* 个人企业 end *******************************************/
+
+ /************************************* 个人技能证书 start *******************************************/
+ /**
+ * 用户技能证书提交
+ *
+ * @param params 参数对象
+ * @return 返回结果
+ */
+ @PostMapping("/misFeign/userSkill/uploadCertificate")
+ public Result uploadCertificate(@RequestBody Map params) {
+ return cloudMisClient.uploadCertificate(params);
+ }
+
+ /**
+ * 查询个人技能证书
+ *
+ * @param params 参数对象
+ *
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/userSkill/loadSelfCertificate")
+ public Result loadSelfCertificate(@RequestBody Map params) {
+ return cloudMisClient.loadSelfCertificate(params);
+ }
+
+ /**
+ * 删除个人技能证书
+ *
+ * @param params 参数对象
+ *
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/userSkill/delSelfCertificate")
+ public Result delSelfCertificate(@RequestBody Map params) {
+ return cloudMisClient.delSelfCertificate(params);
+ }
+
+ /**
+ * 条件获取字典数据信息
+ *
+ * @param params 参数对象
+ *
+ * - typeCode: 字典类型标识
+ * - code: 字典数据标识
+ * - name: 字典数据名称
+ *
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/dict/loadDictDataByCondition")
+ public Result loadDictDataByCondition(@RequestBody Map params) {
+ return cloudMisClient.loadDictDataByCondition(params);
+ }
+ /************************************* 个人技能证书 end *******************************************/
+
+ /************************************* 安全中心 start *******************************************/
+ /**
+ * 用户密码修改
+ *
+ * @param obj 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/user/updateUserPwd")
+ public Result updateUserPwd(@RequestBody Map obj) {
+ return cloudMisClient.updateUserPwd(obj);
+ }
+ /************************************* 安全中心 end *******************************************/
+
+ /************************************* 个人中心 start *******************************************/
+ /**
+ * 更新用户信息
+ *
+ * @param params 参数对象
+ *
+ * - id: 用户ID
+ * - email: 邮箱地址
+ * - name: 名称
+ * - state: 企业用户状态
+ *
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/user/renewUserInfo")
+ public Result renewUserInfo(@RequestBody Map params) {
+ try {
+ cloudMisClient.renewUserInfo(params);
+ ;
+ tmClient.updateStaffInfo(params);
+ } catch (Exception e) {
+ return Result.error("修改人员失败");
+ }
+ return Result.success();
+ }
+
+ /**
+ * 获取团队管理用户信息
+ *
+ * @param params 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/user/staff/queryById")
+ public Result queryStaffById(@RequestBody Map params) {
+ return tmClient.queryStaffById(params);
+ }
+ /************************************* 个人中心 end *******************************************/
+
+ /************************************* 其他调用内容 start **************************************/
+ /**
+ * 条件查询所有满足条件的所有用户数据(产品标识及公司标识)
+ *
+ * @param params 参数对象
+ *
+ * - applicationCode: 产品标识
+ * - companyCode: 公司标识
+ *
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/user/queryAll")
+ public Result queryAllUser(@RequestParam Map params) {
+ return cloudMisClient.queryAllUser(params);
+ }
+
+ /**
+ * 条件查询所有满足条件的所有用户数据(公司标识)
+ *
+ * @param params 参数对象
+ *
+ * - companyCode: 公司标识
+ *
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/user/queryUserByCompanyCode")
+ public Result queryUserByCompanyCode(@RequestParam Map params) {
+ return cloudMisClient.queryUserByCompanyCode(params);
+ }
+
+ /**
+ * 根据手机号码查询用户信息
+ *
+ * @param mobile 用户手机号码
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/user/queryUserByMobile")
+ public Result queryUserByMobile(@RequestParam String mobile) {
+ Map params = new HashMap<>();
+ params.put("mobile", mobile);
+ return cloudMisClient.queryUserByMobile(params);
+ }
+
+ /**
+ * 客户端用户注册
+ *
+ * @param user 参数对象
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/user/clientRegister")
+ Result clientRegister(@RequestBody Map user) {
+ return cloudMisClient.clientRegister(user);
+ }
+
+ /**
+ * 条件查询所有满足条件的所有用户数据(角色标识)
+ *
+ * @param params 参数对象
+ *
+ * - pageNum: 分页页码
+ * - pageSize: 数据个数
+ * - roleCode: 对应角色标识集合
+ * - nickName: 用户别名
+ * - companyName: 企业名称
+ * - mobile: 手机号码
+ *
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/user/queryUserByRoleCode")
+ Result queryUserByRoleCode(@RequestBody Map params) {
+ return cloudMisClient.queryUserByRoleCode(params);
+ }
+
+ /**
+ * 查询非公司用户
+ *
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/user/queryNotCompanyUser")
+ Result queryNotCompanyUser() {
+ return cloudMisClient.queryNotCompanyUser();
+ }
+
+ /**
+ * 查询已创建的公司医院信息
+ *
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/company/queryHospitalInfo")
+ Result queryHospitalInfo() {
+ return cloudMisClient.queryHospitalInfo();
+ }
+
+ /**
+ * 授权数据信息查询
+ *
+ * @param obj 参数对象
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/comApp/loadRoleApp")
+ Result loadComAuthApp(@RequestBody Map obj) {
+ return cloudMisClient.loadComAuthApp(obj);
+ }
+
+ /**
+ * 更新用户信息(团队管理)
+ *
+ * @param params 参数对象
+ *
+ * - userName: 用户名称
+ * - serialNo: 员工编号
+ * - userId: 用户ID
+ * - mobile: 手机号码
+ *
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/user/updateUserInfoByTm")
+ Result updateUserInfoByTm(@RequestBody Map params) {
+ return cloudMisClient.updateUserInfoByTm(params);
+ }
+
+ /**
+ * 获取连锁数据集合
+ *
+ * @param params 参数对象
+ *
+ * - chainName: 连锁名称
+ * - chainCode: 连锁标识
+ * - mechanismName: 机构名称
+ * - mechanismCode: 机构标识
+ * - isHeadOffice: 是否连锁总店
+ * - isSystemCompany: 是否存在关联公司
+ *
+ * @return 返回查询结果
+ */
+ @PostMapping("/misFeign/chain/getChainList")
+ Result getChainList(@RequestBody Map params) {
+ return cloudMisClient.getChainList(params);
+ }
+
+ /**
+ * 批量新增用户
+ *
+ * @param registerDtos 用户数据集合
+ * @return 返回操作结果
+ */
+ @PostMapping("/misFeign/comUser/batchRegister")
+ public Result batchRegister(@RequestBody List registerDtos) {
+ return cloudMisClient.batchRegister(registerDtos);
+ }
+
+ /**
+ * 初始化企业用户团队管理用户信息
+ *
+ * @param objectList 用户信息数据集合
+ * @return 返回操作结果
+ */
+ @PostMapping("/user/staff/initTMStaff")
+ public Result initTMStaff(@RequestBody List