Procházet zdrojové kódy

Merge branch 'dev' into 'mp-server-test'

Dev

See merge request quanshu/mp-server!1029
Evan před 2 roky
rodič
revize
bbbdc9e10d

+ 11 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/CouponMgrController.java

@@ -29,6 +29,7 @@ import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.enums.BusinessType;
 import com.qs.mp.common.enums.CouponStatusEnum;
+import com.qs.mp.common.enums.CouponTypeEnum;
 import com.qs.mp.common.enums.CouponUseAreaEnum;
 import com.qs.mp.common.enums.ErrorCodeEnum;
 import com.qs.mp.common.enums.UserCouponStatusEnum;
@@ -223,6 +224,11 @@ public class CouponMgrController extends BaseApiController {
         if (StringUtils.isNotBlank(couponParam.getCouponId())) {
             return AjaxResult.error("该代金券已存在");
         }
+        if (couponParam.getIsNewUserCoupon() != null && couponParam.getIsNewUserCoupon() == 1) {
+            if (!CouponTypeEnum.TICKET_ORDER.equals(couponParam.getType())) {
+                return AjaxResult.error("该类型优惠券不支持新用户发放");
+            }
+        }
         Coupon coupon = mapperFacade.map(couponParam, Coupon.class);
         // 1、校验名称是否重复(代金券表)
         LambdaQueryWrapper<Coupon> queryWrapper = new LambdaQueryWrapper<>();
@@ -274,6 +280,11 @@ public class CouponMgrController extends BaseApiController {
         if (null == couponParam || StringUtils.isBlank(couponParam.getCouponId())) {
             return error(ErrorCodeEnum.ERROR_CODE_1001);
         }
+        if (couponParam.getIsNewUserCoupon() != null && couponParam.getIsNewUserCoupon() == 1) {
+            if (!CouponTypeEnum.TICKET_ORDER.equals(couponParam.getType())) {
+                return AjaxResult.error("该类型优惠券不支持新用户发放");
+            }
+        }
         Coupon coupon = mapperFacade.map(couponParam, Coupon.class);
         // 1、校验修改代金券是否为当前用户的代金券
         Coupon oldCoupon = couponService.getById(coupon.getCouponId());

+ 23 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/common/UserController.java

@@ -22,6 +22,7 @@ import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.domain.vo.AliPhoneDecryptVO;
 import com.qs.mp.common.enums.AppSourceEnum;
+import com.qs.mp.common.enums.AsyncTaskTypeEnum;
 import com.qs.mp.common.enums.UserIdentityEnum;
 import com.qs.mp.common.enums.WxActTypeEnum;
 import com.qs.mp.common.jsms.JSMSUtils;
@@ -31,9 +32,11 @@ import com.qs.mp.common.utils.StringUtils;
 import com.qs.mp.common.utils.UUIDUtils;
 import com.qs.mp.common.utils.http.HttpUtils;
 import com.qs.mp.core.domain.LoginUser;
+import com.qs.mp.framework.domain.AsyncTask;
 import com.qs.mp.framework.domain.WxAccount;
 import com.qs.mp.framework.security.handle.HostHolder;
 import com.qs.mp.framework.service.IAppTokenService;
+import com.qs.mp.framework.service.IAsyncTaskService;
 import com.qs.mp.framework.service.IWxAccountService;
 import com.qs.mp.framework.web.service.SysLoginService;
 import com.qs.mp.system.domain.SysUser;
@@ -129,6 +132,9 @@ public class UserController extends BaseApiController {
     @Autowired
     private SysLoginService sysLoginService;
 
+    @Autowired
+    private IAsyncTaskService asyncTaskService;
+
     private static final String CBC_CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding";
     private static final String KEY_ALGORITHM = "AES";
     private static final String UTF8 = "UTF-8";
@@ -208,6 +214,14 @@ public class UserController extends BaseApiController {
             sysUser.setNickName(mobile);
             sysUser.setPhonenumber(mobile);
             sysUserService.registerUser(sysUser);
+
+            // 插入新用户发券任务
+            AsyncTask asyncTask = new AsyncTask();
+            asyncTask.setBizId(String.valueOf(sysUser.getUserId()));
+            asyncTask.setType(AsyncTaskTypeEnum.NEW_USER_SEND_COUPON.getValue());
+            if (!asyncTaskService.save(asyncTask)) {
+                logger.error("插入新用户发券任务失败,userId:{}", sysUser.getUserId());
+            }
         }
         Map<String, String> result = sysLoginService.wxAuthLogin(mobile, wxLoginParams.getIdentity());
         for (String key : result.keySet()) {
@@ -448,6 +462,15 @@ public class UserController extends BaseApiController {
             sysUser.setNickName(phoneNumber);
             sysUser.setPhonenumber(phoneNumber);
             sysUserService.registerUser(sysUser);
+
+            // 插入新用户发券任务
+            AsyncTask asyncTask = new AsyncTask();
+            asyncTask.setBizId(String.valueOf(sysUser.getUserId()));
+            asyncTask.setType(AsyncTaskTypeEnum.NEW_USER_SEND_COUPON.getValue());
+            if (!asyncTaskService.save(asyncTask)) {
+                logger.error("插入新用户发券任务失败,userId:{}", sysUser.getUserId());
+            }
+
         }
         Map<String, String> result = sysLoginService.wxAuthLogin(phoneNumber, wxLoginParams.getIdentity());
         for (String key : result.keySet()) {

+ 19 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/system/SysLoginController.java

@@ -4,8 +4,11 @@ package com.qs.mp.web.controller.system;
 import com.qs.mp.common.constant.Constants;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.domain.model.LoginBody;
+import com.qs.mp.common.enums.AsyncTaskTypeEnum;
 import com.qs.mp.common.enums.UserIdentityEnum;
+import com.qs.mp.framework.domain.AsyncTask;
 import com.qs.mp.framework.security.handle.HostHolder;
+import com.qs.mp.framework.service.IAsyncTaskService;
 import com.qs.mp.framework.web.service.SysLoginService;
 import com.qs.mp.framework.web.service.SysPermissionService;
 import com.qs.mp.sms.domain.SmsCode;
@@ -20,6 +23,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.regex.Pattern;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -34,6 +39,9 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 public class SysLoginController
 {
+
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+
     @Autowired
     private SysLoginService loginService;
 
@@ -49,6 +57,9 @@ public class SysLoginController
     @Autowired
     private HostHolder hostHolder;
 
+    @Autowired
+    private IAsyncTaskService asyncTaskService;
+
     /**
      * 登录方法
      *
@@ -103,6 +114,14 @@ public class SysLoginController
             sysUser.setNickName(smsCode.getMobile());
             sysUser.setPhonenumber(smsCode.getMobile());
             sysUserService.registerUser(sysUser);
+
+            // 插入新用户发券任务
+            AsyncTask asyncTask = new AsyncTask();
+            asyncTask.setBizId(String.valueOf(sysUser.getUserId()));
+            asyncTask.setType(AsyncTaskTypeEnum.NEW_USER_SEND_COUPON.getValue());
+            if (!asyncTaskService.save(asyncTask)) {
+                logger.error("插入新用户发券任务失败,userId:{}", sysUser.getUserId());
+            }
         }
 
         AjaxResult ajax = AjaxResult.success();

+ 4 - 1
mp-common/src/main/java/com/qs/mp/common/enums/AsyncTaskTypeEnum.java

@@ -14,7 +14,10 @@ public enum AsyncTaskTypeEnum implements IEnum<Integer> {
     CHANNEL_CONFIRM_RECEIPT(1,"经销商确认收货任务"),
     TICKET_PAY(2,"盲票付款任务"),
     TICKET_GENERATE(3, "盲票生成任务"),
-    CARD_ORDER_DELIVER(4, "卡密订单自动发货");
+    CARD_ORDER_DELIVER(4, "卡密订单自动发货"),
+
+    NEW_USER_SEND_COUPON(5, "新用户发券"),
+    ;
 
     private Integer value;
     private String desc;

+ 5 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/Coupon.java

@@ -54,6 +54,11 @@ public class Coupon implements Serializable {
     @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
     private CouponTypeEnum type;
 
+
+    @ApiModelProperty("是否新用户注册发放:0否,1是")
+    @TableField("is_new_user_coupon")
+    private Integer isNewUserCoupon;
+
     /**
      * 图片
      */

+ 2 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/CouponParam.java

@@ -118,5 +118,7 @@ public class CouponParam {
   @ApiModelProperty("排除的优惠券id列表")
   private List<Long> excludeCouponIds;
 
+  @ApiModelProperty("是否新用户注册发放:0否,1是")
+  private Integer isNewUserCoupon;
 
 }

+ 3 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/CouponVO.java

@@ -62,6 +62,9 @@ public class CouponVO {
     @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
     private CouponTypeEnum type;
 
+    @ApiModelProperty("是否新用户注册发放:0否,1是")
+    private Integer isNewUserCoupon;
+
     /**
      * 图片
      */