Browse Source

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

Dev

See merge request quanshu/mp-server!132
zhong chunping 3 years ago
parent
commit
60cdb8d475

+ 3 - 3
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ChannelMgrController.java

@@ -77,7 +77,7 @@ public class ChannelMgrController extends BaseApiController {
 		queryWrapper.gt("t1.level", 0);
 		queryWrapper.likeRight(null != channel && StringUtils.isNotBlank(channel.getMobile()), "t1.mobile", channel.getMobile());
 		queryWrapper.likeRight(null != channel && StringUtils.isNotBlank(channel.getName()), "t1.name", channel.getName());
-		queryWrapper.orderByAsc("t1.channel_id");
+		queryWrapper.orderByDesc("t1.channel_id");
 		queryWrapper.last("limit 50");
 		list = channelService.selectChannelVoList(queryWrapper);
 		if(null != list && list.size() > 0) {
@@ -109,7 +109,7 @@ public class ChannelMgrController extends BaseApiController {
 		List<Channel> list = new ArrayList<Channel>();
 		LambdaQueryWrapper<Channel> queryWrapper = new LambdaQueryWrapper<Channel>();
 		queryWrapper.gt(Channel::getLevel, 0);
-		queryWrapper.orderByAsc(Channel::getCreatedTime);
+		queryWrapper.orderByDesc(Channel::getChannelId);
 		list = channelService.list(queryWrapper);
 		return AjaxResult.success(list);
 	}
@@ -134,7 +134,7 @@ public class ChannelMgrController extends BaseApiController {
 		queryWrapper.eq(null != channel && null != channel.getProvinceId(), "t1.province_id", channel.getProvinceId());
 		queryWrapper.eq(null != channel && null != channel.getCityId(), "t1.city_id", channel.getCityId());
 		queryWrapper.eq(null != channel && null != channel.getAreaId(), "t1.area_id", channel.getAreaId());
-		queryWrapper.orderByAsc("t1.channel_id");
+		queryWrapper.orderByDesc("t1.channel_id");
 		list = channelService.selectChannelVoList(queryWrapper);
 		if(null != list && list.size() > 0) {
 			for(ChannelVO channelVO : list) {

+ 1 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/SaleSiteMgrController.java

@@ -85,7 +85,7 @@ public class SaleSiteMgrController extends BaseApiController {
 		queryWrapper.eq(null != channel && null != channel.getProvinceId(), "t1.province_id", channel.getProvinceId());
 		queryWrapper.eq(null != channel && null != channel.getCityId(), "t1.city_id", channel.getCityId());
 		queryWrapper.eq(null != channel && null != channel.getAreaId(), "t1.area_id", channel.getAreaId());
-		queryWrapper.orderByAsc("t1.channel_id");
+		queryWrapper.orderByDesc("t1.channel_id");
 		list = channelService.selectChannelVoList(queryWrapper);
 		if(null != list && list.size() > 0) {
 			for(ChannelVO channelVO : list) {

+ 6 - 3
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java

@@ -84,6 +84,9 @@ public class TicketBoxMgrController extends BaseApiController {
 	@Value("${mp.exportUrl}")
 	private String exportUrl;
 
+	@Value("${export.page-size}")
+	private int pageSize;
+
 	/**
 	 * 查询所有盲票组列表
 	 *
@@ -182,15 +185,15 @@ public class TicketBoxMgrController extends BaseApiController {
 		if (totalSize == 0) {
 			return AjaxResult.error("选择的盲票组中没有可导出的数据");
 		}
-		int pageSize = 2000;
+
 		if(totalSize > pageSize) {
 			int totalPage = totalSize%pageSize == 0 ? totalSize/pageSize : totalSize/pageSize+1;
 			for (int i = 0; i < totalPage; i++) {
 				LambdaQueryWrapper<Ticket> pageQueryWrapper = new LambdaQueryWrapper<Ticket>();
+				pageQueryWrapper.select(Ticket::getSerialNo, Ticket::getDrawNum, Ticket::getCipherLuckyNum);
 				pageQueryWrapper.eq(Ticket::getBoxId, ids.getIds().get(0));
 				pageQueryWrapper.orderByAsc(Ticket::getSerialNo);
-				//pageQueryWrapper.last("limit "+ (i*pageSize) +", " + pageSize);
-				pageQueryWrapper.last("limit " + pageSize);
+				pageQueryWrapper.last("limit "+ (i*pageSize) +", " + pageSize);
 				List<Ticket> list = ticketService.list(pageQueryWrapper);
 				if(null != list && list.size() > 0 ) {
 					listAll.addAll(list);

+ 4 - 0
mp-admin/src/main/resources/application-8100.yml

@@ -117,3 +117,7 @@ cloud:
 miniprogram:
   # 接收通知的状态
   state: formal
+
+# 盲票导出每页查询数量
+export:
+  page-size: 2000

+ 4 - 0
mp-admin/src/main/resources/application-8200.yml

@@ -117,3 +117,7 @@ cloud:
 miniprogram:
   # 接收通知的状态
   state: formal
+
+# 盲票导出每页查询数量
+export:
+  page-size: 2000

+ 4 - 0
mp-admin/src/main/resources/application-dev.yml

@@ -119,3 +119,7 @@ miniprogram:
     # 接收通知的状态
     state: developer
 
+# 盲票导出每页查询数量
+export:
+    page-size: 500
+

+ 4 - 0
mp-admin/src/main/resources/application-test.yml

@@ -124,3 +124,7 @@ mq:
 miniprogram:
   # 接收通知的状态
   state: developer
+
+# 盲票导出每页查询数量
+export:
+  page-size: 500

+ 43 - 0
mp-common/src/main/java/com/qs/mp/common/enums/CommStatusEnum.java

@@ -0,0 +1,43 @@
+package com.qs.mp.common.enums;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.annotation.JSONType;
+import com.baomidou.mybatisplus.annotation.IEnum;
+import com.qs.mp.common.json.EnumValueDeserializer;
+
+/**
+ *
+ * 渠道结佣状态
+ *
+ */
+@JSONType(deserializer = EnumValueDeserializer.class)
+public enum CommStatusEnum implements IEnum<Integer> {
+  NO(0, "未结佣"),
+  YES(1, "已结佣"),
+  DOING(2, "结佣中");
+
+  private final int value;
+  private final String desc;
+
+  CommStatusEnum(final int value, final String desc) {
+    this.value = value;
+    this.desc = desc;
+  }
+
+  @Override
+  public Integer getValue() {
+    return value;
+  }
+
+  /**
+   * 重写toString,单个转化成json
+   * @return
+   */
+  @Override
+  public String toString() {
+    JSONObject object = new JSONObject();
+    object.put("value",value);
+    object.put("desc", desc);
+    return object.toString();
+  }
+}

+ 19 - 2
mp-service/src/main/java/com/qs/mp/mq/impl/PulsarConsumerImpl.java

@@ -5,8 +5,10 @@ import com.qs.mp.admin.domain.TicketAwards;
 import com.qs.mp.admin.domain.TicketBox;
 import com.qs.mp.admin.service.ITicketBoxSerialService;
 import com.qs.mp.admin.service.ITicketBoxService;
+import com.qs.mp.common.enums.CommStatusEnum;
 import com.qs.mp.common.enums.MqTopicType;
 import com.qs.mp.common.enums.TicketBoxStatusEnum;
+import com.qs.mp.common.enums.UserTicketOrderStatusEnum;
 import com.qs.mp.common.pulsar.PulsarConsumer;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.user.domain.UserTicketOrder;
@@ -42,10 +44,25 @@ public class PulsarConsumerImpl implements PulsarConsumer {
     if (MqTopicType.ticket_generate.getValue().equals(topicType)) {
       processTicketGenerateMsg(mqData);
     } else if (MqTopicType.ticket_pay.getValue().equals(topicType)) {
-      String orderId = mqData;
-      UserTicketOrder ticketOrder = userTicketOrderService.getById(orderId);
+      processTicketPayMsg(mqData);
+    }
+  }
 
+  private void processTicketPayMsg(String mqData) {
+    String orderId = mqData;
+    UserTicketOrder ticketOrder = userTicketOrderService.getById(orderId);
+    if (ticketOrder.getCommStatus() != CommStatusEnum.NO) {
+      LogUtil.error(logger, "收到盲票支付成功消息,订单结佣状态不是未结佣,忽略消息。orderId=" + orderId);
+      return;
+    }
+    // 先更新状态,防并发。如果最后生成失败了,暂时人工重新触发
+    boolean rst = userTicketOrderService.update(new LambdaUpdateWrapper<UserTicketOrder>().set(UserTicketOrder::getCommStatus, CommStatusEnum.DOING)
+        .eq(UserTicketOrder::getOrderId, orderId).eq(UserTicketOrder::getCommStatus, CommStatusEnum.NO));
+    if (!rst) {
+      LogUtil.error(logger, "收到盲票支付成功消息,更新订单结佣状态为结佣中失败。orderId=" + orderId);
+      return;
     }
+    userTicketOrderService.commToChannel(orderId);
   }
 
   private void processTicketGenerateMsg(String mqData) {

+ 7 - 0
mp-service/src/main/java/com/qs/mp/user/domain/UserTicketOrder.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.Version;
 import com.qs.mp.admin.domain.Ticket;
+import com.qs.mp.common.enums.CommStatusEnum;
 import com.qs.mp.common.enums.TicketTypeEnum;
 import com.qs.mp.common.enums.UserTicketOrderStatusEnum;
 import java.io.Serializable;
@@ -98,6 +99,12 @@ public class UserTicketOrder implements Serializable {
   @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
   private UserTicketOrderStatusEnum status;
 
+  /**
+   * 结佣标识,1代表已结佣 0代表未结佣
+   */
+  @TableField("coupon_info")
+  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+  private CommStatusEnum commStatus;
   /**
    * 创建时间
    */

+ 7 - 0
mp-service/src/main/java/com/qs/mp/user/service/IUserTicketOrderService.java

@@ -36,4 +36,11 @@ public interface IUserTicketOrderService extends IService<UserTicketOrder> {
    * @return
    */
   boolean paySuccess(PayOrder payOrder);
+
+  /**
+   * 给渠道分润
+   * @param orderId
+   * @return
+   */
+  boolean commToChannel(String orderId);
 }

+ 7 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/UserTicketOrderServiceImpl.java

@@ -11,6 +11,7 @@ import com.qs.mp.admin.service.ITicketBoxService;
 import com.qs.mp.admin.service.ITicketService;
 import com.qs.mp.channel.domain.ChannelUserRel;
 import com.qs.mp.channel.service.IChannelUserRelService;
+import com.qs.mp.common.enums.CommStatusEnum;
 import com.qs.mp.common.enums.MqTopicType;
 import com.qs.mp.common.enums.TicketBoxStatusEnum;
 import com.qs.mp.common.enums.TicketStatusEnum;
@@ -175,6 +176,7 @@ public class UserTicketOrderServiceImpl extends
       ticketOrder.setStatus(UserTicketOrderStatusEnum.NOT_PAY);
     } else {
       ticketOrder.setStatus(UserTicketOrderStatusEnum.FINISHED);
+      ticketOrder.setCommStatus(CommStatusEnum.YES); // 无需结佣,直接置为已结佣
     }
     save(ticketOrder);
 
@@ -296,4 +298,9 @@ public class UserTicketOrderServiceImpl extends
 
     return true;
   }
+
+  @Override
+  public boolean commToChannel(String orderId) {
+    return false;
+  }
 }

+ 2 - 1
mp-service/src/main/resources/mapper/user/UserTicketOrderMapper.xml

@@ -16,13 +16,14 @@
         <result column="resource" property="resource" />
         <result column="coupon_info" property="couponInfo" />
         <result column="status" property="status" />
+        <result column="comm_status" property="commStatus" />
         <result column="created_time" property="createdTime" />
         <result column="updated_time" property="updatedTime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        order_id, user_id, title, box_id, order_amt, discount_amt, pay_amt, ticket_num, memo, resource, coupon_info, status, created_time, updated_time
+        order_id, user_id, title, box_id, order_amt, discount_amt, pay_amt, ticket_num, memo, resource, coupon_info, status, comm_status, created_time, updated_time
     </sql>
 
 </mapper>