SceneEditServiceImpl.java 3.7 KB

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