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 7e959900e..b69effafd 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 @@ -4,7 +4,7 @@ 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.commons.tools.validator.ValidatorUtils; -import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterSubmitFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateAvatarFromDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateMobileFromDTO; @@ -84,7 +84,7 @@ public class ApiAppUserController { * @date 2019/10/22 15:28 */ @PostMapping("user/ma/gridLeaderRegister") - public Result maGridLeaderRegister(@RequestBody EpdcGridLeaderRegisterFormDTO formDto) { + public Result maGridLeaderRegister(@RequestBody EpdcGridLeaderRegisterSubmitFormDTO formDto) { ValidatorUtils.validateEntity(formDto); return appUserService.maGridLeaderRegister(formDto); } @@ -156,4 +156,18 @@ public class ApiAppUserController { ValidatorUtils.validateEntity(fromDTO); return appUserService.updateMobile(userDetail, fromDTO); } + + /** + * 网格长在小程序切换网格 + * + * @param userDetail + * @param gridId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/23 10:38 + */ + @GetMapping("user/switchGrid/{gridId}") + public Result gridLeaderSwitchGrid(@LoginUser TokenDto userDetail, @PathVariable("gridId") String gridId) { + return appUserService.gridLeaderSwitchGrid(userDetail, gridId); + } } 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 21eafc1cf..4f5e27372 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 @@ -3,11 +3,10 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; +import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.UserWxFormIdDTO; -import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcDeleteWxFormIdFormDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcUserSaveWxFormIdFormDTO; +import com.elink.esua.epdc.dto.epdc.form.*; +import com.elink.esua.epdc.dto.epdc.result.EpdcLeaderGridResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO; import com.elink.esua.epdc.feign.fallback.UserFeignClientFallback; @@ -18,6 +17,8 @@ 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; + /** * appuser端接口 * @@ -160,5 +161,28 @@ public interface UserFeignClient { * @date 2019/10/23 09:44 */ @PostMapping(value = "app-user/epdc-app/user/gridLeaderRegister", consumes = MediaType.APPLICATION_JSON_VALUE) - Result gridLeaderRegister(EpdcGridLeaderRegisterDTO registerDto); + Result gridLeaderRegister(EpdcGridLeaderRegisterFormDTO registerDto); + + + /** + * 网格长小程序端切换网格 + * + * @param switchGridDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/23 13:33 + */ + @GetMapping(value = "app-user/epdc-app/usergrid/leaderSwitchGrid", consumes = MediaType.APPLICATION_JSON_VALUE) + Result leaderSwitchGrid(EpdcLeaderSwitchGridFormDTO switchGridDto); + + /** + * 获取网格长管理的网格列表 + * + * @param userId + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author work@yujt.net.cn + * @date 2019/10/23 13:34 + */ + @GetMapping("app-user/epdc-app/usergrid/listGridForLeader/{userId}") + Result> listGridForLeader(@PathVariable("userId") String userId); } 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 d0399eb92..c92075d10 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 @@ -4,16 +4,17 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; +import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.UserWxFormIdDTO; -import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcDeleteWxFormIdFormDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcUserSaveWxFormIdFormDTO; +import com.elink.esua.epdc.dto.epdc.form.*; +import com.elink.esua.epdc.dto.epdc.result.EpdcLeaderGridResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO; import com.elink.esua.epdc.feign.UserFeignClient; import org.springframework.stereotype.Component; +import java.util.List; + /** * @author yujintao * @email yujintao@elink-cn.com @@ -78,7 +79,17 @@ public class UserFeignClientFallback implements UserFeignClient { } @Override - public Result gridLeaderRegister(EpdcGridLeaderRegisterDTO registerDto) { + public Result gridLeaderRegister(EpdcGridLeaderRegisterFormDTO registerDto) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "gridLeaderRegister", registerDto); } + + @Override + public Result leaderSwitchGrid(EpdcLeaderSwitchGridFormDTO switchGridDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "leaderSwitchGrid", switchGridDto); + } + + @Override + public Result> listGridForLeader(String userId) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "listGridForLeader", userId); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java index 9c898240c..46624a2b8 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java @@ -12,7 +12,7 @@ import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.common.token.util.CpUserDetailRedis; 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.CpUserDetail; +import com.elink.esua.epdc.commons.tools.exception.RenException; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.MethodParameter; @@ -45,7 +45,7 @@ public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgu //获取用户ID String userId = request.getHeader(Constant.APP_USER_KEY); if (StringUtils.isEmpty(userId)) { - return null; + throw new RenException("获取登录信息失败"); } TokenDto user = cpUserDetailRedis.get(userId); return user; 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 eb7161760..094f984ab 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 @@ -2,7 +2,7 @@ package com.elink.esua.epdc.service; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterSubmitFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateAvatarFromDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateMobileFromDTO; @@ -123,5 +123,16 @@ public interface AppUserService { * @author work@yujt.net.cn * @date 2019/10/22 15:30 */ - Result maGridLeaderRegister(EpdcGridLeaderRegisterFormDTO formDto); + Result maGridLeaderRegister(EpdcGridLeaderRegisterSubmitFormDTO formDto); + + /** + * 网格长在小程序切换网格 + * + * @param userDetail + * @param gridId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/23 10:40 + */ + Result gridLeaderSwitchGrid(TokenDto userDetail, String gridId); } 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 8a6afc63b..2889339a5 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 @@ -11,7 +11,7 @@ import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.redis.RedisUtils; import com.elink.esua.epdc.commons.tools.utils.*; import com.elink.esua.epdc.dto.*; -import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; @@ -178,29 +178,10 @@ public class AppUserServiceImpl implements AppUserService { } // 用户已注册且审核通过,正常登录系统 else if (AppUserAuditStateEnum.AUDIT_SUCCESS.value().equals(state)) { - String userId = userDto.getId(); - TokenDto tokenInfo = tokenUtil.getTokenInfo(userId); - // 生成token - String token = jwtTokenUtils.generateToken(userId); - Long expire; - // 用户已登录过,且用户缓存信息未超时 - if (null != tokenInfo) { - tokenUtil.delayToken(userId); - expire = tokenUtil.getExpire(userId); - } else { - expire = (long) jwtTokenProperties.getExpire(); - } TokenDto tokenDto = ConvertUtils.sourceToTarget(userDto, TokenDto.class); - tokenDto.setUserId(userId); - cpUserDetailRedis.set(tokenDto, expire); - // 暂用,部署生产环境时删除 - redisUtils.set("epdc:sys:security:cpuser:token:" + userId, token); - - authorization.setUserState(AppUserStateEnum.REGISTERED.value()); - authorization.setToken(token); - authorization.setUserId(userId); - authorization.setExpire(expire); - authorization.setGrid(userDto.getGrid()); + tokenDto.setUserId(userDto.getId()); + authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid()); + return new Result().ok(authorization); } else { return new Result().error("Login failed"); @@ -222,7 +203,7 @@ public class AppUserServiceImpl implements AppUserService { } @Override - public Result maGridLeaderRegister(EpdcGridLeaderRegisterFormDTO formDto) { + public Result maGridLeaderRegister(EpdcGridLeaderRegisterSubmitFormDTO formDto) { String mobile = formDto.getMobile(); @@ -247,7 +228,7 @@ public class AppUserServiceImpl implements AppUserService { UserDTO appUser = this.packageGridLeaderWhileRegister(leaderRegisterDto.getSysUser(), formDto.getWxCode()); List userGridList = ConvertUtils.sourceToTarget(leaderRegisterDto.getLeaderGridList(), UserGridRelationDTO.class); - EpdcGridLeaderRegisterDTO registerDto = new EpdcGridLeaderRegisterDTO(); + EpdcGridLeaderRegisterFormDTO registerDto = new EpdcGridLeaderRegisterFormDTO(); registerDto.setUserDto(appUser); registerDto.setUserGridList(userGridList); @@ -258,23 +239,12 @@ public class AppUserServiceImpl implements AppUserService { UserDTO newAppUser = appUserResult.getData(); - String appUserId = newAppUser.getId(); - int expire = jwtTokenProperties.getExpire(); - String token = jwtTokenUtils.generateToken(appUserId); - EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO(); - // 网格长注册,默认审核通过 - authorization.setUserState(AppUserStateEnum.REGISTERED.value()); // 用户已注册且审核通过,正常登录系统 TokenDto tokenDto = ConvertUtils.sourceToTarget(newAppUser, TokenDto.class); - tokenDto.setUserId(appUserId); - cpUserDetailRedis.set(tokenDto, expire); - // 暂用,部署生产环境时删除 - redisUtils.set("epdc:sys:security:cpuser:token:" + appUserId, token); + tokenDto.setUserId(newAppUser.getId()); + + EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(tokenDto, newAppUser.getGrid()); - authorization.setToken(token); - authorization.setUserId(appUserId); - authorization.setExpire((long) expire); - authorization.setGrid(newAppUser.getGrid()); return new Result().ok(authorization); } @@ -566,4 +536,56 @@ public class AppUserServiceImpl implements AppUserService { } return userFeignClient.updateMobileOrAvatar(userDto); } + + @Override + public Result gridLeaderSwitchGrid(TokenDto userDetail, String gridId) { + + String userId = userDetail.getUserId(); + + EpdcLeaderSwitchGridFormDTO switchGrid = new EpdcLeaderSwitchGridFormDTO(); + switchGrid.setAppUserId(userId); + switchGrid.setGridId(gridId); + // 更新用户-网格关系表,更新将要切换的网格的 SWITCHED_TIME 字段 + Result appUserResult = userFeignClient.leaderSwitchGrid(switchGrid); + if (!appUserResult.success()) { + return new Result().error(appUserResult.getMsg()); + } + UserGridRelationDTO userGridRelation = appUserResult.getData(); + + userDetail.setGridId(Long.parseLong(gridId)); + EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(userDetail, userGridRelation.getGrid()); + + return new Result().ok(authorization); + } + + /** + * 组装成功登录的数据 + * EpdcAppAuthorizationDTO的userState属性默认设置为AppUserStateEnum.REGISTERED + * + * @param tokenDto 缓存的用户数据 + * @param grid 网格名称 + * @return com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO + * @author work@yujt.net.cn + * @date 2019/10/23 13:57 + */ + private EpdcAppAuthorizationDTO packageEpdcAppAuthorization(TokenDto tokenDto, String grid) { + String userId = tokenDto.getUserId(); + // 生成token + String token = jwtTokenUtils.generateToken(userId); + int expire = jwtTokenProperties.getExpire(); + + cpUserDetailRedis.set(tokenDto, expire); + + EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO(); + authorization.setUserState(AppUserStateEnum.REGISTERED.value()); + authorization.setToken(token); + authorization.setUserId(userId); + authorization.setExpire((long) expire); + authorization.setGrid(grid); + + // 暂用,部署生产环境时删除 + redisUtils.set("epdc:sys:security:cpuser:token:" + userId, token); + + return authorization; + } } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/constant/UserFieldConsant.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/constant/UserFieldConsant.java index 36bf2f875..a6ad68aad 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/constant/UserFieldConsant.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/constant/UserFieldConsant.java @@ -18,4 +18,6 @@ public interface UserFieldConsant { String WX_UNION_ID = "WX_UNION_ID"; String IDENTITY_NO = "IDENTITY_NO"; String REGISTER_TIME = "REGISTER_TIME"; + String USER_ID = "USER_ID"; + String SWITCHED_TIME = "SWITCHED_TIME"; } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridRelationDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridRelationDTO.java index 47a7048ba..82472d295 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridRelationDTO.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridRelationDTO.java @@ -31,7 +31,7 @@ import lombok.Data; @Data public class UserGridRelationDTO implements Serializable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 3528030593209505024L; /** * 主键 diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/EpdcGridLeaderRegisterDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/EpdcGridLeaderRegisterDTO.java deleted file mode 100644 index 286973ec9..000000000 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/EpdcGridLeaderRegisterDTO.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.elink.esua.epdc.dto.epdc; - -import com.elink.esua.epdc.dto.UserDTO; -import com.elink.esua.epdc.dto.UserGridRelationDTO; -import lombok.Data; - -import java.io.Serializable; -import java.util.List; - -/** - * 网格长注册 - * - * @author work@yujt.net.cn - * @date 2019/10/23 09:28 - */ -@Data -public class EpdcGridLeaderRegisterDTO implements Serializable { - - private static final long serialVersionUID = -3300063484743833705L; - - private UserDTO userDto; - - private List userGridList; - -} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcGridLeaderRegisterFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcGridLeaderRegisterFormDTO.java index d0f23c4b4..b0daba4ff 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcGridLeaderRegisterFormDTO.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcGridLeaderRegisterFormDTO.java @@ -1,36 +1,25 @@ package com.elink.esua.epdc.dto.epdc.form; +import com.elink.esua.epdc.dto.UserDTO; +import com.elink.esua.epdc.dto.UserGridRelationDTO; import lombok.Data; -import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.List; /** - * 网格长在移动端注册 + * 网格长注册(来自api模块数据组装) * * @author work@yujt.net.cn - * @date 2019/10/22 15:30 + * @date 2019/10/23 09:28 */ @Data public class EpdcGridLeaderRegisterFormDTO implements Serializable { - private static final long serialVersionUID = 7057504211898721084L; + private static final long serialVersionUID = -3300063484743833705L; - /** - * 手机号 - */ - @NotBlank(message = "手机号不能为空") - private String mobile; + private UserDTO userDto; - /** - * 短信验证码 - */ - @NotBlank(message = "短信验证码不能为空") - private String smsCode; + private List userGridList; - /** - * 微信code - */ - @NotBlank(message = "微信code不能为空") - private String wxCode; } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcGridLeaderRegisterSubmitFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcGridLeaderRegisterSubmitFormDTO.java new file mode 100644 index 000000000..5dee1d708 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcGridLeaderRegisterSubmitFormDTO.java @@ -0,0 +1,36 @@ +package com.elink.esua.epdc.dto.epdc.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 网格长在移动端注册(来自用户移动端表单提交) + * + * @author work@yujt.net.cn + * @date 2019/10/22 15:30 + */ +@Data +public class EpdcGridLeaderRegisterSubmitFormDTO implements Serializable { + + private static final long serialVersionUID = 7057504211898721084L; + + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空") + private String mobile; + + /** + * 短信验证码 + */ + @NotBlank(message = "短信验证码不能为空") + private String smsCode; + + /** + * 微信code + */ + @NotBlank(message = "微信code不能为空") + private String wxCode; +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcLeaderSwitchGridFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcLeaderSwitchGridFormDTO.java new file mode 100644 index 000000000..417c30d0a --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcLeaderSwitchGridFormDTO.java @@ -0,0 +1,27 @@ +package com.elink.esua.epdc.dto.epdc.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 网格长小程序端切换网格 + * + * @author work@yujt.net.cn + * @date 2019/10/23 11:02 + */ +@Data +public class EpdcLeaderSwitchGridFormDTO implements Serializable { + + private static final long serialVersionUID = 7057504211898721084L; + + /** + * 用户id + */ + private String appUserId; + + /** + * 网格id + */ + private String gridId; +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcLeaderGridResultDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcLeaderGridResultDTO.java new file mode 100644 index 000000000..74e174774 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcLeaderGridResultDTO.java @@ -0,0 +1,21 @@ +package com.elink.esua.epdc.dto.epdc.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 网格长管理的网格 + * + * @author work@yujt.net.cn + * @date 2019/10/23 11:19 + */ +@Data +public class EpdcLeaderGridResultDTO implements Serializable { + + private static final long serialVersionUID = -2330556079892327467L; + + private String grid; + + private String gridId; +} 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 135eb7f06..d6716a097 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 @@ -3,7 +3,7 @@ package com.elink.esua.epdc.controller; import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; -import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO; @@ -86,7 +86,7 @@ public class EpdcAppUserController { * @date 2019/10/23 09:34 */ @PostMapping("gridLeaderRegister") - public Result gridLeaderRegister(@RequestBody EpdcGridLeaderRegisterDTO registerDto) { + public Result gridLeaderRegister(@RequestBody EpdcGridLeaderRegisterFormDTO registerDto) { return userService.gridLeaderRegister(registerDto); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcUserGridRelationController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcUserGridRelationController.java new file mode 100644 index 000000000..37c85e50d --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcUserGridRelationController.java @@ -0,0 +1,70 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.controller; + +import com.elink.esua.epdc.commons.tools.constant.Constant; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.UserGridRelationDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcLeaderSwitchGridFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcLeaderGridResultDTO; +import com.elink.esua.epdc.service.UserGridRelationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +/** + * 网格长与网格关系表 + * + * @author work@yujt.net.cn + * @since v1.0.0 2019-10-23 + */ +@RestController +@RequestMapping(Constant.EPDC_APP + "usergrid") +public class EpdcUserGridRelationController { + + @Autowired + private UserGridRelationService userGridRelationService; + + /** + * 网格长小程序端切换网格 + * + * @param switchGridDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/23 11:04 + */ + @GetMapping("leaderSwitchGrid") + public Result leaderSwitchGrid(@RequestBody EpdcLeaderSwitchGridFormDTO switchGridDto) { + return userGridRelationService.leaderSwitchGrid(switchGridDto); + } + + /** + * 获取网格长管理的网格列表 + * + * @param userId + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author work@yujt.net.cn + * @date 2019/10/23 13:26 + */ + @GetMapping("listGridForLeader/{userId}") + public Result> listGridForLeader(@PathVariable("userId") String userId) { + return userGridRelationService.listGridForLeader(userId); + } +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java index 361babf1a..71e31d956 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java @@ -39,7 +39,7 @@ import java.util.Map; * @since v1.0.0 2019-10-23 */ @RestController -@RequestMapping("usergridrelation") +@RequestMapping("usergrid") public class UserGridRelationController { @Autowired diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java index a07f5966b..45ea72a97 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java @@ -19,7 +19,10 @@ package com.elink.esua.epdc.service; import com.elink.esua.epdc.commons.mybatis.service.BaseService; import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserGridRelationDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcLeaderSwitchGridFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcLeaderGridResultDTO; import com.elink.esua.epdc.entity.UserGridRelationEntity; import java.util.List; @@ -28,7 +31,7 @@ import java.util.Map; /** * 网格长与网格关系表 * - * @author work@yujt.net.cn + * @author work@yujt.net.cn * @since v1.0.0 2019-10-23 */ public interface UserGridRelationService extends BaseService { @@ -92,4 +95,24 @@ public interface UserGridRelationService extends BaseService + * @author work@yujt.net.cn + * @date 2019/10/23 11:05 + */ + Result leaderSwitchGrid(EpdcLeaderSwitchGridFormDTO switchGridDto); + + /** + * 获取网格长管理的网格列表 + * + * @param userId + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author work@yujt.net.cn + * @date 2019/10/23 13:28 + */ + Result> listGridForLeader(String userId); } \ No newline at end of file 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 61852492a..186480b16 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 @@ -21,7 +21,7 @@ import com.elink.esua.epdc.commons.mybatis.service.BaseService; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; -import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO; @@ -143,5 +143,5 @@ public interface UserService extends BaseService { * @author work@yujt.net.cn * @date 2019/10/23 09:35 */ - Result gridLeaderRegister(EpdcGridLeaderRegisterDTO registerDto); + Result gridLeaderRegister(EpdcGridLeaderRegisterFormDTO registerDto); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java index d5612f83b..8244a73b7 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java @@ -18,13 +18,18 @@ package com.elink.esua.epdc.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.constant.UserFieldConsant; import com.elink.esua.epdc.dao.UserGridRelationDao; import com.elink.esua.epdc.dto.UserGridRelationDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcLeaderSwitchGridFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcLeaderGridResultDTO; import com.elink.esua.epdc.entity.UserGridRelationEntity; import com.elink.esua.epdc.service.UserGridRelationService; import org.apache.commons.lang3.StringUtils; @@ -32,13 +37,14 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Map; /** * 网格长与网格关系表 * - * @author work@yujt.net.cn + * @author work@yujt.net.cn * @since v1.0.0 2019-10-23 */ @Service @@ -60,8 +66,8 @@ public class UserGridRelationServiceImpl extends BaseServiceImpl getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); @@ -96,4 +102,37 @@ public class UserGridRelationServiceImpl extends BaseServiceImpl leaderSwitchGrid(EpdcLeaderSwitchGridFormDTO switchGridDto) { + + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq(UserFieldConsant.USER_ID, switchGridDto.getAppUserId()) + .eq(FieldConstant.GRID_ID, switchGridDto.getGridId()); + + UserGridRelationEntity entity = new UserGridRelationEntity(); + entity.setSwitchedTime(new Date()); + boolean update = this.update(entity, wrapper); + + if (!update) { + return new Result().error("匹配用户网格失败"); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(UserFieldConsant.USER_ID, switchGridDto.getAppUserId()) + .eq(FieldConstant.GRID_ID, switchGridDto.getGridId()); + UserGridRelationEntity gridRelationEntity = this.baseDao.selectOne(queryWrapper); + + UserGridRelationDTO gridRelationDto = ConvertUtils.sourceToTarget(gridRelationEntity, UserGridRelationDTO.class); + return new Result().ok(gridRelationDto); + } + + @Override + public Result> listGridForLeader(String userId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(UserFieldConsant.USER_ID, userId) + .orderByDesc(UserFieldConsant.SWITCHED_TIME); + List entityList = this.baseDao.selectList(queryWrapper); + List dtoList = ConvertUtils.sourceToTarget(entityList, EpdcLeaderGridResultDTO.class); + return new Result>().ok(dtoList); + } } \ No newline at end of file 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 3e223ef04..5c9f8ab4c 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 @@ -38,7 +38,7 @@ import com.elink.esua.epdc.dto.PartyMembersDTO; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.UserTagRelationDTO; -import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO; @@ -55,7 +55,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.validation.constraints.NotBlank; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -316,7 +315,7 @@ public class UserServiceImpl extends BaseServiceImpl implem @Override @Transactional(rollbackFor = Exception.class) - public Result gridLeaderRegister(EpdcGridLeaderRegisterDTO registerDto) { + public Result gridLeaderRegister(EpdcGridLeaderRegisterFormDTO registerDto) { UserDTO userDto = registerDto.getUserDto();