姜永辉 1 år sedan
förälder
incheckning
a8bbd78d0a

+ 25 - 9
src/main/java/com/dk/oauth/entity/Trade.java

@@ -33,7 +33,7 @@ import java.util.List;
 @ExportTitle("企业")
 @TableName(value = "t_cp_trade", schema = "dkic_a", autoResultMap = true)
 @ApiModel(value = "实体类:交易记录", description = "表名:t_cp_trade")
-public class Trade  extends PageInfo<Trade> implements Serializable {
+public class Trade extends PageInfo<Trade> implements Serializable {
     /**
      * 交易ID
      */
@@ -114,7 +114,7 @@ public class Trade  extends PageInfo<Trade> implements Serializable {
     private LocalDate buyEndDate;
 
     /**
-     * @desc   : 购买功能
+     * @desc : 购买功能
      */
     @ApiModelProperty(value = "购买功能")
     @Excel(name = "购买功能")
@@ -144,7 +144,7 @@ public class Trade  extends PageInfo<Trade> implements Serializable {
     private Integer extendDays;
 
     /**
-     * @desc   : 东科用户 (null:自缴费)
+     * @desc : 东科用户 (null:自缴费)
      */
     @ApiModelProperty(value = "东科用户")
     @Excel(name = "东科用户")
@@ -152,12 +152,12 @@ public class Trade  extends PageInfo<Trade> implements Serializable {
     private String dkUserId;
 
     /**
-     * @desc   : 交易状态
+     * @desc : 交易状态
      */
     private String tradeStatus;
 
     /**
-     * @desc   : 活动Id-要用数组的,因为续费有多个
+     * @desc : 活动Id-要用数组的,因为续费有多个
      */
     @ApiModelProperty(value = "活动Id")
     @Excel(name = "活动Id")
@@ -165,7 +165,7 @@ public class Trade  extends PageInfo<Trade> implements Serializable {
     private String activityId;
 
     /**
-     * @desc   : 活动明细Id-要用数组的,因为续费有多个
+     * @desc : 活动明细Id-要用数组的,因为续费有多个
      */
     @ApiModelProperty(value = "活动明细Id")
     @Excel(name = "活动明细Id")
@@ -173,7 +173,7 @@ public class Trade  extends PageInfo<Trade> implements Serializable {
     private String activityItemId;
 
     /**
-     * @desc   : 活动明细Id数组--续费时候是多个id
+     * @desc : 活动明细Id数组--续费时候是多个id
      */
     @ApiModelProperty(value = "活动明细Id数组")
     @Excel(name = "活动明细Id数组")
@@ -181,7 +181,7 @@ public class Trade  extends PageInfo<Trade> implements Serializable {
     private List<String> activityItemIds;
 
     /**
-     * @desc   : 活动Id数组--续费时候是多个id
+     * @desc : 活动Id数组--续费时候是多个id
      */
     @ApiModelProperty(value = "活动Id数组")
     @Excel(name = "活动Id数组")
@@ -189,7 +189,23 @@ public class Trade  extends PageInfo<Trade> implements Serializable {
     private List<String> activityIds;
 
     /**
-     * @desc   : 交易描述
+     * @desc : 优惠券使用ID
+     */
+    @ApiModelProperty(value = "优惠券使用ID")
+    @Excel(name = "优惠券使用ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String couponUseId;
+
+    /**
+     * 积分
+     */
+    @Excel(name = "积分")
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
+
+    /**
+     * @desc : 交易描述
      */
     private String tradeDesc;
 

+ 15 - 0
src/main/java/com/dk/oauth/entity/TradeResponse.java

@@ -168,4 +168,19 @@ public class TradeResponse   {
     @TableField(typeHandler = UuidListTypeHandler.class)
     private List<String> activityIds;
 
+    /**
+     * @desc : 优惠券使用ID
+     */
+    @ApiModelProperty(value = "优惠券使用ID")
+    @Excel(name = "优惠券使用ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String couponUseId;
+
+    /**
+     * 积分
+     */
+    @Excel(name = "积分")
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
 }

+ 8 - 4
src/main/java/com/dk/oauth/mapper/integral/CouponUseMapper.xml

@@ -5,11 +5,13 @@
     <!-- 通用设置 -->
     <!-- 通用查询列 -->
     <sql id="Base_Column_List">
-        use_id, cp_id, send_id, coupon_id, use_valid_days, receive_date, use_date, coupon_status, receive_user, flg_valid
+        use_id, cp_id, send_id, coupon_id, use_valid_days, receive_date, use_date, coupon_status, receive_user,
+        flg_valid,use_staff
     </sql>
     <!-- 通用查询列Response -->
     <sql id="Base_Column_List_Response">
-        tmcu.use_id, tmcu.cp_id, tmcu.send_id, tmcu.coupon_id, tmcu.use_valid_days, tmcu.receive_date, tmcu.use_date, tmcu.coupon_status, tmcu.receive_user, tmcu.flg_valid
+        tmcu.use_id, tmcu.cp_id, tmcu.send_id, tmcu.coupon_id, tmcu.use_valid_days, tmcu.receive_date, tmcu.use_date,
+        tmcu.coupon_status, tmcu.receive_user, tmcu.flg_valid,tmcu.use_staff
     </sql>
 
     <!-- 通用查询映射结果 -->
@@ -24,6 +26,8 @@
         <result column="coupon_status" property="couponStatus"/>
         <result column="receive_user" property="receiveUser" typeHandler="UuidTypeHandler"/>
         <result column="flg_valid" property="flgValid"/>
+        <result column="use_staff" property="useStaff"/>
+
     </resultMap>
     <!-- 通用查询映射结果Response -->
     <resultMap id="BaseResultMapResponse" type="com.dk.oauth.model.response.integral.CouponUseResponse">
@@ -123,7 +127,7 @@
         FROM dkic_a.t_mst_coupon_use tmcu
         left join dkic_a.t_mst_coupon tmc on tmc.coupon_id = tmcu.coupon_id
         left join dkic_a.t_a_company tac on tac.cp_id = tmcu.cp_id
-        WHERE use_id = #{id}
+        WHERE use_id = #{id}::uuid
     </select>
 
     <!-- 根据主键锁定表t_mst_coupon_use的一行数据 -->
@@ -131,7 +135,7 @@
         SELECT
         <include refid="Base_Column_List"/>
         FROM dkic_a.t_mst_coupon_use
-        WHERE use_id = #{useId}
+        WHERE use_id = #{useId}::uuid
         for update
     </select>
 

+ 14 - 0
src/main/java/com/dk/oauth/model/VO/integral/CouponUseVO.java

@@ -109,6 +109,20 @@ public class CouponUseVO{
     @TableField(typeHandler = UuidTypeHandler.class)
     private String receiveUser;
 
+    /**
+     * 使用员工
+     */
+    @Excel(name = "使用员工")
+    @ApiModelProperty(value = "使用员工")
+    private String useStaff;
+
+    /**
+     * 积分
+     */
+    @Excel(name = "积分")
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
 
     /**
      * 有效标识 (1:正常 0:停用)

+ 16 - 0
src/main/java/com/dk/oauth/model/pojo/integral/CouponUse.java

@@ -117,6 +117,22 @@ public class CouponUse extends PageInfo<CouponUse> implements Serializable {
 
 
     /**
+     * 使用员工
+     */
+    @Excel(name = "使用员工")
+    @ApiModelProperty(value = "使用员工")
+    private String useStaff;
+
+    /**
+     * 积分
+     */
+    @Excel(name = "积分")
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
+
+
+    /**
      * 有效标识 (1:正常 0:停用)
      */
     @Excel(name = "有效标识 (1:正常 0:停用)")

+ 14 - 0
src/main/java/com/dk/oauth/model/query/integral/CouponUseQuery.java

@@ -100,6 +100,20 @@ public class CouponUseQuery extends PageInfo<CouponUseQuery>  {
     @TableField(typeHandler = UuidTypeHandler.class)
     private String receiveUser;
 
+    /**
+     * 使用员工
+     */
+    @Excel(name = "使用员工")
+    @ApiModelProperty(value = "使用员工")
+    private String useStaff;
+
+    /**
+     * 积分
+     */
+    @Excel(name = "积分")
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
 
     /**
      * 有效标识 (1:正常 0:停用)

+ 14 - 0
src/main/java/com/dk/oauth/model/response/integral/CouponUseResponse.java

@@ -109,6 +109,20 @@ public class CouponUseResponse {
     @TableField(typeHandler = UuidTypeHandler.class)
     private String receiveUser;
 
+    /**
+     * 使用员工
+     */
+    @Excel(name = "使用员工")
+    @ApiModelProperty(value = "使用员工")
+    private String useStaff;
+
+    /**
+     * 积分
+     */
+    @Excel(name = "积分")
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
 
     /**
      * 有效标识 (1:正常 0:停用)

+ 62 - 1
src/main/java/com/dk/oauth/service/wxapi/basic/WechatPayService.java

@@ -20,6 +20,19 @@ import com.dk.oauth.feign.service.StaffFeign;
 import com.dk.oauth.mapper.CompanyMapper;
 import com.dk.oauth.mapper.TradeMapper;
 import com.dk.oauth.mapper.UserMapper;
+import com.dk.oauth.mapper.integral.CouponUseMapper;
+import com.dk.oauth.mapper.integral.IntegralItemMapper;
+import com.dk.oauth.mapper.integral.IntegralMapper;
+import com.dk.oauth.mapper.integral.IntegralTacticMapper;
+import com.dk.oauth.model.pojo.integral.CouponUse;
+import com.dk.oauth.model.pojo.integral.Integral;
+import com.dk.oauth.model.pojo.integral.IntegralItem;
+import com.dk.oauth.model.pojo.integral.IntegralTactic;
+import com.dk.oauth.model.query.integral.IntegralQuery;
+import com.dk.oauth.model.query.integral.IntegralTacticQuery;
+import com.dk.oauth.model.response.integral.CouponUseResponse;
+import com.dk.oauth.model.response.integral.IntegralResponse;
+import com.dk.oauth.model.response.integral.IntegralTacticResponse;
 import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
 import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
 import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
@@ -76,6 +89,15 @@ public class WechatPayService {
     private XxlJobUtils xxlJobUtils;
     @Resource
     StaffFeign staffFeign;
+    @Autowired
+    private CouponUseMapper couponUseMapper;
+    @Autowired
+    //积分策略
+    private IntegralTacticMapper integralTacticMapper;
+    @Autowired
+    private IntegralMapper integralMapper;
+    @Autowired
+    private IntegralItemMapper integralItemMapper;
 
     /**
      * 商户 下单选取旗舰版或专业版的订单
@@ -156,6 +178,45 @@ public class WechatPayService {
         trade.setTradeStatus(Constant.TradeStatus.EFFECTIVE.getName());
         tradeMapper.updateById(trade);
 
+        // 交易的 优惠券id 使用
+        if (tradeResponse.getCouponUseId() != null) {
+            // 更新优惠券的状态
+            //类型转换
+            CouponUse couponUse = new CouponUse();
+            //优惠券使用id
+            couponUse.setUseId(tradeResponse.getCouponUseId());
+            //优惠券状态
+            couponUse.setCouponStatus(Constant.couponStatus.YI_SHI_YONG.getName());
+            //核销日期
+            couponUse.setUseDate(LocalDateTime.now());
+            //更新
+            couponUseMapper.update(couponUse,
+                    new UpdateWrapper<CouponUse>().lambda()
+                            .eq(CouponUse::getUseId, java.util.UUID.fromString(couponUse.getUseId())));
+
+        }
+
+        // 使用员工
+        if (tradeResponse.getIntegral() > 0) {
+            CouponUseResponse couponUseResponse = couponUseMapper.selectById(tradeResponse.getCouponUseId());
+            String staffName = couponUseResponse.getUseStaff();
+            // 积分的使用
+            // 积分明细
+            IntegralItem integralItem = new IntegralItem();
+            integralItem.setIntegralType(Constant.IntegralType.INTEGRAL_TYPE_USE.getName());
+            integralItem.setIntegral(-1 * tradeResponse.getIntegral());
+            integralItem.setCpId(tradeResponse.getCpId());
+            integralItem.setAccDate(LocalDateTime.now());
+            integralItem.setUserId(trade.getWxUserId());
+            integralItem.setStaffName(staffName);
+            integralItemMapper.insert(integralItem);
+            // 积分 总积分
+            Integral integral = new Integral();
+            integral.setCpId(tradeResponse.getCpId());
+            integral.setIntegral(-1 * tradeResponse.getIntegral());
+            integralMapper.updateById(integral);
+        }
+
         // 交易类型-续费- 将该公司的 生成一个job的任务
         if (Constant.TradeType.RENEW.getName().equals(trade.getTradeType())) {
             log.error("交易类型-续费插入任务数据-getTradeType:" + trade.getTradeType());
@@ -256,7 +317,7 @@ public class WechatPayService {
         log.info("@XxlJob(\"renewReminder\")id: {}", XxlJobHelper.getJobParam());
         try {
 //            Integer cpid = 382;
-            Company company = companyMapper.selectById( XxlJobHelper.getJobParam());
+            Company company = companyMapper.selectById(XxlJobHelper.getJobParam());
             // 解析license信息
             String licenseStr = AESUtil.desEncrypt(company.getLicense());
             log.error("续费的公司提醒回调-licenseStr:" + licenseStr);

+ 5 - 0
src/main/resources/mapper/TradeMapper.xml

@@ -27,6 +27,8 @@
         ,t.trade_desc
         ,t.activity_ids
         ,t.activity_item_ids
+        ,t.coupon_use_id
+        ,t.integral
     </sql>
 
     <resultMap type="com.dk.oauth.entity.Trade" id="ResultMap">
@@ -50,6 +52,8 @@
         <result column="trade_desc" property="tradeDesc"/>
         <result column="activity_ids" property="activityIds" typeHandler="UuidListTypeHandler"/>
         <result column="activity_item_ids" property="activityItemIds" typeHandler="UuidListTypeHandler"/>
+        <result column="coupon_use_id" property="couponUseId" typeHandler="UuidTypeHandler"/>
+        <result column="integral" property="integral"/>
     </resultMap>
 
     <!-- 通用查询映射结果 -->
@@ -75,6 +79,7 @@
         <result column="trade_desc" property="tradeDesc"/>
         <result column="activity_ids" property="activityIds" typeHandler="UuidListTypeHandler"/>
         <result column="activity_item_ids" property="activityItemIds" typeHandler="UuidListTypeHandler"/>
+        <result column="integral" property="integral"/>
     </resultMap>
 
     <!-- 通用条件列 -->