From 0a2c622e933365d3eeedaf525ff0130374d31095 Mon Sep 17 00:00:00 2001 From: zhangyongzhangyong <2012005003@qq.coom> Date: Mon, 22 Jun 2020 15:40:57 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=A4=87=E6=B3=A8=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/elink/esua/epdc/dto/ImgConfigDTO.java | 5 +++++ .../elink/esua/epdc/dto/result/EpdcImgConfigResultDTO.java | 5 +++++ .../java/com/elink/esua/epdc/entity/ImgConfigEntity.java | 5 +++++ .../src/main/resources/mapper/ImgConfigDao.xml | 7 +++++-- 4 files changed, 20 insertions(+), 2 deletions(-) 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/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/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-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..15e584b9 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,28 @@ 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()) { + // 解绑上一次登录账户并绑定当前账户 + SysUserOpenIdFormDTO sysUserOpenIdFormDto = ConvertUtils.sourceToTarget(workUserLoginDto, SysUserOpenIdFormDTO.class); + authService.modifyOpenId(sysUserOpenIdFormDto); + } + + return result; + } @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..d5985dd4 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 @@ -75,4 +75,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..835d95c8 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 @@ -297,4 +297,69 @@ 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()); + + return new Result().ok(authorization); } } 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-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/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/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/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/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); + } } From 01ba0b80c0901885866f968ba5fb0ee29f3fcc29 Mon Sep 17 00:00:00 2001 From: songyunpeng Date: Wed, 24 Jun 2020 09:27:26 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E6=95=B0=E6=8D=AE=E7=AB=AF=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=20bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../esua/epdc/controller/AuthController.java | 5 +++-- .../elink/esua/epdc/service/AuthService.java | 3 ++- .../epdc/service/impl/AuthServiceImpl.java | 14 +++++++++----- .../dto/WorkUserAuthorizationScripDTO.java | 19 +++++++++++++++++++ 4 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/WorkUserAuthorizationScripDTO.java 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 15e584b9..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 @@ -139,14 +139,15 @@ public class AuthController { public Result workScripLogin(@RequestBody WorkUserScripLoginDTO workUserLoginDto) { //效验数据 ValidatorUtils.validateEntity(workUserLoginDto); - Result result = authService.workScripLogin(workUserLoginDto.getScrip()); + 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 result; + return new Result().ok(result.getData().getWorkUserAuthorizationDTO()); } @PostMapping(value = "logout") 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 d5985dd4..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; @@ -82,5 +83,5 @@ public interface AuthService { * @Param [scrip] * @return com.elink.esua.epdc.commons.tools.utils.Result **/ - Result workScripLogin(String scrip); + 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 835d95c8..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; @@ -299,7 +300,7 @@ public class AuthServiceImpl implements AuthService { } @Override - public Result workScripLogin(String scrip) { + public Result workScripLogin(String scrip) { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); //获取用户信息 @@ -324,7 +325,7 @@ public class AuthServiceImpl implements AuthService { log.setCreatorName(scrip); logProducer.saveLog(log); authorization.setRegisterState(NumConstant.ZERO_STR); - return new Result().error("未根据凭证获取到用户"); + return new Result().error("未根据凭证获取到用户"); } //账号停用 @@ -333,7 +334,7 @@ public class AuthServiceImpl implements AuthService { log.setCreator(user.getId()); log.setCreatorName(user.getUsername()); logProducer.saveLog(log); - return new Result().error("账号已停用"); + return new Result().error("账号已停用"); } //保存到Redis @@ -360,6 +361,9 @@ public class AuthServiceImpl implements AuthService { authorization.setRegisterState(NumConstant.ONE_STR); userDeptTask.packageUserDeptOptions(user.getId()); - - return new Result().ok(authorization); } + 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; + +} From 0e5991d3f256ac0684eb4cb783cd9263be25c35f Mon Sep 17 00:00:00 2001 From: songyunpeng Date: Wed, 24 Jun 2020 10:15:07 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E5=BF=97=E6=84=BF=E8=80=85=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/activity/ActInfoDao.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActInfoDao.xml b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActInfoDao.xml index 53886f82..7c118a94 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActInfoDao.xml +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActInfoDao.xml @@ -164,7 +164,7 @@ when #{timestamp} then '4' end as actCurrentState, - IF(relation.USER_ID = #{userId},'1','0') as signupFlag + IF(relation.USER_ID = #{userId},'1','0') as signupFlag,actInfo.CREATED_TIME FROM epdc_act_info actInfo left join epdc_act_user_relation relation on relation.DEL_FLAG = '0' @@ -182,7 +182,7 @@ #{timestamp} ) temp - ORDER BY temp.actCurrentState ASC + ORDER BY temp.actCurrentState ASC,temp.CREATED_TIME desc ,temp.PUBLISH_TIME DESC ,temp.ACT_START_TIME ASC LIMIT #{pageIndex},#{pageSize} From e661de76faad4d1524aaaf89349dad4204c6d637 Mon Sep 17 00:00:00 2001 From: zhangyongzhangyong <2012005003@qq.coom> Date: Wed, 24 Jun 2020 15:17:38 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E7=A7=AF=E5=88=86=E8=AE=B0=E5=BD=95-?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=E6=8E=92=E5=90=8D=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/controller/ApiAppUserController.java | 14 +++++ .../esua/epdc/feign/UserFeignClient.java | 11 ++++ .../fallback/UserFeignClientFallback.java | 5 ++ .../esua/epdc/service/AppUserService.java | 10 ++++ .../epdc/service/impl/AppUserServiceImpl.java | 15 +++++ .../form/EpdcAppUserGradeRankingFormDTO.java | 58 ++++++++++++++++++ .../EpdcAppUserGradeRankingResultDTO.java | 30 ++++++++++ .../dto/epdc/result/UsersGradeRankingDTO.java | 36 +++++++++++ .../controller/EpdcAppUserController.java | 15 +++++ .../java/com/elink/esua/epdc/dao/UserDao.java | 25 ++++++-- .../elink/esua/epdc/service/UserService.java | 18 ++++-- .../epdc/service/impl/UserServiceImpl.java | 45 ++++++++++++++ .../src/main/resources/mapper/UserDao.xml | 59 +++++++++++++++++++ 13 files changed, 332 insertions(+), 9 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserGradeRankingFormDTO.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcAppUserGradeRankingResultDTO.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/UsersGradeRankingDTO.java 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/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index 37ec810f..836f2a14 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 @@ -410,4 +410,15 @@ public interface UserFeignClient { **/ @GetMapping(value = "app-user/epdc-app/user/listUserPointsRanking/list", consumes = MediaType.APPLICATION_JSON_VALUE) Result selectListUserPointsRanking(EpdcAppUserRankingFormDTO formDto); + + /** + * 积分中心页面-积分等级排名 + * 返回当前用户的排名 和 当前街道的前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/UserFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java index 454d926d..70604c9b 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 @@ -199,4 +199,9 @@ public class UserFeignClientFallback implements UserFeignClient { public Result selectListUserPointsRanking(EpdcAppUserRankingFormDTO formDto) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "selectListUserPointsRanking", "formDto"); } + + @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/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/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index 6727f8ba..2f0134bd 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 @@ -1505,4 +1505,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-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..74c0b62f 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} + + + + From e27885248cc8fd5af6d884f4bb3228ba90510666 Mon Sep 17 00:00:00 2001 From: zhangyongzhangyong <2012005003@qq.coom> Date: Wed, 24 Jun 2020 15:27:46 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E4=B8=8A=E6=AC=A1?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc-user-server/src/main/resources/mapper/UserDao.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 74c0b62f..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 @@ -776,12 +776,12 @@