瀏覽代碼

feat:“添加单个手动输入优惠码功能“

soobin 1 年之前
父節點
當前提交
66b4bdfd2e
共有 1 個文件被更改,包括 55 次插入28 次删除
  1. 55 28
      src/main/java/com/szwl/controller/TPromoCodeController.java

+ 55 - 28
src/main/java/com/szwl/controller/TPromoCodeController.java

@@ -171,14 +171,19 @@ public class TPromoCodeController {
     }
     @ApiOperation(value = "生成0折优惠码")
     @GetMapping("/addPromoCode")
-    public void addPromoCode(@RequestParam(value = "adminId")String adminId,@RequestParam(value = "lastUseDate")Date lastUseDate,@RequestParam(value = "number")String number) {
+    public void addPromoCode(@RequestParam(value = "adminId")String adminId,@RequestParam(value = "lastUseDate")Date lastUseDate,
+                             @RequestParam(value = "number")String number, @RequestParam(value = "codeNum") String codeNum) {
         int num = Integer.parseInt(number);
         List<String> codes = new ArrayList<>();
-        for (int i = 0; i < num; i++) {
-            String code = orderService.initSn(Long.valueOf(adminId));
-            StringBuffer str = new StringBuffer();
-            str.append(code.substring(0, 6));
-            codes.add(str.toString());
+        if(StringUtils.isEmpty(codeNum)) {
+            for (int i = 0; i < num; i++) {
+                String code = orderService.initSn(Long.valueOf(adminId));
+                StringBuffer str = new StringBuffer();
+                str.append(code.substring(0, 6));
+                codes.add(str.toString());
+            }
+        } else {
+            codes.add(codeNum);
         }
         TAdmin admin = adminService.getById(adminId);
         for (String code : codes) {
@@ -322,21 +327,41 @@ public class TPromoCodeController {
     }
     @ApiOperation(value = "添加优惠码")
     @GetMapping("/add")
-    public ResponseModel<?> add(Long adminId,int number,Float discount,Float month,String type,String frpCode) {
-        if(discount==null||month==null||adminId==null||StringUtils.isEmpty(type)){
+    public ResponseModel<?> add(String addMode, String codeNum,
+                                Long adminId,int number,Float discount,
+                                Float month,String type,String frpCode) {
+        if(discount == null || month == null || adminId == null || StringUtils.isEmpty(type)){
             return R.fail(A0001);
         }
+        if (addMode.equals("2")) {
+            if(StringUtils.isEmpty(codeNum)){
+                return R.fail(A0001,"优惠码为空");
+            }
+            LambdaQueryWrapper<TPromoCode> query = new LambdaQueryWrapper<>();
+            query.eq(TPromoCode::getCode,codeNum);
+            query.eq(TPromoCode::getIsUse,0);
+            query.eq(TPromoCode::getAdminId, adminId);
+            TPromoCode tPromoCode = promoCodeService.getOne(query);
+            if(tPromoCode != null) {
+                // 已存在优惠码
+                return R.fail(A0002, "已存在该优惠码");
+            }
+        }
         TAdmin admin = adminService.getById(adminId);
         if(String.valueOf(admin.getId()).equals("1")){
             List<String> codes =new ArrayList<>();
-            for(int i=0;i<number;i++){
-                StringBuilder num = new StringBuilder();
-                Random random = new Random();
-                for (int j = 0; j < 8; j++) {
-                    num.append(String.valueOf(random.nextInt(10)));
+            if (addMode.equals("1")) {
+                for(int i=0;i<number;i++){
+                    StringBuilder num = new StringBuilder();
+                    Random random = new Random();
+                    for (int j = 0; j < 8; j++) {
+                        num.append(random.nextInt(10));
+                    }
+                    String code = num.toString();
+                    codes.add(code);
                 }
-                String code = num.toString();
-                codes.add(code);
+            } else {
+                codes.add(codeNum);
             }
             Long data = Calendar.getInstance().getTimeInMillis();
             Float mm = month*10;
@@ -346,8 +371,6 @@ public class TPromoCodeController {
             Long t = Long.valueOf(th);
             Long mon = 30L*24L*60L*60L*1000L;
             Long d = data + ((mon*t)/10);
-            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();
@@ -367,13 +390,13 @@ public class TPromoCodeController {
         query.eq(TEquipment::getAdminId,admin.getId());
         List<TEquipment> list = tEquipmentService.list(query);
         TEquipment equipment = list.get(0);
-        if(list.size()==0){
+        if(list.size() == 0){
             // "要有机器才能购买优惠码";
             return R.fail("没有机器");
         }
         //0折优惠码需要支付
         if(type.equals("0")&&discount==0){
-            if(admin.getPromoCodeOpen()==null||admin.getPromoCodeOpen().equals("1")){
+            if(admin.getPromoCodeOpen() == null || admin.getPromoCodeOpen().equals("1")){
                 Long equipmentId = equipment.getId();
                 Double money = null;
                 LambdaQueryWrapper<TPrice> query1 = Wrappers.lambdaQuery();
@@ -393,6 +416,9 @@ public class TPromoCodeController {
                 BigDecimal amount = cutPrice;
                 String productDesc = "";
                 String commonParameter = "";
+                if(addMode.equals("2") && StringUtils.isNotEmpty(codeNum)) {
+                    commonParameter = codeNum;
+                }
                 String returnUrl = null;
                 String notifyUrl = JoinpayConstant.Notify_Url_PromoCode;
                 String isShowPic = "1";
@@ -449,14 +475,17 @@ public class TPromoCodeController {
             }
 
         }
-//        Long equipmentId = equipment.getId();
         Long client6 = Long.parseLong(equipment.getClientId().substring(equipment.getClientId().length() - 6));
         List<String> codes =new ArrayList<>();
-        for(int i=0;i<number;i++){
-            String code = orderService.initSn(client6);
-            StringBuffer str = new StringBuffer();
-            str.append(code.substring(0,6));
-            codes.add(str.toString());
+        if (addMode.equals("1")) {
+            for(int i=0;i<number;i++){
+                String code = orderService.initSn(client6);
+                StringBuffer str = new StringBuffer();
+                str.append(code.substring(0,6));
+                codes.add(str.toString());
+            }
+        } else {
+            codes.add(codeNum);
         }
         Long data = Calendar.getInstance().getTimeInMillis();
         Float mm = month*10;
@@ -466,8 +495,6 @@ public class TPromoCodeController {
         Long t = Long.valueOf(th);
         Long mon = 30L*24L*60L*60L*1000L;
         Long d = data + ((mon*t)/10);
-        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();
@@ -481,7 +508,7 @@ public class TPromoCodeController {
             promoCode.setType(type);
             promoCodeService.save(promoCode);
         }
-        return R.ok(null,"生成成功");
+        return R.ok("生成成功");
     }
     @ApiOperation(value = "获取优惠码列表")
     @GetMapping("/pagePromoCode")