SceneEditServiceImpl.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.fdkankan.scene.service.impl;
  2. import cn.hutool.core.date.DateUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.fdkankan.common.constant.ErrorCode;
  5. import com.fdkankan.common.constant.PayStatus;
  6. import com.fdkankan.common.constant.SceneStatus;
  7. import com.fdkankan.common.constant.ServerCode;
  8. import com.fdkankan.common.exception.BusinessException;
  9. import com.fdkankan.common.response.ResultData;
  10. import com.fdkankan.common.util.DateExtUtil;
  11. import com.fdkankan.platform.api.feign.PlatformGoodsClient;
  12. import com.fdkankan.platform.api.feign.PlatformUserClient;
  13. import com.fdkankan.platform.api.dto.Camera;
  14. import com.fdkankan.platform.api.dto.UserIncrement;
  15. import com.fdkankan.scene.entity.ScenePlus;
  16. import com.fdkankan.scene.service.ISceneEditService;
  17. import com.fdkankan.scene.service.IScenePlusService;
  18. import com.fdkankan.scene.service.ISceneProService;
  19. import com.fdkankan.scene.vo.BaseSceneParamVO;
  20. import com.fdkankan.scene.vo.SceneAuthVO;
  21. import java.util.Date;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Service;
  24. /**
  25. * <p>
  26. * TODO
  27. * </p>
  28. *
  29. * @author dengsixing
  30. * @since 2022/3/11
  31. **/
  32. @Service
  33. public class SceneEditServiceImpl implements ISceneEditService {
  34. @Autowired
  35. ISceneProService sceneProService;
  36. @Autowired
  37. PlatformGoodsClient platformGoodsClient;
  38. @Autowired
  39. PlatformUserClient platformUserClient;
  40. @Autowired
  41. IScenePlusService scenePlusService;
  42. @Override
  43. public SceneAuthVO getAuth(BaseSceneParamVO param) throws Exception{
  44. ScenePlus scenePlus = scenePlusService.getOne(
  45. new LambdaQueryWrapper<ScenePlus>().eq(ScenePlus::getNum, param.getNum())
  46. .eq(ScenePlus::getPayStatus, PayStatus.PAY.code())
  47. .in(ScenePlus::getSceneStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code()));
  48. if(scenePlus == null){
  49. throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
  50. }
  51. //判断该场景是否属于增值权益
  52. boolean isVip = false;
  53. //获取该相机是否有权益
  54. boolean isExpired = false;
  55. ResultData<Camera> cameraResultData = platformGoodsClient.getCameraById(scenePlus.getCameraId());
  56. if(!cameraResultData.getSuccess()){
  57. throw new Exception(ServerCode.FEIGN_REQUEST_FAILD.message());
  58. }
  59. Camera camera = cameraResultData.getData();
  60. if(camera != null){
  61. ResultData<UserIncrement> incrementResultData = platformUserClient
  62. .getUserIncrementByCameraId(camera.getId());
  63. if(!incrementResultData.getSuccess()){
  64. throw new Exception(ServerCode.FEIGN_REQUEST_FAILD.message());
  65. }
  66. UserIncrement userIncrement = incrementResultData.getData();
  67. if(userIncrement != null){
  68. if( userIncrement.getIsExpired().intValue() == 0){
  69. isVip = true;
  70. }
  71. if(userIncrement.getIsExpired().intValue() == 1){
  72. isExpired = true;
  73. }
  74. }else{
  75. Date date = DateUtil.parse("2021-09-09 00:00:00", DateExtUtil.dateStyle);
  76. //非07批次的放开
  77. String pc = camera.getSnCode().substring(0,2);
  78. if(!pc.equals("07") ){
  79. if(camera.getCreateTime()!=null && date.after(camera.getCreateTime())){
  80. isVip = true;
  81. isExpired = false;
  82. }
  83. }
  84. }
  85. }
  86. return SceneAuthVO.builder().isExpired(isExpired).isVip(isVip).build();
  87. }
  88. }