生成订单编号工具

订单编号工具类

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

/**
 * 生成订单工具
 */
public class OrderNoUtil {

  //订单编号前缀
  public static final String PREFIX = "QX-";


  /**
   * description : 生成订单编号(前缀+yyyyMMddHHmmss+digit位随机数)
   * @param digit : 生成几位随机数
   * @return : 订单编号(String)
   */
  public static synchronized String getOrderNo(int digit) {
    StringBuilder resultBuffer = new StringBuilder();
    resultBuffer.append(PREFIX)
        .append(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
    Random random = new Random();
    for (int i = 0; i < digit; i++) {
      resultBuffer.append(random.nextInt(10));
    }
    return resultBuffer.toString();
  }
}
/**
 * 创建申请单
 * @param applyOrderDTO 申请信息
 * @return OrderId
 */
@Override
public Object createApplyOrder(ApplyOrderDTO applyOrderDTO) {
    UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
    JWTUser jwtUser = (JWTUser) authentication.getPrincipal();
    //创建时,OrderStatus,APPLYING;DealStatus,NOT_ACCEPTED;OrderProcessNode,AUDIT_ORDER
    //ProcessId,CREATE_ORDER
    ApplyOrderDO applyOrderDO = new ApplyOrderDO();
    applyOrderDO.setOrderId(OrderNoUtil.getOrderNo(4));
    applyOrderDO.setUserId(jwtUser.getUserDO().getUuid());
    applyOrderDO.setUserName(jwtUser.getUserDO().getUsername());
    applyOrderDO.setUserPhoneNum(jwtUser.getUserDO().getMobile());
    applyOrderDO.setUserCompany(applyOrderDTO.getUserCompany()==null?"无":applyOrderDTO.getUserCompany());
    applyOrderDO.setOrderStatus(OrderStatus.APPLYING);
    applyOrderDO.setDealStatus(DealStatus.NOT_ACCEPTED);
    applyOrderDO.setCreateTime(new Date());
    applyOrderDO.setUserRealName(jwtUser.getUserDO().getUserRealName());
    applyOrderDO.setUserNackName(jwtUser.getUserDO().getNickName());
    applyOrderDO.setOrderProcessNode(OrderProcessNode.AUDIT_ORDER);
    LambdaQueryWrapper<ApplyOrderDO> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(ApplyOrderDO::getOrderId, applyOrderDO.getOrderId());
    long existsRows = applyOrderMapper.selectCount(queryWrapper);

    List<ApplyOrderDetailDO> applyOrderDetailList = applyOrderDTO.getApplyOrderDetailList();
    LambdaQueryWrapper<ApplyOrderDetailDO> queryWrapper1 = new LambdaQueryWrapper<>();
    queryWrapper1.eq(ApplyOrderDetailDO::getOrderId, applyOrderDO.getOrderId());
    long existsRows1 = applyOrderDetailMapper.selectCount(queryWrapper1);

    if (existsRows == 0) {
        applyOrderMapper.insert(applyOrderDO);
        for (ApplyOrderDetailDO detailDO : applyOrderDetailList) {
            detailDO.setOrderId(applyOrderDO.getOrderId());
            if (existsRows1 == 0) {
                applyOrderDetailMapper.insert(detailDO);
            }
        }
        ApplyOrderProcessDO applyOrderProcessDO = new ApplyOrderProcessDO();
        applyOrderProcessDO.setOrderId(applyOrderDO.getOrderId());
        // 这里的是正在进行中的流程,而不是执行完后显示下一步流程。
        applyOrderProcessDO.setProcessId(OrderProcessNode.CREATE_ORDER);
        applyOrderProcessDO.setProcessResult("PASS");
        applyOrderProcessDO.setProcessRemarks("申请单已提交");
        applyOrderProcessDO.setProcessTime(new Date());
        applyOrderProcessDO.setProcessDealUser(jwtUser.getUserDO().getUsername());
        applyOrderProcessDO.setProcessDealMobile(jwtUser.getUserDO().getMobile());
        applyOrderProcessMapper.insert(applyOrderProcessDO);

        Map<String,String> map = new HashMap<>();
        map.put("orderId",applyOrderDO.getOrderId());
        return map;
    } else {
        return "创建申请单失败";
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值