Browse Source

Merge branch 'master' into feature/yujt_AppendP2

# Conflicts:
#	epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/analysis/service/impl/AnalysisUserServiceImpl.java
feature/yujt_analysisHomeChange
yujt 5 years ago
parent
commit
a023c11c07
  1. 0
      epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/.gitkeep
  2. 55
      epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/analysis/controller/ApiAnalysisUserController.java
  3. 37
      epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/analysis/service/AnalysisUserService.java
  4. 92
      epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/analysis/service/impl/AnalysisUserServiceImpl.java

0
epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/.gitkeep

55
epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/analysis/controller/ApiAnalysisUserController.java

@ -0,0 +1,55 @@
package com.elink.esua.epdc.modules.analysis.controller;
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.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.modules.analysis.service.AnalysisUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 移动端接口-数据分析模块(项目)
* @Author LPF
* @Date 2019/11/18 13:32
*/
@RestController
@RequestMapping("analysis/user")
public class ApiAnalysisUserController {
@Autowired
private AnalysisUserService analysisUserService;
/**
*
* 数据分析端-用户登录
*
* @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);
}
}

37
epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/analysis/service/AnalysisUserService.java

@ -0,0 +1,37 @@
package com.elink.esua.epdc.modules.analysis.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;
/**
* 项目模块-数据分析移动端
*
* @Author LPF
* @Date 2019/11/18 13:34
*/
public interface AnalysisUserService {
/**
* 数据分析端-用户登录
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @params [formDto]
* @author liuchuang
* @since 2020/2/12 10:59
*/
Result<WorkUserAuthorizationDTO> login(WorkUserLoginDTO formDto);
/**
* 数据分析端-获取token
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO>
* @params [formDto]
* @author liuchuang
* @since 2020/2/12 11:00
*/
Result<WorkUserAuthorizationDTO> getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto);
}

92
epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/analysis/service/impl/AnalysisUserServiceImpl.java

@ -0,0 +1,92 @@
package com.elink.esua.epdc.modules.analysis.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.ResourceFeignClient;
import com.elink.esua.epdc.modules.analysis.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;
/**
* 项目模块-移动app端
*
* @Author LPF
* @Date 2019/11/18 16:34
*/
@Service
public class AnalysisUserServiceImpl implements AnalysisUserService {
@Autowired
private WxMaServiceUtils wxMaServiceUtils;
@Autowired
private ResourceFeignClient resourceFeignClient;
@Autowired
private AdminFeignClient adminFeignClient;
@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获取小程序用户信息
*
* @return cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult
* @params [wxCode]
* @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;
}
}
Loading…
Cancel
Save