Răsfoiți Sursa

盲票生成

chunping 3 ani în urmă
părinte
comite
e717fe5a80

+ 9 - 6
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketBoxServiceImpl.java

@@ -38,6 +38,8 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -52,6 +54,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
 
 /**
  * <p>
@@ -223,18 +226,18 @@ public class TicketBoxServiceImpl extends ServiceImpl<TicketBoxMapper, TicketBox
         ticket.setSerialNo(ticketPackage.getPkgNo() + "-" + String.format("%1$07d", ticketCnt));
         ticket.setFacePrice(ticketBox.getFacePrice());
         int luckyNum = new Random().nextInt(99) + 1;
-        ticket.setCipherLuckyNum(RSAUtil.encrypt(String.valueOf(luckyNum)));
+        ticket.setCipherLuckyNum(String.valueOf(luckyNum));
         List<TicketDrawNumDTO> drawNumDTOList = new ArrayList<>();
-        List<Integer> randomNumList = getRandomList(new ArrayList<Integer>(), 18, 99);
+        drawNumDTOList.add(new TicketDrawNumDTO(pkgAwards.getName(), luckyNum));
+        // 再生成17个随机数字
+        List<Integer> randomNumList = getRandomList(Arrays.asList(luckyNum), 17, 99);
         for (Integer drawNum : randomNumList) {
-          if (drawNum == luckyNum) {
-            drawNumDTOList.add(new TicketDrawNumDTO(pkgAwards.getName(), drawNum));
-            continue;
-          }
           int awardsNum = new Random().nextInt(ticketAwardsList.size());
           drawNumDTOList.add(
               new TicketDrawNumDTO(ticketAwardsList.get(awardsNum).getName(), drawNum));
         }
+        Collections.shuffle(drawNumDTOList);
+
         ticket.setDrawNum(JSONObject.toJSONString(drawNumDTOList));
         ticket.setIsPhysical(1);
         ticket.setStatus(TicketStatusEnum.NOT_PAY);

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

@@ -337,22 +337,22 @@ public class UserTicketOrderServiceImpl extends
       // 线下购票,优先给当前票的经销商渠道分润
       TicketBox ticketBox = ticketBoxService.getById(ticketOrder.getBoxId());
       Channel channel = channelService.getById(ticketOrder.getChannelId());
-      ChannelCommission channelCommission = saveCommAmt(ticketOrder, ticketBox, channel);
+      ChannelCommission siteCommission = saveSiteCommAmt(ticketOrder, ticketBox, channel);
       // 经销商账户余额增加
       ChannelMoneyLog moneyLog = new ChannelMoneyLog();
       moneyLog.setChannelId(channel.getChannelId());
       moneyLog.setType(ChannelMoneyEnum.COMMISSION);
-      moneyLog.setLogMoney(channelCommission.getCommAmt());
+      moneyLog.setLogMoney(siteCommission.getCommAmt());
       moneyLog.setBizTime(new Date());
       moneyLog.setRefType(ChannelMoneyBizTypeEnum.COMMISSION);
-      moneyLog.setRefId(String.valueOf(channelCommission.getId()));
+      moneyLog.setRefId(String.valueOf(siteCommission.getId()));
       channelMoneyLogService.changeMoney(moneyLog);
 
-      int sumCommAmt = channelCommission.getCommAmt();
+      int sumCommAmt = siteCommission.getCommAmt();
       // 渠道分润
       while (channel.getParentId() > 0) {
         channel = channelService.getById(channel.getParentId());
-
+        ChannelCommission channelCommission = new ChannelCommission();
       }
       // 线下票如果用户没被绑定,则保存经销商用户绑定关系
 
@@ -364,19 +364,19 @@ public class UserTicketOrderServiceImpl extends
     return false;
   }
 
-  private ChannelCommission saveCommAmt(UserTicketOrder ticketOrder, TicketBox ticketBox, Channel channel) {
-    ChannelCommission channelCommission = new ChannelCommission();
-    channelCommission.setChannelId(channel.getChannelId());
-    channelCommission.setOrderId(ticketOrder.getOrderId());
-    channelCommission.setBoxId(ticketOrder.getBoxId());
-    channelCommission.setSaleAmt(ticketOrder.getPayAmt());
-    channelCommission.setSaleCommRate(ticketBox.getSaleCommRate());
-    channelCommission.setSaleCommAmt(new BigDecimal(channelCommission.getSaleAmt()).multiply(
-        channelCommission.getSaleCommRate()).intValue());
-    channelCommission.setCommRate(channel.getCommRate());
-    channelCommission.setCommAmt(new BigDecimal(channelCommission.getSaleCommAmt()).multiply(
-        channelCommission.getCommRate()).intValue());
-    channelCommissionService.save(channelCommission);
-    return channelCommission;
+  private ChannelCommission saveSiteCommAmt(UserTicketOrder ticketOrder, TicketBox ticketBox, Channel channel) {
+    ChannelCommission siteCommission = new ChannelCommission();
+    siteCommission.setChannelId(channel.getChannelId());
+    siteCommission.setOrderId(ticketOrder.getOrderId());
+    siteCommission.setBoxId(ticketOrder.getBoxId());
+    siteCommission.setSaleAmt(ticketOrder.getPayAmt());
+    siteCommission.setSaleCommRate(ticketBox.getSaleCommRate());
+    siteCommission.setSaleCommAmt(new BigDecimal(siteCommission.getSaleAmt()).multiply(
+        siteCommission.getSaleCommRate()).intValue());
+    siteCommission.setCommRate(channel.getCommRate());
+    siteCommission.setCommAmt(new BigDecimal(siteCommission.getSaleCommAmt()).multiply(
+        siteCommission.getCommRate()).intValue());
+    channelCommissionService.save(siteCommission);
+    return siteCommission;
   }
 }