Browse Source

Merge branch 'yantai_zhengwu_master'

master
lichao 2 years ago
parent
commit
03da7ad3d7
  1. 27
      epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java
  2. 21
      epmet-auth/src/main/java/com/epmet/dto/form/HfiveLoginMdFormDTO.java
  3. 34
      epmet-auth/src/main/java/com/epmet/dto/form/ResiRegisterLantuFormDTO.java
  4. 16
      epmet-auth/src/main/java/com/epmet/dto/result/ResiRegisterLantuResultDTO.java
  5. 17
      epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java
  6. 96
      epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
  7. 10
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/AppClientConstant.java
  8. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java
  9. 56
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/HfiveLoginResiFormDTO.java
  10. 47
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LantuRegisterResiFormDTO.java
  11. 34
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LantuRegisterResiResDTO.java
  12. 7
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  13. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  14. 24
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBaseInfoController.java
  15. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java
  16. 255
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java

27
epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java

@ -4,6 +4,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.*;
import com.epmet.dto.result.ResiDingAppLoginResDTO;
import com.epmet.dto.result.ResiRegisterLantuResultDTO;
import com.epmet.dto.result.StaffOrgsResultDTO;
import com.epmet.dto.result.UserTokenResultDTO;
import com.epmet.service.ThirdLoginService;
@ -206,6 +207,32 @@ public class ThirdLoginController {
return new Result<ResiDingAppLoginResDTO>().ok(thirdLoginService.resiLoginInternalDing(formDTO));
}
/**
* @Description: h5-登陆 随手拍 议事厅
* @param formDTO:
* @Return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.resiLoginHfive>
* @Author: lichao
* @Date: 2023/8/15 09:23
*/
@PostMapping("resilogin-hfive")
public Result<ResiDingAppLoginResDTO> resiLoginHfive(@RequestBody HfiveLoginMdFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return new Result<ResiDingAppLoginResDTO>().ok(thirdLoginService.resiLoginHfive(formDTO));
}
/**
* @Description: 蓝图 居民注册
* @param formDTO:
* @Return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.ResiRegisterLantuResultDTO>
* @Author: lichao
* @Date: 2023/8/16 10:13
*/
@PostMapping("resiRegister-lantu")
public Result<ResiRegisterLantuResultDTO> resiRegisterLantu(@RequestBody ResiRegisterLantuFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return new Result<ResiRegisterLantuResultDTO>().ok(thirdLoginService.resiRegisterLantu(formDTO));
}
/**
* 根据免登授权码, 获取登录用户身份
*

21
epmet-auth/src/main/java/com/epmet/dto/form/HfiveLoginMdFormDTO.java

@ -0,0 +1,21 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Description: h5-登陆 随手拍 议事厅 入参
* @Author: lichao
* @Date: 2023/8/15 09:25
*/
@Data
public class HfiveLoginMdFormDTO {
@NotBlank(message = "phone不能为空")
private String phone;
}

34
epmet-auth/src/main/java/com/epmet/dto/form/ResiRegisterLantuFormDTO.java

@ -0,0 +1,34 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Description: 蓝图 注册居民入参
* @Author: lichao
* @Date: 2023/8/15 09:25
*/
@Data
public class ResiRegisterLantuFormDTO {
@NotBlank(message = "loginMobile不能为空")
private String loginMobile;
private String nickName;
@NotBlank(message = "gridId不能为空")
private String gridId;
@NotBlank(message = "姓名不能为空")
private String realName;
private String sex;
private String avatarUrl;
}

16
epmet-auth/src/main/java/com/epmet/dto/result/ResiRegisterLantuResultDTO.java

@ -0,0 +1,16 @@
package com.epmet.dto.result;
import lombok.Data;
/**
* @Description: lantu 结果
* @Author: lichao
* @Date: 2023/8/16 10:11
*/
@Data
public class ResiRegisterLantuResultDTO {
private String userBaseInfoId;
}

17
epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java

