Browse Source

进入网格相关代码

dev
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.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.EnterGridFormDTO;
import com.epmet.dto.form.VisitedFormDTO; import com.epmet.dto.form.VisitedFormDTO;
import com.epmet.dto.result.UserInfoOnEnterGridResultDTO;
import com.epmet.feign.fallback.EpmetUserFeignClientFallBack; import com.epmet.feign.fallback.EpmetUserFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/** /**
* @Description 居民端陌生人导览 调用epmet-user服务 * @Description 居民端陌生人导览 调用epmet-user服务
@ -23,6 +26,16 @@ public interface EpmetUserFeignClient {
Result saveVisitedRecord(VisitedFormDTO formDTO); 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 @Override
public Result<HomeDesignByCustomerResultDTO> getGridHome(TokenDto tokenDTO, StrangerFormDTO strangerFormDTO) { public Result<HomeDesignByCustomerResultDTO> getGridHome(TokenDto tokenDTO, StrangerFormDTO strangerFormDTO) {
//1.先判断参数 //1.先判断参数
//居民端 所以参数必须是居民端的参数 否则就是参数错误s //居民端 所以参数必须是居民端的参数 否则就是参数错误
if (!AppClientConstant.APP_RESI.equals(tokenDTO.getApp())) { if (!AppClientConstant.APP_RESI.equals(tokenDTO.getApp())) {
return new Result<HomeDesignByCustomerResultDTO>().error(StrangerResiGuideConstant.PARAMETER_EXCEPTION); return new Result<HomeDesignByCustomerResultDTO>().error(StrangerResiGuideConstant.PARAMETER_EXCEPTION);
} }
//token里边有所属端 userId这些参数 前台传递customerID和gridId //token里边有所属端 userId这些参数 前台传递customerID和gridId
//2:调用epmet-user服务查询数据 新建网格记录数据 /*//2:调用epmet-user服务查询数据 新建网格记录数据
VisitedFormDTO visitedFormDTO = new VisitedFormDTO(); VisitedFormDTO visitedFormDTO = new VisitedFormDTO();
visitedFormDTO.setGridId(strangerFormDTO.getGridId()); visitedFormDTO.setGridId(strangerFormDTO.getGridId());
visitedFormDTO.setCustomerId(strangerFormDTO.getCustomerId()); visitedFormDTO.setCustomerId(strangerFormDTO.getCustomerId());
@ -216,7 +216,7 @@ public class StrangerAccessRecordServiceImpl extends BaseServiceImpl<StrangerAcc
Result re = epmetUserFeignClient.saveVisitedRecord(visitedFormDTO); Result re = epmetUserFeignClient.saveVisitedRecord(visitedFormDTO);
if (!re.success()) { if (!re.success()) {
log.warn(StrangerResiGuideConstant.EPMET_USER_EXCEPTION); log.warn(StrangerResiGuideConstant.EPMET_USER_EXCEPTION);
} }*/
//3:调用ope-customize服务 获取首页发布数据 //3:调用ope-customize服务 获取首页发布数据
Result<HomeDesignByCustomerResultDTO> result = getCustomerHomeData(strangerFormDTO.getCustomerId()); Result<HomeDesignByCustomerResultDTO> result = getCustomerHomeData(strangerFormDTO.getCustomerId());
return result; 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.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result; 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.UserEnterGridFormDTO;
import com.epmet.dto.form.VisitedFormDTO;
import com.epmet.dto.result.UserInfoOnEnterGridResultDTO; import com.epmet.dto.result.UserInfoOnEnterGridResultDTO;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.service.UserAccessService; import com.epmet.service.UserAccessService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
/** /**
* @Description * @Description
@ -13,12 +20,37 @@ import com.epmet.service.UserAccessService;
* @date 2020.03.30 14:05 * @date 2020.03.30 14:05
*/ */
public class UserAccessServiceImpl implements UserAccessService { public class UserAccessServiceImpl implements UserAccessService {
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
private static final Logger log = LoggerFactory.getLogger(StrangerAccessRecordServiceImpl.class);
@Override @Override
public Result<UserInfoOnEnterGridResultDTO> enterGrid(TokenDto tokenDto, UserEnterGridFormDTO formDTO) { public Result<UserInfoOnEnterGridResultDTO> enterGrid(TokenDto tokenDto, UserEnterGridFormDTO formDTO) {
//TODO 加入不放行白名单 //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.commons.mybatis.dao.BaseDao;
import com.epmet.entity.RegisterRelationEntity; import com.epmet.entity.RegisterRelationEntity;
import org.apache.ibatis.annotations.Mapper; 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 @Mapper
public interface RegisterRelationDao extends BaseDao<RegisterRelationEntity> { 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 com.epmet.entity.UserResiRegisterVisitEntity;
import org.apache.ibatis.annotations.Mapper; 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> { public interface UserResiRegisterVisitDao extends BaseDao<UserResiRegisterVisitEntity> {
void saveUserResiRegisterVisit(UserResiRegisterVisitDTO userResiRegisterVisitDTO); 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.dto.form.WxLoginUserInfoFormDTO;
import com.epmet.entity.UserWechatEntity; import com.epmet.entity.UserWechatEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @Description 用户-微信关系DAO * @Description 用户-微信关系DAO
@ -33,4 +36,13 @@ public interface UserWechatDao extends BaseDao<UserWechatEntity>{
* @Date 2020/3/30 13:06 * @Date 2020/3/30 13:06
**/ **/
UserDTO selectUserDTOByOpenId(WxLoginUserInfoFormDTO formDTO); 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.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.RegisterRelationDao; import com.epmet.dao.*;
import com.epmet.dao.UserResiInfoDao; import com.epmet.dto.CustomerGridDTO;
import com.epmet.dao.UserRoleDao;
import com.epmet.dao.UserWechatDao;
import com.epmet.dto.RegisterRelationDTO; 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.EnterGridFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.UserRoleFormDTO;
import com.epmet.dto.result.UserInfoOnEnterGridResultDTO; import com.epmet.dto.result.UserInfoOnEnterGridResultDTO;
import com.epmet.dto.result.UserRoleResultDTO;
import com.epmet.entity.RegisterRelationEntity; import com.epmet.entity.RegisterRelationEntity;
import com.epmet.entity.UserWechatEntity;
import com.epmet.feign.GovOrgFeignClient;
import com.epmet.redis.RegisterRelationRedis; import com.epmet.redis.RegisterRelationRedis;
import com.epmet.service.RegisterRelationService; import com.epmet.service.RegisterRelationService;
import org.apache.commons.lang3.StringUtils; 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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays; import java.util.*;
import java.util.List;
import java.util.Map;
/** /**
* 注册关系表 用于统计客户网格的注册居民数 * 注册关系表 用于统计客户网格的注册居民数
@ -64,6 +68,12 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
@Autowired @Autowired
private UserRoleDao userRoleDao; private UserRoleDao userRoleDao;
@Autowired
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private UserResiRegisterVisitDao userResiRegisterVisitDao;
@Override @Override
public PageData<RegisterRelationDTO> page(Map<String, Object> params) { public PageData<RegisterRelationDTO> page(Map<String, Object> params) {
IPage<RegisterRelationEntity> page = baseDao.selectPage( IPage<RegisterRelationEntity> page = baseDao.selectPage(
@ -126,16 +136,105 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
@Override @Override
public Result<UserInfoOnEnterGridResultDTO> getUserInfoAndRoles(EnterGridFormDTO enterGridFormDTO) { public Result<UserInfoOnEnterGridResultDTO> getUserInfoAndRoles(EnterGridFormDTO enterGridFormDTO) {
//1.查找用户注册关系表,如果没有表示当前用户为陌生人(拉取用户微信表信息),如果有表示当前用户已经进行居民认证 Result<UserInfoOnEnterGridResultDTO> result = new Result<>();
UserInfoOnEnterGridResultDTO resultObj = new UserInfoOnEnterGridResultDTO();
//2.根据居民认证的网格、客户进行统计 final String customerId = enterGridFormDTO.getCustomerId();
final String gridId = enterGridFormDTO.getGridId();
//3.去网格表中查询网格对应的名称
//查询用户微信关系表
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());
}
List<RegisterRelationEntity> registerRecords = baseDao.getListByUserId(enterGridFormDTO.getUserId());
return null; //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> </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> </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 id="getUserRoleInfo" parameterType="com.epmet.dto.form.UserRoleFormDTO" resultType="com.epmet.dto.result.UserRoleResultDTO" >
SELECT SELECT
DISTINCT
er.ROLE_NAME, er.ROLE_NAME,
er.ROLE_KEY er.ROLE_KEY
FROM FROM
USER_ROLE ur USER_ROLE ur
JOIN EPMET_ROLE er ON ur.ROLE_ID = er.ID JOIN EPMET_ROLE er ON ur.ROLE_ID = er.ID
<where>
WHERE er.DEL_FLAG = 0
er.APP = #{app} AND
AND ur.DEL_FLAG = 0
ur.CUSTOMER_ID = #{customerId} AND
AND ur.USER_ID = #{userId}
ur.USER_ID = #{userId} <if test='null != app and "" != app'>
AND AND
er.DEL_FLAG = 0 er.APP = #{app}
AND </if>
ur.DEL_FLAG = 0 <if test='null != customerId and "" != customerId'>
AND
ur.CUSTOMER_ID = #{customerId}
</if>
</where>
</select> </select>

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

@ -51,4 +51,16 @@
AND uw.DEL_FLAG = '0' AND uw.DEL_FLAG = '0'
AND u.FROM_APP = #{app} AND u.FROM_APP = #{app}
</select> </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> </mapper>

Loading…
Cancel
Save