xubh %!s(int64=5) %!d(string=hai) anos
pai
achega
069780f39c

+ 21 - 0
src/main/java/com/minpay/common/bean/DrawDto.java

@@ -13,6 +13,27 @@ public class DrawDto {
 
     // 是否中奖
     private boolean isDraw = false;
+    // 订单号
+    private String orderId;
+
+    // 订单详情编号
+    private String orderDetailsId;
+
+    public String getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(String orderId) {
+        this.orderId = orderId;
+    }
+
+    public String getOrderDetailsId() {
+        return orderDetailsId;
+    }
+
+    public void setOrderDetailsId(String orderDetailsId) {
+        this.orderDetailsId = orderDetailsId;
+    }
 
     public String getHuodaoNo() {
         return huodaoNo;

+ 55 - 0
src/main/java/com/minpay/common/service/impl/DrawServiceImpl.java

@@ -5,7 +5,14 @@ import com.minpay.common.exception.BusinessCodeException;
 import com.minpay.common.service.IDrawService;
 import com.minpay.common.service.IPublicService;
 import com.minpay.common.util.CommonUtil;
+import com.minpay.db.table.mapper.VmOrderInfMapper;
+import com.minpay.db.table.mapper.VmProEquRelMapper;
+import com.minpay.db.table.model.VmOrderDetails;
+import com.minpay.db.table.model.VmOrderInf;
+import com.minpay.db.table.model.VmProEquRel;
+import com.minpay.shouhuo.deliveryaction.DeliveryAction;
 import com.startup.minpay.frame.exception.MINBusinessException;
+import com.startup.minpay.frame.service.base.IMINDataBaseService;
 import com.startup.minpay.frame.service.base.Service;
 import com.startup.minpay.frame.target.MINComponent;
 
@@ -73,4 +80,52 @@ public class DrawServiceImpl implements IDrawService {
         return drawDtoList;
     }
 
+    public List<DrawDto> orderDrawGame(VmOrderInf orderInf, VmProEquRel proEquRel, VmOrderDetails vmOrderDetails) throws BusinessCodeException, MINBusinessException {
+
+        //获取累计金额
+        String accumulatedAmount = proEquRel.getAccumulatedAmount();
+        //获取中奖范围
+        String drawAmount = proEquRel.getDrawAmount();
+        //订单金额
+        String orderAmt = orderInf.getOrderAmt();
+        //计算当前累计金额
+        String amt = CommonUtil.add(accumulatedAmount,orderAmt);
+        String[] drawAmountStr = drawAmount.split("-");
+        //开始金额
+        String startAmt = drawAmountStr[0];
+        //结束金额
+        String endAmt = drawAmountStr[0];
+
+        List<DrawDto> drawDtoList = null;
+        DrawDto drawDto = new DrawDto();
+        drawDto.setHuodaoNo(proEquRel.getId());
+        drawDto.setOrderId(orderInf.getId());
+        drawDto.setOrderDetailsId(vmOrderDetails.getDetailsId());
+        //在范围内中奖
+        if(Double.parseDouble(startAmt) <= Double.parseDouble(amt) && Double.parseDouble(amt) >= Double.parseDouble(endAmt)){
+            //重置货道累计金额
+            proEquRel.setAccumulatedAmount("0");
+            drawDto.setDraw(true);
+        }else{
+            drawDto.setDraw(false);
+            if(Double.parseDouble(amt) > Double.parseDouble(endAmt)){
+                //追加累计金额
+                proEquRel.setAccumulatedAmount("0");
+            }else{
+                //追加累计金额
+                proEquRel.setAccumulatedAmount(amt);
+            }
+
+        }
+        Service.lookup(IMINDataBaseService.class)
+                .getMybatisMapper(VmProEquRelMapper.class)
+                .updateByPrimaryKeySelective(proEquRel);
+
+        //todo 更新 订单表, 订单详情表,提货表
+
+        return drawDtoList;
+    }
+
+
+
 }

+ 64 - 0
src/main/java/com/minpay/db/table/model/VmProEquRel.java

@@ -196,6 +196,22 @@ public class VmProEquRel extends AbstractMINBean {
     private String luck;
 
     /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column vm_pro_equ_rel.VCI_ACCUMULATED_AMOUNT
+     *
+     * @mbggenerated
+     */
+    private String accumulatedAmount;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column vm_pro_equ_rel.VCI_DRAW_AMOUNT
+     *
+     * @mbggenerated
+     */
+    private String drawAmount;
+
+    /**
      * This method was generated by MyBatis Generator.
      * This method returns the value of the database column vm_pro_equ_rel.VCI_ID
      *
@@ -770,4 +786,52 @@ public class VmProEquRel extends AbstractMINBean {
     public void setLuck(String luck) {
         this.luck = luck == null ? null : luck.trim();
     }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column vm_pro_equ_rel.VCI_ACCUMULATED_AMOUNT
+     *
+     * @return the value of vm_pro_equ_rel.VCI_ACCUMULATED_AMOUNT
+     *
+     * @mbggenerated
+     */
+    public String getAccumulatedAmount() {
+        return accumulatedAmount;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column vm_pro_equ_rel.VCI_ACCUMULATED_AMOUNT
+     *
+     * @param accumulatedAmount the value for vm_pro_equ_rel.VCI_ACCUMULATED_AMOUNT
+     *
+     * @mbggenerated
+     */
+    public void setAccumulatedAmount(String accumulatedAmount) {
+        this.accumulatedAmount = accumulatedAmount == null ? null : accumulatedAmount.trim();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column vm_pro_equ_rel.VCI_DRAW_AMOUNT
+     *
+     * @return the value of vm_pro_equ_rel.VCI_DRAW_AMOUNT
+     *
+     * @mbggenerated
+     */
+    public String getDrawAmount() {
+        return drawAmount;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column vm_pro_equ_rel.VCI_DRAW_AMOUNT
+     *
+     * @param drawAmount the value for vm_pro_equ_rel.VCI_DRAW_AMOUNT
+     *
+     * @mbggenerated
+     */
+    public void setDrawAmount(String drawAmount) {
+        this.drawAmount = drawAmount == null ? null : drawAmount.trim();
+    }
 }

+ 156 - 0
src/main/java/com/minpay/db/table/model/VmProEquRelExample.java

@@ -2061,6 +2061,162 @@ public class VmProEquRelExample {
             addCriterion("VCI_LUCK not between", value1, value2, "luck");
             return (Criteria) this;
         }
+
+        public Criteria andAccumulatedAmountIsNull() {
+            addCriterion("VCI_ACCUMULATED_AMOUNT is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountIsNotNull() {
+            addCriterion("VCI_ACCUMULATED_AMOUNT is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountEqualTo(String value) {
+            if(value == null ){
+                andAccumulatedAmountIsNull();
+            } else {
+                addCriterion("VCI_ACCUMULATED_AMOUNT =", value, "accumulatedAmount");
+            }
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountNotEqualTo(String value) {
+            if(value == null ){
+                andAccumulatedAmountIsNotNull();
+            } else {
+                addCriterion("VCI_ACCUMULATED_AMOUNT <>", value, "accumulatedAmount");
+            }
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountGreaterThan(String value) {
+            addCriterion("VCI_ACCUMULATED_AMOUNT >", value, "accumulatedAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountGreaterThanOrEqualTo(String value) {
+            addCriterion("VCI_ACCUMULATED_AMOUNT >=", value, "accumulatedAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountLessThan(String value) {
+            addCriterion("VCI_ACCUMULATED_AMOUNT <", value, "accumulatedAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountLessThanOrEqualTo(String value) {
+            addCriterion("VCI_ACCUMULATED_AMOUNT <=", value, "accumulatedAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountLike(String value) {
+            addCriterion("VCI_ACCUMULATED_AMOUNT like", value, "accumulatedAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountNotLike(String value) {
+            addCriterion("VCI_ACCUMULATED_AMOUNT not like", value, "accumulatedAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountIn(List<String> values) {
+            addCriterion("VCI_ACCUMULATED_AMOUNT in", values, "accumulatedAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountNotIn(List<String> values) {
+            addCriterion("VCI_ACCUMULATED_AMOUNT not in", values, "accumulatedAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountBetween(String value1, String value2) {
+            addCriterion("VCI_ACCUMULATED_AMOUNT between", value1, value2, "accumulatedAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccumulatedAmountNotBetween(String value1, String value2) {
+            addCriterion("VCI_ACCUMULATED_AMOUNT not between", value1, value2, "accumulatedAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountIsNull() {
+            addCriterion("VCI_DRAW_AMOUNT is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountIsNotNull() {
+            addCriterion("VCI_DRAW_AMOUNT is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountEqualTo(String value) {
+            if(value == null ){
+                andDrawAmountIsNull();
+            } else {
+                addCriterion("VCI_DRAW_AMOUNT =", value, "drawAmount");
+            }
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountNotEqualTo(String value) {
+            if(value == null ){
+                andDrawAmountIsNotNull();
+            } else {
+                addCriterion("VCI_DRAW_AMOUNT <>", value, "drawAmount");
+            }
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountGreaterThan(String value) {
+            addCriterion("VCI_DRAW_AMOUNT >", value, "drawAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountGreaterThanOrEqualTo(String value) {
+            addCriterion("VCI_DRAW_AMOUNT >=", value, "drawAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountLessThan(String value) {
+            addCriterion("VCI_DRAW_AMOUNT <", value, "drawAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountLessThanOrEqualTo(String value) {
+            addCriterion("VCI_DRAW_AMOUNT <=", value, "drawAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountLike(String value) {
+            addCriterion("VCI_DRAW_AMOUNT like", value, "drawAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountNotLike(String value) {
+            addCriterion("VCI_DRAW_AMOUNT not like", value, "drawAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountIn(List<String> values) {
+            addCriterion("VCI_DRAW_AMOUNT in", values, "drawAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountNotIn(List<String> values) {
+            addCriterion("VCI_DRAW_AMOUNT not in", values, "drawAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountBetween(String value1, String value2) {
+            addCriterion("VCI_DRAW_AMOUNT between", value1, value2, "drawAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andDrawAmountNotBetween(String value1, String value2) {
+            addCriterion("VCI_DRAW_AMOUNT not between", value1, value2, "drawAmount");
+            return (Criteria) this;
+        }
     }
 
     /**

+ 37 - 7
src/main/resources/com/minpay/db/table/mapper/VmProEquRelMapper.xml

@@ -30,6 +30,8 @@
     <result column="VCI_MODIFY_TIME" jdbcType="VARCHAR" property="modifyTime" />
     <result column="VCI_EXEIT_STATE" jdbcType="CHAR" property="exeitState" />
     <result column="VCI_LUCK" jdbcType="VARCHAR" property="luck" />
+    <result column="VCI_ACCUMULATED_AMOUNT" jdbcType="VARCHAR" property="accumulatedAmount" />
+    <result column="VCI_DRAW_AMOUNT" jdbcType="VARCHAR" property="drawAmount" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <!--
@@ -106,7 +108,7 @@
     VCI_CARGO_WAY_LINE, VCI_CARGO_WAY_NUMS, VCI_PRODUCT_NUMS, VCI_USER_Id, VCI_SALL_PRICE, 
     VCI_GAME_PRICE, VCI_COST_PRICE, VCI_IS_PROMOTION, VCI_PROMOTION_PRICE, VCI_GAME_TYPE, 
     VCI_IS_FRAGILE, VCI_REMARKS, VCI_CREATE_USER, VCI_CREATE_TIME, VCI_MODIFY_USER, VCI_MODIFY_TIME, 
-    VCI_EXEIT_STATE, VCI_LUCK
+    VCI_EXEIT_STATE, VCI_LUCK, VCI_ACCUMULATED_AMOUNT, VCI_DRAW_AMOUNT
   </sql>
   <select id="selectByExample" parameterType="com.minpay.db.table.model.VmProEquRelExample" resultMap="BaseResultMap">
     <!--
@@ -166,8 +168,8 @@
       VCI_COST_PRICE, VCI_IS_PROMOTION, VCI_PROMOTION_PRICE, 
       VCI_GAME_TYPE, VCI_IS_FRAGILE, VCI_REMARKS, 
       VCI_CREATE_USER, VCI_CREATE_TIME, VCI_MODIFY_USER, 
-      VCI_MODIFY_TIME, VCI_EXEIT_STATE, VCI_LUCK
-      )
+      VCI_MODIFY_TIME, VCI_EXEIT_STATE, VCI_LUCK, 
+      VCI_ACCUMULATED_AMOUNT, VCI_DRAW_AMOUNT)
     values (#{id,jdbcType=VARCHAR}, #{channel,jdbcType=VARCHAR}, #{productId,jdbcType=VARCHAR}, 
       #{equipmentId,jdbcType=VARCHAR}, #{aisle,jdbcType=VARCHAR}, #{cargoWayRow,jdbcType=VARCHAR}, 
       #{cargoWayLine,jdbcType=VARCHAR}, #{cargoWayNums,jdbcType=VARCHAR}, #{productNums,jdbcType=VARCHAR}, 
@@ -175,8 +177,8 @@
       #{costPrice,jdbcType=VARCHAR}, #{isPromotion,jdbcType=CHAR}, #{promotionPrice,jdbcType=VARCHAR}, 
       #{gameType,jdbcType=VARCHAR}, #{isFragile,jdbcType=CHAR}, #{remarks,jdbcType=VARCHAR}, 
       #{createUser,jdbcType=VARCHAR}, #{createTime,jdbcType=VARCHAR}, #{modifyUser,jdbcType=VARCHAR}, 
-      #{modifyTime,jdbcType=VARCHAR}, #{exeitState,jdbcType=CHAR}, #{luck,jdbcType=VARCHAR}
-      )
+      #{modifyTime,jdbcType=VARCHAR}, #{exeitState,jdbcType=CHAR}, #{luck,jdbcType=VARCHAR}, 
+      #{accumulatedAmount,jdbcType=VARCHAR}, #{drawAmount,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.minpay.db.table.model.VmProEquRel">
     <!--
@@ -257,6 +259,12 @@
       <if test="luck != null">
         VCI_LUCK,
       </if>
+      <if test="accumulatedAmount != null">
+        VCI_ACCUMULATED_AMOUNT,
+      </if>
+      <if test="drawAmount != null">
+        VCI_DRAW_AMOUNT,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -331,6 +339,12 @@
       <if test="luck != null">
         #{luck,jdbcType=VARCHAR},
       </if>
+      <if test="accumulatedAmount != null">
+        #{accumulatedAmount,jdbcType=VARCHAR},
+      </if>
+      <if test="drawAmount != null">
+        #{drawAmount,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.minpay.db.table.model.VmProEquRelExample" resultType="java.lang.Integer">
@@ -422,6 +436,12 @@
       <if test="record.luck != null">
         VCI_LUCK = #{record.luck,jdbcType=VARCHAR},
       </if>
+      <if test="record.accumulatedAmount != null">
+        VCI_ACCUMULATED_AMOUNT = #{record.accumulatedAmount,jdbcType=VARCHAR},
+      </if>
+      <if test="record.drawAmount != null">
+        VCI_DRAW_AMOUNT = #{record.drawAmount,jdbcType=VARCHAR},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -456,7 +476,9 @@
       VCI_MODIFY_USER = #{record.modifyUser,jdbcType=VARCHAR},
       VCI_MODIFY_TIME = #{record.modifyTime,jdbcType=VARCHAR},
       VCI_EXEIT_STATE = #{record.exeitState,jdbcType=CHAR},
-      VCI_LUCK = #{record.luck,jdbcType=VARCHAR}
+      VCI_LUCK = #{record.luck,jdbcType=VARCHAR},
+      VCI_ACCUMULATED_AMOUNT = #{record.accumulatedAmount,jdbcType=VARCHAR},
+      VCI_DRAW_AMOUNT = #{record.drawAmount,jdbcType=VARCHAR}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -537,6 +559,12 @@
       <if test="luck != null">
         VCI_LUCK = #{luck,jdbcType=VARCHAR},
       </if>
+      <if test="accumulatedAmount != null">
+        VCI_ACCUMULATED_AMOUNT = #{accumulatedAmount,jdbcType=VARCHAR},
+      </if>
+      <if test="drawAmount != null">
+        VCI_DRAW_AMOUNT = #{drawAmount,jdbcType=VARCHAR},
+      </if>
     </set>
     where VCI_ID = #{id,jdbcType=VARCHAR}
   </update>
@@ -568,7 +596,9 @@
       VCI_MODIFY_USER = #{modifyUser,jdbcType=VARCHAR},
       VCI_MODIFY_TIME = #{modifyTime,jdbcType=VARCHAR},
       VCI_EXEIT_STATE = #{exeitState,jdbcType=CHAR},
-      VCI_LUCK = #{luck,jdbcType=VARCHAR}
+      VCI_LUCK = #{luck,jdbcType=VARCHAR},
+      VCI_ACCUMULATED_AMOUNT = #{accumulatedAmount,jdbcType=VARCHAR},
+      VCI_DRAW_AMOUNT = #{drawAmount,jdbcType=VARCHAR}
     where VCI_ID = #{id,jdbcType=VARCHAR}
   </update>
 </mapper>