‘linchangsheng’ il y a 5 mois
Parent
commit
5fe418e6b9

+ 3 - 0
mall-server-api/src/main/java/com/gree/mall/manager/constant/Constant.java

@@ -112,6 +112,9 @@ public class Constant {
         public static final String TOKEN_GREE = "SETTLE:TOKEN:GREE";
         public final static String TOKEN_GREE_V3 ="SETTLE:TOKEN:GREE:V3";
         public final static String SYNC_LOCK = "SYNC_LOCK:DEPT:MALL:";
+
+        public final static String LETTER_NUMBER = "LETTER_NUMBER:MALL:";
+        public final static String LETTER_NUMBER_FS = "LETTER_NUMBER_FS:MALL:";
     }
     public class ChatMessage {
         public final static String MSG_TYPE_DOC = "docmsg";

+ 50 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/LetterLogic.java

@@ -2,18 +2,21 @@ package com.gree.mall.manager.logic;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
 import com.gree.mall.manager.bean.letter.*;
 import com.gree.mall.manager.bean.policy.PolicyOrderVO;
 import com.gree.mall.manager.commonmapper.LetterMapper;
+import com.gree.mall.manager.constant.Constant;
 import com.gree.mall.manager.enums.LetterItemStatus;
 import com.gree.mall.manager.enums.LetterStatusEnum;
 import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.logic.common.CommonLogic;
 import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.*;
+import com.gree.mall.manager.utils.RedisUtil;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import com.gree.mall.manager.zfire.util.FieldUtils;
 import org.apache.commons.collections4.CollectionUtils;
@@ -22,6 +25,7 @@ import org.springframework.stereotype.Service;
 
 import java.rmi.RemoteException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -57,6 +61,9 @@ public class LetterLogic {
     @Autowired
     LeLetterItemService leLetterItemService;
 
+    @Autowired
+    RedisUtil redisUtil;
+
 
     public IPage<LeDepartmentVO> list(Page page, ZfireParamBean zfireParam) {
         //获取当前登录企业id
@@ -277,11 +284,54 @@ public class LetterLogic {
     public void addLetter(LeLetter leLetter) {
 
         AdminUserCom adminUser = commonLogic.getAdminUser();
+        AdminWebsit adminWebsit = adminWebsitService.getById(leLetter.getWebsitId());
         leLetter.setCompanyWechatName(adminUser.getCompanyName());
         leLetter.setCompanyWechatId(adminUser.getCompanyWechatId());
+        leLetter.setBelongCompany(adminWebsit.getBelongCompany());
+        leLetter.setBelongCompanyCode(adminWebsit.getBelongCompanyCode());
+        if (adminWebsit.getBelongCompanyCode().equals("S9219801"))
+            leLetter.setLetterNumber(this.generateInvoiceOrder("GZ"));
+        else
+            leLetter.setLetterNumber(this.generateInvoiceOrder("FS"));
+        leLetter.setStatus(LetterStatusEnum.WAIT.getKey());
         leLetter.insert();
     }
 
+    /*
+     * 产生编号
+     * */
+    public String generateInvoiceOrder(String websitNumber) {
+
+        //生成订单流水号
+        if (websitNumber.equals("GZ")) {
+            String yyyyMM = DateUtil.format(new Date(), "yyyy");
+
+            if (redisUtil.get(Constant.RedisPrefix.LETTER_NUMBER + yyyyMM) == null) {
+                redisUtil.set(Constant.RedisPrefix.LETTER_NUMBER + yyyyMM, "00000", 2726560);
+            }
+            Object water = redisUtil.get(Constant.RedisPrefix.LETTER_NUMBER + yyyyMM);
+
+
+            Long number = Convert.toLong(yyyyMM + water) + 1;
+            redisUtil.set(Constant.RedisPrefix.LETTER_NUMBER + yyyyMM, number, 2726560);
+            return websitNumber+number;
+        }
+
+        String yyyyMM = DateUtil.format(new Date(), "yyyy");
+
+        if (redisUtil.get(Constant.RedisPrefix.LETTER_NUMBER_FS + yyyyMM) == null) {
+            redisUtil.set(Constant.RedisPrefix.LETTER_NUMBER_FS + yyyyMM, "00000", 2726560);
+        }
+        Object water = redisUtil.get(Constant.RedisPrefix.LETTER_NUMBER_FS + yyyyMM);
+
+
+        Long number = Convert.toLong(yyyyMM + water) + 1;
+        redisUtil.set(Constant.RedisPrefix.LETTER_NUMBER_FS + yyyyMM, number, 2726560);
+        return websitNumber+number;
+
+    }
+
+
     public void updateLetter(LeLetter leLetter) {
         leLetter.updateById();
     }