Browse Source

进入网格相关代码

dev_shibei_match
wangchao 5 years ago
parent
commit
2c06ecd592
  1. 13
      epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java
  2. 6
      epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/StrangerAccessRecordServiceImpl.java
  3. 34
      epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/UserAccessServiceImpl.java
  4. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RegisterRelationDao.java
  5. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiRegisterVisitDao.java
  6. 12
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserWechatDao.java
  7. 129
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java
  8. 12
      epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml
  9. 27
      epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml
  10. 12
      epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml

13
epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java

@ -2,10 +2,13 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.EnterGridFormDTO;
import com.epmet.dto.form.VisitedFormDTO;
import com.epmet.dto.result.UserInfoOnEnterGridResultDTO;
import com.epmet.feign.fallback.EpmetUserFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @Description 居民端陌生人导览 调用epmet-user服务
@ -23,6 +26,16 @@ public interface EpmetUserFeignClient {
Result saveVisitedRecord(VisitedFormDTO formDTO);
/**
* @Description 在用户进入网格时查询用户的注册信息且统计以及角色列表
* @Param enterGridFormDTO
* @return UserInfoOnEnterGridResultDTO
* @Author wangc
* @Date 2020.03.30 15:06
**/
@PostMapping("getuserinfoandroles")
Result<UserInfoOnEnterGridResultDTO> getUserInfoAndRoles(@RequestBody EnterGridFormDTO enterGridFormDTO);
}

6
epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/StrangerAccessRecordServiceImpl.java

