Browse Source

Merge remote-tracking branch 'origin/developerA' into developerA

chao 3 years ago
parent
commit
8037574c42

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

@@ -5,6 +5,7 @@ import com.caimei365.order.model.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 
 
@@ -181,4 +182,35 @@ public interface BaseMapper {
      * @return
      */
     Integer getSvipUserIdByClubId(Integer clubId);
+
+    /**
+     * 查询机构状态
+     * @param userId    用户id
+     * @return
+     */
+    Integer getClubStatus(Integer userId);
+
+    /**
+     * 查询最后的确认时间
+     *
+     * @param userId 用户id
+     * @return
+     */
+    Date getClubConfirmTime(Integer userId);
+
+    /**
+     * 更新user机构状态
+     *
+     * @param clubStatus    机构状态
+     * @param userId        用户id
+     */
+    void updateUserClubStatus(@Param("clubStatus") int clubStatus, @Param("userId") Integer userId);
+
+    /**
+     * 更新club机构状态
+     *
+     * @param clubStatus    机构状态
+     * @param userId        用户id
+     */
+    void updateClubStatus(@Param("clubStatus") int clubStatus, @Param("userId") Integer userId);
 }

+ 14 - 4
src/main/java/com/caimei365/order/mapper/OrderClubMapper.java

@@ -1,9 +1,6 @@
 package com.caimei365.order.mapper;
 
-import com.caimei365.order.model.po.BalanceRecordPo;
-import com.caimei365.order.model.po.CouponOrderRecordPo;
-import com.caimei365.order.model.po.OrderPo;
-import com.caimei365.order.model.po.OrderProductPo;
+import com.caimei365.order.model.po.*;
 import com.caimei365.order.model.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -184,4 +181,17 @@ public interface OrderClubMapper {
      * 查询订单优惠信息
      */
     CouponOrderRecordPo getOrderCouponRecord(Integer orderId);
+    /**
+     * 查询用户优惠券关联数据
+     */
+    CouponClubPo getCouponClubById(Integer clubCouponId);
+    /**
+     * 保存用户关联信息
+     */
+    void insertCouponClub(CouponClubPo couponClub);
+    /**
+     * 删除优惠券与订单的关联信息
+     * @param clubCouponId
+     */
+    void deleteCouponClubById(Integer clubCouponId);
 }

+ 63 - 0
src/main/java/com/caimei365/order/model/po/CouponClubPo.java

@@ -0,0 +1,63 @@
+package com.caimei365.order.model.po;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Description
+ *
+ * @author : plf
+ * @date : 2021/8/16
+ */
+@Data
+public class CouponClubPo {
+    private Integer id;
+
+    /**
+     * 机构用户Id
+     */
+    private Integer userId;
+
+    /**
+     * 优惠券id
+     */
+    private Integer couponId;
+
+    /**
+     * 订单id
+     */
+    private Integer orderId;
+
+    /**
+     * 退款id,订单退回时有效
+     */
+    private Integer returnedId;
+
+
+    /**
+     * 领取渠道:1网站 2小程序 3订单退回
+     */
+    private Integer source;
+
+    /**
+     * 使用状态 1未使用 2已使用
+     */
+    private String status;
+
+    /**
+     * 领取时间
+     */
+    private Date createDate;
+
+    /**
+     * 使用时间
+     */
+    private Date useDate;
+
+    /**
+     * 删除标记 0否 其余是
+     */
+    private String delFlag;
+
+}

+ 35 - 3
src/main/java/com/caimei365/order/service/impl/OrderClubServiceImpl.java

@@ -355,8 +355,8 @@ public class OrderClubServiceImpl implements OrderClubService {
             int beans = userBeans + beansHistory.getNum();
             productService.updateUserBeans(beansHistory, beans, note);
         }
-        //取消订单短信推送
-        String bindMobile = baseMapper.getBindMobileByUserId(order.getUserId());
+        //取消订单短信推送(取消推送)
+        /*String bindMobile = baseMapper.getBindMobileByUserId(order.getUserId());
         if (StringUtils.isNotBlank(bindMobile)) {
             String shortLink = remoteCallService.getShortLink(8, 11, domain + "/user/order/detail.html?orderId=" + orderId);
             String content = "您已成功取消订单(订单编号:" + order.getOrderNo() + "),订单金额¥" + order.getPayTotalFee() + "。您可关注采美公众号或者访问采美微信小程序和网站查看订单。" +
@@ -365,8 +365,40 @@ public class OrderClubServiceImpl implements OrderClubService {
             if (!sendSms) {
                 log.info("取消订单推送失败,orderId>>>>" + orderId);
             }
+        }*/
+        // 客服确认注册机构,一天内取消有效
+        Integer clubStatus = baseMapper.getClubStatus(order.getUserId());
+        if (null != clubStatus && 94 == clubStatus) {
+            // 已冻结(客服确认机构)
+            // 查询最后的确认时间
+            Date confirmTime = baseMapper.getClubConfirmTime(order.getUserId());
+            if (confirmTime != null) {
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(confirmTime);
+                calendar.add(Calendar.DATE, 1);
+                if (calendar.getTime().compareTo(new Date()) > 0) {
+                    // 机构状态修改为:已确认(客服确认机构)
+                    baseMapper.updateUserClubStatus(93, order.getUserId());
+                    baseMapper.updateClubStatus(93, order.getUserId());
+                }
+            }
+        }
+        //优惠券退回
+        if (MathUtil.compare(order.getCouponAmount(), 0) > 0) {
+            CouponOrderRecordPo couponRecord = orderClubMapper.getOrderCouponRecord(order.getOrderId());
+            if (couponRecord != null) {
+                orderClubMapper.deleteCouponClubById(couponRecord.getClubCouponId());
+                CouponClubPo couponClub = orderClubMapper.getCouponClubById(couponRecord.getClubCouponId());
+                couponClub.setOrderId(null);
+                couponClub.setReturnedId(0);
+                couponClub.setSource(3);
+                couponClub.setStatus("1");
+                couponClub.setCreateDate(new Date());
+                couponClub.setUseDate(null);
+                couponClub.setDelFlag("0");
+                orderClubMapper.insertCouponClub(couponClub);
+            }
         }
