Przeglądaj źródła

Merge remote-tracking branch 'origin/developerC' into developer

zhijiezhao 3 lat temu
rodzic
commit
1e78564139

+ 17 - 0
src/main/java/com/caimei365/order/controller/HeliPayNonOrderApi.java

@@ -211,6 +211,21 @@ public class HeliPayNonOrderApi {
         return payNonOrderService.payCouponByAlipay(heliDto, headers);
     }
 
+    @ApiOperation("购买价值优惠券-采美豆抵扣")
+    @PostMapping("/coupon/beans")
+    public ResponseJson<JSONObject> payCouponByBeans(HeliDto heliDto, @RequestHeader HttpHeaders headers) {
+        if (null == heliDto.getSource()) {
+            return ResponseJson.error("领取渠道不能为空!", null);
+        }
+        if (null == heliDto.getCouponId()) {
+            return ResponseJson.error("优惠券Id不能为空!", null);
+        }
+        if (null == heliDto.getUserId()) {
+            return ResponseJson.error("userId不能为空!", null);
+        }
+        return payNonOrderService.payCouponByBeans(heliDto, headers);
+    }
+
     /**
      * 购买优惠券-支付回调
      */
@@ -223,6 +238,8 @@ public class HeliPayNonOrderApi {
         return payNonOrderService.couponCallback(res);
     }
 
+
+
     /**
      * 二手发布-网银支付回调
      */

+ 2 - 0
src/main/java/com/caimei365/order/mapper/BaseMapper.java

@@ -237,4 +237,6 @@ public interface BaseMapper {
     String findShopOrderIds(Integer orderId);
 
     void updateOrderOnlineFlag(Integer orderId);
+
+    CouponVo findCoupon(Integer couponId);
 }

+ 1 - 1
src/main/java/com/caimei365/order/model/po/UserBeansHistoryPo.java