@ -203,12 +203,12 @@ public class StrangerAccessRecordServiceImpl extends BaseServiceImpl<StrangerAcc
@Override
public Result<HomeDesignByCustomerResultDTO> getGridHome(TokenDto tokenDTO, StrangerFormDTO strangerFormDTO) {
//1.先判断参数
//居民端 所以参数必须是居民端的参数 否则就是参数错误s
//居民端 所以参数必须是居民端的参数 否则就是参数错误
if (!AppClientConstant.APP_RESI.equals(tokenDTO.getApp())) {
return new Result<HomeDesignByCustomerResultDTO>().error(StrangerResiGuideConstant.PARAMETER_EXCEPTION);
}
//token里边有所属端 userId这些参数 前台传递customerID和gridId
//2:调用epmet-user服务查询数据 新建网格记录数据
/*//2:调用epmet-user服务查询数据 新建网格记录数据
VisitedFormDTO visitedFormDTO = new VisitedFormDTO();
visitedFormDTO.setGridId(strangerFormDTO.getGridId());
visitedFormDTO.setCustomerId(strangerFormDTO.getCustomerId());
@ -216,7 +216,7 @@ public class StrangerAccessRecordServiceImpl extends BaseServiceImpl<StrangerAcc
Result re = epmetUserFeignClient.saveVisitedRecord(visitedFormDTO);
if (!re.success()) {
log.warn(StrangerResiGuideConstant.EPMET_USER_EXCEPTION);
}
}*/
//3:调用ope-customize服务 获取首页发布数据
Result<HomeDesignByCustomerResultDTO> result = getCustomerHomeData(strangerFormDTO.getCustomerId());
return result;

34
epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/UserAccessServiceImpl.java

@ -2,9 +2,16 @@ package com.epmet.service.impl;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.StrangerResiGuideConstant;
import com.epmet.dto.form.EnterGridFormDTO;
import com.epmet.dto.form.UserEnterGridFormDTO;
import com.epmet.dto.form.VisitedFormDTO;
import com.epmet.dto.result.UserInfoOnEnterGridResultDTO;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.service.UserAccessService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @Description
@ -13,12 +20,37 @@ import com.epmet.service.UserAccessService;
* @date 2020.03.30 14:05
*/
public class UserAccessServiceImpl implements UserAccessService {
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
private static final Logger log = LoggerFactory.getLogger(StrangerAccessRecordServiceImpl.class);
@Override
public Result<UserInfoOnEnterGridResultDTO> enterGrid(TokenDto tokenDto, UserEnterGridFormDTO formDTO) {
//TODO 加入不放行白名单
EnterGridFormDTO userInfoParams = new EnterGridFormDTO();
userInfoParams.setUserId(tokenDto.getUserId());
userInfoParams.setCustomerId(formDTO.getCustomerId());
userInfoParams.setGridId(formDTO.getGridId());
Result<UserInfoOnEnterGridResultDTO> userInfoResult =
epmetUserFeignClient.getUserInfoAndRoles(userInfoParams);
if(userInfoResult.success()){
//2:调用epmet-user服务查询数据 新建网格记录数据
VisitedFormDTO visitedFormDTO = new VisitedFormDTO();
visitedFormDTO.setGridId(userInfoParams.getGridId());
visitedFormDTO.setCustomerId(userInfoParams.getCustomerId());
visitedFormDTO.setUserId(userInfoParams.getUserId());
Result re = epmetUserFeignClient.saveVisitedRecord(visitedFormDTO);
if (!re.success()) {
log.warn(StrangerResiGuideConstant.EPMET_USER_EXCEPTION);
}
}else{
}
return null;
return userInfoResult;
}
}

6
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RegisterRelationDao.java

@ -20,6 +20,9 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.RegisterRelationEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 注册关系表 用于统计客户网格的注册居民数
@ -29,5 +32,8 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface RegisterRelationDao extends BaseDao<RegisterRelationEntity> {
List<RegisterRelationEntity> getListByUserId(@Param("userId") String userId);
}

4
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiRegisterVisitDao.java

@ -22,6 +22,8 @@ import com.epmet.dto.UserResiRegisterVisitDTO;
import com.epmet.entity.UserResiRegisterVisitEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 用户居民端注册访问记录表
*
@ -32,4 +34,6 @@ import org.apache.ibatis.annotations.Mapper;
public interface UserResiRegisterVisitDao extends BaseDao<UserResiRegisterVisitEntity> {
void saveUserResiRegisterVisit(UserResiRegisterVisitDTO userResiRegisterVisitDTO);
List<UserResiRegisterVisitDTO> selectUserResiRegisterVisit(UserResiRegisterVisitDTO userResiRegisterVisitDTO);
}

12
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserWechatDao.java

@ -6,6 +6,9 @@ import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.WxLoginUserInfoFormDTO;
import com.epmet.entity.UserWechatEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description 用户-微信关系DAO
@ -33,4 +36,13 @@ public interface UserWechatDao extends BaseDao<UserWechatEntity>{
* @Date 2020/3/30 13:06
**/
UserDTO selectUserDTOByOpenId(WxLoginUserInfoFormDTO formDTO);
/**
* @Description 根据userId查询用户微信登录时的信息
* @Param userId
* @return List<UserWechatEntity>
* @Author wangc
* @Date 2020.03.30 17:25
**/
List<UserWechatEntity> selectByUserId(@Param("userId")String userId);
}

129
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java

@ -24,14 +24,20 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.RegisterRelationDao;
import com.epmet.dao.UserResiInfoDao;
import com.epmet.dao.UserRoleDao;
import com.epmet.dao.UserWechatDao;
import com.epmet.dao.*;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.RegisterRelationDTO;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserResiRegisterVisitDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.dto.form.EnterGridFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.UserRoleFormDTO;
import com.epmet.dto.result.UserInfoOnEnterGridResultDTO;
import com.epmet.dto.result.UserRoleResultDTO;
import com.epmet.entity.RegisterRelationEntity;
import com.epmet.entity.UserWechatEntity;
import com.epmet.feign.GovOrgFeignClient;
import com.epmet.redis.RegisterRelationRedis;
import com.epmet.service.RegisterRelationService;
import org.apache.commons.lang3.StringUtils;
@ -39,9 +45,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 注册关系表 用于统计客户网格的注册居民数
@ -64,6 +68,12 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
@Autowired
private UserRoleDao userRoleDao;
@Autowired
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private UserResiRegisterVisitDao userResiRegisterVisitDao;
@Override
public PageData<RegisterRelationDTO> page(Map<String, Object> params) {
IPage<RegisterRelationEntity> page = baseDao.selectPage(
@ -126,16 +136,105 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
@Override
public Result<UserInfoOnEnterGridResultDTO> getUserInfoAndRoles(EnterGridFormDTO enterGridFormDTO) {
//1.查找用户注册关系表,如果没有表示当前用户为陌生人(拉取用户微信表信息),如果有表示当前用户已经进行居民认证
//2.根据居民认证的网格、客户进行统计
//3.去网格表中查询网格对应的名称
Result<UserInfoOnEnterGridResultDTO> result = new Result<>();
UserInfoOnEnterGridResultDTO resultObj = new UserInfoOnEnterGridResultDTO();
final String customerId = enterGridFormDTO.getCustomerId();
final String gridId = enterGridFormDTO.getGridId();
//查询用户微信关系表
List<UserWechatEntity> strangerWechatInfo = userWechatDao.selectByUserId(enterGridFormDTO.getUserId());
if(null != strangerWechatInfo && strangerWechatInfo.size() > 0){
resultObj.setNickname(strangerWechatInfo.get(0).getNickname());
resultObj.setUserHeadPhoto(strangerWechatInfo.get(0).getHeadImgUrl());
}
return null;
List<RegisterRelationEntity> registerRecords = baseDao.getListByUserId(enterGridFormDTO.getUserId());
//1.查找用户注册关系表,如果没有表示当前用户为陌生人(拉取用户微信表信息),如果有表示当前用户已经进行居民认证
if(null == registerRecords || registerRecords.size() <= 0){
//当前用户尚未注册过居民信息
}else{
//2.根据居民认证的网格、客户进行统计
RegisterRelationEntity registerRelationToSave = new RegisterRelationEntity();
registerRelationToSave.setCustomerId(customerId);
registerRelationToSave.setUserId(enterGridFormDTO.getUserId());
registerRelationToSave.setGridId(gridId);
Optional<RegisterRelationEntity> registerRecordWithSameCustAndGrid =
registerRecords.stream().filter(obj -> customerId.equals(obj.getCustomerId()) && gridId.equals(obj.getGridId())).findFirst();
//是否存在相同客户相同网格的注册记录
if(!registerRecordWithSameCustAndGrid.isPresent()){
Optional<RegisterRelationEntity> registerRecordWithSameCustAndDiffGrid =
registerRecords.stream().filter(obj -> customerId.equals(obj.getCustomerId()) && !gridId.equals(obj.getGridId())).findAny();
if(registerRecordWithSameCustAndDiffGrid.isPresent()){
//存在相同客户不同网格的注册记录
//参与用户
registerRelationToSave.setFirstRegister("0");
registerRelationToSave.setRegister("0");
registerRelationToSave.setParticipation("1");
baseDao.insert(registerRelationToSave);
}else{
//不存在相同客户不同网格的注册记录
Optional<RegisterRelationEntity> registerRecordWithDiffCustAndGrid =
registerRecords.stream().filter(obj -> !customerId.equals(obj.getCustomerId()) && !gridId.equals(obj.getGridId())).findAny();
if(registerRecordWithDiffCustAndGrid.isPresent()){
//如果存在不同客户不同网格的注册信息
//注册用户 参与用户
registerRelationToSave.setFirstRegister("0");
registerRelationToSave.setRegister("1");
registerRelationToSave.setParticipation("1");
baseDao.insert(registerRelationToSave);
}else{
//如果不存在不同客户不同网格数据,说明在居民注册时没有成功记录register_relation信息
UserResiRegisterVisitDTO userResiRegisterVisitDTO = new UserResiRegisterVisitDTO();
userResiRegisterVisitDTO.setDelFlag(0);
userResiRegisterVisitDTO.setUserId(enterGridFormDTO.getUserId());
List<UserResiRegisterVisitDTO> UserResiRegisterVisitRecord =
userResiRegisterVisitDao.selectUserResiRegisterVisit(userResiRegisterVisitDTO);
}
}
}
UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO();
userResiInfoFormDTO.setUserId(enterGridFormDTO.getUserId());
UserResiInfoDTO userResiInfo = userResiInfoDao.selectUserResiInfoDTO(userResiInfoFormDTO);
resultObj.setNickname(userResiInfo.getSurname() + userResiInfo.getName());
}
//3.获取权限
UserRoleFormDTO userRoleFormDTO = new UserRoleFormDTO();
userRoleFormDTO.setUserId(enterGridFormDTO.getUserId());
userRoleFormDTO.setCustomerId(enterGridFormDTO.getCustomerId());
List<UserRoleResultDTO> roleList = userRoleDao.getUserRoleInfo(userRoleFormDTO);
List<String> roleListString = new ArrayList<>();
for(UserRoleResultDTO role : roleList){
roleListString.add(role.getRoleKey());
}
resultObj.setUserRoleList(roleListString);
//4.去网格表中查询网格对应的名称
CustomerGridFormDTO customerGridFormDTO = new CustomerGridFormDTO();
customerGridFormDTO.setGridId(gridId);
Result<CustomerGridDTO> gridDTOResult =
govOrgFeignClient.getCustomerGridByGridId(customerGridFormDTO);
if(gridDTOResult.success()){
resultObj.setCurrentGridName(gridDTOResult.getData().getGridName());
}else{
//查询网格名称失败
}
result.setData(resultObj);
return result;
}
}

12
epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml

@ -20,4 +20,16 @@
</resultMap>
<select id="getListByUserId" parameterType="string" resultType="com.epmet.entity.RegisterRelationEntity">
SELECT *
FROM
register_relation
WHERE
del_flag = '0'
AND
user_id = #{userId}
</select>
</mapper>

27
epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml

@ -21,22 +21,27 @@
<select id="getUserRoleInfo" parameterType="com.epmet.dto.form.UserRoleFormDTO" resultType="com.epmet.dto.result.UserRoleResultDTO" >
SELECT
DISTINCT
er.ROLE_NAME,
er.ROLE_KEY
FROM
USER_ROLE ur
JOIN EPMET_ROLE er ON ur.ROLE_ID = er.ID
WHERE
er.APP = #{app}
AND
ur.CUSTOMER_ID = #{customerId}
AND
ur.USER_ID = #{userId}
AND
er.DEL_FLAG = 0
AND
ur.DEL_FLAG = 0
<where>
er.DEL_FLAG = 0
AND
ur.DEL_FLAG = 0
AND
ur.USER_ID = #{userId}
<if test='null != app and "" != app'>
AND
er.APP = #{app}
</if>
<if test='null != customerId and "" != customerId'>
AND
ur.CUSTOMER_ID = #{customerId}
</if>
</where>
</select>

12
epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml

@ -51,4 +51,16 @@
AND uw.DEL_FLAG = '0'
AND u.FROM_APP = #{app}
</select>
<select id="selectByUserId" parameterType="string" resultType="com.epmet.entity.UserWechatEntity">
SELECT *
FROM
USER_WECHAT
WHERE
DEL_FLAG = '0'
AND
USER_ID = #{userId}
</select>
</mapper>

Loading…
Cancel
Save