-
         return ResponseJson.success("取消订单成功!", null);
     }
 

+ 3 - 3
src/main/java/com/caimei365/order/service/impl/ShipServiceImpl.java

@@ -393,8 +393,8 @@ public class ShipServiceImpl implements ShipService {
         }
         // 修改主订单发货状态
         shipMapper.updateOrderShip(order.getOrderId(), order.getSendOutStatus(), order.getStatus());
-        //发货短信推送
-        String bindMobile = baseMapper.getBindMobileByUserId(order.getUserId());
+        //发货短信推送(取消推送)
+        /*String bindMobile = baseMapper.getBindMobileByUserId(order.getUserId());
         if (StringUtils.isNotBlank(bindMobile) && 0 == order.getRebateFlag()) {
             boolean sendSms = false;
             if (1 == sendOutStatus && 2 == order.getSendOutStatus()){
@@ -411,7 +411,7 @@ public class ShipServiceImpl implements ShipService {
             if (!sendSms) {
                 log.info("发货短信推送失败,orderId>>>>" + order.getOrderId());
             }
-        }
+        }*/
     }
 
     /**

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

@@ -1344,9 +1344,9 @@ public class SubmitServiceImpl implements SubmitService {
         log.info("******************** 提交订单逻辑处理 end *******************");
 
         /*
-         * 下单推送
+         * 下单推送(自主订单才推送)
          */
-        if (StringUtils.isNotBlank(orderParamBo.getBindMobile())) {
+        if (StringUtils.isNotBlank(orderParamBo.getBindMobile()) && 0 == mainOrder.getRebateFlag() && 1 == mainOrder.getOrderType()) {
             String shortLink = remoteCallService.getShortLink(8, 3, domain + "/user/order/detail.html?orderId=" + mainOrder.getOrderId());
             String name = orderProductList.get(0).getName();
             if (name.length() > 10) {

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

@@ -224,6 +224,12 @@
         UPDATE USER SET userBeans = #{userBeans}
         WHERE userID = #{userId}
     </update>
+    <update id="updateUserClubStatus">
+        UPDATE user SET clubStatus = #{clubStatus} WHERE userID = #{userId}
+    </update>
+    <update id="updateClubStatus">
+        UPDATE club SET status = #{clubStatus} WHERE userID = #{userId}
+    </update>
     <insert id="insertBalanceRecord" parameterType="com.caimei365.order.model.po.BalanceRecordPo">
         INSERT INTO cm_user_balance_record (userId, type, balanceType, addDate, amount, orderId, remark, delFlag)
         VALUES (#{userId}, #{type}, #{balanceType}, #{addDate}, #{amount}, #{orderId}, #{remark}, #{delFlag})
@@ -239,4 +245,14 @@
           and delFlag = '0'
           and now() <![CDATA[ < ]]> endTime;
     </select>
+    <select id="getClubStatus" resultType="java.lang.Integer">
+        select clubStatus from user where userID = #{userId}
+    </select>
+    <select id="getClubConfirmTime" resultType="java.util.Date">
+        SELECT confirmTime
+        FROM club_confirm_record
+        WHERE userId = #{userId}
+        ORDER BY confirmTime DESC
+        LIMIT 1
+    </select>
 </mapper>

+ 12 - 0
src/main/resources/mapper/OrderClubMapper.xml

@@ -104,6 +104,9 @@
     <delete id="deleteOrderShareCodeRecord">
         DELETE FROM cm_mall_share_code_record WHERE orderID = #{orderId}
     </delete>
+    <update id="deleteCouponClubById">
+        update cm_coupon_club set delFlag = '1' where id = #{clubCouponId}
+    </update>
     <insert id="insertOrderShareCode">
         INSERT INTO cm_mall_order_share_code (orderID, shareCode, addTime, expiredTime, delFlag)
         VALUES (#{orderId}, #{shareCode}, #{addTime}, #{expiredTime}, #{delFlag})
@@ -112,6 +115,10 @@
         INSERT INTO cm_mall_share_code_record (openid, orderID, shareCodeId, addTime, delFlag)
         VALUES (#{openId}, #{orderId}, #{shareCodeId}, #{addTime}, #{delFlag})
     </insert>
+    <insert id="insertCouponClub">
+        INSERT INTO cm_coupon_club(userId, couponId, orderId, returnedId, source, status, createDate, useDate, delFlag)
+        VALUES (#{userId},#{couponId},#{orderId},#{returnedId},#{source},#{status},#{createDate},#{useDate},#{delFlag})
+    </insert>
     <select id="countMainOrderByOrderId" resultType="java.lang.Integer">
         SELECT COUNT(*) FROM cm_order WHERE orderID = #{orderId}
     </select>
@@ -472,4 +479,9 @@
         FROM cm_coupon_order_record
         WHERE orderId = #{orderId}
     </select>
+    <select id="getCouponClubById" resultType="com.caimei365.order.model.po.CouponClubPo">
+        SELECT userId,couponId
+        FROM cm_coupon_club
+        WHERE id = #{clubCouponId}
+    </select>
 </mapper>