@@ -28,7 +28,7 @@ public class UserBeansHistoryPo implements Serializable {
     private Integer type;
     /**
      *1注册机构,2升级会员机构,3普通机构完善资料,4会员机构完善资料,5下单,6线上支付订单,7确认收货,8系统发放,9抵用退回,10抵用运费,11退款回收,
-     * 12登录奖励,13查看商品资料抵扣,14购买超级会员,15系统扣除,16系统退回
+     * 12登录奖励,13查看商品资料抵扣,14购买超级会员,15系统扣除,16系统退回,17购买优惠券,18购买优惠券退款
      */
     private Integer beansType;
     /**

+ 4 - 1
src/main/java/com/caimei365/order/model/vo/CouponVo.java

@@ -15,7 +15,10 @@ import java.util.List;
  */
 @Data
 public class CouponVo implements Serializable {
-
+    /**
+     * 购买方式 1.直接购买 2.采美豆抵扣
+     */
+    private Integer couponPayWay;
     /**
      * 用户关联优惠id
      */

+ 2 - 0
src/main/java/com/caimei365/order/service/HeliPayNonOrderService.java

@@ -121,4 +121,6 @@ public interface HeliPayNonOrderService {
     ResponseJson authVipCheck(Integer vipRecordId);
 
     ResponseJson vipCheck(Integer recordId);
+
+    ResponseJson<JSONObject> payCouponByBeans(HeliDto heliDto, HttpHeaders headers);
 }

+ 37 - 0
src/main/java/com/caimei365/order/service/impl/HeliPayNonOrderServiceImpl.java

@@ -3,6 +3,7 @@ package com.caimei365.order.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.caimei365.order.components.HeliPayUtil;
+import com.caimei365.order.components.ProductService;
 import com.caimei365.order.components.WeChatService;
 import com.caimei365.order.constant.Constant;
 import com.caimei365.order.mapper.BaseMapper;
@@ -60,6 +61,8 @@ public class HeliPayNonOrderServiceImpl implements HeliPayNonOrderService {
     private RemoteCallService remoteCallService;
     @Resource
     private OrderClubMapper orderClubMapper;
+    @Resource
+    private ProductService productService;
 
     @Override
     public ResponseJson<PayCouponDto> getCouponRecord(PayCouponDto payCouponDto, HttpHeaders headers) {
@@ -1912,6 +1915,40 @@ public class HeliPayNonOrderServiceImpl implements HeliPayNonOrderService {
         return ResponseJson.error("支付失败", null);
     }
 
+    @Override
+    public ResponseJson<JSONObject> payCouponByBeans(HeliDto heliDto, HttpHeaders headers) {
+        Integer beans = baseMapper.findBeans(heliDto.getUserId());
+        CouponVo co = baseMapper.findCoupon(heliDto.getCouponId());
+        if (null == co) {
+            return ResponseJson.error("暂不可兑换该优惠券!", null);
+        }
+        double moneyCouponPrice = co.getMoneyCouponPrice();
+        int needBeans = (int) moneyCouponPrice;
+        if (beans < 1) {
+            return ResponseJson.error("采美豆数量不足!", null);
+        }
+        //给券
+        CouponClubPo couponClubPo = new CouponClubPo();
+        couponClubPo.setSource(heliDto.getSource());
+        couponClubPo.setUserId(heliDto.getUserId());
+        couponClubPo.setCouponId(heliDto.getCouponId());
+        couponClubPo.setStatus("1");
+        couponClubPo.setDelFlag("0");
+        couponClubPo.setCreateDate(new Date());
+        orderClubMapper.insertCouponClub(couponClubPo);
+        //记录采美豆消费
+        UserBeansHistoryPo userBeansHistory = new UserBeansHistoryPo();
+        userBeansHistory.setUserId(heliDto.getUserId());
+        userBeansHistory.setBeansType(17);
+        userBeansHistory.setType(2);
+        userBeansHistory.setAddTime(new Date());
+        userBeansHistory.setNum(needBeans);
+        userBeansHistory.setPushStatus(0);
+        userBeansHistory.setDelFlag(0);
+        productService.updateUserBeans(userBeansHistory, beans - needBeans, null);
+        return ResponseJson.success("抵扣成功!", null);
+    }
+
     public void saveRoleRelation(Integer userId, String roleIds) {
         if (StringUtils.isNotEmpty(roleIds)) {
             // 设置用户角色

+ 4 - 0
src/main/java/com/caimei365/order/service/impl/SubmitServiceImpl.java

@@ -952,6 +952,10 @@ public class SubmitServiceImpl implements SubmitService {
             }
             couponAmount = coupon.getCouponAmount();
         }
+        // 美博会临时设置,7260,7261临时套餐商品,不可使用优惠券
+        if(productIdList.contains(7260)||productIdList.contains(7261)){
+            couponAmount = 0d;
+        }
         mainOrder.setCouponAmount(couponAmount);
         /**
          * 计算运费

+ 8 - 0
src/main/resources/mapper/BaseMapper.xml

@@ -356,4 +356,12 @@
     <select id="findShopOrderIds" resultType="java.lang.String">
         select shopOrderIDs from cm_order where orderID = #{orderId}
     </select>
+    <select id="findCoupon" resultType="com.caimei365.order.model.vo.CouponVo">
+        select id as couponId,name,moneyCouponPrice,couponAmount,touchPrice
+        from cm_coupon
+        where id = #{couponId}
+        and delflag = 0
+        and couponPayWay = 2
+        and moneyCouponFlag = 1
+    </select>
 </mapper>

+ 3 - 1
src/main/resources/mapper/OrderCommonMapper.xml

@@ -486,6 +486,7 @@
         moneyCouponPrice,
         moneyCouponFlag,
         moneyCouponType,
+        couponPayWay,
         <if test="userId == null || userId == 0">
             startDate,
             endDate,
@@ -535,7 +536,8 @@
                cc.userId,
                cc.shopId,
                cc.productType,
-               cc.categoryType
+               cc.categoryType,
+               cc.couponPayWay
         FROM cm_coupon_club a
                  LEFT JOIN cm_coupon cc ON a.couponId = cc.id
         WHERE cc.delFlag = 0