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 d8a35022..80b3e526 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 @@ -104,5 +104,9 @@ public class SysUserDTO implements Serializable { * 微信openId */ private String openId; + /** + * 临时凭证 + */ + private String scrip; } diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcScripUserInfoFormDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcScripUserInfoFormDTO.java new file mode 100644 index 00000000..f633b79e --- /dev/null +++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcScripUserInfoFormDTO.java @@ -0,0 +1,26 @@ +package com.elink.esua.epdc.dto.epdc.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Auther: songyunpeng + * @Date: 2020/06/22 16:37 + * @Description: 临时凭证参数 + */ +@Data +public class EpdcScripUserInfoFormDTO implements Serializable { + private static final long serialVersionUID = 6035055052382466281L; + + @NotNull(message = "网格ID不能为空") + private Long gridId; + /** + * 用户ID + */ + @NotBlank(message = "手机号不能为空") + private String mobile; + +} 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 abb9fa49..d19bf6d6 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 @@ -26,6 +26,7 @@ import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO; import com.elink.esua.epdc.excel.SysUserExcel; import com.elink.esua.epdc.service.*; import io.swagger.annotations.Api; @@ -374,4 +375,33 @@ public class SysUserController { return sysUserService.getSysGridLeaderPhone(deptId); } + /** + * @Description 根据手机号和网格信息获取临时凭证 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [epdcScripUserInfoFormDTO] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + @PostMapping("getUserInfoByGridAndMobile") + public Result getUserInfoByGridAndMobile(@RequestBody EpdcScripUserInfoFormDTO epdcScripUserInfoFormDTO){ + ValidatorUtils.validateEntity(epdcScripUserInfoFormDTO); + return new Result().ok(sysUserService.getUserInfoByGridAndMobile(epdcScripUserInfoFormDTO)); + } + + /** + * @Description 根据临时凭证获取用户信息 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [username] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + @GetMapping("getByScrip/{scrip}") + public Result getByScrip(@PathVariable("scrip") String scrip) { + SysUserDTO user = sysUserService.getByScrip(scrip); + UserDetail userDetail = ConvertUtils.sourceToTarget(user, UserDetail.class); + //初始化用户数据 + initUserData(userDetail); + return new Result().ok(userDetail); + } + } 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 d7902e7d..c6802721 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.SysUserDTO; import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO; 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; @@ -105,4 +106,21 @@ public interface SysUserDao extends BaseDao { * @Date: 2020-01-09 */ List getSysGridLeaderPhone(Long deptId); + + /** + * @Description 根据手机号和网格获取用户信息 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [epdcScripUserInfoFormDTO] + * @return com.elink.esua.epdc.dto.SysUserDTO + **/ + SysUserDTO selectOneUserInfoByGridAndMobile(EpdcScripUserInfoFormDTO epdcScripUserInfoFormDTO); + /** + * @Description 根据临时凭证获取用户信息 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [scrip] + * @return com.elink.esua.epdc.dto.SysUserDTO + **/ + SysUserDTO selectOneUserInfoByScrip(String scrip); } 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 b034042d..335098d2 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 @@ -104,5 +104,9 @@ public class SysUserEntity extends BaseEntity { * 用户微信openId */ private String openId; + /** + * 临时凭证 + */ + private String scrip; } 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 1a3635e2..e1ec23ab 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 @@ -14,6 +14,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.SysUserDTO; import com.elink.esua.epdc.dto.SysUserOpenIdFormDTO; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO; import com.elink.esua.epdc.entity.SysUserEntity; import java.util.List; @@ -118,4 +119,20 @@ public interface SysUserService extends BaseService { * @Date: 2020-01-09 */ Result> getSysGridLeaderPhone(Long deptId); + /** + * @Description 根据网格ID和手机号获取用户信息 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [epdcScripUserInfoFormDTO] + * @return java.lang.String + **/ + String getUserInfoByGridAndMobile(EpdcScripUserInfoFormDTO epdcScripUserInfoFormDTO); + /** + * @Description 根据临时凭证获取用户信息 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [scrip] + * @return com.elink.esua.epdc.dto.SysUserDTO + **/ + SysUserDTO getByScrip(String scrip); } 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 51b1c6a0..23eb3462 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 @@ -29,6 +29,7 @@ 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.form.EpdcScripUserInfoFormDTO; import com.elink.esua.epdc.entity.SysUserEntity; import com.elink.esua.epdc.service.SysDeptService; import com.elink.esua.epdc.service.SysRoleUserService; @@ -262,5 +263,38 @@ public class SysUserServiceImpl extends BaseServiceImpl>().ok(baseDao.getSysGridLeaderPhone(deptId)); } + @Override + @Transactional(rollbackFor = Exception.class) + public String getUserInfoByGridAndMobile(EpdcScripUserInfoFormDTO epdcScripUserInfoFormDTO) { + SysUserDTO userDTO = baseDao.selectOneUserInfoByGridAndMobile(epdcScripUserInfoFormDTO); + if(userDTO==null){ + throw new RenException("根据信息无法获取到pc端用户"); + } + String randomValue = String.valueOf((int)(Math.random()*(1000000-100000)+100000)); + SysUserEntity userEntity = new SysUserEntity(); + userEntity.setScrip(randomValue); + userEntity.setId(userDTO.getId()); + updateById(userEntity); + return randomValue; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public SysUserDTO getByScrip(String scrip) { + if(StringUtils.isBlank(scrip)){ + throw new RenException("临时凭证不能为空"); + } + SysUserDTO sysUserDTO = baseDao.selectOneUserInfoByScrip(scrip); + if(sysUserDTO == null){ + throw new RenException("根据临时凭证无法获取到用户"); + } + //获取后清除临时凭证 + SysUserEntity userEntity = new SysUserEntity(); + userEntity.setScrip(""); + userEntity.setId(sysUserDTO.getId()); + updateById(userEntity); + return sysUserDTO; + } + } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml index 873cb620..337041f3 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml @@ -152,4 +152,54 @@ AND d.dept_id = #{deptId} ) c + + 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 ef2fd2e0..0a7c2585 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 @@ -126,6 +126,29 @@ public class AuthController { return result; } + /** + * + * 数据端-用户凭证登录 + * + * @params [workUserLoginDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author songyunpeng + * @since 2020/06/22 20:21 + */ + @PostMapping(value = "workScripLogin") + public Result workScripLogin(@RequestBody WorkUserScripLoginDTO workUserLoginDto) { + //效验数据 + ValidatorUtils.validateEntity(workUserLoginDto); + Result result = authService.workScripLogin(workUserLoginDto.getScrip()); + if (result.success()) { + workUserLoginDto.setUsername(result.getData().getUsername()); + // 解绑上一次登录账户并绑定当前账户 + SysUserOpenIdFormDTO sysUserOpenIdFormDto = ConvertUtils.sourceToTarget(workUserLoginDto, SysUserOpenIdFormDTO.class); + authService.modifyOpenId(sysUserOpenIdFormDto); + } + + return new Result().ok(result.getData().getWorkUserAuthorizationDTO()); + } @PostMapping(value = "logout") @ApiOperation(value = "退出") 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 9b3557e1..91661331 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 @@ -88,4 +88,13 @@ public interface UserFeignClient { @GetMapping("sys/user/updateUserOpenId/{userId}") Result updateUserOpenId(@PathVariable("userId") Long userId); + /** + * @Description 根据临时凭证获取用户信息 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [scrip] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + @GetMapping("sys/user/getByScrip/{scrip}") + Result getByScrip(@PathVariable("scrip") String scrip); } 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 893db7ec..c3742777 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 @@ -55,4 +55,9 @@ public class UserFeignClientFallback implements UserFeignClient { public Result updateUserOpenId(Long userId) { return new Result<>(); } + + @Override + public Result getByScrip(String scrip) { + 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 57ae4a10..a8163dcf 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 @@ -10,6 +10,7 @@ package com.elink.esua.epdc.service; 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.WorkUserAuthorizationScripDTO; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.AuthorizationDTO; import com.elink.esua.epdc.dto.DataScopeDeptList; @@ -75,4 +76,12 @@ public interface AuthService { * 退出 */ Result logoutUser(Long userId); + /** + * @Description 用户凭证登录 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [scrip] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + Result workScripLogin(String scrip); } 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 20fed9ad..3e249bd1 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 @@ -12,6 +12,7 @@ import com.elink.esua.epdc.async.UserDeptTask; 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; +import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationScripDTO; import com.elink.esua.epdc.common.token.util.CpUserDetailRedis; import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.constant.NumConstant; @@ -297,4 +298,72 @@ public class AuthServiceImpl implements AuthService { } + + @Override + public Result workScripLogin(String scrip) { + HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); + + //获取用户信息 + Result result = userFeignClient.getByScrip(scrip); + UserDetail user = result.getData(); + + //授权信息 + WorkUserAuthorizationDTO authorization = new WorkUserAuthorizationDTO(); + + //登录日志 + 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(scrip); + logProducer.saveLog(log); + authorization.setRegisterState(NumConstant.ZERO_STR); + 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()); + WorkUserAuthorizationScripDTO workUserAuthorizationScripDTO = new WorkUserAuthorizationScripDTO(); + workUserAuthorizationScripDTO.setWorkUserAuthorizationDTO(authorization); + workUserAuthorizationScripDTO.setUsername(user.getUsername()); + return new Result().ok(workUserAuthorizationScripDTO); + } } diff --git a/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserAuthorizationScripDTO.java b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserAuthorizationScripDTO.java new file mode 100644 index 00000000..8d206dfd --- /dev/null +++ b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserAuthorizationScripDTO.java @@ -0,0 +1,19 @@ +package com.elink.esua.epdc.common.token.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author songyunpeng + * @Description 数据端临时凭证登录返回 + * @create 2020-06-23 + */ +@Data +public class WorkUserAuthorizationScripDTO implements Serializable { + private static final long serialVersionUID = 1905641243346550379L; + + private String username; + private WorkUserAuthorizationDTO workUserAuthorizationDTO; + +} diff --git a/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserScripLoginDTO.java b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserScripLoginDTO.java new file mode 100644 index 00000000..0825e7d9 --- /dev/null +++ b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserScripLoginDTO.java @@ -0,0 +1,30 @@ +package com.elink.esua.epdc.common.token.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * + * 工作端用户凭证登录信息 + * + * @Author:songyunpeng + * @Date:2020/06/22 20:19 + */ +@Data +public class WorkUserScripLoginDTO implements Serializable { + private static final long serialVersionUID = 1905641243346550379L; + + @NotBlank(message="用户名不能为空") + private String scrip; + + + @NotBlank(message="微信code不能为空") + private String wxCode; + + private String openId; + + private String username; + +} diff --git a/esua-epdc/epdc-gateway/src/main/resources/application.yml b/esua-epdc/epdc-gateway/src/main/resources/application.yml index bf3dcee4..5c3c15cc 100644 --- a/esua-epdc/epdc-gateway/src/main/resources/application.yml +++ b/esua-epdc/epdc-gateway/src/main/resources/application.yml @@ -250,6 +250,7 @@ renren: - /api/work/user/login #工作端-登录 - /api/analysis/user/getToken #数据分析端-获取token - /api/analysis/user/login #数据分析端-登录 + - /api/analysis/user/scripLogin #工作端-用户凭证登录 - /api/work/*/swagger/** workUrls: - /api/work/** #工作端接口 diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/ImgConfigDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/ImgConfigDTO.java index dc87f320..530831c6 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/ImgConfigDTO.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/ImgConfigDTO.java @@ -87,4 +87,9 @@ public class ImgConfigDTO implements Serializable { * 图片地址 */ private String imgCode; + + /** + * 备注 + */ + private String remark; } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcImgConfigResultDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcImgConfigResultDTO.java index 589bf26b..3f0f0c6d 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcImgConfigResultDTO.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcImgConfigResultDTO.java @@ -29,4 +29,9 @@ public class EpdcImgConfigResultDTO implements Serializable { * 图片地址 */ private String imgCode; + + /** + * 备注 + */ + private String remark; } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAdminController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAdminController.java index 8f181538..500c7c4a 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAdminController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAdminController.java @@ -1,9 +1,12 @@ package com.elink.esua.epdc.controller; +import com.elink.esua.epdc.common.token.dto.TokenDto; +import com.elink.esua.epdc.commons.tools.annotation.LoginUser; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.service.AdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -33,4 +36,16 @@ public class ApiAdminController { public Result getCompleteDeptName(Long gridId) { return adminService.getCompleteDeptName(gridId); } + + /** + * @Description 获取用户凭证 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [userDetail] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + @PostMapping("getScrip") + public Result getScrip(@LoginUser TokenDto userDetail){ + return adminService.getScrip(userDetail); + } } 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 b2f04e8c..620011c7 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 @@ -3,6 +3,7 @@ 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.common.token.dto.WorkUserScripLoginDTO; 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; @@ -11,8 +12,6 @@ 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 @@ -52,7 +51,19 @@ public class ApiAnalysisUserController { ValidatorUtils.validateEntity(formDto); return analysisUserService.login(formDto); } - + /** + * 数据分析端-用户凭证登录 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author songyunpeng + * @since 2020/06/22 23:03 + */ + @PostMapping("scripLogin") + public Result scripLogin(@RequestBody WorkUserScripLoginDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return analysisUserService.scripLogin(formDto); + } /** * * 数据分析端-获取token diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java index 3806ccbb..36b2c6ae 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java @@ -355,4 +355,18 @@ public class ApiAppUserController { ValidatorUtils.validateEntity(formDto); return appUserService.listUserPointsRanking(userDetail, formDto); } + + /** + * 积分中心页面-积分等级排名 + * 返回当前用户的排名 和 当前街道的前N名用户排名 + * @param userDetail, formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 10:59 2020-06-24 + **/ + @GetMapping("user/gradeRanking/list") + public Result listUserGradesRanking(@LoginUser TokenDto userDetail, EpdcAppUserGradeRankingFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + return appUserService.listUserGradesRanking(userDetail, formDTO); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/entity/ImgConfigEntity.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/entity/ImgConfigEntity.java index 20134c6d..c55b9a25 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/entity/ImgConfigEntity.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/entity/ImgConfigEntity.java @@ -57,4 +57,9 @@ public class ImgConfigEntity extends BaseEpdcEntity { * 图片地址 */ private String imgCode; + + /** + * 备注 + */ + private String remark; } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java index bdcc6693..418ef534 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java @@ -4,11 +4,15 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO; import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -109,4 +113,15 @@ public interface AdminFeignClient { */ @GetMapping("/sys/dict/listSimple/{dictType}") Result> getDefaultGridInfoByDicType(@PathVariable("dictType") String dictType); + + + /** + * @Description 根据手机号和网格信息获取临时凭证 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [epdcScripUserInfoFormDTO] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + @PostMapping(value = "sys/user/getUserInfoByGridAndMobile", consumes = MediaType.APPLICATION_JSON_VALUE) + Result getUserInfoByGridAndMobile(@RequestBody EpdcScripUserInfoFormDTO epdcScripUserInfoFormDTO); } 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 379644e0..f2cb2712 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 @@ -2,6 +2,7 @@ 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.WorkUserScripLoginDTO; import com.elink.esua.epdc.common.token.dto.WorkUserTokenFormDTO; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; @@ -53,4 +54,13 @@ public interface ResourceFeignClient { */ @GetMapping("auth/logoutUser/{userId}") Result logoutUser(@PathVariable("userId") String userId); + /** + * @Description 工作端用户凭证登录并获取授权信息 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + @PostMapping("auth/workScripLogin") + Result workScripLogin(WorkUserScripLoginDTO formDto); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index a8565742..e44ec2b5 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java @@ -420,4 +420,15 @@ public interface UserFeignClient { **/ @PostMapping(value = "app-user/user/addPerfectPoints", consumes = MediaType.APPLICATION_JSON_VALUE) Result addPerfectPoints(UserDTO dto); + + /** + * 积分中心页面-积分等级排名 + * 返回当前用户的排名 和 当前街道的前N名用户排名 + * @param formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 10:59 2020-06-24 + **/ + @GetMapping(value = "app-user/epdc-app/user/gradeRanking/list", consumes = MediaType.APPLICATION_JSON_VALUE) + Result selectListUserGradesRanking(EpdcAppUserGradeRankingFormDTO formDTO); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java index 8601787d..1c7f98b6 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java @@ -5,6 +5,7 @@ import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO; import com.elink.esua.epdc.feign.AdminFeignClient; import org.springframework.stereotype.Component; @@ -58,4 +59,10 @@ public class AdminFeignClientFallback implements AdminFeignClient { public Result> getDefaultGridInfoByDicType(String dictType) { return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getDefaultGridInfoByDicType", dictType); } + + + @Override + public Result getUserInfoByGridAndMobile(EpdcScripUserInfoFormDTO epdcScripUserInfoFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getUserInfoByGridAndMobile", epdcScripUserInfoFormDTO); + } } 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 74849e24..db5da4b1 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 @@ -2,6 +2,7 @@ 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.WorkUserScripLoginDTO; import com.elink.esua.epdc.common.token.dto.WorkUserTokenFormDTO; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; @@ -33,4 +34,9 @@ public class ResourceFeignClientFallback implements ResourceFeignClient { public Result logoutUser(String userId) { return ModuleUtils.feignConError(ServiceConstant.EPDC_AUTH_SERVER, "logoutUser", userId); } + + @Override + public Result workScripLogin(WorkUserScripLoginDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_AUTH_SERVER, "workScripLogin", formDto); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java index 980c6a58..0d88b231 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java @@ -204,4 +204,9 @@ public class UserFeignClientFallback implements UserFeignClient { public Result addPerfectPoints(UserDTO dto) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "addPerfectPoints", dto); } + + @Override + public Result selectListUserGradesRanking(EpdcAppUserGradeRankingFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "selectListUserGradesRanking", "formDTO"); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java index ef819781..c2e2e1d2 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java @@ -1,5 +1,6 @@ package com.elink.esua.epdc.service; +import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; /** @@ -29,4 +30,12 @@ public interface AdminService { * @Date 11:08 2020-06-02 **/ Result getDefaultGridInfo(String dicType); + /** + * @Description 获取临时凭证 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [userDetail] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + Result getScrip(TokenDto userDetail); } 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 e7ebd1b5..58c2c7cf 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 @@ -2,11 +2,10 @@ 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.common.token.dto.WorkUserScripLoginDTO; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO; -import java.util.List; - /** * 项目模块-数据分析移动端 * @Author LPF @@ -44,5 +43,12 @@ public interface AnalysisUserService { * @since 2020/2/12 11:00 */ Result getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto); - + /** + * @Description 用户凭证登录 + * @Author songyunpeng + * @Date 2020/6/22 + * @Param [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + Result scripLogin(WorkUserScripLoginDTO formDto); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java index 31fc1987..ef236947 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java @@ -289,4 +289,14 @@ public interface AppUserService { * @Date 13:35 2020-06-01 **/ Result listUserPointsRanking(TokenDto userDetail, EpdcAppUserRankingFormDTO formDto); + + /** + * 积分中心页面-积分等级排名 + * 返回当前用户的排名 和 当前街道的前N名用户排名 + * @param userDetail, formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 10:59 2020-06-24 + **/ + Result listUserGradesRanking(TokenDto userDetail, EpdcAppUserGradeRankingFormDTO formDTO); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java index 4b9e7860..2e89a99d 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java @@ -1,8 +1,10 @@ package com.elink.esua.epdc.service.impl; +import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.CompleteDeptDTO; import com.elink.esua.epdc.dto.SysSimpleDictDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.service.AdminService; import org.springframework.beans.factory.annotation.Autowired; @@ -46,4 +48,15 @@ public class AdminServiceImpl implements AdminService { String defaultGrid = listResult.getData().get(0).getDictValue(); return new Result().ok(defaultGrid); } + + @Override + public Result getScrip(TokenDto userDetail) { + if(userDetail == null){ + return new Result().error("用户未登录"); + } + EpdcScripUserInfoFormDTO epdcScripUserInfoFormDTO = new EpdcScripUserInfoFormDTO(); + epdcScripUserInfoFormDTO.setGridId(userDetail.getGridId()); + epdcScripUserInfoFormDTO.setMobile(userDetail.getMobile()); + return adminFeignClient.getUserInfoByGridAndMobile(epdcScripUserInfoFormDTO); + } } 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 4cf0b4f5..e4f54355 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 @@ -4,6 +4,7 @@ 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.WorkUserScripLoginDTO; 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; @@ -21,8 +22,6 @@ 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 @@ -98,4 +97,11 @@ public class AnalysisUserServiceImpl implements AnalysisUserService { } return wxMaJscode2SessionResult; } + @Override + public Result scripLogin(WorkUserScripLoginDTO formDto) { + // 获取openId + String openId = this.getWxMaUser(formDto.getWxCode()).getOpenid(); + formDto.setOpenId(openId); + return resourceFeignClient.workScripLogin(formDto); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index 646e3738..2c959738 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -1507,4 +1507,19 @@ public class AppUserServiceImpl implements AppUserService { return userFeignClient.selectListUserPointsRanking(formDto); } + + @Override + public Result listUserGradesRanking(TokenDto userDetail, EpdcAppUserGradeRankingFormDTO formDTO) { + formDTO.setUserId(userDetail.getUserId()); + formDTO.setNickName(userDetail.getNickname()); + formDTO.setPointsTotle(userDetail.getPointsTotle()); + Result deptInfo = adminFeignClient.getCompleteDept(userDetail.getGridId()); + if (deptInfo.success()) { + formDTO.setStreetId(deptInfo.getData().getStreetId()); + } else { + return new Result().error("当前用户,无所属街道"); + } + return userFeignClient.selectListUserGradesRanking(formDTO); + } + } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/mapper/ImgConfigDao.xml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/mapper/ImgConfigDao.xml index f237046e..fa976110 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/mapper/ImgConfigDao.xml +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/mapper/ImgConfigDao.xml @@ -15,6 +15,7 @@ + diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserGradeRankingFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserGradeRankingFormDTO.java new file mode 100644 index 00000000..5b3a74f5 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserGradeRankingFormDTO.java @@ -0,0 +1,58 @@ +package com.elink.esua.epdc.dto.epdc.form; + +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 移动端接口-用户管理模块-积分记录-等级排名接口 入参 + * @Author zhangyong + * @Date 2020-06-24 + */ +@Data +public class EpdcAppUserGradeRankingFormDTO implements Serializable { + + private static final long serialVersionUID = 202029992792275120L; + + /** + * 页码 + */ + @Min(value = 1, message = "页码必须大于0") + private Integer pageIndex; + + /** + * 页容量 + */ + @Min(value = 1, message = "页容量必须大于0") + private Integer pageSize; + + /** + * 第一页查询发起时的时间 + */ + @NotBlank(message = "时间戳不能为空") + private String timestamp; + + /** + * 用户ID + */ + private String userId; + + /** + * 用户昵称 + */ + private String nickName; + + /** + * 街道ID + */ + private Long streetId; + + /** + * 用户累计积分 + */ + private Integer pointsTotle; + +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcAppUserGradeRankingResultDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcAppUserGradeRankingResultDTO.java new file mode 100644 index 00000000..6e5ec6d2 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcAppUserGradeRankingResultDTO.java @@ -0,0 +1,30 @@ +package com.elink.esua.epdc.dto.epdc.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 移动端接口-用户管理模块-积分记录-等级排名接口 返回值 + * @Author zhangyong + * @Date 2020-06-24 + */ +@Data +public class EpdcAppUserGradeRankingResultDTO implements Serializable { + + private static final long serialVersionUID = 3908231797102233188L; + + /** + * 积分排行-等级排名接口返回值 - 前二十列表 + */ + private List rank; + + /** + * 积分排行-等级排名接口返回值 -用户等级 + */ + private UsersGradeRankingDTO currentUser; + + + +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/UsersGradeRankingDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/UsersGradeRankingDTO.java new file mode 100644 index 00000000..2675d46c --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/UsersGradeRankingDTO.java @@ -0,0 +1,36 @@ +package com.elink.esua.epdc.dto.epdc.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 移动端接口-用户管理模块-积分记录-等级排名接口 具体返回值 + * @Author zhangyong + * @Date 2020-06-24 + */ +@Data +public class UsersGradeRankingDTO implements Serializable { + + private static final long serialVersionUID = 3908231797102233188L; + + /** + * 用户ID + */ + private String userId; + + /** + * 用户昵称 + */ + private String nickName; + + /** + * 用户等级 + */ + private Integer grade; + + /** + * 取排行榜 名次 + */ + private Integer rank; +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java index 69e24504..16741f28 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java @@ -1,8 +1,10 @@ package com.elink.esua.epdc.controller; +import com.elink.esua.epdc.commons.tools.annotation.LoginUser; import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.dto.CachingUserInfoDTO; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; @@ -427,4 +429,17 @@ public class EpdcAppUserController { EpdcAppUserRankingResultDTO list = userService.listUserPointsRanking(formDto); return new Result().ok(list); } + + /** + * 积分中心页面-积分等级排名 + * 返回当前用户的排名 和 当前街道的前N名用户排名 + * @param formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 10:59 2020-06-24 + **/ + @GetMapping("gradeRanking/list") + public Result listUsersGradeRanking(@RequestBody EpdcAppUserGradeRankingFormDTO formDTO){ + return userService.listUsersGradeRanking(formDTO); + } } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java index 2e739c2a..2c93e927 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java @@ -21,10 +21,7 @@ import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.dto.CachingUserInfoDTO; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserPointsDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcAppUserRankingFormDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcUnauthorizedAmountFromDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcWorkUserFromDTO; +import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.result.*; import com.elink.esua.epdc.entity.UserEntity; import org.apache.ibatis.annotations.Mapper; @@ -257,11 +254,29 @@ public interface UserDao extends BaseDao { **/ List selectListOfWaitPartyUserDto(Map params); /** - * @Description 工作端待认证居民 + * @Description 工作端待认证居民 * @Author songyunpeng * @Date 2020/6/12 * @Param [workUserFromDto] * @return java.util.List **/ List selectWorkResidentUserList(EpdcWorkUserFromDTO workUserFromDto); + + /** + * 获取街道 下的用户等级排名 + * @param formDto + * @return java.util.List + * @Author zhangyong + * @Date 13:52 2020-06-024 + **/ + List selectListUsersGradeRanking(EpdcAppUserGradeRankingFormDTO formDto); + + /** + * 获取当前用户的 用户等级排名 + * @param formDto + * @return com.elink.esua.epdc.dto.epdc.result.UsersGradeRankingDTO + * @Author zhangyong + * @Date 14:06 2020-06-24 + **/ + UsersGradeRankingDTO selectCurrentUserGradeRanking(EpdcAppUserGradeRankingFormDTO formDto); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java index 2771a212..f3ad34d1 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java @@ -335,7 +335,7 @@ public interface UserService extends BaseService { **/ PageData pageForPoints(Map params); /** - * @Description 待认证党员 + * @Description 待认证党员 * @Author songyunpeng * @Date 2020/6/10 * @Param [params] @@ -343,7 +343,7 @@ public interface UserService extends BaseService { **/ PageData waitPartyPage(Map params); /** - * @Description 待认证党员导出 + * @Description 待认证党员导出 * @Author songyunpeng * @Date 2020/6/10 * @Param [params] @@ -351,7 +351,7 @@ public interface UserService extends BaseService { **/ List listOfWaitParty(Map params); /** - * @Description 党员认证通过并更新党员库信息 + * @Description 党员认证通过并更新党员库信息 * @Author songyunpeng * @Date 2020/6/10 * @Param [dto] @@ -359,7 +359,7 @@ public interface UserService extends BaseService { **/ Result modifyPartyInfo(PartyMemberModifyFormDTO dto); /** - * @Description 党员认证 + * @Description 党员认证 * @Author songyunpeng * @Date 2020/6/10 * @Param [dto] @@ -377,4 +377,14 @@ public interface UserService extends BaseService { * @since 2020/3/25 14:33 */ Result addPartyInfo(PartyMemberModifyFormDTO dto); + + /** + * 积分中心页面-积分等级排名 + * 返回当前用户的排名 和 当前街道的前N名用户排名 + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 10:59 2020-06-24 + **/ + Result listUsersGradeRanking(EpdcAppUserGradeRankingFormDTO formDto); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java index b8087c6a..2f08aec6 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java @@ -1299,4 +1299,49 @@ public class UserServiceImpl extends BaseServiceImpl implem return new PageData<>(list, page.getTotal()); } + @Override + public Result listUsersGradeRanking(EpdcAppUserGradeRankingFormDTO formDto) { + int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize(); + formDto.setPageIndex(pageIndex); + // 等级相同,排名相同 + EpdcAppUserGradeRankingResultDTO rangking = new EpdcAppUserGradeRankingResultDTO(); + // 获取排好序的 排行榜数据数据 + rangking.setRank(this.sortListUsersGradeRank(formDto)); + + // 查询当前用户的排名 + UsersGradeRankingDTO userRang = baseDao.selectCurrentUserGradeRanking(formDto); + // 用户产生过积分记录,返回积分排名 + if (userRang != null) { + userRang.setUserId(formDto.getUserId()); + userRang.setNickName(formDto.getNickName()); + rangking.setCurrentUser(userRang); + } + return new Result().ok(rangking); + } + + /** + * 获取【排好序】的 用户等级排行榜数据 + * @param formDto + * @return java.util.List + * @Author zhangyong + * @Date 13:50 2020-06-24 + **/ + private List sortListUsersGradeRank(EpdcAppUserGradeRankingFormDTO formDto){ + List listPointsRank = new ArrayList<>(); + listPointsRank = baseDao.selectListUsersGradeRanking(formDto); + int sortNumber = NumConstant.ONE; + if (listPointsRank != null){ + for (int i = NumConstant.ONE; i < listPointsRank.size(); i++){ + listPointsRank.get(0).setRank(NumConstant.ONE); + if(listPointsRank.get(i - NumConstant.ONE).getGrade().intValue() == listPointsRank.get(i).getGrade().intValue()){ + listPointsRank.get(i).setRank(sortNumber); + } else { + sortNumber = sortNumber + NumConstant.ONE; + listPointsRank.get(i).setRank(sortNumber); + } + } + } + return listPointsRank; + } + } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml index 58f2c16e..e552fb6a 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml @@ -772,4 +772,63 @@ ORDER BY u.REGISTER_TIME DESC LIMIT #{pageIndex},#{pageSize} + + + +