10 changed files with 304 additions and 0 deletions
@ -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); |
|||
} |
|||
} |
|||
@ -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(); |
|||
|
|||
|
|||
|
|||
} |
|||
@ -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"); |
|||
} |
|||
|
|||
} |
|||
@ -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); |
|||
|
|||
} |
|||
@ -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; |
|||
} |
|||
} |
|||
Loading…
Reference in new issue