zhanghua
2022-10-10 e6e10141af7c033eeddb649c6d2d1ed93f55bf3f
ycl-platform/src/main/java/com/ycl/common/util/UtilNumber.java
@@ -1,32 +1,48 @@
package com.ycl.common.util;
import com.ycl.mapper.common.GeneratedCodeMapper;
import com.ycl.utils.common.RandomUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Component
public class UtilNumber {
    private GeneratedCodeMapper generatedCodeMapper;
    @Autowired
    public void setGeneratedCodeMapper(GeneratedCodeMapper generatedCodeMapper) {
        this.generatedCodeMapper = generatedCodeMapper;
    }
   public static String getCode(String type ,int n) {
      String  code = type + new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date())+RandomStringUtil.getRandomString(n,RandomStringUtil.ALL);
      return  code;
   }
   public static String getNumber(String type ,int n) {
      String  code = type + new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date())+RandomNumberGenerator.generateNumber(n);
      return  code;
   }
   public static String getApplicationCode(String type ,int n) {
      String  code = type+getApplicationSecret(n);
      return  code;
   }
   public static String getApplicationSecret(int n) {
      String  code = RandomStringUtil.getRandomString(n,RandomStringUtil.CAPITAL_NUM_LOWER);
      return  code;
   }
   public static String getRqUID(String channel) {
      // 6位随机数,用于生成订单号
@@ -37,6 +53,7 @@
            + DateUtils.getNowDate("HHmmss") + rand1 + rand2;
      return rqUID;
   }
   public static String getRqTradeNo(String channel) {
      // 6位随机数,用于生成交易号
      String rand2 = RandomNumberGenerator.generateNumber(6);
@@ -44,6 +61,7 @@
            + DateUtils.getNowDate("HHmmss") + rand2;
      return rqUID;
   }
   public static String getSettleAccount(String memberId) {
      // md5
      String subStr = memberId.substring(memberId.length() - 12,
@@ -109,11 +127,9 @@
   }
   /**
    *
    * 功能描述:去除字符串首部为"0"字符
    * 
    * @param str
    *            传入需要转换的字符串
     * @param str 传入需要转换的字符串
    * @return 转换后的字符串
    */
   public static String removeZero(String str) {
@@ -140,11 +156,9 @@
   }
   /**
    *
    * 功能描述:金额字符串转换:单位分转成单元
    * 
    * @param str
    *            传入需要转换的金额字符串
     * @param str 传入需要转换的金额字符串
    * @return 转换后的金额字符串
    */
   public static String fenToYuan(Object o) {
@@ -188,11 +202,9 @@
   }
   /**
    *
    * 功能描述:金额字符串转换:单位元转成单分
    * 
    * @param str
    *            传入需要转换的金额字符串
     * @param str 传入需要转换的金额字符串
    * @return 转换后的金额字符串
    */
   public static String yuanToFen(Object o) {
@@ -250,10 +262,53 @@
      }
   }
    /**
     * 创建商铺编号
     * 店铺编号:年月日 + 序号  例:202210100001
     *
     * @param
     * @return java.lang.String
     * @author AI
     * @date 2022-10-10 15:43
     */
    public String createShopCode() {
        String ymd = getYMD();
        Integer number = generatedCodeMapper.createNumber(ymd, "shop");
        String numberStr = RandomUtils.formatSign(number, 4);
        return getYMD() + numberStr;
    }
    /**
     * 创建案件编号
     * 案件编号规则:年份 + 区县编号 + 月日 + 序号  例:202233112310100001
     *
     * @param
     * @return java.lang.String
     * @author AI
     * @date 2022-10-10 15:43
     */
    public String createCaseCode() {
        String ymd = getYMD();
        Integer number = generatedCodeMapper.createNumber(ymd, "case");
        String numberStr = RandomUtils.formatSign(number, 4);
        String year = String.valueOf(LocalDateTime.now().getYear());
        String areaCode = "331123";
        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("MMdd");
        String md = dtf2.format(LocalDateTime.now());
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(year);
        stringBuilder.append(areaCode);
        stringBuilder.append(md);
        stringBuilder.append(numberStr);
        return stringBuilder.toString();
    }
    private static String getYMD() {
        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyyMMdd");
        return dtf2.format(LocalDateTime.now());
    }
   public static void main(String[] args) {
       System.out.println(getRqUID("1"));
   }
}