|
@@ -1,5 +1,6 @@
|
|
|
package org.jeecg.modules.app.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import lombok.extern.log4j.Log4j2;
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
@@ -21,6 +22,7 @@ import java.time.LocalDate;
|
|
|
import java.time.ZoneId;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.concurrent.ThreadLocalRandom;
|
|
|
|
|
|
@Service
|
|
|
@Log4j2
|
|
@@ -155,16 +157,27 @@ public class OrderServiceImpl implements IOrderService {
|
|
|
AppOrder appOrder = new AppOrder();
|
|
|
switch(type){
|
|
|
case "0":
|
|
|
- AppSitePriceRules appSitePriceRules = appSitePriceRulesMapper.selectById(id.get(0));
|
|
|
- if(appSitePriceRules.getType() == 0){
|
|
|
- appOrder.setOrderStatus(0)
|
|
|
+ List<AppSitePriceRules> priceRules = appSitePriceRulesMapper.selectList(Wrappers.<AppSitePriceRules>lambdaQuery()
|
|
|
+ .in(AppSitePriceRules::getId, id));
|
|
|
+ BigDecimal totalPrice = priceRules.stream()
|
|
|
+ .map(AppSitePriceRules::getSellingPrice)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if(priceRules.get(0).getType() == 0){
|
|
|
+ if(totalPrice.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ appOrder.setPayType(3)
|
|
|
+ .setOrderStatus(2);
|
|
|
+ }else {
|
|
|
+ appOrder.setPayType(2)
|
|
|
+ .setOrderStatus(1);
|
|
|
+ }
|
|
|
+ appOrder.setOrderCode(generateOrderNumber(0))
|
|
|
+ .setOrderCode(priceRules.get(0).getOrgCode())
|
|
|
+ .setTenantId(priceRules.get(0).getTenantId())
|
|
|
+ .setProductIds(priceRules.get(0).getSitePlaceId())
|
|
|
.setType(0)
|
|
|
- .setProductIds("")
|
|
|
.setUserId(userId)
|
|
|
- .setStatus(0)
|
|
|
- .setDelFlag(0)
|
|
|
- .setCreateTime(new Date())
|
|
|
- .setUpdateTime(new Date());
|
|
|
+ .setOriginalPrice(totalPrice);
|
|
|
+// .setPrice(totalPrice)
|
|
|
}
|
|
|
break;
|
|
|
case "1":
|
|
@@ -175,4 +188,20 @@ public class OrderServiceImpl implements IOrderService {
|
|
|
appOrderMapper.insert(appOrder);
|
|
|
return "";
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Author SheepHy
|
|
|
+ * @Description 订单编号生成逻辑
|
|
|
+ * @Date 17:18 2025/7/15
|
|
|
+ * @return
|
|
|
+ **/
|
|
|
+ private String generateOrderNumber(int type) {
|
|
|
+ String format = DateUtil.format(new Date(), "yyyyMMddHHmmss");
|
|
|
+ int nextInt = ThreadLocalRandom.current().nextInt(1000, 10000);
|
|
|
+ if(type == 0){
|
|
|
+ return "D" + format + nextInt;
|
|
|
+ }else {
|
|
|
+ return "T" + format + nextInt;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|