diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserAnalysisOpenIdFormDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserAnalysisOpenIdFormDTO.java new file mode 100644 index 000000000..0b835b880 --- /dev/null +++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserAnalysisOpenIdFormDTO.java @@ -0,0 +1,30 @@ +package com.elink.esua.epdc.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @program: esua-epdc + * @description: 更新数据端用户analysis_open_id + * @author: wangtong + * @create: 2020-05-26 16:58 + **/ +@Data +public class SysUserAnalysisOpenIdFormDTO implements Serializable { + + private static final long serialVersionUID = -5423801021547753289L; + + /** + * 用户名 + */ + @NotBlank(message = "用户名不能为空") + private String username; + + /** + * 微信analysis_open_id + */ + @NotBlank(message = "微信analysis_open_id不能为空") + private String analysisOpenId; +} \ No newline at end of file diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserDTO.java index d8a35022f..6288e5907 100644 --- a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserDTO.java +++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysUserDTO.java @@ -105,4 +105,14 @@ public class SysUserDTO implements Serializable { */ private String openId; + /** + * 工作端微信work_open_id + */ + private String workOpenId; + + /** + * 数据端微信analysis_open_id + */ + private String analysisOpenId; + } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java index d22c194e9..4956ecc7e 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java @@ -254,6 +254,20 @@ public class SysUserController { return sysUserService.modifyOpenIdByUsername(sysUserOpenIdFormDto); } + /** + * @describe: 数据端:根据用户名更新用户微信analysis_open_id + * @author wangtong + * @date 2020/5/26 17:27 + * @param [sysUserOpenIdFormDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @PostMapping("modifyAnalysisOpenId") + public Result modifyAnalysisOpenIdByUsername(@RequestBody SysUserAnalysisOpenIdFormDTO sysUserOpenIdFormDto) { + //效验数据 + ValidatorUtils.validateEntity(sysUserOpenIdFormDto); + return sysUserService.modifyAnalysisOpenIdByUsername(sysUserOpenIdFormDto); + } + /** * 初始化用户数据 */ diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java index 84324840b..796d7dffa 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java @@ -8,10 +8,11 @@ package com.elink.esua.epdc.dao; +import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; +import com.elink.esua.epdc.dto.SysUserAnalysisOpenIdFormDTO; import com.elink.esua.epdc.dto.SysUserDTO; import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; import com.elink.esua.epdc.entity.SysUserEntity; -import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -72,6 +73,15 @@ public interface SysUserDao extends BaseDao { */ void updateOpenIdByUsername(SysUserOpenIdFormDTO sysUserOpenIdFormDto); + /** + * @describe: 数据端-根据用户名更新用户微信analysis_open_id + * @author wangtong + * @date 2020/5/26 16:25 + * @param [sysUserOpenIdFormDto] + * @return void + */ + void updateAnalysisOpenIdByUsername(SysUserAnalysisOpenIdFormDTO sysUserOpenIdFormDto); + /** * * 根据openId获取用户信息 @@ -83,6 +93,15 @@ public interface SysUserDao extends BaseDao { */ SysUserDTO selectOneOfSysUserByOpenId(String openId); + /** + * @describe: 根据analysisOpenId获取用户信息 + * @author wangtong + * @date 2020/5/26 17:04 + * @param [analysisOpenId] + * @return com.elink.esua.epdc.dto.SysUserDTO + */ + SysUserDTO selectOneOfSysUserByAnalysisOpenId(String analysisOpenId); + /** * 退出登录 */ diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysUserEntity.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysUserEntity.java index b034042df..fd6e6dbb9 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysUserEntity.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysUserEntity.java @@ -105,4 +105,14 @@ public class SysUserEntity extends BaseEntity { */ private String openId; + /** + * 工作端openId + */ + private String workOpenId; + + /** + * 数据端openId + */ + private String analysisOpenId; + } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java index 29101b60b..d30457123 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java @@ -12,6 +12,7 @@ import com.elink.esua.epdc.commons.mybatis.service.BaseService; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.ModifyPwdDTO; +import com.elink.esua.epdc.dto.SysUserAnalysisOpenIdFormDTO; import com.elink.esua.epdc.dto.SysUserDTO; import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; @@ -96,6 +97,15 @@ public interface SysUserService extends BaseService { */ Result modifyOpenIdByUsername(SysUserOpenIdFormDTO sysUserOpenIdFormDto); + /** + * @describe: 数据端-根据用户名更新用户微信analysis_open_id + * @author wangtong + * @date 2020/5/26 16:12 + * @param [sysUserOpenIdFormDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result modifyAnalysisOpenIdByUsername(SysUserAnalysisOpenIdFormDTO sysUserOpenIdFormDto); + /** * 退出登录 * @param userId diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java index 26638e702..f72a63f6c 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java @@ -27,13 +27,13 @@ import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dao.SysUserDao; import com.elink.esua.epdc.dto.ModifyPwdDTO; +import com.elink.esua.epdc.dto.SysUserAnalysisOpenIdFormDTO; import com.elink.esua.epdc.dto.SysUserDTO; import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.result.UserWorkAndAnalyOpenIdDTO; import com.elink.esua.epdc.entity.SysUserEntity; -import com.elink.esua.epdc.feign.OssFeignClient; import com.elink.esua.epdc.feign.UserRelationFeignClient; import com.elink.esua.epdc.service.SysDeptService; import com.elink.esua.epdc.service.SysRoleUserService; @@ -43,7 +43,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 用户管理 @@ -235,7 +237,7 @@ public class SysUserServiceImpl extends BaseServiceImpl + + diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/controller/AuthController.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/controller/AuthController.java index ef2fd2e0d..7b96b7ffb 100644 --- a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/controller/AuthController.java +++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/controller/AuthController.java @@ -18,6 +18,7 @@ import com.elink.esua.epdc.commons.tools.validator.AssertUtils; import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.dto.AuthorizationDTO; import com.elink.esua.epdc.dto.LoginDTO; +import com.elink.esua.epdc.dto.SysUserAnalysisOpenIdFormDTO; import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; import com.elink.esua.epdc.service.AuthService; import com.elink.esua.epdc.service.CaptchaService; @@ -127,6 +128,29 @@ public class AuthController { return result; } + + /** + * @describe: 数据端-用户登录 + * @author wangtong + * @date 2020/5/26 15:36 + * @param [analysisUserLoginDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @PostMapping(value = "analysisLogin") + @ApiOperation(value = "登录") + public Result analysisLogin(@RequestBody AnalysisUserLoginDTO analysisUserLoginDto) { + //效验数据 + ValidatorUtils.validateEntity(analysisUserLoginDto); + Result result = authService.analysisLogin(analysisUserLoginDto.getUsername(), analysisUserLoginDto.getPassword()); + if (result.success()) { + // 解绑上一次登录账户并绑定当前账户 + SysUserAnalysisOpenIdFormDTO sysUserOpenIdFormDto = ConvertUtils.sourceToTarget(analysisUserLoginDto, SysUserAnalysisOpenIdFormDTO.class); + authService.modifyAnalysisOpenId(sysUserOpenIdFormDto); + } + + return result; + } + @PostMapping(value = "logout") @ApiOperation(value = "退出") public Result logout(HttpServletRequest request) { diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index 9b3557e17..5bd72abbe 100644 --- a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java +++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java @@ -8,12 +8,13 @@ package com.elink.esua.epdc.feign; -import com.elink.esua.epdc.dto.DataScopeDeptList; -import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; -import com.elink.esua.epdc.feign.fallback.UserFeignClientFallback; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.security.user.UserDetail; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.DataScopeDeptList; +import com.elink.esua.epdc.dto.SysUserAnalysisOpenIdFormDTO; +import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; +import com.elink.esua.epdc.feign.fallback.UserFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -67,6 +68,16 @@ public interface UserFeignClient { @PostMapping("sys/user/modifyOpenId") Result modifyOpenIdByUsername(SysUserOpenIdFormDTO sysUserOpenIdFormDto); + /** + * @describe: 数据端-根据用户名更新用户微信analysis_open_id + * @author wangtong + * @date 2020/5/26 16:05 + * @param [sysUserOpenIdFormDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @PostMapping("sys/user/modifyAnalysisOpenId") + Result modifyAnalysisOpenIdByUsername(SysUserAnalysisOpenIdFormDTO sysUserOpenIdFormDto); + /** * 组装用户部门层级结构 * @@ -88,4 +99,5 @@ public interface UserFeignClient { @GetMapping("sys/user/updateUserOpenId/{userId}") Result updateUserOpenId(@PathVariable("userId") Long userId); + } diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java index 893db7ec2..74b327ba1 100644 --- a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java +++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java @@ -11,6 +11,7 @@ package com.elink.esua.epdc.feign.fallback; import com.elink.esua.epdc.commons.tools.security.user.UserDetail; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.DataScopeDeptList; +import com.elink.esua.epdc.dto.SysUserAnalysisOpenIdFormDTO; import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; import com.elink.esua.epdc.feign.UserFeignClient; import org.springframework.stereotype.Component; @@ -46,6 +47,11 @@ public class UserFeignClientFallback implements UserFeignClient { return new Result<>(); } + @Override + public Result modifyAnalysisOpenIdByUsername(SysUserAnalysisOpenIdFormDTO sysUserOpenIdFormDto) { + return new Result<>(); + } + @Override public Result packageUserDeptOption(Long userId) { return new Result<>(); diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/AuthService.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/AuthService.java index 57ae4a103..6bb9a6771 100644 --- a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/AuthService.java +++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/AuthService.java @@ -8,13 +8,11 @@ package com.elink.esua.epdc.service; +import com.elink.esua.epdc.common.token.dto.AnalysisUserAuthorizationDTO; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.AuthorizationDTO; -import com.elink.esua.epdc.dto.DataScopeDeptList; -import com.elink.esua.epdc.dto.LoginDTO; -import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; +import com.elink.esua.epdc.dto.*; import java.util.List; @@ -42,6 +40,15 @@ public interface AuthService { */ Result workLogin(String username, String password); + /** + * @describe: 数据端-用户登录 + * @author wangtong + * @date 2020/5/26 15:42 + * @param [username, password] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result analysisLogin(String username, String password); + /** * * 根据用户名更新用户微信openId @@ -53,6 +60,15 @@ public interface AuthService { */ Result modifyOpenId(SysUserOpenIdFormDTO sysUserOpenIdFormDto); + /** + * @describe: 数据端-根据用户名更新用户微信analysis_open_id + * @author wangtong + * @date 2020/5/26 16:03 + * @param [sysUserOpenIdFormDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result modifyAnalysisOpenId(SysUserAnalysisOpenIdFormDTO sysUserOpenIdFormDto); + /** * 退出 */ @@ -75,4 +91,6 @@ public interface AuthService { * 退出 */ Result logoutUser(Long userId); + + } diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java index 20fed9ad7..b7c133697 100644 --- a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java +++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java @@ -9,6 +9,7 @@ package com.elink.esua.epdc.service.impl; import com.elink.esua.epdc.async.UserDeptTask; +import com.elink.esua.epdc.common.token.dto.AnalysisUserAuthorizationDTO; import com.elink.esua.epdc.common.token.dto.DeptDataScopeDTO; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO; @@ -33,10 +34,7 @@ import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.HttpContextUtils; import com.elink.esua.epdc.commons.tools.utils.IpUtils; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.AuthorizationDTO; -import com.elink.esua.epdc.dto.DataScopeDeptList; -import com.elink.esua.epdc.dto.LoginDTO; -import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; +import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.enums.UserStatusEnum; import com.elink.esua.epdc.feign.UserFeignClient; import com.elink.esua.epdc.jwt.JwtProperties; @@ -222,6 +220,82 @@ public class AuthServiceImpl implements AuthService { return new Result().ok(authorization); } + @Override + public Result analysisLogin(String username, String password) { + HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); + + //获取用户信息 + Result result = userFeignClient.getByUsername(username); + UserDetail user = result.getData(); + + //授权信息 + AnalysisUserAuthorizationDTO authorization = new AnalysisUserAuthorizationDTO(); + + //登录日志 + SysLogLogin log = new SysLogLogin(); + log.setType(LogTypeEnum.LOGIN.value()); + log.setOperation(LoginOperationEnum.LOGIN.value()); + log.setCreateDate(new Date()); + log.setIp(IpUtils.getIpAddr(request)); + log.setUserAgent(request.getHeader(HttpHeaders.USER_AGENT)); + log.setIp(IpUtils.getIpAddr(request)); + + //账号不存在 + if (user == null) { + log.setStatus(LoginStatusEnum.FAIL.value()); + log.setCreatorName(username); + logProducer.saveLog(log); + authorization.setRegisterState(NumConstant.ZERO_STR); + return new Result().error("用户名或密码错误"); + } + + //密码错误 + if (null != password && !PasswordUtils.matches(password, user.getPassword())) { + log.setStatus(LoginStatusEnum.FAIL.value()); + log.setCreator(user.getId()); + log.setCreatorName(user.getUsername()); + logProducer.saveLog(log); + + return new Result().error("用户名或密码错误"); + } + + //账号停用 + if (user.getStatus() == UserStatusEnum.DISABLE.value()) { + log.setStatus(LoginStatusEnum.LOCK.value()); + log.setCreator(user.getId()); + log.setCreatorName(user.getUsername()); + logProducer.saveLog(log); + return new Result().error("账号已停用"); + } + + //保存到Redis + userDetailRedis.set(user, jwtProperties.getExpire()); + + //登录成功,生成token + String token = jwtUtils.generateToken(user.getId()); + + authorization.setToken(token); + authorization.setExpire(jwtProperties.getExpire()); + + //登录用户信息 + log.setCreator(user.getId()); + log.setCreatorName(user.getUsername()); + log.setStatus(LoginStatusEnum.SUCCESS.value()); + logProducer.saveLog(log); + + // 获取用户所有角色权限信息 + List dataScopeDeptList = this.getDataScopeDetailList(user.getId()); + authorization.setDeptDataScopeList(ConvertUtils.sourceToTarget(dataScopeDeptList, DeptDataScopeDTO.class)); + + authorization.setDeptName(user.getDeptName()); + authorization.setUserTagKey(user.getTypeKey()); + authorization.setRegisterState(NumConstant.ONE_STR); + + userDeptTask.packageUserDeptOptions(user.getId()); + + return new Result().ok(authorization); + } + @Override public void logout(Long userId) { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); @@ -279,6 +353,11 @@ public class AuthServiceImpl implements AuthService { return userFeignClient.modifyOpenIdByUsername(sysUserOpenIdFormDto); } + @Override + public Result modifyAnalysisOpenId(SysUserAnalysisOpenIdFormDTO sysUserOpenIdFormDto) { + return userFeignClient.modifyAnalysisOpenIdByUsername(sysUserOpenIdFormDto); + } + /** * 退出登录 * @param userId diff --git a/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/AnalysisUserAuthorizationDTO.java b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/AnalysisUserAuthorizationDTO.java new file mode 100644 index 000000000..385e3035f --- /dev/null +++ b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/AnalysisUserAuthorizationDTO.java @@ -0,0 +1,48 @@ +package com.elink.esua.epdc.common.token.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @program: esua-epdc + * @description: 数据端用户授权信息 + * @author: wangtong + * @create: 2020-05-26 15:39 + **/ +@Data +public class AnalysisUserAuthorizationDTO implements Serializable { + + private static final long serialVersionUID = 519392456658807347L; + + /** + * 令牌 + */ + private String token; + + /** + * 过期时长,单位秒 + */ + private Integer expire; + + /** + * 部门名称 + */ + private String deptName; + + /** + * 用户标签key + */ + private String userTagKey; + + /** + * 注册状态 0-未注册,1-已注册 + */ + private String registerState; + + /** + * 用户所有角色权限信息 + */ + private List deptDataScopeList; +} \ No newline at end of file diff --git a/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/AnalysisUserLoginDTO.java b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/AnalysisUserLoginDTO.java new file mode 100644 index 000000000..6c4f3bdd1 --- /dev/null +++ b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/AnalysisUserLoginDTO.java @@ -0,0 +1,29 @@ +package com.elink.esua.epdc.common.token.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @program: esua-epdc + * @description: 数据端登录用户信息 + * @author: wangtong + * @create: 2020-05-26 15:32 + **/ +@Data +public class AnalysisUserLoginDTO implements Serializable { + + private static final long serialVersionUID = 3829451481560643039L; + + @NotBlank(message="用户名不能为空") + private String username; + + @NotBlank(message="密码不能为空") + private String password; + + @NotBlank(message="微信code不能为空") + private String wxCode; + + private String analysisOpenId; +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java index a4958a417..8a62096d9 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java @@ -1,15 +1,16 @@ package com.elink.esua.epdc.controller; +import com.elink.esua.epdc.common.token.dto.AnalysisUserAuthorizationDTO; +import com.elink.esua.epdc.common.token.dto.AnalysisUserLoginDTO; 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.dto.user.form.MemberRankFormDTO; -import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO; import com.elink.esua.epdc.dto.user.form.UserCountDTO; +import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO; import com.elink.esua.epdc.dto.user.result.OldMemberRankResultDTO; import com.elink.esua.epdc.dto.user.result.UserSortRankResultDTO; import com.elink.esua.epdc.dto.user.result.YoungMemberRankResultDTO; @@ -54,7 +55,7 @@ public class ApiAnalysisUserController { * @since 2020/2/12 10:57 */ @PostMapping("login") - public Result login(@RequestBody WorkUserLoginDTO formDto) { + public Result login(@RequestBody AnalysisUserLoginDTO formDto) { ValidatorUtils.validateEntity(formDto); return analysisUserService.login(formDto); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ResourceFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ResourceFeignClient.java index 379644e0e..4a3a947ef 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ResourceFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ResourceFeignClient.java @@ -1,8 +1,6 @@ package com.elink.esua.epdc.feign; -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.common.token.dto.*; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.feign.fallback.ResourceFeignClientFallback; @@ -45,6 +43,18 @@ public interface ResourceFeignClient { @PostMapping("auth/workLogin") Result workLogin(WorkUserLoginDTO workUserLoginDto); + /** + * + * 工作端用户登录并获取授权信息 + * + * @params [workUserLoginDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/19 20:27 + */ + @PostMapping("auth/analysisLogin") + Result analysisLogin(AnalysisUserLoginDTO analysisUserLoginDto); + /** * 退出登录 * @param userId diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ResourceFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ResourceFeignClientFallback.java index 74849e24a..d5ec3bf80 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ResourceFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ResourceFeignClientFallback.java @@ -1,8 +1,6 @@ package com.elink.esua.epdc.feign.fallback; -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.common.token.dto.*; 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; @@ -29,6 +27,11 @@ public class ResourceFeignClientFallback implements ResourceFeignClient { return ModuleUtils.feignConError(ServiceConstant.EPDC_AUTH_SERVER, "workLogin", workUserLoginDto); } + @Override + public Result analysisLogin(AnalysisUserLoginDTO analysisUserLoginDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_AUTH_SERVER, "analysisLogin", analysisUserLoginDto); + } + @Override public Result logoutUser(String userId) { return ModuleUtils.feignConError(ServiceConstant.EPDC_AUTH_SERVER, "logoutUser", userId); diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java index 2b4500a1c..5e679b9be 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java @@ -1,12 +1,13 @@ package com.elink.esua.epdc.service; +import com.elink.esua.epdc.common.token.dto.AnalysisUserAuthorizationDTO; +import com.elink.esua.epdc.common.token.dto.AnalysisUserLoginDTO; 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 com.elink.esua.epdc.dto.user.form.MemberRankFormDTO; -import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO; import com.elink.esua.epdc.dto.user.form.UserCountDTO; +import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO; import com.elink.esua.epdc.dto.user.result.OldMemberRankResultDTO; import com.elink.esua.epdc.dto.user.result.UserSortRankResultDTO; import com.elink.esua.epdc.dto.user.result.YoungMemberRankResultDTO; @@ -38,7 +39,7 @@ public interface AnalysisUserService { * @author liuchuang * @since 2020/2/12 10:59 */ - Result login(WorkUserLoginDTO formDto); + Result login(AnalysisUserLoginDTO formDto); /** * diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java index b49883c06..549a08753 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java @@ -2,8 +2,9 @@ package com.elink.esua.epdc.service.impl; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; +import com.elink.esua.epdc.common.token.dto.AnalysisUserAuthorizationDTO; +import com.elink.esua.epdc.common.token.dto.AnalysisUserLoginDTO; 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; @@ -55,11 +56,11 @@ public class AnalysisUserServiceImpl implements AnalysisUserService { } @Override - public Result login(WorkUserLoginDTO formDto) { + public Result login(AnalysisUserLoginDTO formDto) { // 获取openId String openId = this.getWxMaUser(formDto.getWxCode()).getOpenid(); - formDto.setOpenId(openId); - return resourceFeignClient.workLogin(formDto); + formDto.setAnalysisOpenId(openId); + return resourceFeignClient.analysisLogin(formDto); } @Override