@ -2,6 +2,7 @@ package com.epmet.service;
import com.epmet.dto.form.*;
import com.epmet.dto.result.ResiDingAppLoginResDTO;
import com.epmet.dto.result.ResiRegisterLantuResultDTO;
import com.epmet.dto.result.StaffOrgsResultDTO;
import com.epmet.dto.result.UserTokenResultDTO;
@ -111,6 +112,20 @@ public interface ThirdLoginService {
*/
ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO);
/**
* h5-登陆 随手拍 议事厅
* @param formDTO
* @return
*/
ResiDingAppLoginResDTO resiLoginHfive(HfiveLoginMdFormDTO formDTO);
/**
* 蓝图 居民端 注册
* @param formDTO
* @return
*/
ResiRegisterLantuResultDTO resiRegisterLantu(ResiRegisterLantuFormDTO formDTO);
/**
* desc:企业内部应用 工作端登录
* @param formDTO
@ -135,4 +150,6 @@ public interface ThirdLoginService {
UserTokenResultDTO sdtSSOLogin(String authCode, String customerId);
void sendLoginEvent(String userId, String appId, String fromApp, String fromClient,String messageType);
}

96
epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java

@ -948,6 +948,30 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
return token;
}
private String saveTokenDtoHfive(String app,String client, String userId,String customerId) {
//生成token串
Map<String, Object> map = new HashMap<>();
map.put(AppClientConstant.APP, app);
// map.put(AppClientConstant.CLIENT, client);
// 第三方企业应用传应用的SuiteKey 作为client
map.put(AppClientConstant.CLIENT, client);
map.put("userId", userId);
String token = jwtTokenUtils.createToken(map);
int expire = jwtTokenProperties.getExpire();
TokenDto tokenDto = new TokenDto();
tokenDto.setCustomerId(customerId);
tokenDto.setApp(app);
tokenDto.setClient(client);
tokenDto.setUserId(userId);
tokenDto.setToken(token);
tokenDto.setUpdateTime(System.currentTimeMillis());
tokenDto.setExpireTime(jwtTokenUtils.getExpiration(token).getTime());
cpUserDetailRedis.set(tokenDto, expire);
// cpUserDetailRedis.setForDingApp(miniAppId,tokenDto, expire);
logger.info("截止时间:" + DateUtils.format(jwtTokenUtils.getExpiration(token), "yyyy-MM-dd HH:mm:ss"));
return token;
}
@Override
public ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO) {
// 获取用户手机号
@ -1080,6 +1104,78 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
return resDTO;
}
/**
* h5-登陆 随手拍 议事厅
* @param formDTO
* @return
*/
@Override
public ResiDingAppLoginResDTO resiLoginHfive(HfiveLoginMdFormDTO formDTO) {
// 获取用户手机号
log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO));
ResiDingAppLoginResDTO resDTO = new ResiDingAppLoginResDTO();
resDTO.setCustomerId(getCurrentCustomerId());
// 1、获取用户手机号
// DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOInternal(formDTO.getMiniAppId(), formDTO.getAuthCode());
HfiveLoginResiFormDTO hfiveLoginResiFormDTO = new HfiveLoginResiFormDTO();
// todo 目前只有手机号以及customerId
hfiveLoginResiFormDTO.setCustomerId(resDTO.getCustomerId());
hfiveLoginResiFormDTO.setMobile(formDTO.getPhone());
// todo 暂时无信息获取 编写h5
resDTO.setRealName("h5");
// 2、调用userfeign接口获取userId、注册网格相关信息
Result<DingLoginResiResDTO> loginResiResDTOResult = epmetUserOpenFeignClient.hFiveResiLogin(hfiveLoginResiFormDTO);
if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) {
// 临时打个日志
log.error(String.format("resiLoginHfive获取epmetUserId异常,入参:%s", JSON.toJSONString(hfiveLoginResiFormDTO)));
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:"+ JSON.toJSONString(loginResiResDTOResult), "获取epmetUserId异常");
}
DingLoginResiResDTO resiResDTO = loginResiResDTOResult.getData();
resDTO.setGridId(resiResDTO.getGridId());
resDTO.setGridName(resiResDTO.getGridName());
resDTO.setAgencyId(resiResDTO.getAgencyId());
resDTO.setEpmetUserId(resiResDTO.getEpmetUserId());
resDTO.setRegFlag(resiResDTO.getRegFlag());
// 3.生成token,并且存放Redis
String token = this.saveTokenDtoHfive(AppClientConstant.APP_RESI, AppClientConstant.H_FIVE, resDTO.getEpmetUserId(), resDTO.getCustomerId());
resDTO.setAuthorization(token);
return resDTO;
}
@Override
public ResiRegisterLantuResultDTO resiRegisterLantu(ResiRegisterLantuFormDTO formDTO) {
// 最后返回给烟台的东西 最后可以跟我们系统关联起来
ResiRegisterLantuResultDTO resiRegisterLantuResultDTO = new ResiRegisterLantuResultDTO();
// 用来注册居民端
LantuRegisterResiFormDTO lantuRegisterResiFormDTO = new LantuRegisterResiFormDTO();
// customer 给蓝图用 customerId 写死 烟台
// lantuRegisterResiFormDTO.setCustomerId("1535072605621841922");
lantuRegisterResiFormDTO.setCustomerId(getCurrentCustomerId());
lantuRegisterResiFormDTO.setSex(formDTO.getSex());
lantuRegisterResiFormDTO.setMobile(formDTO.getLoginMobile());
lantuRegisterResiFormDTO.setNick(formDTO.getNickName());
lantuRegisterResiFormDTO.setRealName(formDTO.getRealName());
lantuRegisterResiFormDTO.setAvatarUrl(formDTO.getAvatarUrl());
lantuRegisterResiFormDTO.setGridId(formDTO.getGridId());
// 注册
Result<LantuRegisterResiResDTO> lantuRegisterResi = epmetUserOpenFeignClient.lantuRegisterResi(lantuRegisterResiFormDTO);
if (!lantuRegisterResi.success() || null == lantuRegisterResi.getData()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民注册异常", "居民注册异常");
}
resiRegisterLantuResultDTO.setUserBaseInfoId(lantuRegisterResi.getData().getEpmetUserId());
return resiRegisterLantuResultDTO;
}
@Override
public UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO) {
// 获取用户手机号

10
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/AppClientConstant.java

@ -37,6 +37,16 @@ public interface AppClientConstant {
*/
String MINI_DING = "mini_ding";
/**
* 蓝图
*/
String LAN_TU = "lan_tu";
/**
* H5
*/
String H_FIVE = "h_five";
/**
* 客户来源App
* */

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java

@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestBody;
* @DESC
*/
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = CommonGovOrgFeignClientFallBackFactory.class)
//@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = CommonGovOrgFeignClientFallBackFactory.class,url = "localhost:8092")
public interface CommonGovOrgFeignClient {
/**

56
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/HfiveLoginResiFormDTO.java

@ -0,0 +1,56 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Description: h5 登陆获取或者是注册
* @Author: lichao
* @Date: 2023/8/15 10:18
*/
@Data
public class HfiveLoginResiFormDTO {
public interface AddUserInternalGroup {
}
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
@NotBlank(message = "customerId不能为空", groups = AddUserShowGroup.class)
private String customerId;
// 以下参数是微信返回的
/**
* 头像URL
*/
// public String avatarUrl;
/**
* 用户的个人邮箱
*/
// public String email;
/**
* 用户的手机号
* 说明 如果要获取用户手机号需要在开发者后台申请个人手机号信息权限如下图
*/
@NotBlank(message = "手机号不能为空", groups = AddUserShowGroup.class)
public String mobile;
/**
* 用户的钉钉昵称
*/
// public String nick;
/**
*
*/
// public String openId;
/**
* 手机号对应的国家号
*/
// public String stateCode;
/**
*
*/
// public String unionId;
}

47
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LantuRegisterResiFormDTO.java

@ -0,0 +1,47 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Description: lantu 注册
* @Author: lichao
* @Date: 2023/8/15 10:18
*/
@Data
public class LantuRegisterResiFormDTO {
private String customerId;
/**
* 头像URL
*/
private String avatarUrl;
/**
* 用户的手机号
* 说明 如果要获取用户手机号需要在开发者后台申请个人手机号信息权限如下图
*/
private String mobile;
/**
* 昵称
*/
private String nick;
/**
* 网格id
*/
private String gridId;
private String realName;
private String sex;
}

34
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LantuRegisterResiResDTO.java

@ -0,0 +1,34 @@
package com.epmet.dto.result;
import lombok.Data;
/**
* @Description
* @Author yzm
* @Date 2022/9/15 9:33
*/
@Data
public class LantuRegisterResiResDTO {
private String customerId;
private String gridId;
/**
* XXX社区-网格名
*/
private String gridName;
/**
* 网格所属的组织id
*/
private String agencyId;
/**
* 居民端用户id
*/
private String epmetUserId;
/**
* 是否注册居民
* true:已注册
* false:未注册
*/
private Boolean regFlag;
}

7
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -981,6 +981,13 @@ public interface EpmetUserOpenFeignClient {
@PostMapping("/epmetuser/userbaseinfo/dingResiLogin")
Result<DingLoginResiResDTO> dingResiLogin(@RequestBody DingLoginResiFormDTO formDTO);
@PostMapping("/epmetuser/userbaseinfo/hFiveResiLogin")
Result<DingLoginResiResDTO> hFiveResiLogin(@RequestBody HfiveLoginResiFormDTO formDTO);
@PostMapping("/epmetuser/userbaseinfo/lantuRegisterResi")
Result<LantuRegisterResiResDTO> lantuRegisterResi(@RequestBody LantuRegisterResiFormDTO formDTO);
@PostMapping("/epmetuser/dataSyncConfig/dataSyncForYanTaiTask")
Result dataSyncForYanTaiTask(@RequestBody DataSyncTaskParam formDTO);

10
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java

@ -712,6 +712,16 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "dingResiLogin", formDTO);
}
@Override
public Result<DingLoginResiResDTO> hFiveResiLogin(HfiveLoginResiFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "hFiveResiLogin", formDTO);
}
@Override
public Result<LantuRegisterResiResDTO> lantuRegisterResi(LantuRegisterResiFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "lantuRegisterResi", formDTO);
}
@Override
public Result dataSyncForYanTaiTask(DataSyncTaskParam formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "dataSyncForYanTaiTask", formDTO);

