Browse Source

领导端小程序补丁

feature/syp_points
李鹏飞 6 years ago
parent
commit
7f1d9724d2
  1. 7
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml
  2. 4
      esua-epdc/epdc-gateway/src/main/resources/application.yml
  3. 6
      esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
  4. 70
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java
  5. 32
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AnalysisUserFeignClient.java
  6. 22
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisUserFeignClientFallback.java
  7. 48
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java
  8. 101
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java
  9. 7
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml
  10. 7
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/application.yml

7
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml

@ -81,11 +81,18 @@ wx:
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
- appid: @analysis.wx.ma.appId@
secret: @analysis.wx.ma.secret@
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
appId:
# 普通居民端的appId
normal: @wx.ma.appId@
# 工作端的appId
work: @work.wx.ma.appId@
# 数据分析端的appId
analysis: @analysis.wx.ma.appId@
feign:

4
esua-epdc/epdc-gateway/src/main/resources/application.yml

@ -232,9 +232,12 @@ renren:
workLoginUrls:
- /api/work/user/getToken #工作端-获取token
- /api/work/user/login #工作端-登录
- /api/analysis/user/getToken #数据分析端-获取token
- /api/analysis/user/login #数据分析端-登录
- /api/work/*/swagger/**
workUrls:
- /api/work/** #工作端接口
- /api/analysis/** #数据端接口
epdc:
@ -254,3 +257,4 @@ epdc:
- /api/app-user/user/ma/gridLeaderRegister # 小程序用户 网格长注册
- /api/app-user/user/ma/v2/getToken # 小程序用户 注册或登录(版本v2)
- /api/work/** #工作端接口不拦截
- /api/analysis/** #数据端接口不拦截

6
esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml

@ -180,6 +180,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx826a8435db9e0947</work.wx.ma.appId>
<work.wx.ma.secret>cbcb7c422f00d165105b34dc80bb825f</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx3ea0a6fb71ddf659</analysis.wx.ma.appId>
<analysis.wx.ma.secret>2154e86d56df9fae4224c93a17e01bb3</analysis.wx.ma.secret>
</properties>
</profile>
@ -219,6 +222,9 @@
<!--工作端小程序-->
<work.wx.ma.appId>wx826a8435db9e0947</work.wx.ma.appId>
<work.wx.ma.secret>cbcb7c422f00d165105b34dc80bb825f</work.wx.ma.secret>
<!--数据分析端小程序-->
<analysis.wx.ma.appId>wx3ea0a6fb71ddf659</analysis.wx.ma.appId>
<analysis.wx.ma.secret>2154e86d56df9fae4224c93a17e01bb3</analysis.wx.ma.secret>
</properties>
</profile>

70
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java

@ -0,0 +1,70 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.service.AnalysisUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 移动端接口-数据分析模块(项目)
* @Author LPF
* @Date 2019/11/18 13:32
*/
@RestController
@RequestMapping("analysis/user")
public class ApiAnalysisUserController {
@Autowired
private AnalysisUserService analysisUserService;
/**
* 测试demo
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<>
* @Author: lipengfei
* @Date: 2019/11/19 16:34
*/
@GetMapping("test")
public Result test(@LoginUser TokenDto tokenDto) {
return analysisUserService.test();
}
/**
*
* 数据分析端-用户登录
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2020/2/12 10:57
*/
@PostMapping("login")
public Result<WorkUserAuthorizationDTO> login(@RequestBody WorkUserLoginDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return analysisUserService.login(formDto);
}
/**
*
* 数据分析端-获取token
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2020/2/12 10:58
*/
@GetMapping("getToken")
public Result<WorkUserAuthorizationDTO> getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return analysisUserService.getMaToken(formDto);
}
}

32
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AnalysisUserFeignClient.java

@ -0,0 +1,32 @@
package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.config.FeignRequestInterceptor;
import com.elink.esua.epdc.feign.fallback.AnalysisUserFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
/**
* 评价模块调用-移动app端
* @Author LPF
* @Date 2019/11/18 16:39
*/
@FeignClient(name = ServiceConstant.EPDC_ANALYSIS_SERVER, fallback = AnalysisUserFeignClientFallback.class, configuration = FeignRequestInterceptor.class)
public interface AnalysisUserFeignClient {
/**
* 测试
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: lipengfei
* @Date: 2019/11/19 16:42
*/
@GetMapping(value = "analysis/user/test", consumes = MediaType.APPLICATION_JSON_VALUE)
Result test();
}

22
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisUserFeignClientFallback.java

@ -0,0 +1,22 @@
package com.elink.esua.epdc.feign.fallback;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.feign.AnalysisUserFeignClient;
import org.springframework.stereotype.Component;
/**
* @Author LPF
* @Date 2019/11/18 16:39
*/
@Component
public class AnalysisUserFeignClientFallback implements AnalysisUserFeignClient {
@Override
public Result test() {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ANALYSIS_SERVER, "test");
}
}

