Browse Source

初步测试

lyhzzz 3 years ago
parent
commit
612919c5cf
49 changed files with 653 additions and 118 deletions
  1. 2 0
      src/main/java/com/fdkankan/ucenter/common/RedisKeyUtil.java
  2. 1 1
      src/main/java/com/fdkankan/ucenter/constant/LoginConstant.java
  3. 18 0
      src/main/java/com/fdkankan/ucenter/constant/OrderConstant.java
  4. 12 0
      src/main/java/com/fdkankan/ucenter/constant/QrCodeFilePath.java
  5. 1 0
      src/main/java/com/fdkankan/ucenter/controller/FolderController.java
  6. 45 0
      src/main/java/com/fdkankan/ucenter/controller/InterComMessageController.java
  7. 11 0
      src/main/java/com/fdkankan/ucenter/controller/OrderController.java
  8. 2 2
      src/main/java/com/fdkankan/ucenter/controller/OrderWechatPayController.java
  9. 6 4
      src/main/java/com/fdkankan/ucenter/controller/SceneController.java
  10. 0 21
      src/main/java/com/fdkankan/ucenter/controller/SceneRepairLogController.java
  11. 26 0
      src/main/java/com/fdkankan/ucenter/controller/app/InvoiceController.java
  12. 93 0
      src/main/java/com/fdkankan/ucenter/entity/IntercomMessage.java
  13. 0 5
      src/main/java/com/fdkankan/ucenter/entity/SceneEditControls.java
  14. 0 5
      src/main/java/com/fdkankan/ucenter/entity/SceneEditInfo.java
  15. 0 5
      src/main/java/com/fdkankan/ucenter/entity/SceneEditInfoExt.java
  16. 0 5
      src/main/java/com/fdkankan/ucenter/entity/ScenePlus.java
  17. 0 5
      src/main/java/com/fdkankan/ucenter/entity/ScenePlusExt.java
  18. 1 1
      src/main/java/com/fdkankan/ucenter/generate/AutoGenerate.java
  19. 18 0
      src/main/java/com/fdkankan/ucenter/mapper/IIntercomMessageMapper.java
  20. 1 1
      src/main/java/com/fdkankan/ucenter/mapper/ISceneCooperationMapper.java
  21. 16 3
      src/main/java/com/fdkankan/ucenter/pay/factory/impl/PayOrderService.java
  22. 5 0
      src/main/java/com/fdkankan/ucenter/service/IDownloadOrderService.java
  23. 16 0
      src/main/java/com/fdkankan/ucenter/service/IIntercomMessageService.java
  24. 10 0
      src/main/java/com/fdkankan/ucenter/service/IInvoiceService.java
  25. 4 0
      src/main/java/com/fdkankan/ucenter/service/IOrderService.java
  26. 6 4
      src/main/java/com/fdkankan/ucenter/service/ISceneCooperationService.java
  27. 4 0
      src/main/java/com/fdkankan/ucenter/service/IUserService.java
  28. 27 0
      src/main/java/com/fdkankan/ucenter/service/impl/DownloadOrderServiceImpl.java
  29. 4 2
      src/main/java/com/fdkankan/ucenter/service/impl/FolderSceneServiceImpl.java
  30. 9 2
      src/main/java/com/fdkankan/ucenter/service/impl/FolderServiceImpl.java
  31. 20 0
      src/main/java/com/fdkankan/ucenter/service/impl/IntercomMessageServiceImpl.java
  32. 89 2
      src/main/java/com/fdkankan/ucenter/service/impl/InvoiceServiceImpl.java
  33. 10 4
      src/main/java/com/fdkankan/ucenter/service/impl/LoginService.java
  34. 37 7
      src/main/java/com/fdkankan/ucenter/service/impl/OrderServiceImpl.java
  35. 27 5
      src/main/java/com/fdkankan/ucenter/service/impl/SceneCooperationServiceImpl.java
  36. 0 1
      src/main/java/com/fdkankan/ucenter/service/impl/SceneEditControlsServiceImpl.java
  37. 1 1
      src/main/java/com/fdkankan/ucenter/service/impl/ScenePlusServiceImpl.java
  38. 17 1
      src/main/java/com/fdkankan/ucenter/service/impl/SceneProServiceImpl.java
  39. 30 4
      src/main/java/com/fdkankan/ucenter/service/impl/UserServiceImpl.java
  40. 22 6
      src/main/java/com/fdkankan/ucenter/task/TaskService.java
  41. 3 0
      src/main/java/com/fdkankan/ucenter/util/DateUserUtil.java
  42. 14 0
      src/main/java/com/fdkankan/ucenter/vo/request/DownNumParam.java
  43. 16 0
      src/main/java/com/fdkankan/ucenter/vo/request/IntercomMessageParam.java
  44. 1 1
      src/main/java/com/fdkankan/ucenter/vo/response/CartVo.java
  45. 2 2
      src/main/java/com/fdkankan/ucenter/vo/response/GoodsSkuVo.java
  46. 5 0
      src/main/resources/mapper/ucenter/IntercomMessageMapper.xml
  47. 2 2
      src/main/resources/mapper/ucenter/SceneCooperationMapper.xml
  48. 15 12
      src/main/resources/mapper/ucenter/SceneProMapper.xml
  49. 4 4
      src/main/resources/mapper/ucenter/SceneUpgradeMapper.xml

+ 2 - 0
src/main/java/com/fdkankan/ucenter/common/RedisKeyUtil.java

@@ -10,4 +10,6 @@ public class RedisKeyUtil {
     public static final String SCENE_NUMS_LOADING = "4dkankan:scene:nums:loading";
     public static final String SCENE_VIEW_COUNT = "4dkankan:scene:nums:view_count:";
 
+    public static final String QRCODE= "4dkankan:qr_code:";
+
 }

+ 1 - 1
src/main/java/com/fdkankan/ucenter/constant/LoginConstant.java

@@ -113,6 +113,6 @@ public class LoginConstant {
     public static final String FAILURE_MSG_3034 = "服务器繁忙,请重试!";
 
     public static final int FAILURE_CODE_3035 = 3035;
-    public static final String FAILURE_MSG_3035 = "登录二维码已失效,请重新获取";
+    public static final String FAILURE_MSG_3035 = "二维码已失效,请重新获取";
 
 }

+ 18 - 0
src/main/java/com/fdkankan/ucenter/constant/OrderConstant.java

@@ -0,0 +1,18 @@
+package com.fdkankan.ucenter.constant;
+
+// 8001-9000 订单状态码
+public class OrderConstant {
+
+    public static final int FAILURE_CODE_8001 = 8001;
+    public static final String FAILURE_MSG_8001 = "订单不存在";
+
+
+    public static final int FAILURE_CODE_8002 = 8002;
+    public static final String FAILURE_MSG_8002 = "支付失败";
+
+    public static final int FAILURE_CODE_8003 = 8003;
+    public static final String FAILURE_MSG_8003 = "开票金额超过范围";
+
+    public static final int FAILURE_CODE_8004 = 8004;
+    public static final String FAILURE_MSG_8004 = "支付方式异常";
+}

+ 12 - 0
src/main/java/com/fdkankan/ucenter/constant/QrCodeFilePath.java

@@ -0,0 +1,12 @@
+package com.fdkankan.ucenter.constant;
+
+public class QrCodeFilePath {
+
+//    public static final String LOGIN_QR_CODE_PATH = "D:\\temp\\4Dkankana\\login\\qrcode\\";
+//    public static final String ALI_QRCODE_FOLDER = "D:\\temp\\4Dkankana\\alicode\\";
+//    public static final String WEIXIN_QRCODE_FOLDER = "D:\\temp\\4Dkankana\\weixincode\\";
+
+    public static final String LOGIN_QR_CODE_PATH = "/mnt/4Dkankan/login/qrcode/";
+    public static final String ALI_QRCODE_FOLDER = "/mnt/4Dkankan/alicode/";
+    public static final String WEIXIN_QRCODE_FOLDER = "/mnt/4Dkankan/weixincode/";
+}

+ 1 - 0
src/main/java/com/fdkankan/ucenter/controller/FolderController.java