24
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBaseInfoController.java

@ -238,6 +238,30 @@ public class UserBaseInfoController {
return new Result<DingLoginResiResDTO>().ok(userBaseInfoService.dingResiLogin(formDTO));
}
/**
* @Description: h5 议事厅 登陆 逻辑同上dingResiLogin
* @param formDTO:
* @Return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.DingLoginResiResDTO>
* @Author: lichao
* @Date: 2023/8/15 10:18
*/
@PostMapping("hFiveResiLogin")
public Result<DingLoginResiResDTO> hFiveResiLogin(@RequestBody HfiveLoginResiFormDTO formDTO){
return new Result<DingLoginResiResDTO>().ok(userBaseInfoService.hFiveResiLogin(formDTO));
}
/**
* @Description: lantu注册居民
* @param formDTO:
* @Return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.LantuRegisterResiResDTO>
* @Author: lichao
* @Date: 2023/8/15 10:18
*/
@PostMapping("lantuRegisterResi")
public Result<LantuRegisterResiResDTO> lantuRegisterResi(@RequestBody LantuRegisterResiFormDTO formDTO){
return new Result<LantuRegisterResiResDTO>().ok(userBaseInfoService.lantuRegisterResi(formDTO));
}
/**
* 来源于烟台需求pc端新增菜单用户完善信息列表
* @return

10
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java

@ -23,10 +23,7 @@ import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.RegisterRelationDTO;
import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.form.CommonUserIdFormDTO;
import com.epmet.dto.form.DingLoginResiFormDTO;
import com.epmet.dto.form.PageRegUserFormDTO;
import com.epmet.dto.form.VolunteerRegResiFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.UserBaseInfoEntity;
@ -222,6 +219,11 @@ public interface UserBaseInfoService extends BaseService<UserBaseInfoEntity> {
*/
DingLoginResiResDTO dingResiLogin(DingLoginResiFormDTO formDTO);
DingLoginResiResDTO hFiveResiLogin(HfiveLoginResiFormDTO formDTO);
LantuRegisterResiResDTO lantuRegisterResi(LantuRegisterResiFormDTO formDTO);
/**
* 用户完善信息列表
* @param formDTO

255
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java

@ -22,10 +22,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.constant.*;
import com.epmet.commons.tools.distributedlock.DistributedLock;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
@ -38,17 +35,12 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.NameUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserRoleConstant;
import com.epmet.dao.*;
import com.epmet.dto.RegisterRelationDTO;
import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.RegisterRelationEntity;
import com.epmet.entity.UserBaseInfoEntity;
import com.epmet.entity.UserEntity;
import com.epmet.entity.UserWechatEntity;
import com.epmet.entity.*;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.redis.UserBaseInfoRedis;
import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO;
@ -56,6 +48,7 @@ import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient;
import com.epmet.service.RegisterRelationService;
import com.epmet.service.UserBaseInfoService;
import com.epmet.service.UserResiInfoService;
import com.epmet.service.UserRoleService;
import com.epmet.util.ModuleConstant;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -103,6 +96,13 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl<UserBaseInfoDao, Us
private UserResiInfoService userResiInfoService;
@Autowired
private RegisterRelationDao registerRelationDao;
@Autowired
private UserResiRegisterVisitDao userResiRegisterVisitDao;
@Autowired
private UserCustomerDao userCustomerDao;
@Autowired
private UserRoleService userRoleService;
@Resource
private UserDao userDao;
@Autowired
@ -635,6 +635,237 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl<UserBaseInfoDao, Us
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public DingLoginResiResDTO hFiveResiLogin(HfiveLoginResiFormDTO formDTO) {
DingLoginResiResDTO result = new DingLoginResiResDTO();
result.setCustomerId(formDTO.getCustomerId());
result.setRegFlag(false);
result.setGridId(StrConstant.EPMETY_STR);
result.setGridName(StrConstant.EPMETY_STR);
result.setAgencyId(StrConstant.EPMETY_STR);
RLock lock = null;
try {
lock = distributedLock.getLock(String.format("epmet:lock:dingResiLogin:%s",formDTO.getMobile()), 120L, 3L, TimeUnit.SECONDS);
//根据手机号从baseinfo查对应的信息,如果有则返回,没有则注册
UserBaseInfoEntity baseInfo = baseDao.selectUserByMobile(formDTO.getCustomerId(),formDTO.getMobile());
if (null == baseInfo) {
//注册
UserEntity userEntity = new UserEntity();
userEntity.setFromApp(AppClientConstant.APP_RESI);
userEntity.setFromClient(AppClientConstant.MINI_DING);
userEntity.setCustomerId(formDTO.getCustomerId());
userDao.insert(userEntity);
//信息存入baseinfo
baseInfo = new UserBaseInfoEntity();
baseInfo.setCustomerId(formDTO.getCustomerId());
baseInfo.setUserId(userEntity.getId());
baseInfo.setMobile(formDTO.getMobile());
// todo 没有值 假的
baseInfo.setRealName("h5");
baseInfo.setSurname("h5");
baseInfo.setName("h5");
baseInfo.setNickname("h5");
baseInfo.setHeadImgUrl("");
// todo--------- 以上都是假的
baseInfo.setGender(NumConstant.ZERO_STR);
baseDao.insert(baseInfo);
result.setEpmetUserId(userEntity.getId());
result.setRegFlag(false);
} else {
// 更新下user_Base_info信息
// todo h5那边没有传过来信息 所以不需要更新
/*if (StringUtils.isNotBlank(formDTO.getNick()) && StringUtils.isBlank(baseInfo.getRealName())) {
baseInfo.setRealName(formDTO.getNick());
}
if (StringUtils.isNotBlank(formDTO.getNick()) && StringUtils.isBlank(baseInfo.getSurname())) {
baseInfo.setSurname(NameUtils.getSurNameComplex(formDTO.getNick()));
}
if (StringUtils.isNotBlank(formDTO.getNick()) && StringUtils.isBlank(baseInfo.getName())) {
baseInfo.setName(NameUtils.getNameComplex(formDTO.getNick()));
}
if (StringUtils.isNotBlank(formDTO.getNick()) && StringUtils.isBlank(baseInfo.getNickname())) {
baseInfo.setNickname(formDTO.getNick());
}
if (StringUtils.isNotBlank(formDTO.getAvatarUrl()) && StringUtils.isBlank(baseInfo.getHeadImgUrl())) {
baseInfo.setHeadImgUrl(formDTO.getAvatarUrl());
}
baseDao.updateById(baseInfo);
*/
result.setEpmetUserId(baseInfo.getUserId());
LambdaQueryWrapper<RegisterRelationEntity> registerWrapper = new LambdaQueryWrapper<>();
registerWrapper.eq(RegisterRelationEntity::getCustomerId, formDTO.getCustomerId());
registerWrapper.eq(RegisterRelationEntity::getUserId, baseInfo.getUserId());
registerWrapper.eq(RegisterRelationEntity::getFirstRegister, NumConstant.ONE_STR);
RegisterRelationEntity registerRelation = registerRelationDao.selectOne(registerWrapper);
if (null != registerRelation) {
result.setAgencyId(registerRelation.getAgencyId());
result.setGridId(registerRelation.getGridId());
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(registerRelation.getGridId());
if (null == gridInfo) {
logger.error(String.format("获取用户注册网格信息为空,userId:%s,gridId:%s", baseInfo.getUserId(), registerRelation.getGridId()));
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格信息为空", "获取小程序注册网格信息失败");
}
result.setGridName(gridInfo.getGridNamePath());
result.setRegFlag(true);
}
}
} finally {
distributedLock.unLock(lock);
}
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public LantuRegisterResiResDTO lantuRegisterResi(LantuRegisterResiFormDTO formDTO) {
LantuRegisterResiResDTO result = new LantuRegisterResiResDTO();
result.setCustomerId(formDTO.getCustomerId());
RLock lock = null;
try {
lock = distributedLock.getLock(String.format("epmet:lock:dingResiLogin:%s",formDTO.getMobile()), 120L, 3L, TimeUnit.SECONDS);
//根据手机号从baseinfo查对应的信息,如果有则返回,没有则注册
UserBaseInfoEntity baseInfo = baseDao.selectUserByMobile(formDTO.getCustomerId(),formDTO.getMobile());
if (null == baseInfo) {
//注册 用户
UserEntity userEntity = new UserEntity();
userEntity.setFromApp(AppClientConstant.APP_RESI);
userEntity.setFromClient(AppClientConstant.LAN_TU);
userEntity.setCustomerId(formDTO.getCustomerId());
userDao.insert(userEntity);
//信息存入baseinfo
baseInfo = new UserBaseInfoEntity();
baseInfo.setCustomerId(formDTO.getCustomerId());
baseInfo.setUserId(userEntity.getId());
baseInfo.setMobile(formDTO.getMobile());
baseInfo.setRealName(formDTO.getRealName());
baseInfo.setSurname(NameUtils.getSurNameComplex(formDTO.getRealName()));
baseInfo.setName(NameUtils.getNameComplex(formDTO.getRealName()));
baseInfo.setNickname(formDTO.getNick());
baseInfo.setHeadImgUrl(formDTO.getAvatarUrl());
baseInfo.setGender(formDTO.getSex());
baseDao.insert(baseInfo);
} else {
// 更新下user_Base_info信息
if (StringUtils.isNotBlank(formDTO.getRealName()) && StringUtils.isBlank(baseInfo.getRealName())) {
baseInfo.setRealName(formDTO.getRealName());
}
if (StringUtils.isNotBlank(formDTO.getRealName()) && StringUtils.isBlank(baseInfo.getSurname())) {
baseInfo.setSurname(NameUtils.getSurNameComplex(formDTO.getRealName()));
}
if (StringUtils.isNotBlank(formDTO.getRealName()) && StringUtils.isBlank(baseInfo.getName())) {
baseInfo.setName(NameUtils.getNameComplex(formDTO.getRealName()));
}
if (StringUtils.isNotBlank(formDTO.getNick()) && StringUtils.isBlank(baseInfo.getNickname())) {
baseInfo.setNickname(formDTO.getNick());
}
if (StringUtils.isNotBlank(formDTO.getSex()) && StringUtils.isBlank(baseInfo.getGender())) {
baseInfo.setGender(formDTO.getSex());
}
if (StringUtils.isNotBlank(formDTO.getAvatarUrl()) && StringUtils.isBlank(baseInfo.getHeadImgUrl())) {
baseInfo.setHeadImgUrl(formDTO.getAvatarUrl());
}
baseDao.updateById(baseInfo);
}
result.setEpmetUserId(baseInfo.getId());
// 新增网格关系 先查询有没有网格关系
LambdaQueryWrapper<RegisterRelationEntity> registerWrapper = new LambdaQueryWrapper<>();
registerWrapper.eq(RegisterRelationEntity::getCustomerId, formDTO.getCustomerId());
registerWrapper.eq(RegisterRelationEntity::getUserId, baseInfo.getUserId());
registerWrapper.eq(RegisterRelationEntity::getFirstRegister, NumConstant.ONE_STR);
RegisterRelationEntity registerRelation = registerRelationDao.selectOne(registerWrapper);
if (null == registerRelation){
registerRelation = new RegisterRelationEntity();
registerRelation.setCustomerId(formDTO.getCustomerId());
registerRelation.setGridId(formDTO.getGridId());
//表中新增字段 为其赋值
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getGridId());
if (null == gridInfo) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格缓存失败", "获取网格缓存失败");
}
registerRelation.setAgencyId(gridInfo.getPid());
registerRelation.setAgencyIdPath(gridInfo.getPids());
registerRelation.setUserId(baseInfo.getUserId());
//首次注册用户 (0表示不参与计数 1表示参与计数)
registerRelation.setFirstRegister(NumConstant.ONE_STR);
//注册用户 (0表示不参与计数 1表示参与计数)
registerRelation.setRegister(NumConstant.ONE_STR);
//参与用户 (0表示不参与计数 1表示参与计数)
registerRelation.setParticipation(NumConstant.ONE_STR);
registerRelationDao.insert(registerRelation);
}else{
// 如果已经存在的话就更新
registerRelation.setGridId(formDTO.getGridId());
registerRelationDao.updateById(registerRelation);
}
// 先查询有没有用户居民端注册访问记录 新增用户居民端注册访问记录表
LambdaQueryWrapper<UserResiRegisterVisitEntity> resiRegisterVisitLW = new LambdaQueryWrapper<>();
resiRegisterVisitLW.eq(UserResiRegisterVisitEntity::getUserId,baseInfo.getUserId());
resiRegisterVisitLW.eq(UserResiRegisterVisitEntity::getCustomerId,baseInfo.getCustomerId());
UserResiRegisterVisitEntity visit = userResiRegisterVisitDao.selectOne(resiRegisterVisitLW);
if (visit == null){
visit = new UserResiRegisterVisitEntity();
visit.setCustomerId(baseInfo.getCustomerId());
visit.setGridId(formDTO.getGridId());
visit.setUserId(baseInfo.getUserId());
visit.setVisitFrom("lantu");
visit.setLastOperateVisit("success");
visit.setVisitTime(new Date());
userResiRegisterVisitDao.insert(visit);
}else{
visit.setGridId(formDTO.getGridId());
visit.setVisitFrom("lantu");
visit.setLastOperateVisit("success");
visit.setVisitTime(new Date());
userResiRegisterVisitDao.updateById(visit);
}
//新增该用户在该客户下的注册状态
LambdaQueryWrapper<UserCustomerEntity> userCustomerEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
userCustomerEntityLambdaQueryWrapper.eq(UserCustomerEntity::getCustomerId,baseInfo.getCustomerId());
userCustomerEntityLambdaQueryWrapper.eq(UserCustomerEntity::getUserId,baseInfo.getUserId());
UserCustomerEntity userCustomer = userCustomerDao.selectOne(userCustomerEntityLambdaQueryWrapper);
if (userCustomer == null){
userCustomer = new UserCustomerEntity();
userCustomer.setCustomerId(baseInfo.getCustomerId());
userCustomer.setUserId(baseInfo.getUserId());
userCustomer.setIsRegister(NumConstant.ONE_STR);
userCustomerDao.insert(userCustomer);
}else{
userCustomer.setIsRegister(NumConstant.ONE_STR);
userCustomerDao.updateById(userCustomer);
}
//2:角色表新增角色数据
LambdaQueryWrapper<UserRoleEntity> userRoleLambdaQueryWrapper = new LambdaQueryWrapper<>();
userRoleLambdaQueryWrapper.eq(UserRoleEntity::getUserId,baseInfo.getUserId());
userRoleLambdaQueryWrapper.eq(UserRoleEntity::getCustomerId,baseInfo.getCustomerId());
UserRoleEntity userRoleEntity = userRoleDao.selectOne(userRoleLambdaQueryWrapper);
if (userRoleEntity == null){
UserRoleDTO userRoleDTO = new UserRoleDTO();
userRoleDTO.setCustomerId(baseInfo.getCustomerId());
userRoleDTO.setUserId(baseInfo.getUserId());
userRoleDTO.setApp("resi");
userRoleDTO.setRoleKey(EpmetRoleKeyConstant.REGISTERED_RESI);
//居民角色对应的网格Id存默认值-all
userRoleDTO.setGridId(UserRoleConstant.DEFAULT_GRID_ID);
userRoleService.saveUserRole(userRoleDTO);
}
} finally {
distributedLock.unLock(lock);
}
return result;
}
/**
* 用户完善信息列表
*

Loading…
Cancel
Save