Browse Source

修复优惠码的BUG

李天标 5 years ago
parent
commit
b92aa4f7a0

+ 72 - 0
src/main/java/com/shawn/web/controller/TPromoCodeController.java

@@ -316,4 +316,76 @@ public class TPromoCodeController extends BaseController<TPromoCode, TPromoCodeE
 
         return "success";
     }
+
+    @RequestMapping(value = "/send2", method = RequestMethod.GET)
+    @ResponseBody
+    public Object send2(String sn,Double price){
+
+
+        // 订单号
+
+        //价格
+        Double pri = tPromoCodeService.findPrice();
+        //生成优惠码的个数
+        double num = price/pri;
+        int number = (int) num;
+
+        TOrderExample tOrderExample = new TOrderExample();
+        TOrderExample.Criteria criteria = tOrderExample.createCriteria();
+        criteria.andSnEqualTo(sn);
+        List<TOrder> tOrders = tOrderServiceInterface.selectByOption(tOrderExample);
+        TOrder order = tOrders.get(0);
+        String day = order.getTrxNo();
+        if(order.getStatus()!=0){
+            return "success";
+        }
+
+        if(JoinpayConstant.r6_Status_100.equals("100")){
+
+            // 已支付
+            order.setStatus(1);
+
+            // 支付平台产生的流水号
+
+            // 格式:YYYY-MM-DD HH:mm:ss
+
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            Date payDate = new Date();
+            order.setPayDate(payDate);
+            tOrderServiceInterface.updateById(order);
+
+            TAdmin admin = tAdminServiceInterface.selectEntityById(order.getAdminId());
+            JSONObject kindData = new JSONObject();
+            kindData.put("sn" , order.getSn());
+            kindData.put("productName" , order.getProductName());
+            List<String> codes =new ArrayList<>();
+            for(int i=0;i<number;i++){
+                String code = initSn(order.getEquipmentId());
+                StringBuffer str = new StringBuffer();
+                str.append(code.substring(0,6));
+                codes.add(str.toString());
+            }
+            Long data = Calendar.getInstance().getTimeInMillis();
+            Long da = Long.valueOf(day);
+            Long month = da*24L*60L*60L*1000L;
+            Long d = data + month;
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String sd = sdf.format(new Date(Long.parseLong(String.valueOf(d))));
+            Date lastUseDate = new Date(Long.parseLong(String.valueOf(d)));
+            for(String code : codes){
+                TPromoCode promoCode = new TPromoCode();
+                promoCode.setCode(Long.parseLong(code));
+                promoCode.setAdminId(String.valueOf(order.getAdminId()));
+                promoCode.setIsUse("0");
+                promoCode.setLastUseDate(lastUseDate);
+                promoCode.setCreateDate(new Date());
+                promoCode.setUserName(admin.getUsername());
+                tPromoCodeService.insert(promoCode);
+            }
+
+            return "支付成功";
+        }
+
+        return "success";
+    }
 }

+ 2 - 4
src/main/resources/com/shawn/repository/mybatis/TPromoCodeMapper.xml

@@ -119,12 +119,10 @@
     </if>
   </delete>
   <insert id="insert" parameterType="com.shawn.model.entity.TPromoCode">
-    insert into t_promo_code (id, admin_id, last_use_date,
-      create_date, modify_date, code, user_name,is_use,use_date,use_by
-      avatar_url)
+    insert into t_promo_code (id, admin_id, last_use_date,create_date, modify_date, code, user_name,is_use,use_date,use_by)
     values (#{id,jdbcType=INTEGER}, #{adminId,jdbcType=VARCHAR}, #{lastUseDate,jdbcType=TIMESTAMP},
       #{createDate,jdbcType=TIMESTAMP}, #{modifyDate,jdbcType=TIMESTAMP}, #{code,jdbcType=BIGINT},
-      #{userName,jdbcType=VARCHAR}),#{isUse,jdbcType=VARCHAR}),#{useDate,jdbcType=VARCHAR}),#{useBy,jdbcType=VARCHAR})
+      #{userName,jdbcType=VARCHAR},#{isUse,jdbcType=VARCHAR},#{useDate,jdbcType=VARCHAR},#{useBy,jdbcType=VARCHAR})
   </insert>
 
   <select id="findPrice" resultType="java.lang.Double">