@@ -49,6 +49,7 @@ public class FolderController {
     @PostMapping("/update")
     public Result update(@RequestBody FolderParam param,@RequestHeader String token){
         String username = JwtUtil.getUsername(token);
+        param.setUserName(username);
         folderService.updateByParam(param,username);
         return Result.success();
     }

+ 45 - 0
src/main/java/com/fdkankan/ucenter/controller/InterComMessageController.java

@@ -0,0 +1,45 @@
+package com.fdkankan.ucenter.controller;
+
+import com.fdkankan.ucenter.common.Result;
+import com.fdkankan.ucenter.constant.LoginConstant;
+import com.fdkankan.ucenter.entity.IntercomMessage;
+import com.fdkankan.ucenter.mapper.IIntercomMessageMapper;
+import com.fdkankan.ucenter.service.IIntercomMessageService;
+import com.fdkankan.ucenter.vo.request.IntercomMessageParam;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+@RestController
+@RequestMapping("/api/intercomMessage")
+public class InterComMessageController {
+
+    @Autowired
+    private IIntercomMessageService intercomMessageService;
+
+    /**
+     * 保存留言
+     */
+    @RequestMapping(value = "/leave", method = RequestMethod.POST)
+    public Result leave(@RequestBody IntercomMessageParam message) throws Exception {
+        if (StringUtils.isEmpty(message.getContact()) || StringUtils.isEmpty(message.getContent())){
+            return Result.failure(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
+        }
+
+        IntercomMessage interComMessage = new IntercomMessage();
+        interComMessage.setContent(message.getContent());
+        interComMessage.setContact(message.getContact());
+        interComMessage.setCreateTime(new Date());
+        interComMessage.setUpdateTime(new Date());
+        interComMessage.setRecStatus("A");
+        interComMessage.setNoteType(1);
+        interComMessage.setState(1);
+        intercomMessageService.save(interComMessage);
+        return Result.success();
+    }
+}

+ 11 - 0
src/main/java/com/fdkankan/ucenter/controller/OrderController.java

@@ -4,6 +4,7 @@ package com.fdkankan.ucenter.controller;
 import com.fdkankan.common.util.JwtUtil;
 import com.fdkankan.ucenter.common.Result;
 import com.fdkankan.ucenter.service.IOrderService;
+import com.fdkankan.ucenter.vo.request.DownNumParam;
 import com.fdkankan.ucenter.vo.request.OrderParam;
 import com.fdkankan.ucenter.vo.request.PlaceOrderParam;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -74,5 +75,15 @@ public class OrderController {
         return Result.success(orderService.getIncrementOrDownloadPrice(param));
     }
 
+    /**
+     * 下载场景提交订单
+     */
+    @PostMapping("/downloadOrder")
+    public Result downloadOrder(@RequestBody DownNumParam param, @RequestHeader String token){
+        String username = JwtUtil.getUsername(token);
+        param.setUserName(username);
+        return Result.success(orderService.downloadOrder(param));
+    }
+
 }
 

+ 2 - 2
src/main/java/com/fdkankan/ucenter/controller/OrderWechatPayController.java

@@ -223,13 +223,13 @@ public class OrderWechatPayController extends BaseController {
                         if (redisUtil.hasKey(orderSn + "_expansion")){
                             redisUtil.del(orderSn + "_expansion");
                         }
-                        redisUtil.set(orderSn + "_expansion", out_trade_no);
+                        redisUtil.set(orderSn + "_expansion", out_trade_no,5*60);
                     }else {
                         log.warn("orderSnE:" + orderSnE);
                         if (redisUtil.hasKey(orderSnE)){
                             redisUtil.del(orderSnE);
                         }
-                        redisUtil.set(orderSnE, out_trade_no);
+                        redisUtil.set(orderSnE, out_trade_no,5*60);
                     }
                     orderStrategyFactory.doHandler(orderSn, trade_no, openid, out_trade_no.split("_")[1], 0);
                     log.warn("微信支付成功,订单号:"  + orderSn);

+ 6 - 4
src/main/java/com/fdkankan/ucenter/controller/SceneController.java

@@ -5,11 +5,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.dtflys.forest.annotation.Get;
 import com.fdkankan.common.util.JwtUtil;
 import com.fdkankan.ucenter.common.Result;
-import com.fdkankan.ucenter.service.IDownService;
-import com.fdkankan.ucenter.service.ISceneProService;
-import com.fdkankan.ucenter.service.ISceneUpgradeToV4Service;
-import com.fdkankan.ucenter.service.IUserService;
+import com.fdkankan.ucenter.service.*;
 import com.fdkankan.ucenter.vo.request.SceneParam;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -18,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  * 场景表 前端控制器
@@ -38,6 +38,8 @@ public class SceneController {
     IDownService downService;
     @Autowired
     private ISceneUpgradeToV4Service sceneUpgradeToV4Service;
+    @Autowired
+    ISceneCooperationService sceneCooperationService;
 
     @PostMapping("/findSceneNumber")
     public Result findSceneNumber(@RequestHeader String token){

+ 0 - 21
src/main/java/com/fdkankan/ucenter/controller/SceneRepairLogController.java

@@ -1,21 +0,0 @@
-package com.fdkankan.ucenter.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 场景数据迁移日志--V4版本稳定后可删除 前端控制器
- * </p>
- *
- * @author 
- * @since 2022-07-18
- */
-@RestController
-@RequestMapping("/ucenter/sceneRepairLog")
-public class SceneRepairLogController {
-
-}
-

+ 26 - 0
src/main/java/com/fdkankan/ucenter/controller/app/InvoiceController.java

@@ -0,0 +1,26 @@
+package com.fdkankan.ucenter.controller.app;
+
+import com.fdkankan.ucenter.common.Result;
+import com.fdkankan.ucenter.service.IInvoiceService;
+import com.fdkankan.ucenter.vo.request.InvoiceParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/api/user/invoice")
+public class InvoiceController {
+
+    @Autowired
+    IInvoiceService invoiceService;
+
+    /**
+     * 申请开票
+     * @param param
+     * @return
+     */
+    @RequestMapping(value = "/open", method = RequestMethod.POST)
+    public Result open(@RequestBody InvoiceParam param, @RequestHeader String token) throws Exception {
+        return Result.success(invoiceService.openInvoice( param,token));
+    }
+
+}

+ 93 - 0
src/main/java/com/fdkankan/ucenter/entity/IntercomMessage.java

@@ -0,0 +1,93 @@
+package com.fdkankan.ucenter.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 咨询留言表
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-22
+ */
+@Getter
+@Setter
+@TableName("t_intercom_message")
+public class IntercomMessage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 邮箱
+     */
+    @TableField("email")
+    private String email;
+
+    /**
+     * 内容
+     */
+    @TableField("content")
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 电话
+     */
+    @TableField("phone")
+    private String phone;
+
+    /**
+     * 备注等级
+     */
+    @TableField("note_type")
+    private Integer noteType;
+
+    /**
+     * 备注内容
+     */
+    @TableField("note_content")
+    private String noteContent;
+
+    /**
+     * 状态, 1:未处理,0已处理
+     */
+    @TableField("state")
+    private Integer state;
+
+    /**
+     * 联系方式:邮箱、电话……
+     */
+    @TableField("contact")
+    private String contact;
+
+
+}

+ 0 - 5
src/main/java/com/fdkankan/ucenter/entity/SceneEditControls.java

@@ -100,11 +100,6 @@ public class SceneEditControls implements Serializable {
     @TableField("update_time")
     private Date updateTime;
 
-    /**
-     * 0-有效,1-删除, 2-禁用
-     */
-    @TableField("tb_status")
-    private Integer tbStatus;
 
     /**
      * 记录的状态,A: 生效,I: 禁用

+ 0 - 5
src/main/java/com/fdkankan/ucenter/entity/SceneEditInfo.java

@@ -166,11 +166,6 @@ public class SceneEditInfo implements Serializable {
     @TableField("update_time")
     private Date updateTime;
 
-    /**
-     * 0-有效,1-删除, 2-禁用
-     */
-    @TableField("tb_status")
-    private Integer tbStatus;
 
     /**
      * 记录的状态,A: 生效,I: 禁用

+ 0 - 5
src/main/java/com/fdkankan/ucenter/entity/SceneEditInfoExt.java

@@ -83,11 +83,6 @@ public class SceneEditInfoExt implements Serializable {
     private Date updateTime;
 
     /**
-     * 0-有效,1-删除, 2-禁用
-     */
-    @TableField("tb_status")
-    private Integer tbStatus;
-    /**
      * 记录的状态,A: 生效,I: 禁用
      */
     @TableField("rec_status")

+ 0 - 5
src/main/java/com/fdkankan/ucenter/entity/ScenePlus.java

@@ -103,11 +103,6 @@ public class ScenePlus implements Serializable {
     @TableField("update_time")
     private String updateTime;
 
-    /**
-     * 0-有效,1-删除, 2-禁用
-     */
-    @TableField("tb_status")
-    private Integer tbStatus;
 
     /**
      * 记录的状态,A: 生效,I: 禁用

+ 0 - 5
src/main/java/com/fdkankan/ucenter/entity/ScenePlusExt.java

@@ -147,11 +147,6 @@ public class ScenePlusExt implements Serializable {
     @TableField("update_time")
     private String updateTime;
 
-    /**
-     * 0-有效,1-删除, 2-禁用
-     */
-    @TableField("tb_status")
-    private Integer tbStatus;
 
     /**
      * 记录的状态,A: 生效,I: 禁用

+ 1 - 1
src/main/java/com/fdkankan/ucenter/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") ;
 
         generate(path,"ucenter", getTables(new String[]{
-                "t_scene_repair_log",
+                "t_intercom_message",
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 18 - 0
src/main/java/com/fdkankan/ucenter/mapper/IIntercomMessageMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.ucenter.mapper;
+
+import com.fdkankan.ucenter.entity.IntercomMessage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 咨询留言表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-22
+ */
+@Mapper
+public interface IIntercomMessageMapper extends BaseMapper<IntercomMessage> {
+
+}

+ 1 - 1
src/main/java/com/fdkankan/ucenter/mapper/ISceneCooperationMapper.java

@@ -20,5 +20,5 @@ public interface ISceneCooperationMapper extends BaseMapper<SceneCooperation> {
 
     Long getCooperationScenePlusNum(@Param("userId")Long userId,  @Param("sceneSource")List<Integer> sceneSourceList);
 
-    Long getCooperationSceneProNum(Long userId, List<Integer> sceneSourceList);
+    Long getCooperationSceneProNum(@Param("userId") Long userId, @Param("sceneSource")List<Integer> sceneSourceList);
 }

+ 16 - 3
src/main/java/com/fdkankan/ucenter/pay/factory/impl/PayOrderService.java

@@ -10,6 +10,9 @@ import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.MD5;
+import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.ucenter.common.RedisKeyUtil;
+import com.fdkankan.ucenter.constant.QrCodeFilePath;
 import com.fdkankan.ucenter.pay.alipay.AlipayDefaultConfig;
 import com.fdkankan.ucenter.pay.alipay.sdk.AlipayGoodsDetail;
 import com.fdkankan.ucenter.pay.alipay.sdk.AlipayService;
@@ -50,6 +53,8 @@ public class PayOrderService {
 
     @Value("${main.url}")
     private String mainUrl;
+    @Autowired
+    RedisUtil redisUtil;
 
     public JSONObject aliPayScanPay(String orderSn, String subject, String body, BigDecimal totalFee, List<AlipayGoodsDetail> goodsDetailList) throws Exception{
         AlipaymentEx alipaymentEx = new AlipaymentEx();
@@ -61,12 +66,15 @@ public class PayOrderService {
         alipaymentEx.setOperatorId("test_operator_id");
         alipaymentEx.setTimeoutExpress("120m");
         alipaymentEx.setGoodsDetailList(goodsDetailList);
-        String pngPath = ConstantFilePath.ALI_QRCODE_FOLDER + orderSn + ".png";
+        String pngPath = QrCodeFilePath.ALI_QRCODE_FOLDER + orderSn + ".png";
         try {
             Map<String, String> alipayMap = alipayService.tradePrecreate(alipaymentEx, mainUrl + alipayDefaultConfig.getNotifyUrl());
             if ("0".equals(alipayMap.get("code"))){
                 BufferedImage image = AlipayUtil.getQRCodeImge(alipayMap.get("qr_code"));
                 File file = new File(pngPath);
+                if(!file.getParentFile().exists()){
+                    file.mkdirs();
+                }
                 if (file.exists()){
                     file.delete();
                 }
@@ -78,10 +86,11 @@ public class PayOrderService {
            log.error(e.getMessage());
             throw new BusinessException(ErrorCode.ERROR_MSG);
         }
-
+        redisUtil.set(RedisKeyUtil.QRCODE + orderSn,orderSn,5*60);
         JSONObject j = new JSONObject();
         j.put("src", pngPath.replace(ConstantFilePath.BASE_PATH, ""));
         j.put("price", totalFee);
+
         return j;
     }
 
@@ -172,12 +181,15 @@ public class PayOrderService {
         data.put("trade_type", "NATIVE");  // 此处指定为扫码支付
         data.put("product_id", orderSn); //多个商品,使用订单号
 
-        String pngPath = ConstantFilePath.WEIXIN_QRCODE_FOLDER + orderSn + ".png";
+        String pngPath = QrCodeFilePath.WEIXIN_QRCODE_FOLDER + orderSn + ".png";
         try {
             //发起支付
             Map<String, String> resp = wxPay.unifiedOrder(data);
             BufferedImage image = AlipayUtil.getQRCodeImge(resp.get("code_url"));
             File file = new File(pngPath);
+            if(!file.getParentFile().exists()){
+                file.mkdirs();
+            }
             if (file.exists()){
                 file.delete();
             }
@@ -186,6 +198,7 @@ public class PayOrderService {
             log.error(e.getMessage());
             throw new BusinessException(ErrorCode.ERROR_MSG);
         }
+        redisUtil.set(RedisKeyUtil.QRCODE + orderSn,orderSn,5*60);
         JSONObject j = new JSONObject();
         j.put("src", pngPath.replace(ConstantFilePath.BASE_PATH, ""));
         j.put("price", totalFee.divide(new BigDecimal("100"), 2));

+ 5 - 0
src/main/java/com/fdkankan/ucenter/service/IDownloadOrderService.java

@@ -3,8 +3,11 @@ package com.fdkankan.ucenter.service;
 import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.ucenter.entity.DownloadOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.ucenter.vo.request.DownNumParam;
 import com.fdkankan.ucenter.vo.request.IncrementOrderParam;
 
+import java.math.BigDecimal;
+
 /**
  * <p>
  * 下载次数订单表 服务类
@@ -21,6 +24,8 @@ public interface IDownloadOrderService extends IService<DownloadOrder> {
     DownloadOrder getByOrderSn(String orderSn);
 
     boolean paySuccessDownloadOrder(String orderSn, String tradeNo, int paymentTypeName);
+
+    DownloadOrder insertDownloadOrder(Long id, DownNumParam param, BigDecimal bigDecimal);
 }
 
 

+ 16 - 0
src/main/java/com/fdkankan/ucenter/service/IIntercomMessageService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.ucenter.service;
+
+import com.fdkankan.ucenter.entity.IntercomMessage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 咨询留言表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-22
+ */
+public interface IIntercomMessageService extends IService<IntercomMessage> {
+
+}

+ 10 - 0
src/main/java/com/fdkankan/ucenter/service/IInvoiceService.java

@@ -1,9 +1,13 @@
 package com.fdkankan.ucenter.service;
 
+import com.fdkankan.ucenter.common.Result;
 import com.fdkankan.ucenter.entity.Invoice;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.ucenter.vo.request.InvoiceParam;
 import com.fdkankan.ucenter.vo.request.PlaceOrderParam;
 
+import java.math.BigDecimal;
+
 /**
  * <p>
  * 发票表 服务类
@@ -21,4 +25,10 @@ public interface IInvoiceService extends IService<Invoice> {
     Invoice getByDownId(Long downId);
 
     void saveByOrder(Long userId, PlaceOrderParam param);
+
+    Invoice openInvoice(InvoiceParam param, String token);
+
+    void checkInvoice(Long orderId, Integer consumeType);
+
+    BigDecimal getMoney(Long orderId, Integer consumeType);
 }

+ 4 - 0
src/main/java/com/fdkankan/ucenter/service/IOrderService.java

@@ -1,8 +1,10 @@
 package com.fdkankan.ucenter.service;
 
 import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.ucenter.entity.DownloadOrder;
 import com.fdkankan.ucenter.entity.Order;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.ucenter.vo.request.DownNumParam;
 import com.fdkankan.ucenter.vo.request.OrderParam;
 import com.fdkankan.ucenter.vo.request.PlaceOrderParam;
 import com.fdkankan.ucenter.vo.response.GoodsSkuVo;
@@ -30,4 +32,6 @@ public interface IOrderService extends IService<Order> {
     boolean queryOrderStatus(OrderParam param) throws Exception;
 
     Order getByOrderSn(String orderSn);
+
+    DownloadOrder downloadOrder(DownNumParam param);
 }

+ 6 - 4
src/main/java/com/fdkankan/ucenter/service/ISceneCooperationService.java

@@ -1,14 +1,12 @@
 package com.fdkankan.ucenter.service;
 
 import com.alibaba.fastjson.JSONObject;
-import com.fdkankan.ucenter.entity.SceneCooperation;
+import com.fdkankan.ucenter.entity.*;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.fdkankan.ucenter.entity.ScenePlus;
-import com.fdkankan.ucenter.entity.ScenePro;
-import com.fdkankan.ucenter.entity.SceneResource;
 import com.fdkankan.ucenter.vo.request.SceneCooperationParam;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -36,4 +34,8 @@ public interface ISceneCooperationService extends IService<SceneCooperation> {
     void deleteCooperation(SceneCooperationParam param, String username);
 
     List<SceneResource> getResourceByNum(String sceneNum);
+
+    List<String> getNumByUserIds(List<Long> userIds);
+
+    HashMap<String, User> getByNumList(List<String> numList);
 }

+ 4 - 0
src/main/java/com/fdkankan/ucenter/service/IUserService.java

@@ -50,4 +50,8 @@ public interface IUserService extends IService<User> {
     HashMap<Long, User> getByIds(List<Long> userIds);
 
     Long getCountByNickName(String nickName);
+
+    List<Long> getLikeUserName(String userName);
+
+    User getByToken(String token);
 }

+ 27 - 0
src/main/java/com/fdkankan/ucenter/service/impl/DownloadOrderServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.common.util.NumberUtils;
 import com.fdkankan.ucenter.entity.DownloadOrder;
 import com.fdkankan.ucenter.entity.Invoice;
 import com.fdkankan.ucenter.entity.User;
@@ -14,12 +15,16 @@ import com.fdkankan.ucenter.service.IDownloadOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.ucenter.service.IInvoiceService;
 import com.fdkankan.ucenter.service.IUserService;
+import com.fdkankan.ucenter.util.DateUserUtil;
+import com.fdkankan.ucenter.vo.request.DownNumParam;
 import com.fdkankan.ucenter.vo.request.IncrementOrderParam;
 import com.fdkankan.ucenter.vo.response.DownloadVo;
+import com.sun.javafx.font.directwrite.DWFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -85,4 +90,26 @@ public class DownloadOrderServiceImpl extends ServiceImpl<IDownloadOrderMapper,
         return this.update(updateWrapper);
 
     }
+
+    @Override
+    public DownloadOrder insertDownloadOrder(Long userId, DownNumParam param, BigDecimal price) {
+        BigDecimal total = price.multiply(new BigDecimal(param.getCount()));
+
+        DownloadOrder downloadOrderEntity = new DownloadOrder();
+        downloadOrderEntity.setOrderSn(NumberUtils.getOrderSn());
+        downloadOrderEntity.setAmount(total);
+        downloadOrderEntity.setPayType(param.getPayType());
+        downloadOrderEntity.setPayStatus(-1);
+        downloadOrderEntity.setUserId(userId);
+        downloadOrderEntity.setCount(param.getCount());
+        downloadOrderEntity.setAbroad(param.getAbroad());
+        downloadOrderEntity.setStatus(1);
+        downloadOrderEntity.setSceneNum(param.getSceneNum());
+        downloadOrderEntity.setSceneName(param.getSceneName());
+        downloadOrderEntity.setRecStatus("A");
+        downloadOrderEntity.setCreateTime(DateUserUtil.getDate(new Date()));
+        downloadOrderEntity.setUpdateTime(DateUserUtil.getDate(new Date()));
+        this.save(downloadOrderEntity);
+        return downloadOrderEntity;
+    }
 }

+ 4 - 2
src/main/java/com/fdkankan/ucenter/service/impl/FolderSceneServiceImpl.java

@@ -39,7 +39,9 @@ public class FolderSceneServiceImpl extends ServiceImpl<IFolderSceneMapper, Fold
         wrapper.in(FolderScene::getFolderId,delIds);
         List<FolderScene> list = this.list(wrapper);
         List<Long> sceneIds = list.parallelStream().map(FolderScene::getSceneId).collect(Collectors.toList());
-        sceneProService.deleteByIds(sceneIds);
+        if(sceneIds.size() >0){
+            sceneProService.deleteByIds(sceneIds);
+        }
         List<Long> ids = list.parallelStream().map(FolderScene::getId).collect(Collectors.toList());
         this.removeByIds(ids);
     }
@@ -67,7 +69,7 @@ public class FolderSceneServiceImpl extends ServiceImpl<IFolderSceneMapper, Fold
 
     private Folder getParentFolder(HashMap<Long, Folder> folderMap, Long id) {
         Folder folder = folderMap.get(id);
-        if(folder.getParentId()!=null){
+        if(folder != null && folder.getParentId()!=null && folderMap.containsKey(folder.getParentId())){
             return getParentFolder(folderMap,folder.getParentId());
         }
         return folder;

+ 9 - 2
src/main/java/com/fdkankan/ucenter/service/impl/FolderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fdkankan.ucenter.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.constant.SceneConstant;
 import com.fdkankan.common.exception.BusinessException;
@@ -25,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -55,6 +57,8 @@ public class FolderServiceImpl extends ServiceImpl<IFolderMapper, Folder> implem
         Folder folderEntity = new Folder();
         BeanUtils.copyProperties(param, folderEntity);
         folderEntity.setUserId(user.getId());
+        folderEntity.setCreateTime(DateUserUtil.getDate(new Date()));
+        folderEntity.setUpdateTime(DateUserUtil.getDate(new Date()));
         this.save(folderEntity);
     }
 
@@ -120,7 +124,10 @@ public class FolderServiceImpl extends ServiceImpl<IFolderMapper, Folder> implem
             Folder folderEntity = null;
             for (String folderId : folderIds) {
                 folderEntity = this.getById(Long.valueOf(folderId));
-                folderEntity.setParentId(param.getParentId());
+
+                LambdaUpdateWrapper<Folder> wrapper = new LambdaUpdateWrapper<>();
+                wrapper.eq(Folder::getId,folderId);
+                wrapper.set(Folder::getParentId,param.getParentId());
                 if(!folderEntity.getType().equals(param.getType())){
                     throw new BusinessException(SceneConstant.FAILURE_CODE_5030, SceneConstant.FAILURE_MSG_5030);
                 }
@@ -132,7 +139,7 @@ public class FolderServiceImpl extends ServiceImpl<IFolderMapper, Folder> implem
                     }
                     throw new BusinessException(SceneConstant.FAILURE_CODE_5030, SceneConstant.FAILURE_MSG_5030);
                 }
-                this.updateById(folderEntity);
+                this.update(wrapper);
             }
         }
         if(StringUtils.isNotEmpty(param.getSceneIds())){

+ 20 - 0
src/main/java/com/fdkankan/ucenter/service/impl/IntercomMessageServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.ucenter.service.impl;
+
+import com.fdkankan.ucenter.entity.IntercomMessage;
+import com.fdkankan.ucenter.mapper.IIntercomMessageMapper;
+import com.fdkankan.ucenter.service.IIntercomMessageService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 咨询留言表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-22
+ */
+@Service
+public class IntercomMessageServiceImpl extends ServiceImpl<IIntercomMessageMapper, IntercomMessage> implements IIntercomMessageService {
+
+}

+ 89 - 2
src/main/java/com/fdkankan/ucenter/service/impl/InvoiceServiceImpl.java

@@ -1,12 +1,18 @@
 package com.fdkankan.ucenter.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.fdkankan.ucenter.entity.Invoice;
+import com.fdkankan.common.constant.AppConstant;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.ucenter.entity.*;
 import com.fdkankan.ucenter.mapper.IInvoiceMapper;
-import com.fdkankan.ucenter.service.IInvoiceService;
+import com.fdkankan.ucenter.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.ucenter.vo.request.InvoiceParam;
 import com.fdkankan.ucenter.vo.request.PlaceOrderParam;
+import com.sun.xml.bind.v2.model.core.ID;
+import org.aspectj.weaver.ast.Or;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -23,6 +29,15 @@ import java.util.List;
 @Service
 public class InvoiceServiceImpl extends ServiceImpl<IInvoiceMapper, Invoice> implements IInvoiceService {
 
+    @Autowired
+    IUserService userService;
+    @Autowired
+    IOrderService orderService;
+    @Autowired
+    IIncrementOrderService incrementOrderService;
+    @Autowired
+    IVirtualOrderService virtualOrderService;
+
     @Override
     public Invoice getByOrderId(Long orderId) {
         LambdaQueryWrapper<Invoice> wrapper = new LambdaQueryWrapper<>();
@@ -83,4 +98,76 @@ public class InvoiceServiceImpl extends ServiceImpl<IInvoiceMapper, Invoice> imp
         invoiceEntity.setMoney(new BigDecimal(param.getAmount()));
         this.save(invoiceEntity);
     }
+
+    @Override
+    public void checkInvoice(Long orderId, Integer consumeType) {
+        LambdaQueryWrapper<Invoice> wrapper = new LambdaQueryWrapper<>();
+        switch (consumeType){
+            case 0 : wrapper.eq(Invoice::getOrderId,orderId); break;
+            case 1 : wrapper.eq(Invoice::getVirtualOrderId,orderId); break;
+            case 2 :
+            case 3 : wrapper.eq(Invoice::getIncrementOrderId,orderId); break;
+        }
+        long count =  this.count(wrapper);
+        if(count >0){
+            throw new BusinessException(AppConstant.FAILURE_CODE_4021, AppConstant.FAILURE_MSG_4021);
+        }
+    }
+
+    @Override
+    public BigDecimal getMoney(Long orderId, Integer consumeType) {
+        LambdaQueryWrapper<Invoice> wrapper = new LambdaQueryWrapper<>();
+        BigDecimal money = BigDecimal.ZERO;
+        switch (consumeType){
+            case 0 :
+                Order order = orderService.getById(orderId);
+                if(order.getPaymentStatus().equals("paid")){
+                    money = order.getTotalAmount();
+                }
+                break;
+            case 1 :
+                VirtualOrder virtualOrder = virtualOrderService.getById(orderId);
+                if(virtualOrder.getPayStatus() == 1){
+                    money = virtualOrder.getAmount();
+                }
+                break;
+            case 2 :
+                IncrementOrder incrementOrder = incrementOrderService.getById(orderId);
+                if(incrementOrder.getPayStatus() == 1){
+                    money = incrementOrder.getAmount();
+                }
+                break;
+        }
+        return money;
+    }
+
+    @Override
+    public Invoice openInvoice(InvoiceParam param, String token) {
+        User user = userService.getByToken(token);
+        //验证是否已经开票
+        this.checkInvoice(param.getOrderId(),param.getConsumeType());
+        //获取开票金额
+        BigDecimal money = this.getMoney(param.getOrderId(),param.getConsumeType());
+
+        Invoice dbEntity = new Invoice();
+
+        BeanUtils.copyProperties(param, dbEntity);
+
+        dbEntity.setOrderId(null);
+        switch (param.getConsumeType()){
+            case 0: dbEntity.setOrderId(param.getOrderId()); break;
+            case 1: dbEntity.setVirtualOrderId(param.getOrderId()); break;
+            case 2: dbEntity.setIncrementOrderId(param.getOrderId()); break;
+            case 3: dbEntity.setDownloadOrderId(param.getOrderId()); break;
+        }
+
+        if (param.getCameraId() != null){
+            dbEntity.setCameraId(param.getCameraId());
+        }
+        dbEntity.setUserId(user.getId());
+        dbEntity.setMoney(money);
+        this.save(dbEntity);
+
+        return dbEntity;
+    }
 }

+ 10 - 4
src/main/java/com/fdkankan/ucenter/service/impl/LoginService.java

@@ -11,6 +11,7 @@ import com.fdkankan.sms.SendMailAcceUtils;
 import com.fdkankan.sms.SmsService;
 import com.fdkankan.ucenter.common.RedisKeyUtil;
 import com.fdkankan.ucenter.constant.LoginConstant;
+import com.fdkankan.ucenter.constant.QrCodeFilePath;
 import com.fdkankan.ucenter.entity.Camera;
 import com.fdkankan.ucenter.entity.CameraDetail;
 import com.fdkankan.ucenter.entity.User;
@@ -21,6 +22,7 @@ import com.fdkankan.ucenter.vo.request.LoginParam;
 import com.fdkankan.ucenter.vo.request.RegisterParam;
 import com.fdkankan.ucenter.vo.response.LoginVo;
 import com.fdkankan.ucenter.vo.response.UserVo;
+import io.jsonwebtoken.Claims;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -78,7 +80,7 @@ public class LoginService {
     }
 
     public void checkUser(String phoneNum,Boolean flg) {
-        if(StringUtils.isNotBlank(phoneNum)){
+        if(StringUtils.isBlank(phoneNum)){
             throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
         }
         User user = userService.getByUserName(phoneNum);
@@ -146,12 +148,13 @@ public class LoginService {
 
     public JSONObject createLoginQrCode() throws Exception {
         String uuid = NumberUtils.getUUID();
-        String filePath = ConstantFilePath.LOGIN_QR_CODE_PATH + uuid + ".png";
+        String filePath = QrCodeFilePath.LOGIN_QR_CODE_PATH + uuid + ".png";
         String path =this.getClass().getResource("/static/img/logo.jpg").getPath();
         MatrixToImageWriterUtil.createQRCode(mainUrl + "app/index.html?m="+uuid, filePath,true,path);
         JSONObject json = new JSONObject();
         json.put("url", filePath.replace(ConstantFilePath.BASE_PATH, ""));
         json.put("uuid", uuid);
+        redisUtil.set(RedisKeyUtil.QRCODE+uuid,uuid,5*60);
         return json;
     }
 
@@ -160,8 +163,11 @@ public class LoginService {
             throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
         }
         //二维码失效,清除本地文件二维码
+        if(!redisUtil.hasKey(RedisKeyUtil.QRCODE +uuid)){
+            FileUtil.delFile(QrCodeFilePath.LOGIN_QR_CODE_PATH + uuid + ".png");
+            throw new BusinessException(LoginConstant.FAILURE_CODE_3035, LoginConstant.FAILURE_MSG_3035);
+        }
         if(!redisUtil.hasKey(uuid)){
-            FileUtil.delFile(ConstantFilePath.LOGIN_QR_CODE_PATH + uuid + ".png");
             throw new BusinessException(LoginConstant.FAILURE_CODE_3035, LoginConstant.FAILURE_MSG_3035);
         }
         String childName = redisUtil.get(uuid);
@@ -184,7 +190,7 @@ public class LoginService {
         obj.put("childName",childName);
         obj.put("to",1);
         redisUtil.del(uuid);
-        FileUtils.deleteFile(ConstantFilePath.LOGIN_QR_CODE_PATH +uuid +".png");
+        FileUtils.deleteFile(QrCodeFilePath.LOGIN_QR_CODE_PATH +uuid +".png");
         return obj;
     }
 

+ 37 - 7
src/main/java/com/fdkankan/ucenter/service/impl/OrderServiceImpl.java

@@ -3,16 +3,13 @@ package com.fdkankan.ucenter.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.NumberUtils;
 import com.fdkankan.redis.util.RedisUtil;
-import com.fdkankan.ucenter.constant.LoginConstant;
-import com.fdkankan.ucenter.constant.OrderStatus;
-import com.fdkankan.ucenter.constant.PaymentStatus;
-import com.fdkankan.ucenter.constant.ShippingStatus;
+import com.fdkankan.ucenter.common.RedisKeyUtil;
+import com.fdkankan.ucenter.constant.*;
 import com.fdkankan.ucenter.entity.*;
 import com.fdkankan.ucenter.mapper.IOrderMapper;
 import com.fdkankan.ucenter.pay.alipay.sdk.AlipayService;
@@ -21,7 +18,9 @@ import com.fdkankan.ucenter.pay.wx.WXPayConstants;
 import com.fdkankan.ucenter.pay.wx.WXPayDefaultConfig;
 import com.fdkankan.ucenter.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.ucenter.util.DateUserUtil;
 import com.fdkankan.ucenter.vo.request.CartParam;
+import com.fdkankan.ucenter.vo.request.DownNumParam;
 import com.fdkankan.ucenter.vo.request.OrderParam;
 import com.fdkankan.ucenter.vo.request.PlaceOrderParam;
 import com.fdkankan.ucenter.vo.response.GoodsSkuVo;
@@ -64,6 +63,8 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
     RedisUtil redisUtil;
     @Autowired
     AlipayService alipayService;
+    @Autowired
+    IDownloadOrderService downloadOrderService;
 
     @Override
     public PageInfo pageList(OrderParam param) {
@@ -148,6 +149,9 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
             orderItemEntity.setGoodsCount(requestCart.getGoodsCount());
             orderItemEntity.setGoodsName(responseGoods.getName());
             orderItemEntity.setGoodsSn(responseGoods.getGoodsSn());
+            orderItemEntity.setRecStatus("A");
+            orderItemEntity.setCreateTime(DateUserUtil.getDate(new Date()));
+            orderItemEntity.setUpdateTime(DateUserUtil.getDate(new Date()));
             if (StringUtils.isNotEmpty(requestCart.getSkuSn())){
                 orderItemEntity.setSkuSn(requestCart.getSkuSn());
             }
@@ -170,6 +174,9 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
         orderEntity.setPaidAmount(BigDecimal.ZERO);
         orderEntity.setExpressAmount(BigDecimal.ZERO);
         orderEntity.setDeliveryTypeName("快递运输");
+        orderEntity.setRecStatus("A");
+        orderEntity.setCreateTime(DateUserUtil.getDate(new Date()));
+        orderEntity.setUpdateTime(DateUserUtil.getDate(new Date()));
 
         if (param.getReceiver() != null){
             orderEntity.setShipAddress(param.getReceiver().getShipAddress());
@@ -217,6 +224,13 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
                 orderSn += "_download";
                 break;
         }
+        if(!redisUtil.hasKey(RedisKeyUtil.QRCODE + orderSn)){
+            String wxPngPath =  QrCodeFilePath.WEIXIN_QRCODE_FOLDER + orderSn + ".png";
+            String aliPngPath =  QrCodeFilePath.ALI_QRCODE_FOLDER + orderSn + ".png";
+            FileUtils.deleteFile(wxPngPath);
+            FileUtils.deleteFile(aliPngPath);
+            throw new BusinessException(LoginConstant.FAILURE_CODE_3035,LoginConstant.FAILURE_MSG_3035);
+        }
         switch (param.getPayType()){
             // 微信
             case 0:
@@ -230,8 +244,6 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
                     Map<String, String> resp = wxPay.orderQuery(data);
                     if (resp.get("trade_state") != null && resp.get("trade_state").equals(WXPayConstants.SUCCESS)) {
                         redisUtil.del(orderSnE);
-                        String pngPath = ConstantFilePath.BASE_PATH + ConstantFilePath.WEIXIN_QRCODE_FOLDER + orderSn + ".png";
-                        FileUtils.deleteFile(pngPath);
                         success = true;
                     }
                 }
@@ -264,4 +276,22 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
         wrapper.eq(Order::getOrderSn,orderSn);
         return this.getOne(wrapper);
     }
+
+    @Override
+    public DownloadOrder downloadOrder(DownNumParam param) {
+        //支付美金,只能paypal支付
+        if(param.getAbroad() == 1 && param.getPayType() != 2){
+            throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
+        }
+        GoodsSku goodsSku = goodsSkuService.getBySku(param.getSkuSn());
+        if(goodsSku == null){
+            throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
+        }
+        User user = userService.getByUserName(param.getUserName());
+        if(user == null){
+            throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
+        }
+
+        return downloadOrderService.insertDownloadOrder(user.getId(),param,param.getAbroad() == 0 ?  goodsSku.getPrice() : goodsSku.getDollarPrice());
+    }
 }

+ 27 - 5
src/main/java/com/fdkankan/ucenter/service/impl/SceneCooperationServiceImpl.java

@@ -9,6 +9,7 @@ import com.fdkankan.ucenter.entity.*;
 import com.fdkankan.ucenter.mapper.ISceneCooperationMapper;
 import com.fdkankan.ucenter.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.ucenter.util.DateUserUtil;
 import com.fdkankan.ucenter.vo.request.SceneCooperationParam;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.google.common.collect.Lists;
@@ -18,9 +19,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -83,12 +82,18 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
             SceneCooperation sceneCooperationEntity = new SceneCooperation();
             sceneCooperationEntity.setUserId(userId);
             sceneCooperationEntity.setSceneNum(scenePro.getNum());
+            sceneCooperationEntity.setRecStatus("A");
+            sceneCooperationEntity.setCreateTime(DateUserUtil.getDate(new Date()));
+            sceneCooperationEntity.setUpdateTime(DateUserUtil.getDate(new Date()));
             list.add(sceneCooperationEntity);
         }
         for (ScenePlus scenePlus : scenePlusList) {
             SceneCooperation sceneCooperationEntity = new SceneCooperation();
             sceneCooperationEntity.setUserId(userId);
             sceneCooperationEntity.setSceneNum(scenePlus.getNum());
+            sceneCooperationEntity.setRecStatus("A");
+            sceneCooperationEntity.setCreateTime(DateUserUtil.getDate(new Date()));
+            sceneCooperationEntity.setUpdateTime(DateUserUtil.getDate(new Date()));
             list.add(sceneCooperationEntity);
         }
         this.saveBatch(list);
@@ -241,8 +246,25 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
         return sceneResourceService.getByCooperationId(list.get(0).getId());
     }
 
-    private SceneCooperation getByNum(String sceneNum) {
+    @Override
+    public List<String> getNumByUserIds(List<Long> userIds) {
+        LambdaQueryWrapper<SceneCooperation> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(SceneCooperation::getUserId,userIds);
+        Set<String> collect = this.list(wrapper).parallelStream().map(SceneCooperation::getSceneNum).collect(Collectors.toSet());
+        return new ArrayList<>(collect);
+    }
 
-        return null;
+    @Override
+    public HashMap<String, User> getByNumList(List<String> numList) {
+        LambdaQueryWrapper<SceneCooperation> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(SceneCooperation::getSceneNum,numList);
+        List<SceneCooperation> list = this.list(wrapper);
+        HashMap<String,User> cooMap = new HashMap<>();
+        if(list.size() >0){
+            List<Long> userIds = list.parallelStream().map(SceneCooperation::getUserId).collect(Collectors.toList());
+            HashMap<Long, User> userMap = userService.getByIds(userIds);
+            list.forEach(entity -> cooMap.put(entity.getSceneNum(),userMap.get(entity.getUserId())));
+        }
+        return cooMap;
     }
 }

+ 0 - 1
src/main/java/com/fdkankan/ucenter/service/impl/SceneEditControlsServiceImpl.java

@@ -22,7 +22,6 @@ public class SceneEditControlsServiceImpl extends ServiceImpl<ISceneEditControls
     @Override
     public SceneEditControls getBySceneEditId(Long sceneEditInfoId) {
         return this.getOne(new LambdaQueryWrapper<SceneEditControls>()
-                .eq(SceneEditControls::getTbStatus, TbStatus.VALID.code())
                 .eq(SceneEditControls::getEditInfoId, sceneEditInfoId));
     }
 }

+ 1 - 1
src/main/java/com/fdkankan/ucenter/service/impl/ScenePlusServiceImpl.java

@@ -49,7 +49,7 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     public Long getCountByUserId(Long userId, List<Integer> sceneSourceList) {
         LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(ScenePlus::getUserId, userId);
-        wrapper.eq(ScenePlus::getSceneSource, sceneSourceList);
+        wrapper.in(ScenePlus::getSceneSource, sceneSourceList);
         return this.count(wrapper);
     }
 

+ 17 - 1
src/main/java/com/fdkankan/ucenter/service/impl/SceneProServiceImpl.java

@@ -113,9 +113,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         SceneNumVo sceneNumVo = new SceneNumVo();
         LambdaQueryWrapper<ScenePro> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ScenePro::getUserId, userId);
-        queryWrapper.eq(ScenePro::getSceneSource, sceneSourceList);
+        queryWrapper.in(ScenePro::getSceneSource, sceneSourceList);
         queryWrapper.eq(ScenePro::getIsUpgrade, 0);
         Integer sceneNum = Math.toIntExact(this.count(queryWrapper));
+
         Long count = scenePlusService.getCountByUserId(userId,sceneSourceList);
         sceneNumVo.setCooperationSceneNum(sceneCooperationService.getCooperationSceneNum(userId,sceneSourceList));
         sceneNumVo.setSceneNum(sceneNum + count);
@@ -288,6 +289,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         param.setSourceList(getSceneSource(param.getSceneSource()));
         param.setUserId(user.getId());
         Page<SceneVo> sceneVoPage = getBaseMapper().pageListAndFolder(new Page<>(param.getPageNum(),param.getPageSize()),param);
+
         List<SceneVo> folderList =   sceneVoPage.getRecords().parallelStream().filter(entity -> entity.getIsFolder() == 1).collect(Collectors.toList());
         Integer folderNum = 0;
         if(folderList.size() >0){
@@ -308,6 +310,20 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             folderList.addAll(sceneList);
             sceneVoPage.setRecords(folderList);
         }
+        //设置协作者信息
+        if(sceneVoPage.getRecords().size() >0){
+            List<String> numList = sceneVoPage.getRecords().parallelStream().map(SceneVo::getNum).collect(Collectors.toList());
+            HashMap<String,User> cooMap = sceneCooperationService.getByNumList(numList);
+            for (SceneVo vo : sceneVoPage.getRecords()) {
+                if (StringUtils.isNotBlank(vo.getNum())) {
+                    User userVo = cooMap.get(vo.getNum());
+                    if (userVo != null) {
+                        vo.setCooperationUserId(userVo.getId().toString());
+                        vo.setCooperationUserName(userVo.getUserName());
+                    }
+                }
+            }
+        }
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("pageInfo",PageInfo.PageInfo(sceneVoPage));
         jsonObject.put("sceneNum",sceneVoPage.getTotal() - folderNum);

+ 30 - 4
src/main/java/com/fdkankan/ucenter/service/impl/UserServiceImpl.java

@@ -7,10 +7,13 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.constant.*;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.common.util.JwtUtil;
 import com.fdkankan.common.util.SecurityUtil;
 import com.fdkankan.common.validation.Variable;
 import com.fdkankan.fyun.qiniu.QiniuUpload;
+import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.ucenter.common.RedisKeyUtil;
 import com.fdkankan.ucenter.constant.LoginConstant;
 import com.fdkankan.ucenter.entity.ReceiverInfo;
 import com.fdkankan.ucenter.entity.User;
@@ -32,10 +35,8 @@ import org.springframework.boot.autoconfigure.cache.CacheProperties;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -54,6 +55,8 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
     IUserIncrementService userIncrementService;
     @Autowired
     IReceiverInfoService receiverInfoService;
+    @Autowired
+    RedisUtil redisUtil;
 
     private User getByEmail(String email){
         QueryWrapper<User> queryWrapper = new QueryWrapper<>();
@@ -253,4 +256,27 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
         wrapper.eq(User::getNickName,nickName);
         return this.count(wrapper);
     }
+
+    @Override
+    public List<Long> getLikeUserName(String userName) {
+        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(User::getNickName,userName);
+        List<Long> collect = this.list(wrapper).parallelStream().map(User::getId).collect(Collectors.toList());
+        return new ArrayList<>(collect);
+    }
+
+    @Override
+    public User getByToken(String token) {
+        try {
+            String value = redisUtil.get(String.format(RedisKey.TOKEN_V3, token));
+            if(StringUtils.isEmpty(value)){
+                throw new Exception();
+            }
+            return JSONObject.parseObject(value,User.class);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        String username = JwtUtil.getUsername(token);
+        return this.getByUserName(username);
+    }
 }

+ 22 - 6
src/main/java/com/fdkankan/ucenter/task/TaskService.java

@@ -4,13 +4,17 @@ import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.util.DateUtil;
 import com.fdkankan.common.util.FileUtil;
 import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.ucenter.common.RedisKeyUtil;
+import com.fdkankan.ucenter.constant.QrCodeFilePath;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import java.io.File;
+import java.util.Arrays;
 import java.util.Date;
+import java.util.List;
 
 @Component
 @Slf4j
@@ -20,13 +24,26 @@ public class TaskService {
     RedisUtil redisUtil;
 
     @Scheduled(cron = "0 */10 * * * ?")
-    public void delQrCode(){
+    public void delLoginQrCode(){
         long startTime = new Date().getTime();
-        log.info("delQrCode:开始定时清理本地登录二维码" );
-        String qrCodePath = ConstantFilePath.LOGIN_QR_CODE_PATH;
+        log.info("delLoginQrCode:开始定时清理本地登录二维码" );
+        String qrCodePath = QrCodeFilePath.LOGIN_QR_CODE_PATH;
+        String aliQrCodePath = QrCodeFilePath.ALI_QRCODE_FOLDER;
+        String wxCodePath = QrCodeFilePath.WEIXIN_QRCODE_FOLDER;
         File file = new File(qrCodePath);
+        File file2 = new File(wxCodePath);
+        File file3 = new File(aliQrCodePath);
         File[] files = file.listFiles();
-        if(files  == null || files.length<=0){
+        File[] files1 = file2.listFiles();
+        File[] files2 = file3.listFiles();
+        delFile(files);
+        delFile(files1);
+        delFile(files2);
+        log.info("delLoginQrCode:结束定时清理本地登录二维码:耗时{}秒",(new Date().getTime() - startTime)/1000 );
+    }
+
+    private void delFile(File[] files){
+        if(files == null && files.length >0){
             return;
         }
         for (File f : files) {
@@ -34,12 +51,11 @@ public class TaskService {
                 continue;
             }
             String name = f.getName().substring(0,f.getName().lastIndexOf("."));
-            if(!redisUtil.hasKey(name)){
+            if(!redisUtil.hasKey(RedisKeyUtil.QRCODE + name)){
                 log.info("删除文件:{}",f.getPath());
                 FileUtil.delFile(f.getPath());
             }
         }
-        log.info("delQrCode:结束定时清理本地登录二维码:耗时{}秒",(new Date().getTime() - startTime)/1000 );
     }
 
 }

+ 3 - 0
src/main/java/com/fdkankan/ucenter/util/DateUserUtil.java

@@ -20,6 +20,9 @@ public class DateUserUtil {
         }
         return new Date();
     }
+    public static String getDate(Date time){
+        return new SimpleDateFormat(DEF_FMT).format(time);
+    }
 
     public static String getDayTime(String time) {
         try {

+ 14 - 0
src/main/java/com/fdkankan/ucenter/vo/request/DownNumParam.java

@@ -0,0 +1,14 @@
+package com.fdkankan.ucenter.vo.request;
+
+import lombok.Data;
+
+@Data
+public class DownNumParam {
+    private Integer abroad;
+    private Integer count;
+    private Integer payType;
+    private String sceneName;
+    private String sceneNum;
+    private String skuSn;
+    private String userName;
+}

+ 16 - 0
src/main/java/com/fdkankan/ucenter/vo/request/IntercomMessageParam.java

@@ -0,0 +1,16 @@
+package com.fdkankan.ucenter.vo.request;
+
+import lombok.Data;
+
+@Data
+public class IntercomMessageParam {
+
+    private String phone;
+
+    private String email;
+
+    private String content;
+
+    // 联系方式
+    private String contact ;
+}

+ 1 - 1
src/main/java/com/fdkankan/ucenter/vo/response/CartVo.java

@@ -8,7 +8,7 @@ import java.math.BigDecimal;
 public class CartVo {
     private Long id;
     private Long goodsId;
-    private Long goodsCount;
+    private Integer goodsCount;
     private BigDecimal price;
     private String skuSn;
 }

+ 2 - 2
src/main/java/com/fdkankan/ucenter/vo/response/GoodsSkuVo.java

@@ -26,9 +26,9 @@ public class GoodsSkuVo {
     //扩容专用
     private String unit;
     //扩容大小
-    private int unitSize;
+    private Integer unitSize;
     //扩容期限,单位月
-    private int month;
+    private Integer month;
     //预计到期时间
     private Long deadLine;
 }

+ 5 - 0
src/main/resources/mapper/ucenter/IntercomMessageMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.ucenter.mapper.IIntercomMessageMapper">
+
+</mapper>

+ 2 - 2
src/main/resources/mapper/ucenter/SceneCooperationMapper.xml

@@ -7,7 +7,7 @@
         SELECT count(0) FROM t_scene_cooperation a
         LEFT JOIN t_scene_pro b ON a.scene_num = b.num
         WHERE a.rec_status = 'A' AND b.rec_status = 'A' AND b.is_upgrade = 0
-        AND a.user_id = #{userId} AND b. AND b.scene_source in
+        AND a.user_id = #{userId} AND  b.scene_source in
         <foreach collection="sceneSource" item="index" open="(" close=")" separator=",">
             #{index}
         </foreach>
@@ -15,7 +15,7 @@
     <select id="getCooperationScenePlusNum" resultType="java.lang.Long">
         SELECT count(0) FROM t_scene_cooperation a
         LEFT JOIN t_scene_plus b ON a.scene_num = b.num
-        WHERE a.rec_status = 'A' AND b.tb_status = 0
+        WHERE a.rec_status = 'A' AND b.rec_status = 'A'
         AND a.user_id = #{userId}  AND b.scene_source in
         <foreach collection="sceneSource" item="index" open="(" close=")" separator=",">
             #{index}

+ 15 - 12
src/main/resources/mapper/ucenter/SceneProMapper.xml

@@ -13,7 +13,7 @@
     </select>
     <select id="findScenePlusNumByCameraIds" resultType="com.fdkankan.ucenter.vo.response.GroupByCount">
         SELECT camera_id as id,count(id)  as count ,max(create_time) as lastTime FROM t_scene_plus
-        WHERE tb_status = 0 AND camera_id is not null
+        WHERE rec_status = 'A' AND camera_id is not null
         and camera_id in
         <foreach item="cameraId" collection="cameraIds" open="(" separator="," close=")">
             #{cameraId}
@@ -24,8 +24,8 @@
     <select id="pageListAndFolder" resultType="com.fdkankan.ucenter.vo.response.SceneVo">
         <include refid="HasFolder"></include>
         SELECT * FROM (
-        SELECT p.id ,null as name ,0 as isFolder,null as type,null as parentId ,p.create_time,num,scene_name,scene_dec,
-        p.status,pay_status,thumb,web_site,0 as is_upgrade,sn_code,view_count,u.user_name as cooperationUserName
+        SELECT  p.id ,null as name ,0 as isFolder,null as type,null as parentId ,p.create_time,num,scene_name,scene_dec,
+        p.status,pay_status,thumb,web_site,0 as is_upgrade,sn_code,view_count
         FROM t_scene_pro p 
         <include refid="sceneJoinCamera"></include>
         WHERE is_upgrade = 0 and  p.rec_status = 'A'
@@ -36,12 +36,12 @@
           and  p.scene_name like CONCAT('%',#{param.sceneName},'%')
         </if>
         UNION
-        SELECT p.id as id ,null as name ,0 as isFolder,null as type,null as parentId,p.create_time ,num,title as scene_name,description as scene_dec,
-        scene_status as status,pay_status,thumb,web_site,1 as is_upgrade,sn_code,view_count,u.user_name as cooperationUserName
+        SELECT  p.id as id ,null as name ,0 as isFolder,null as type,null as parentId,p.create_time ,num,title as scene_name,description as scene_dec,
+        scene_status as status,pay_status,thumb,web_site,1 as is_upgrade,sn_code,view_count
         FROM t_scene_plus p
         LEFT JOIN t_scene_plus_ext e on p.id = e.plus_id
         <include refid="sceneJoinCamera"></include>
-        WHERE p.tb_status = 0
+        WHERE p.rec_status = 'A'
         <include refid="commonWhere"></include>
         AND
         <include refid="commonSceneWhere"></include>
@@ -60,7 +60,7 @@
     <sql id="HasFolder">
         <if test="param.hasFolder == 1">
             SELECT id,name,1 as isFolder,type,parent_id as parentId,create_time,null as num,null as scene_name,null as scene_dec,
-            null as status,null as pay_status,null as thumb,null as web_site,null as is_upgrade,null as sn_code,null as view_count,null as cooperationUserName
+            null as status,null as pay_status,null as thumb,null as web_site,null as is_upgrade,null as sn_code,null as view_count
             FROM t_folder WHERE rec_status = 'A' and type = #{param.folderType} and user_id =#{param.userId}
             <if test="param.folderId!=null">
                 AND parent_id = #{param.folderId}
@@ -74,8 +74,10 @@
 
     <sql id="sceneJoinCamera">
         LEFT JOIN t_camera c on p.camera_id = c.id
-        LEFT JOIN t_scene_cooperation coo on p.num = coo.scene_num
-		LEFT JOIN t_user u on coo.user_id = u.id
+        <if test="param.userName!=null and param.userName!=''">
+            LEFT JOIN t_scene_cooperation coo on p.num = coo.scene_num
+            LEFT JOIN t_user u on coo.user_id = u.id
+        </if>
     </sql>
 
     <sql id="commonWhere">
@@ -90,10 +92,10 @@
             #{sourceId}
         </foreach>
         <if test="param.folderId == null">
-            AND p.id not in(SELECT id FROM t_folder_scene )
+            AND p.id not in(SELECT scene_id FROM t_folder_scene )
         </if>
         <if test="param.folderId != null">
-            AND p.id in (SELECT id FROM t_folder_scene where folder_id =#{param.folderId} )
+            AND p.id in (SELECT scene_id FROM t_folder_scene where folder_id =#{param.folderId} )
         </if>
         <if test="param.numList !=null and param.numList.size >0">
             and num in
@@ -106,8 +108,9 @@
         </if>
         <if test="param.userName !=null and param.userName !=''">
             and u.user_name like CONCAT('%',#{param.userName},'%')
+            and coo.rec_status = 'A'
         </if>
-        and coo.rec_status ='A'
+
     </sql>
 
 </mapper>

+ 4 - 4
src/main/resources/mapper/ucenter/SceneUpgradeMapper.xml

@@ -18,10 +18,10 @@
     `recommend`,
     `create_time`,
     `update_time`,
-    `tb_status`
+    `rec_status`
   )
   SELECT
-    p.`id`,
+     p.`id`,
     p.`num`,
     p.`user_id`,
     p.`camera_id`,
@@ -35,7 +35,7 @@
     p.`recommend`,
     p.`create_time`,
     p.`update_time`,
-    CASE WHEN p.rec_status = 'A' THEN 0 ELSE 1 END AS tb_status
+     p.rec_status
   FROM
     t_scene_pro p
   WHERE p.id = #{sceneProId};
@@ -80,7 +80,7 @@
     p.`build_type`,
     p.`create_time`,
     p.`update_time`,
-    CASE WHEN p.rec_status = 'A' THEN 0 ELSE 1 END AS tb_status,
+    p.rec_status ,
     CASE
       WHEN t.scene_source = 1 THEN '2k'
       WHEN t.scene_source = 2 THEN '1k'