48
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java

@ -0,0 +1,48 @@
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import java.util.List;
/**
* 项目模块-数据分析移动端
* @Author LPF
* @Date 2019/11/18 13:34
*/
public interface AnalysisUserService {
/**
* 测试模块
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<>
* @Author: lipengfei
* @Date: 2019/11/19 16:37
*/
Result test();
/**
*
* 数据分析端-用户登录
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2020/2/12 10:59
*/
Result<WorkUserAuthorizationDTO> login(WorkUserLoginDTO formDto);
/**
*
* 数据分析端-获取token
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @author liuchuang
* @since 2020/2/12 11:00
*/
Result<WorkUserAuthorizationDTO> getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto);
}

101
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java

@ -0,0 +1,101 @@
package com.elink.esua.epdc.service.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.common.token.dto.WorkUserTokenFormDTO;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.SysUserDTO;
import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.feign.AnalysisUserFeignClient;
import com.elink.esua.epdc.feign.ResourceFeignClient;
import com.elink.esua.epdc.service.AnalysisUserService;
import com.elink.esua.epdc.utils.WxMaServiceUtils;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 项目模块-移动app端
* @Author LPF
* @Date 2019/11/18 16:34
*/
@Service
public class AnalysisUserServiceImpl implements AnalysisUserService {
@Autowired
private AnalysisUserFeignClient analysisUserFeignClient;
@Autowired
private WxMaServiceUtils wxMaServiceUtils;
@Autowired
private ResourceFeignClient resourceFeignClient;
@Autowired
private AdminFeignClient adminFeignClient;
@Override
public Result test() {
return analysisUserFeignClient.test();
}
@Override
public Result<WorkUserAuthorizationDTO> login(WorkUserLoginDTO formDto) {
// 获取openId
String openId = this.getWxMaUser(formDto.getWxCode()).getOpenid();
formDto.setOpenId(openId);
return resourceFeignClient.workLogin(formDto);
}
@Override
public Result<WorkUserAuthorizationDTO> getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto) {
// 获取openId
String openId = this.getWxMaUser(formDto.getWxCode()).getOpenid();
// 检查当前微信是否已绑定账户
Result<SysUserDTO> sysUserDtoResult = adminFeignClient.getSysUserInfoByOpenId(openId);
if (!sysUserDtoResult.success()) {
return new Result<WorkUserAuthorizationDTO>().error(sysUserDtoResult.getMsg());
}
SysUserDTO userDto = sysUserDtoResult.getData();
if (null == userDto) {
WorkUserAuthorizationDTO resultDto = new WorkUserAuthorizationDTO();
resultDto.setRegisterState(NumConstant.ZERO_STR);
return new Result<WorkUserAuthorizationDTO>().ok(resultDto);
}
return resourceFeignClient.getToken(ConvertUtils.sourceToTarget(userDto, WorkUserTokenFormDTO.class));
}
/**
*
* 解析微信code获取小程序用户信息
*
* @params [wxCode]
* @return cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult
* @author liuchuang
* @since 2020/2/12 13:20
*/
private WxMaJscode2SessionResult getWxMaUser(String wxCode) {
WxMaJscode2SessionResult wxMaJscode2SessionResult = null;
try {
wxMaJscode2SessionResult = wxMaServiceUtils.analysisWxMaService().jsCode2SessionInfo(wxCode);
} catch (WxErrorException e) {
e.printStackTrace();
}
if (null == wxMaJscode2SessionResult) {
throw new RenException("解析微信用户信息失败");
} else if (StringUtils.isBlank(wxMaJscode2SessionResult.getOpenid())) {
throw new RenException("获取微信openid失败");
}
return wxMaJscode2SessionResult;
}
}

7
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml

@ -114,11 +114,18 @@ wx:
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
- appid: @analysis.wx.ma.appId@
secret: @analysis.wx.ma.secret@
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
appId:
# 普通居民端的appId
normal: @wx.ma.appId@
# 工作端的appId
work: @work.wx.ma.appId@
# 数据分析端的appId
analysis: @analysis.wx.ma.appId@

7
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/application.yml

@ -101,11 +101,18 @@ wx:
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
- appid: @analysis.wx.ma.appId@
secret: @analysis.wx.ma.secret@
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
appId:
# 普通居民端的appId
normal: @wx.ma.appId@
# 工作端的appId
work: @work.wx.ma.appId@
# 数据分析端的appId
analysis: @analysis.wx.ma.appId@
rocketmq:
name-server: @rocketmq.name.server@

Loading…
Cancel
Save