Browse Source

居民端 获取最后一次进入网格 添加弃用状态的判断

dev
jianjun 3 years ago
parent
commit
334230fa31
  1. 5
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/GridInfoCache.java
  2. 38
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java
  3. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestGridInfoFormDTO.java
  4. 3
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  5. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  6. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java
  7. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridLatestDao.java
  8. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java
  9. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java
  10. 2
      epmet-user/epmet-user-server/src/main/resources/mapper/GridLatestDao.xml

5
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/GridInfoCache.java

@ -113,4 +113,9 @@ public class GridInfoCache implements Serializable {
* 坐标区域 * 坐标区域
*/ */
private String coordinates; private String coordinates;
/**
* 弃用标记
*/
private Integer abandonFlag;
} }

38
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java

@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.HttpClientManager;
@ -116,26 +118,50 @@ public class ResiMineGridServiceImpl implements ResiMineGridService {
JSONObject toResult = JSON.parseObject(data); JSONObject toResult = JSON.parseObject(data);
Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class);
if (null != toResult.get("code")) { if (null != toResult.get("code")) {
mapToResult.setCode(((Integer) toResult.get("code")).intValue()); mapToResult.setCode((Integer) toResult.get("code"));
} }
if (!mapToResult.success()) { if (!mapToResult.success()) {
logger.error(String.format("根据appId查询客户信息失败,对应appId->" + formDTO.getAppId())); logger.error(String.format("根据appId查询客户信息失败,对应appId->" + formDTO.getAppId()));
throw new RenException(mapToResult.getMsg()); throw new RenException(mapToResult.getMsg());
} }
Object PublicCustomerResultDTO = mapToResult.getData(); Object publicCustomerResultDTO = mapToResult.getData();
JSONObject json = JSON.parseObject(PublicCustomerResultDTO.toString()); JSONObject json = JSON.parseObject(publicCustomerResultDTO.toString());
Map<String, Object> map = (Map) json.get("customer"); Map map = (Map) json.get("customer");
PaCustomerDTO customer = ConvertUtils.mapToEntity(map, PaCustomerDTO.class); PaCustomerDTO customer = ConvertUtils.mapToEntity(map, PaCustomerDTO.class);
logger.info("小程序登陆third服务获取客户用户信息PaCustomerDTO->" + customer); logger.info("小程序登陆third服务获取客户用户信息PaCustomerDTO->" + customer);
//2.调用epmet-user服务,根据客户Id和用户Id查询最后一次访问记录 //2.调用epmet-user服务,根据客户Id和用户Id查询最后一次访问记录
LatestGridInfoResultDTO result = null;
formDTO.setCustomerId(customer.getId()); formDTO.setCustomerId(customer.getId());
Result<LatestGridInfoResultDTO> userResult = epmetUserOpenFeignClient.latestGridInfo(formDTO); Result<List<LatestGridInfoResultDTO>> userResult = epmetUserOpenFeignClient.latestGridList(formDTO);
if (!userResult.success()) { if (!userResult.success()) {
logger.error(String.format("居民端获取用户最近访问网格失败,接口入参客户Id->%s,appId->%s,调用epmet-user-server服务返回->%s", formDTO.getCustomerId(), formDTO.getAppId(), JSON.toJSONString(userResult))); logger.error(String.format("居民端获取用户最近访问网格失败,接口入参客户Id->%s,appId->%s,调用epmet-user-server服务返回->%s", formDTO.getCustomerId(), formDTO.getAppId(), JSON.toJSONString(userResult)));
return result;
} }
return userResult.getData(); for (LatestGridInfoResultDTO girdInfo : userResult.getData()) {
try {
GridInfoCache grid = CustomerOrgRedis.getGridInfo(girdInfo.getGridId());
if (grid == null) {
logger.warn("latestGridInfo get gridInfo return null,gridId:{}", girdInfo.getGridId());
continue;
} else {
Integer abandonFlag = grid.getAbandonFlag();
if (NumConstant.ONE == abandonFlag) {
logger.warn("latestGridInfo gridId:{} has abandoned", girdInfo.getGridId());
continue;
} else {
result = girdInfo;
//匹配到了未弃用的网格 跳出
break;
}
}
} catch (Exception e) {
logger.warn("latestGridInfo get gridInfo exception,gridId:{}", girdInfo.getGridId());
}
}
return result;
} }
/** /**

5
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestGridInfoFormDTO.java

@ -35,4 +35,9 @@ public class LatestGridInfoFormDTO implements Serializable {
*/ */
private String userId; private String userId;
/**
* 前n个 默认10
*/
private Integer top = 10;
} }

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

