SceneEditServiceImpl.java 4.1 KB

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