diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/GridForLeaderRegisterDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridForLeaderRegisterDTO.java similarity index 94% rename from esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/GridForLeaderRegisterDTO.java rename to esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridForLeaderRegisterDTO.java index bfbe1e84e..5039d10f6 100644 --- a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/GridForLeaderRegisterDTO.java +++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridForLeaderRegisterDTO.java @@ -1,4 +1,4 @@ -package com.elink.esua.epdc.dto; +package com.elink.esua.epdc.dto.epdc; import lombok.Data; diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/GridLeaderRegisterDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridLeaderRegisterDTO.java similarity index 83% rename from esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/GridLeaderRegisterDTO.java rename to esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridLeaderRegisterDTO.java index 673e956f2..6fd8d48ef 100644 --- a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/GridLeaderRegisterDTO.java +++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridLeaderRegisterDTO.java @@ -1,9 +1,9 @@ -package com.elink.esua.epdc.dto; +package com.elink.esua.epdc.dto.epdc; +import com.elink.esua.epdc.dto.SysUserDTO; import lombok.Data; import java.io.Serializable; -import java.util.Date; import java.util.List; /** 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 deb84031a..56964c900 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 @@ -25,6 +25,7 @@ import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; 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.excel.SysUserExcel; import com.elink.esua.epdc.service.*; import io.swagger.annotations.Api; @@ -214,7 +215,7 @@ public class SysUserController { * 网格长注册时,根据手机号,查询网格长管理的所有网格 * * @param mobile - * @return java.util.List + * @return java.util.List * @author work@yujt.net.cn * @date 2019/10/22 16:18 */ 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 bc15fbd4e..dd0c23f5a 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,9 @@ package com.elink.esua.epdc.dao; -import com.elink.esua.epdc.dto.GridForLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO; import com.elink.esua.epdc.entity.SysUserEntity; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; -import com.elink.esua.epdc.entity.SysUserEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -44,7 +43,7 @@ public interface SysUserDao extends BaseDao { * 网格长注册时,根据手机号,查询网格长管理的所有网格 * * @param mobile - * @return java.util.List + * @return java.util.List * @author work@yujt.net.cn * @date 2019/10/22 16:27 */ 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 fb0951b0c..9105d13ad 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 @@ -11,8 +11,7 @@ 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.GridForLeaderRegisterDTO; -import com.elink.esua.epdc.dto.GridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.dto.SysUserDTO; import com.elink.esua.epdc.entity.SysUserEntity; @@ -58,7 +57,7 @@ public interface SysUserService extends BaseService { * 网格长注册时,根据手机号,查询网格长管理的所有网格 * * @param mobile - * @return java.util.List + * @return java.util.List * @author work@yujt.net.cn * @date 2019/10/22 16:19 */ 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 558196f0b..b36c7b3c5 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 @@ -8,6 +8,7 @@ package com.elink.esua.epdc.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.elink.esua.epdc.commons.mybatis.enums.DelFlagEnum; @@ -25,8 +26,8 @@ import com.elink.esua.epdc.commons.tools.security.user.UserDetail; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dao.SysUserDao; -import com.elink.esua.epdc.dto.GridForLeaderRegisterDTO; -import com.elink.esua.epdc.dto.GridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.dto.SysUserDTO; import com.elink.esua.epdc.entity.SysUserEntity; import com.elink.esua.epdc.service.SysDeptService; @@ -176,13 +177,16 @@ public class SysUserServiceImpl extends BaseServiceImpl list = this.baseDao.selectListLeaderGrid(mobile); + if (CollUtil.isEmpty(list)) { + return new Result().error("校验网格长数据权限失败"); + } GridLeaderRegisterDTO result = new GridLeaderRegisterDTO(); result.setSysUser(dto); 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 6347a82bd..324c32e7d 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 @@ -59,7 +59,7 @@ - SELECT d.id gridId, d.`name` grid, 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 4b7b3c787..1adefe60b 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 @@ -3,7 +3,7 @@ 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.CompleteDeptDTO; -import com.elink.esua.epdc.dto.GridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @@ -35,7 +35,7 @@ public interface AdminFeignClient { * 网格长注册时,根据手机号,查询网格长管理的所有网格 * * @param mobile - * @return com.elink.esua.epdc.commons.tools.utils.Result + * @return com.elink.esua.epdc.commons.tools.utils.Result * @author work@yujt.net.cn * @date 2019/10/22 16:54 */ 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 1bfd22d3b..21eafc1cf 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 @@ -4,6 +4,7 @@ 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.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; @@ -149,4 +150,15 @@ public interface UserFeignClient { */ @GetMapping("app-user/epdc-app/wxformid/getByOpenId/{openId}") Result getWxFormId(@PathVariable("openId") String openId); + + /** + * 网格长注册 + * + * @param registerDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/23 09:44 + */ + @PostMapping(value = "app-user/epdc-app/user/gridLeaderRegister", consumes = MediaType.APPLICATION_JSON_VALUE) + Result gridLeaderRegister(EpdcGridLeaderRegisterDTO registerDto); } 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 8cee35ce7..227c3b1f8 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 @@ -4,7 +4,7 @@ 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.CompleteDeptDTO; -import com.elink.esua.epdc.dto.GridLeaderRegisterDTO; +import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.feign.AdminFeignClient; import org.springframework.stereotype.Component; 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 9f94134fb..d0399eb92 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 @@ -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.UserDTO; 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; @@ -75,4 +76,9 @@ public class UserFeignClientFallback implements UserFeignClient { public Result getWxFormId(String openId) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getWxFormId", openId); } + + @Override + public Result gridLeaderRegister(EpdcGridLeaderRegisterDTO registerDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "gridLeaderRegister", registerDto); + } } 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 3afca1413..8a6afc63b 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 @@ -10,8 +10,9 @@ import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; 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.commons.tools.validator.group.DefaultGroup; import com.elink.esua.epdc.dto.*; +import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; +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; import com.elink.esua.epdc.dto.form.EpdcAppUserMaTokenFormDTO; @@ -40,7 +41,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; -import javax.validation.constraints.NotBlank; import java.util.Date; import java.util.List; @@ -229,9 +229,10 @@ public class AppUserServiceImpl implements AppUserService { // 校验手机号是否已被注册为小程序用户 EpdcUserRegistFormDTO verifyAppUser = new EpdcUserRegistFormDTO(); verifyAppUser.setMobile(mobile); + // 在获取信息时就进行校验,不消耗wxCode,用户可以重复提交 Result verifyUserRegisterData = userFeignClient.verifyUserRegisterData(verifyAppUser); if (!verifyUserRegisterData.success()) { - throw new RenException(verifyUserRegisterData.getMsg()); + return new Result().error(verifyUserRegisterData.getMsg()); } // 校验手机验证码 this.checkSmsCode(mobile, formDto.getSmsCode()); @@ -241,16 +242,51 @@ public class AppUserServiceImpl implements AppUserService { return new Result().error(adminResult.getMsg()); } GridLeaderRegisterDTO leaderRegisterDto = adminResult.getData(); - SysUserDTO sysUser = leaderRegisterDto.getSysUser(); - List gridList = leaderRegisterDto.getLeaderGridList(); + // 组装用户注册信息 + UserDTO appUser = this.packageGridLeaderWhileRegister(leaderRegisterDto.getSysUser(), formDto.getWxCode()); + List userGridList = ConvertUtils.sourceToTarget(leaderRegisterDto.getLeaderGridList(), UserGridRelationDTO.class); + + EpdcGridLeaderRegisterDTO registerDto = new EpdcGridLeaderRegisterDTO(); + registerDto.setUserDto(appUser); + registerDto.setUserGridList(userGridList); - UserDTO appUser = this.packageGridLeaderWhileRegister(sysUser, formDto.getWxCode()); + Result appUserResult = userFeignClient.gridLeaderRegister(registerDto); + if (!appUserResult.success()) { + return new Result().error(adminResult.getMsg()); + } + UserDTO newAppUser = appUserResult.getData(); - return null; + 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); + + authorization.setToken(token); + authorization.setUserId(appUserId); + authorization.setExpire((long) expire); + authorization.setGrid(newAppUser.getGrid()); + return new Result().ok(authorization); } + /** + * 组装网格长注册的用户信息 + * + * @param sysUser 后台管理端管理员账号 + * @param wxCode + * @return com.elink.esua.epdc.dto.UserDTO + * @author work@yujt.net.cn + * @date 2019/10/23 10:01 + */ private UserDTO packageGridLeaderWhileRegister(SysUserDTO sysUser, String wxCode) { WxMaJscode2SessionResult wxMaUser = this.getWxMaUser(wxCode); @@ -274,6 +310,7 @@ public class AppUserServiceImpl implements AppUserService { appUser.setSex(String.valueOf(sysUser.getGender())); appUser.setRealName(sysUser.getRealName()); appUser.setEmail(sysUser.getEmail()); + appUser.setPartyFlag(YesOrNoEnum.NO.value()); PhoneDto phoneDto = PhoneUtil.getPhoneDto(mobile); if (phoneDto != null) { 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 new file mode 100644 index 000000000..47a7048ba --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridRelationDTO.java @@ -0,0 +1,91 @@ +/** + * 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.dto; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 网格长与网格关系表 + * + * @author work@yujt.net.cn + * @since v1.0.0 2019-10-23 + */ +@Data +public class UserGridRelationDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 用户ID + */ + private String userId; + + /** + * 所属网格 + */ + private String grid; + + /** + * 网格ID + */ + private Long gridId; + + /** + * 最后切换此网格的时间 + */ + private Date switchedTime; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 删除标记 + */ + private String delFlag; + +} \ No newline at end of file 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 new file mode 100644 index 000000000..286973ec9 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/EpdcGridLeaderRegisterDTO.java @@ -0,0 +1,25 @@ +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-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 91973dbf6..135eb7f06 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,6 +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.EpdcUserRegistFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO; @@ -76,6 +77,19 @@ public class EpdcAppUserController { return userService.userRegister(userDto); } + /** + * 网格长注册 + * + * @param registerDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/23 09:34 + */ + @PostMapping("gridLeaderRegister") + public Result gridLeaderRegister(@RequestBody EpdcGridLeaderRegisterDTO registerDto) { + return userService.gridLeaderRegister(registerDto); + } + /*** * @Description 移动端获取用户信息 * @Author qushutong 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 new file mode 100644 index 000000000..361babf1a --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java @@ -0,0 +1,84 @@ +/** + * 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.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.validator.AssertUtils; +import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; +import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; +import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; +import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; +import com.elink.esua.epdc.dto.UserGridRelationDTO; +import com.elink.esua.epdc.service.UserGridRelationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 网格长与网格关系表 + * + * @author work@yujt.net.cn + * @since v1.0.0 2019-10-23 + */ +@RestController +@RequestMapping("usergridrelation") +public class UserGridRelationController { + + @Autowired + private UserGridRelationService userGridRelationService; + + @GetMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = userGridRelationService.page(params); + return new Result>().ok(page); + } + + @GetMapping("{id}") + public Result get(@PathVariable("id") String id){ + UserGridRelationDTO data = userGridRelationService.get(id); + return new Result().ok(data); + } + + @PostMapping + public Result save(@RequestBody UserGridRelationDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + userGridRelationService.save(dto); + return new Result(); + } + + @PutMapping + public Result update(@RequestBody UserGridRelationDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + userGridRelationService.update(dto); + return new Result(); + } + + @DeleteMapping + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + userGridRelationService.delete(ids); + return new Result(); + } + +} \ 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/dao/UserGridRelationDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridRelationDao.java new file mode 100644 index 000000000..8b98ad56e --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridRelationDao.java @@ -0,0 +1,33 @@ +/** + * 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.dao; + +import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; +import com.elink.esua.epdc.entity.UserGridRelationEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 网格长与网格关系表 + * + * @author work@yujt.net.cn + * @since v1.0.0 2019-10-23 + */ +@Mapper +public interface UserGridRelationDao extends BaseDao { + +} \ 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/entity/UserGridRelationEntity.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridRelationEntity.java new file mode 100644 index 000000000..1fc15e069 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridRelationEntity.java @@ -0,0 +1,61 @@ +/** + * 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.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 网格长与网格关系表 + * + * @author work@yujt.net.cn + * @since v1.0.0 2019-10-23 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("epdc_user_grid_relation") +public class UserGridRelationEntity extends BaseEpdcEntity { + + private static final long serialVersionUID = 1L; + + /** + * 用户ID + */ + private String userId; + + /** + * 所属网格 + */ + private String grid; + + /** + * 网格ID + */ + private Long gridId; + + /** + * 最后切换此网格的时间 + */ + private Date switchedTime; + +} \ 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/redis/UserGridRelationRedis.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/redis/UserGridRelationRedis.java new file mode 100644 index 000000000..a4487f0e4 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/redis/UserGridRelationRedis.java @@ -0,0 +1,47 @@ +/** + * 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.redis; + +import com.elink.esua.epdc.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 网格长与网格关系表 + * + * @author work@yujt.net.cn + * @since v1.0.0 2019-10-23 + */ +@Component +public class UserGridRelationRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} \ 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/UserGridRelationService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java new file mode 100644 index 000000000..a07f5966b --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java @@ -0,0 +1,95 @@ +/** + * 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.service; + +import com.elink.esua.epdc.commons.mybatis.service.BaseService; +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.dto.UserGridRelationDTO; +import com.elink.esua.epdc.entity.UserGridRelationEntity; + +import java.util.List; +import java.util.Map; + +/** + * 网格长与网格关系表 + * + * @author work@yujt.net.cn + * @since v1.0.0 2019-10-23 + */ +public interface UserGridRelationService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2019-10-23 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2019-10-23 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return UserGridRelationDTO + * @author generator + * @date 2019-10-23 + */ + UserGridRelationDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2019-10-23 + */ + void save(UserGridRelationDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2019-10-23 + */ + void update(UserGridRelationDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2019-10-23 + */ + void delete(String[] ids); +} \ 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 29ca14f88..61852492a 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,6 +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.EpdcUserRegistFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO; @@ -133,4 +134,14 @@ public interface UserService extends BaseService { * @date 2019/9/27 09:13 */ Result getUserRegisterAuditResult(String userId); + + /** + * 网格长注册 + * + * @param registerDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/23 09:35 + */ + Result gridLeaderRegister(EpdcGridLeaderRegisterDTO 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 new file mode 100644 index 000000000..d5612f83b --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java @@ -0,0 +1,99 @@ +/** + * 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.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.dao.UserGridRelationDao; +import com.elink.esua.epdc.dto.UserGridRelationDTO; +import com.elink.esua.epdc.entity.UserGridRelationEntity; +import com.elink.esua.epdc.service.UserGridRelationService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 网格长与网格关系表 + * + * @author work@yujt.net.cn + * @since v1.0.0 2019-10-23 + */ +@Service +public class UserGridRelationServiceImpl extends BaseServiceImpl implements UserGridRelationService { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, UserGridRelationDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, UserGridRelationDTO.class); + } + + 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); + + return wrapper; + } + + @Override + public UserGridRelationDTO get(String id) { + UserGridRelationEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, UserGridRelationDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(UserGridRelationDTO dto) { + UserGridRelationEntity entity = ConvertUtils.sourceToTarget(dto, UserGridRelationEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(UserGridRelationDTO dto) { + UserGridRelationEntity entity = ConvertUtils.sourceToTarget(dto, UserGridRelationEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} \ 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 e4b8aabc6..3e223ef04 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 @@ -26,6 +26,7 @@ import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; +import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; import com.elink.esua.epdc.commons.tools.security.user.UserDetail; @@ -35,14 +36,18 @@ import com.elink.esua.epdc.constant.UserFieldConsant; import com.elink.esua.epdc.dao.UserDao; 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.EpdcUserRegistFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO; import com.elink.esua.epdc.entity.UserEntity; +import com.elink.esua.epdc.entity.UserGridRelationEntity; import com.elink.esua.epdc.enums.AppUserAuditStateEnum; import com.elink.esua.epdc.redis.UserRedis; import com.elink.esua.epdc.service.PartyMembersService; +import com.elink.esua.epdc.service.UserGridRelationService; import com.elink.esua.epdc.service.UserService; import com.elink.esua.epdc.service.UserTagRelationService; import org.apache.commons.lang3.StringUtils; @@ -305,4 +310,35 @@ public class UserServiceImpl extends BaseServiceImpl implem EpdcUserRegisterAuditMsgResultDTO dto = this.baseDao.getUserRegisterAuditResult(userId); return new Result().ok(dto); } + + @Autowired + private UserGridRelationService userGridRelationService; + + @Override + @Transactional(rollbackFor = Exception.class) + public Result gridLeaderRegister(EpdcGridLeaderRegisterDTO registerDto) { + + UserDTO userDto = registerDto.getUserDto(); + + UserEntity userEntity = ConvertUtils.sourceToTarget(userDto, UserEntity.class); + boolean insertUser = insert(userEntity); + + String userId = userEntity.getId(); + List userGridList = registerDto.getUserGridList(); + for (UserGridRelationDTO dto : userGridList) { + dto.setUserId(userId); + } + + List userGridRelationEntityList = ConvertUtils.sourceToTarget(userGridList, UserGridRelationEntity.class); + boolean insertRelation = userGridRelationService.insertBatch(userGridRelationEntityList); + if (!insertUser || !insertRelation) { + throw new RenException("注册失败"); + } + + UserGridRelationDTO userGridRelationDto = userGridList.get(NumConstant.ZERO); + userDto.setId(userId); + userDto.setGridId(userGridRelationDto.getGridId()); + userDto.setGrid(userGridRelationDto.getGrid()); + return new Result().ok(userDto); + } } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridRelationDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridRelationDao.xml new file mode 100644 index 000000000..c712d5cd7 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridRelationDao.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file