@ -1,7 +1,6 @@
package com.epmet.feign; package com.epmet.feign;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
@ -260,7 +259,7 @@ public interface EpmetUserOpenFeignClient {
* @Date 2020/8/3 * @Date 2020/8/3
**/ **/
@PostMapping(value = "epmetuser/gridlatest/latestgridinfo") @PostMapping(value = "epmetuser/gridlatest/latestgridinfo")
Result<LatestGridInfoResultDTO> latestGridInfo(@RequestBody LatestGridInfoFormDTO formDTO); Result<List<LatestGridInfoResultDTO>> latestGridList(@RequestBody LatestGridInfoFormDTO formDTO);
/** /**
* @Description 查询工作人员的信息 * @Description 查询工作人员的信息

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

@ -180,7 +180,7 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
} }
@Override @Override
public Result<LatestGridInfoResultDTO> latestGridInfo(LatestGridInfoFormDTO formDTO) { public Result<List<LatestGridInfoResultDTO>> latestGridList(LatestGridInfoFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "latestGridInfo", formDTO); return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "latestGridInfo", formDTO);
} }

4
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java

@ -139,8 +139,8 @@ public class GridLatestController {
* @Date 2020/8/3 * @Date 2020/8/3
**/ **/
@PostMapping("latestgridinfo") @PostMapping("latestgridinfo")
public Result<LatestGridInfoResultDTO> latestGridInfo(@RequestBody LatestGridInfoFormDTO formDTO){ public Result<List<LatestGridInfoResultDTO>> latestGridInfo(@RequestBody LatestGridInfoFormDTO formDTO){
return new Result<LatestGridInfoResultDTO>().ok(gridLatestService.latestGridInfo(formDTO)); return new Result<List<LatestGridInfoResultDTO>>().ok(gridLatestService.latestGridInfo(formDTO));
} }
} }

2
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridLatestDao.java

@ -73,5 +73,5 @@ public interface GridLatestDao extends BaseDao<GridLatestEntity> {
* @Description 单客户-根据客户Id和userId查询用户最后一次访问的网格 * @Description 单客户-根据客户Id和userId查询用户最后一次访问的网格
* @Date 2020/8/3 * @Date 2020/8/3
**/ **/
LatestGridInfoResultDTO selectLatestGridInfo(LatestGridInfoFormDTO formDTO); List<LatestGridInfoResultDTO> selectLatestGridInfo(LatestGridInfoFormDTO formDTO);
} }

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java

@ -139,5 +139,5 @@ public interface GridLatestService extends BaseService<GridLatestEntity> {
* @Description 单客户-根据客户Id和userId查询用户最后一次访问的网格 * @Description 单客户-根据客户Id和userId查询用户最后一次访问的网格
* @Date 2020/8/3 * @Date 2020/8/3
**/ **/
LatestGridInfoResultDTO latestGridInfo(LatestGridInfoFormDTO formDTO); List<LatestGridInfoResultDTO> latestGridInfo(LatestGridInfoFormDTO formDTO);
} }

3
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java

@ -36,7 +36,6 @@ import com.epmet.dto.result.CustomerUser4PointResultDTO;
import com.epmet.dto.result.LatestGridInfoResultDTO; import com.epmet.dto.result.LatestGridInfoResultDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.entity.GridLatestEntity; import com.epmet.entity.GridLatestEntity;
import com.epmet.feign.EpmetHeartOpenFeignClient;
import com.epmet.redis.UserBaseInfoRedis; import com.epmet.redis.UserBaseInfoRedis;
import com.epmet.service.GridLatestService; import com.epmet.service.GridLatestService;
import com.epmet.util.ModuleConstant; import com.epmet.util.ModuleConstant;
@ -205,7 +204,7 @@ public class GridLatestServiceImpl extends BaseServiceImpl<GridLatestDao, GridLa
* @Date 2020/8/3 * @Date 2020/8/3
**/ **/
@Override @Override
public LatestGridInfoResultDTO latestGridInfo(LatestGridInfoFormDTO formDTO) { public List<LatestGridInfoResultDTO> latestGridInfo(LatestGridInfoFormDTO formDTO) {
return baseDao.selectLatestGridInfo(formDTO); return baseDao.selectLatestGridInfo(formDTO);
} }

2
epmet-user/epmet-user-server/src/main/resources/mapper/GridLatestDao.xml

@ -109,6 +109,6 @@
AND gl.CUSTOMER_USER_ID = #{userId} AND gl.CUSTOMER_USER_ID = #{userId}
ORDER BY ORDER BY
gl.LATEST_TIME DESC gl.LATEST_TIME DESC
LIMIT 1 LIMIT #{top}
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save