SceneEditServiceImpl.java 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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.ScenePro;
  16. import com.fdkankan.scene.service.ISceneEditService;
  17. import com.fdkankan.scene.service.ISceneProService;
  18. import com.fdkankan.scene.vo.BaseSceneParamVO;
  19. import com.fdkankan.scene.vo.SceneAuthVO;
  20. import java.util.Date;
  21. import java.util.List;
  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. @Override
  41. public SceneAuthVO getAuth(BaseSceneParamVO param) throws Exception{
  42. ScenePro scenePro = sceneProService.getOne(
  43. new LambdaQueryWrapper<ScenePro>()
  44. .eq(ScenePro::getNum, param.getNum())
  45. .eq(ScenePro::getPayStatus,PayStatus.PAY.code())
  46. .in(ScenePro::getSceneStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code()));
  47. if(scenePro == null){
  48. throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
  49. }
  50. //判断该场景是否属于增值权益
  51. boolean isVip = false;
  52. //获取该相机是否有权益
  53. boolean isExpired = false;
  54. ResultData<Camera> cameraResultData = platformGoodsClient.getCameraById(scenePro.getCameraId());
  55. if(!cameraResultData.getSuccess()){
  56. throw new Exception(ServerCode.FEIGN_REQUEST_FAILD.message());
  57. }
  58. Camera camera = cameraResultData.getData();
  59. if(camera != null){
  60. ResultData<UserIncrement> incrementResultData = platformUserClient
  61. .getUserIncrementByCameraId(camera.getId());
  62. if(!incrementResultData.getSuccess()){
  63. throw new Exception(ServerCode.FEIGN_REQUEST_FAILD.message());
  64. }
  65. UserIncrement userIncrement = incrementResultData.getData();
  66. if(userIncrement != null){
  67. if( userIncrement.getIsExpired().intValue() == 0){
  68. isVip = true;
  69. }
  70. if(userIncrement.getIsExpired().intValue() == 1){
  71. isExpired = true;
  72. }
  73. }else{
  74. Date date = DateUtil.parse("2021-09-09 00:00:00", DateExtUtil.dateStyle);
  75. //非07批次的放开
  76. String pc = camera.getSnCode().substring(0,2);
  77. if(!pc.equals("07") ){
  78. if(camera.getCreateTime()!=null && date.after(camera.getCreateTime())){
  79. isVip = true;
  80. isExpired = false;
  81. }
  82. }
  83. }
  84. }
  85. return SceneAuthVO.builder().isExpired(isExpired).isVip(isVip).build();
  86. }
  87. }