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 70047d22c..59defbbbf 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 @@ -12,6 +12,7 @@ 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.EpdcCompleteAppUserDTO; +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.*; @@ -192,11 +193,11 @@ public class AppUserServiceImpl implements AppUserService { GridLeaderRegisterDTO leaderRegisterDto = adminResult.getData(); // 组装用户注册信息 - UserDTO appUser = this.packageGridLeaderWhileRegister(leaderRegisterDto.getSysUser(), formDto.getWxCode()); + EpdcGridLeaderRegisterDTO gridLeaderRegister = this.packageGridLeaderWhileRegister(leaderRegisterDto.getSysUser(), formDto.getWxCode()); List userGridList = ConvertUtils.sourceToTarget(leaderRegisterDto.getLeaderGridList(), UserGridRelationDTO.class); EpdcGridLeaderRegisterFormDTO registerDto = new EpdcGridLeaderRegisterFormDTO(); - registerDto.setUserDto(appUser); + registerDto.setGridLeader(gridLeaderRegister); registerDto.setUserGridList(userGridList); Result appUserResult = userFeignClient.gridLeaderRegister(registerDto); @@ -224,38 +225,37 @@ public class AppUserServiceImpl implements AppUserService { * @author work@yujt.net.cn * @date 2019/10/23 10:01 */ - private UserDTO packageGridLeaderWhileRegister(SysUserDTO sysUser, String wxCode) { + private EpdcGridLeaderRegisterDTO packageGridLeaderWhileRegister(SysUserDTO sysUser, String wxCode) { WxMaJscode2SessionResult wxMaUser = this.getWxMaUser(wxCode); Date now = new Date(); String mobile = sysUser.getMobile(); - UserDTO appUser = new UserDTO(); - appUser.setFaceImg(USER_FACE); - appUser.setWxUnionId(wxMaUser.getUnionid()); - appUser.setWxOpenId(wxMaUser.getOpenid()); - appUser.setLastLoginTime(now); - appUser.setRegisterTime(now); - appUser.setState(AppUserStatesEnum.STATE_INFORMATION_PASSED.value()); - appUser.setRegisterSource(AppUserRegisterSourceEnum.MA.value()); - appUser.setRegisterWay(AppUserRegisterWayEnum.WX.value()); - appUser.setMobile(mobile); - appUser.setNickname("网格长-" + EpdcGridLeaderRegisterDTO gridLeaderRegister = new EpdcGridLeaderRegisterDTO(); + gridLeaderRegister.setFaceImg(USER_FACE); + gridLeaderRegister.setWxUnionId(wxMaUser.getUnionid()); + gridLeaderRegister.setWxOpenId(wxMaUser.getOpenid()); + gridLeaderRegister.setRegisterTime(now); + gridLeaderRegister.setState(AppUserStatesEnum.STATE_INFORMATION_PASSED.value()); + gridLeaderRegister.setRegisterSource(AppUserRegisterSourceEnum.MA.value()); + gridLeaderRegister.setRegisterWay(AppUserRegisterWayEnum.WX.value()); + gridLeaderRegister.setMobile(mobile); + gridLeaderRegister.setNickname("网格长-" + sysUser.getRealName().substring(NumConstant.ZERO, NumConstant.ONE) + (sysUser.getGender() == NumConstant.ZERO ? "女士" : "先生")); - appUser.setSex(String.valueOf(sysUser.getGender())); - appUser.setRealName(sysUser.getRealName()); - appUser.setEmail(sysUser.getEmail()); - appUser.setPartyFlag(YesOrNoEnum.NO.value()); + gridLeaderRegister.setSex(String.valueOf(sysUser.getGender())); + gridLeaderRegister.setRealName(sysUser.getRealName()); + gridLeaderRegister.setEmail(sysUser.getEmail()); + gridLeaderRegister.setPartyFlag(YesOrNoEnum.NO.value()); PhoneDto phoneDto = PhoneUtil.getPhoneDto(mobile); if (phoneDto != null) { - appUser.setMobileProvince(phoneDto.getProvinceName()); - appUser.setMobileCity(phoneDto.getCityName()); - appUser.setMobileCarrier(phoneDto.getCarrier()); + gridLeaderRegister.setMobileProvince(phoneDto.getProvinceName()); + gridLeaderRegister.setMobileCity(phoneDto.getCityName()); + gridLeaderRegister.setMobileCarrier(phoneDto.getCarrier()); } - return appUser; + return gridLeaderRegister; } @Override 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..842d73995 --- /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,109 @@ +package com.elink.esua.epdc.dto.epdc; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 网格长注册用 + * + * @author work@yujt.net.cn + * @date 2019/10/30 17:41 + */ +@Data +public class EpdcGridLeaderRegisterDTO implements Serializable { + + private static final long serialVersionUID = -637346365680474316L; + + /** + * 主键 + */ + private String id; + + /** + * 昵称 + */ + private String nickname; + + /** + * 手机号 + */ + private String mobile; + + /** + * 注册时间 + */ + private Date registerTime; + + /** + * 头像 + */ + private String faceImg; + + /** + * 性别(女性-female,男性-male) + */ + private String sex; + + /** + * 邮箱 + */ + private String email; + + /** + * 最近登录IP + */ + private String lastLoginIp; + + /** + * 真实姓名 + */ + private String realName; + + /** + * 微信OPENID + */ + private String wxOpenId; + + /** + * 微信unionId + */ + private String wxUnionId; + + /** + * 是否是党员(0-否,1-是) + */ + private String partyFlag; + + /** + * 注册方式(wx:微信注册) + */ + private String registerWay; + + /** + * 用户来源(wp:公众号) + */ + private String registerSource; + + /** + * 手机号所属省份 + */ + private String mobileProvince; + + /** + * 手机号所属城市 + */ + private String mobileCity; + + /** + * 手机号所属运营商 + */ + private String mobileCarrier; + + /** + * 状态,参考枚举类:{@link com.elink.esua.epdc.enums.AppUserStatesEnum} + */ + private String state; + +} 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 b0daba4ff..e90f0e9d1 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,7 +1,7 @@ package com.elink.esua.epdc.dto.epdc.form; -import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserGridRelationDTO; +import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; import lombok.Data; import java.io.Serializable; @@ -18,7 +18,7 @@ public class EpdcGridLeaderRegisterFormDTO implements Serializable { private static final long serialVersionUID = -3300063484743833705L; - private UserDTO userDto; + private EpdcGridLeaderRegisterDTO gridLeader; private List userGridList; 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 8285d9abe..63dde19eb 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 @@ -135,4 +135,15 @@ public interface UserGridRelationService extends BaseService listUserGrid(String userId); + + /** + * 按用户id和网格id删除用户网格关系 + * + * @param userId 用户id + * @param gridId 网格id + * @return int + * @author work@yujt.net.cn + * @date 2019/10/30 17:55 + */ + int delete(String userId, Long gridId); } \ 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 63a695e86..bd62422cf 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 @@ -153,4 +153,12 @@ public class UserGridRelationServiceImpl extends BaseServiceImpl gridRelationEntities = this.baseDao.selectList(wrapper); return ConvertUtils.sourceToTarget(gridRelationEntities, UserGridRelationDTO.class); } + + @Override + public int delete(String userId, Long gridId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(UserFieldConsant.USER_ID, userId) + .eq(FieldConstant.GRID_ID, gridId); + return this.baseDao.delete(wrapper); + } } \ 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 3719f3c84..4f45e6642 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,6 +38,7 @@ import com.elink.esua.epdc.dao.UserDao; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.epdc.EpdcCompleteAppUserDTO; +import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; @@ -270,29 +271,56 @@ public class UserServiceImpl extends BaseServiceImpl implem @Override @Transactional(rollbackFor = Exception.class) public Result gridLeaderRegister(EpdcGridLeaderRegisterFormDTO registerDto) { + // 网格长用户信息 + EpdcGridLeaderRegisterDTO gridLeader = registerDto.getGridLeader(); + UserEntity userEntity = ConvertUtils.sourceToTarget(gridLeader, UserEntity.class); + // 网格长管理的网格 + List userGridList = registerDto.getUserGridList(); - UserDTO userDto = registerDto.getUserDto(); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(UserFieldConsant.WX_OPEN_ID, gridLeader.getWxOpenId()); + UserEntity existUser = this.baseDao.selectOne(wrapper); - UserEntity userEntity = ConvertUtils.sourceToTarget(userDto, UserEntity.class); - boolean insertUser = insert(userEntity); + String userId; + String faceImg = userEntity.getFaceImg(); - String userId = userEntity.getId(); - List userGridList = registerDto.getUserGridList(); - for (UserGridRelationDTO dto : userGridList) { - dto.setUserId(userId); - dto.setLeaderFlag(YesOrNoEnum.YES.value()); + // 首次注册 + if (null == existUser) { + + this.insert(userEntity); + + userId = userEntity.getId(); + + for (UserGridRelationDTO userGridRelation : userGridList) { + userGridRelation.setUserId(userId); + userGridRelation.setLeaderFlag(YesOrNoEnum.YES.value()); + } + // 已注册过,更新信息 + } else { + userId = existUser.getId(); + faceImg = existUser.getFaceImg(); + // 不更新头像信息 + userEntity.setFaceImg(null); + userEntity.setId(userId); + this.updateById(userEntity); + + for (UserGridRelationDTO userGridRelation : userGridList) { + userGridRelationService.delete(userId, userGridRelation.getGridId()); + + userGridRelation.setUserId(userId); + userGridRelation.setLeaderFlag(YesOrNoEnum.YES.value()); + } } List userGridRelationEntityList = ConvertUtils.sourceToTarget(userGridList, UserGridRelationEntity.class); - boolean insertRelation = userGridRelationService.insertBatch(userGridRelationEntityList); - if (!insertUser || !insertRelation) { - throw new RenException("注册失败"); - } + userGridRelationService.insertBatch(userGridRelationEntityList); - UserGridRelationDTO userGridRelationDto = userGridList.get(NumConstant.ZERO); + UserDTO userDto = ConvertUtils.sourceToTarget(gridLeader, UserDTO.class); userDto.setId(userId); + UserGridRelationDTO userGridRelationDto = userGridList.get(NumConstant.ZERO); userDto.setGridId(userGridRelationDto.getGridId()); userDto.setGrid(userGridRelationDto.getGrid()); + userDto.setFaceImg(faceImg); return new Result().ok(userDto); }