소스 검색

渠道邀请码

chunping 3 년 전
부모
커밋
0f81d22f86

+ 9 - 0
mp-common/src/main/java/com/qs/mp/common/core/redis/RedisCache.java

@@ -231,4 +231,13 @@ public class RedisCache
     {
         return redisTemplate.keys(pattern);
     }
+
+    /**
+     * 校验key是否存在
+     * @param key
+     * @return
+     */
+    public boolean hasKey(String key) {
+        return null != redisTemplate.opsForValue().get(key);
+    }
 }

+ 2 - 1
mp-framework/src/main/java/com/qs/mp/framework/config/SecurityConfig.java

@@ -107,7 +107,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                     "/auth/mobile",
                     "/wxlogin",
                     "/api/v1/mp/sms/sendSmsCode",
-                    "/api/v1/mp/user/wxauth/mobile").anonymous()
+                    "/api/v1/mp/user/wxauth/mobile",
+                    "/api/v1/mp/channel/invite/register").anonymous()
                 .antMatchers(
                         HttpMethod.GET,
                         "/",

+ 6 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/TicketBox.java

@@ -32,6 +32,12 @@ public class TicketBox implements Serializable {
   @TableId(value = "box_id" , type = IdType.INPUT)
   private String boxId;
 
+  /**
+   * 盲票组编号
+   */
+  @TableField("box_no")
+  private String boxNo;
+
   /**
    * 盲票组标题
    */

+ 20 - 0
mp-service/src/main/java/com/qs/mp/admin/service/ITicketBoxSerialService.java

@@ -0,0 +1,20 @@
+package com.qs.mp.admin.service;
+
+import com.qs.mp.common.enums.TicketTypeEnum;
+
+/**
+ * 票组序号生成
+ *
+ * @author zhongcp
+ * @Date 2022/3/11
+ */
+public interface ITicketBoxSerialService {
+
+  /**
+   * 格式,共7位 T(票类型)+ 22(年份) + 00001(序号)
+   *
+   * @param ticketType
+   * @return
+   */
+  String generateSerial(TicketTypeEnum ticketType);
+}

+ 75 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketBoxSerialServiceImpl.java

@@ -0,0 +1,75 @@
+package com.qs.mp.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.qs.mp.admin.domain.TicketBox;
+import com.qs.mp.admin.mapper.TicketBoxMapper;
+import com.qs.mp.admin.service.ITicketBoxSerialService;
+import com.qs.mp.common.core.redis.RedisCache;
+import com.qs.mp.common.enums.TicketTypeEnum;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+/**
+ * @author zhongcp
+ * @Date 2022/3/11
+ */
+@Service
+public class TicketBoxSerialServiceImpl implements ITicketBoxSerialService {
+
+  @Autowired
+  private RedisCache redisCache;
+
+  @Autowired
+  private RedisTemplate redisTemplate;
+
+  @Autowired
+  private TicketBoxMapper ticketBoxMapper;
+
+  public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+
+  @Override
+  public String generateSerial(TicketTypeEnum ticketType) {
+    //年份后两位
+    String prefix = sdf.format(new Date()).substring(2);
+
+    //如果日期前缀未过期,则序号自增
+    //否则,将日期作为Key,1作为Value重置,并设置第二年0点过期
+    if (redisCache.hasKey(prefix)) {
+      redisTemplate.opsForValue().increment(prefix, 1);
+
+    } else {
+      int start = 1;
+      List<TicketBox> ticketBoxList = ticketBoxMapper.selectList(new QueryWrapper<TicketBox>().orderByDesc("created_time").last("limit 1"));
+      if (!CollectionUtils.isEmpty(ticketBoxList)) {
+        String boxNo = ticketBoxList.get(0).getBoxNo();
+        int year = Integer.valueOf(boxNo.substring(1, 3));
+        // 同一年份,做累加
+        if (year == Integer.valueOf(prefix)) {
+          start = Integer.valueOf(boxNo.substring(3)) + 1;
+        }
+      }
+      redisTemplate.opsForValue().set(prefix, start);
+      redisTemplate.expireAt(prefix, getNextYearDate());
+
+    }
+    return "T" + prefix + String.format("%1$05d", redisTemplate.opsForValue().get(prefix));
+  }
+
+  // 获取第二年 1月 1日 00:00的时间
+  private static Date getNextYearDate() {
+    Calendar calendar = Calendar.getInstance();
+    calendar.set(Calendar.MONTH, 1);
+    calendar.set(Calendar.DAY_OF_MONTH, 1);
+    calendar.set(Calendar.HOUR_OF_DAY, 0);
+    calendar.set(Calendar.MINUTE, 0);
+    calendar.set(Calendar.SECOND, 0);
+    calendar.add(Calendar.YEAR, 1);
+    return calendar.getTime();
+  }
+}

+ 5 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketBoxServiceImpl.java

@@ -14,6 +14,7 @@ import com.qs.mp.admin.service.ICouponService;
 import com.qs.mp.admin.service.IGoodsService;
 import com.qs.mp.admin.service.ITicketAwardsPrizeService;
 import com.qs.mp.admin.service.ITicketAwardsService;
+import com.qs.mp.admin.service.ITicketBoxSerialService;
 import com.qs.mp.admin.service.ITicketBoxService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qs.mp.common.enums.TicketBoxStatusEnum;
@@ -63,6 +64,9 @@ public class TicketBoxServiceImpl extends ServiceImpl<TicketBoxMapper, TicketBox
   @Autowired
   private ICouponService couponService;
 
+  @Autowired
+  private ITicketBoxSerialService ticketBoxSerialService;
+
   @Override
   @Transactional
   public boolean createTicketBox(TicketBoxCreateParam param) {
@@ -72,6 +76,7 @@ public class TicketBoxServiceImpl extends ServiceImpl<TicketBoxMapper, TicketBox
       ticketBox.setPkgQty(ticketBox.getQuantity() / ticketBox.getPkgUnit());
     }
     ticketBox.setStatus(TicketBoxStatusEnum.PUT_OFF);
+    ticketBox.setBoxNo(ticketBoxSerialService.generateSerial(ticketBox.getType()));
     ticketBox.setBoxId(bizIdGenerator.newId());
     save(ticketBox);
 

+ 2 - 2
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelServiceImpl.java

@@ -69,8 +69,8 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 			sysUser.setUserName(channel.getMobile());
 		    sysUser.setPhonenumber(channel.getMobile());
 		    sysUser.setNickName(channel.getName());
-		    sysUser.setDeptId(SecurityUtils.getDeptId());
-			sysUser.setCreateBy(SecurityUtils.getUsername());
+//		    sysUser.setDeptId(SecurityUtils.getDeptId());
+//			sysUser.setCreateBy(SecurityUtils.getUsername());
 			Long[] roleIds = new Long[1];
 			roleIds[0] = sysRole.getRoleId();
 		    sysUser.setRoleIds(roleIds);

+ 2 - 1
mp-service/src/main/resources/mapper/admin/TicketBoxMapper.xml

@@ -5,6 +5,7 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.qs.mp.admin.domain.TicketBox">
         <id column="box_id" property="boxId" />
+        <result column="box_no" property="boxNo" />
         <result column="title" property="title" />
         <result column="pic_url" property="picUrl" />
         <result column="category_id" property="categoryId" />
@@ -32,7 +33,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        box_id, title, pic_url, category_id, description, sale_point, type, quantity, sale_qty, pkg_sale_price, pkg_unit, pkg_qty, sale_pkg_qty, face_price, sale_price, sale_comm_rate, properties, on_time, off_time, manual_off, status, is_deleted, created_time, updated_time
+        box_id, box_no, title, pic_url, category_id, description, sale_point, type, quantity, sale_qty, pkg_sale_price, pkg_unit, pkg_qty, sale_pkg_qty, face_price, sale_price, sale_comm_rate, properties, on_time, off_time, manual_off, status, is_deleted, created_time, updated_time
     </sql>
 
 </mapper>