🍀 5 лет назад
Родитель
Сommit
a957a6f02d

+ 15 - 0
src/main/java/com/poteviohealth/cgp/integration/controller/feign/IntegrationFeignController.java

@@ -5,6 +5,7 @@ import com.poteviohealth.cgp.common.facade.log.OperateType;
 import com.poteviohealth.cgp.common.facade.log.OperationLog;
 import com.poteviohealth.cgp.common.facade.log.OperationLog;
 import com.poteviohealth.cgp.common.integrated.EntityIdParams;
 import com.poteviohealth.cgp.common.integrated.EntityIdParams;
 import com.poteviohealth.cgp.common.integrated.customer.model.CustomerIntegration;
 import com.poteviohealth.cgp.common.integrated.customer.model.CustomerIntegration;
+import com.poteviohealth.cgp.common.integrated.customer.model.UserPointForCoupon;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.cgp.integration.database.DataSourceDocument;
 import com.poteviohealth.cgp.integration.database.DataSourceDocument;
 import com.poteviohealth.cgp.integration.service.IIntegralDetailService;
 import com.poteviohealth.cgp.integration.service.IIntegralDetailService;
@@ -69,4 +70,18 @@ public class IntegrationFeignController {
         }
         }
 
 
     }
     }
+
+    @ApiOperation(value = "积分兑换优惠券")
+    @RequestMapping(value = "/forCoupon", method = RequestMethod.POST)
+    @ResponseBody
+    @OperationLog(type = OperateType.FEIGN,description = "积分兑换优惠券")
+    public VaultsResponse forCoupon(@RequestBody UserPointForCoupon userPointForCoupon){
+        try {
+            return iIntegralDetailService.forCoupon(userPointForCoupon);
+        }catch (Exception e){
+            return VaultsResponse.failed();
+        }
+
+    }
+
 }
 }

+ 7 - 1
src/main/java/com/poteviohealth/cgp/integration/model/IntegralDetail.java

@@ -48,7 +48,7 @@ public class IntegralDetail extends BaseEntity {
     private Integer groupLeaderId;
     private Integer groupLeaderId;
 
 
     /**
     /**
-     * 逻辑主键
+     * 订单id 或者 优惠券领取id 当type = 1 订单id  type = 2 优惠券领取id
      */
      */
     @ApiModelProperty(value = "订单id", name = "orderId")
     @ApiModelProperty(value = "订单id", name = "orderId")
     private Long orderId;
     private Long orderId;
@@ -76,4 +76,10 @@ public class IntegralDetail extends BaseEntity {
      */
      */
     @ApiModelProperty(value = "积分", name = "integral",required = true)
     @ApiModelProperty(value = "积分", name = "integral",required = true)
     private Long integral;
     private Long integral;
+
+    /**
+     * 积分增减 1,充值 2扣减
+     */
+    @ApiModelProperty(value = "类型", name = "type",required = true)
+    private Integer type;
 }
 }

+ 3 - 0
src/main/java/com/poteviohealth/cgp/integration/service/IIntegralDetailService.java

@@ -1,6 +1,7 @@
 package com.poteviohealth.cgp.integration.service;
 package com.poteviohealth.cgp.integration.service;
 
 
 import com.poteviohealth.cgp.common.integrated.customer.model.CustomerIntegration;
 import com.poteviohealth.cgp.common.integrated.customer.model.CustomerIntegration;
+import com.poteviohealth.cgp.common.integrated.customer.model.UserPointForCoupon;
 import com.poteviohealth.cgp.common.model.CommonPage;
 import com.poteviohealth.cgp.common.model.CommonPage;
 import com.poteviohealth.cgp.common.model.PageQuery;
 import com.poteviohealth.cgp.common.model.PageQuery;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
@@ -42,4 +43,6 @@ public interface IIntegralDetailService extends IBaseService<IntegralDetail> {
 
 
 
 
     VaultsResponse saveDetail(List<CustomerIntegration> customerIntegration);
     VaultsResponse saveDetail(List<CustomerIntegration> customerIntegration);
+
+    VaultsResponse forCoupon(UserPointForCoupon userPointForCoupon);
 }
 }

+ 16 - 0
src/main/java/com/poteviohealth/cgp/integration/service/impl/IntegralDetailServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.poteviohealth.cgp.common.filter.MiniJwtVO;
 import com.poteviohealth.cgp.common.filter.MiniJwtVO;
 import com.poteviohealth.cgp.common.filter.TokenContext;
 import com.poteviohealth.cgp.common.filter.TokenContext;
 import com.poteviohealth.cgp.common.integrated.customer.model.CustomerIntegration;
 import com.poteviohealth.cgp.common.integrated.customer.model.CustomerIntegration;
+import com.poteviohealth.cgp.common.integrated.customer.model.UserPointForCoupon;
 import com.poteviohealth.cgp.common.model.CommonPage;
 import com.poteviohealth.cgp.common.model.CommonPage;
 import com.poteviohealth.cgp.common.model.PageQuery;
 import com.poteviohealth.cgp.common.model.PageQuery;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
@@ -126,12 +127,27 @@ public class IntegralDetailServiceImpl extends BaseServiceImpl<IntegralDetailMap
         List<IntegralDetail> list = IntegralConverter.INSTANCE.model2FeginDTO(customerIntegration);
         List<IntegralDetail> list = IntegralConverter.INSTANCE.model2FeginDTO(customerIntegration);
         for (IntegralDetail detail : list) {
         for (IntegralDetail detail : list) {
             createOperator(detail.getOperatorId());
             createOperator(detail.getOperatorId());
+            detail.setType(1);
             detail.setIntegralDetailId(CgpTool.generateKey());
             detail.setIntegralDetailId(CgpTool.generateKey());
             super.save(detail);
             super.save(detail);
         }
         }
         return VaultsResponse.success();
         return VaultsResponse.success();
     }
     }
 
 
+    @Override
+    public VaultsResponse forCoupon(UserPointForCoupon userPointForCoupon) {
+        IntegralDetail detail = new IntegralDetail();
+        detail.setCustomerId(userPointForCoupon.getCustomerId());
+        detail.setIntegral(Long.valueOf(userPointForCoupon.getIntegral()));
+        detail.setOperatorId(userPointForCoupon.getOperatorId());
+        detail.setOrderId(userPointForCoupon.getCouponId());
+        detail.setType(2);
+        detail.setEvent("兑换优惠券");
+        detail.setIntegralDetailId(CgpTool.generateKey());
+        super.save(detail);
+        return VaultsResponse.success();
+    }
+
     private CommonPage<IntegralDetail> selectOrderIPage(IntegralDetailWebInDTO integralDetailWebInDTO) {
     private CommonPage<IntegralDetail> selectOrderIPage(IntegralDetailWebInDTO integralDetailWebInDTO) {
         IPage<IntegralDetail> page = new Page<>(integralDetailWebInDTO.getPageNum(), integralDetailWebInDTO.getPageSize());
         IPage<IntegralDetail> page = new Page<>(integralDetailWebInDTO.getPageNum(), integralDetailWebInDTO.getPageSize());