Browse Source

2023年3月10日12:34:51

纪新园 2 năm trước cách đây
mục cha
commit
f632f5c8d0

+ 6 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderVO.java

@@ -174,5 +174,11 @@ public class OrderVO extends Order {
 	@TableField(exist = false)
 	private List<String> businesDateList;
 
+	/**
+	 * 来源类型
+	 */
+	@TableField(exist = false)
+	private String type;
+
 
 }

+ 89 - 67
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -767,83 +767,105 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		//保存客户信息
 		corpsDesc.setCode(corpsDesc.getCname());
 		corpsDesc.setCorpType("KH");
-		if (corpsDesc.getId() == null) {
-			if (StringUtils.isBlank(corpsDesc.getCname())) {
-				return R.data(200, "error", "客户名称不能为空");
-			}
-			CorpsDesc corpsDesc1 = baseMapper.selectCorpsDescCname(corpsDesc.getCname(), AuthUtil.getTenantId());
-			if (ObjectUtils.isNotNull(corpsDesc1)) {
-				if (!AuthUtil.getUserRole().equals("操作员")) {
-					corpsDesc1.setAddr(corpsDesc.getAddr());
-					corpsDesc1.setAttn(corpsDesc.getAttn());
-					corpsDesc1.setCname(corpsDesc.getCname());
-				}
-				CorpsAttn corpsAttn = corpsAttnService.getOne(new LambdaQueryWrapper<CorpsAttn>().eq(CorpsAttn::getIsDeleted, 0)
-					.eq(CorpsAttn::getTenantId, AuthUtil.getTenantId())
-					.eq(CorpsAttn::getPid, corpsDesc1.getId())
-					.eq(CorpsAttn::getTel, corpsDesc.getTel()));
-				if (ObjectUtils.isNotNull(corpsAttn)) {
-					corpsAttn.setAddr(corpsDesc.getAddr());
-					corpsAttn.setAttn(corpsDesc.getAttn());
-					corpsAttnService.updateById(corpsAttn);
-				}
-				CorpsAddr corpsAddr = corpsAddrService.getOne(new LambdaQueryWrapper<CorpsAddr>().eq(CorpsAddr::getIsDeleted, 0)
-					.eq(CorpsAddr::getTenantId, AuthUtil.getTenantId())
-					.eq(CorpsAddr::getPid, corpsDesc1.getId())
-					.eq(CorpsAddr::getTel, corpsDesc.getTel()));
-				if (ObjectUtils.isNotNull(corpsAddr)) {
-					corpsAddr.setAddr(corpsDesc.getAddr());
-					corpsAddr.setDetailedAddress(corpsDesc.getAddr());
-					corpsAddr.setAttn(corpsDesc.getAttn());
-					corpsAddrService.updateById(corpsAddr);
-				}
+		if (StringUtils.isBlank(corpsDesc.getCname())) {
+			return R.data(200, "error", "客户名称不能为空");
+		}
+		CorpsDesc corpsDesc1 = baseMapper.selectCorpsDescCname(corpsDesc.getCname(), AuthUtil.getTenantId());
+		if (ObjectUtils.isNotNull(corpsDesc1)) {
+			CorpsAttn corpsAttn = corpsAttnService.getOne(new LambdaQueryWrapper<CorpsAttn>().eq(CorpsAttn::getIsDeleted, 0)
+				.eq(CorpsAttn::getTenantId, AuthUtil.getTenantId())
+				.eq(CorpsAttn::getPid, corpsDesc1.getId())
+				.eq(CorpsAttn::getTel, corpsDesc.getTel()));
+			if (ObjectUtils.isNotNull(corpsAttn)) {
+				corpsAttn.setAddr(corpsDesc.getAddr());
+				corpsAttn.setAttn(corpsDesc.getAttn());
+				corpsAttnService.updateById(corpsAttn);
 			} else {
-				corpsDesc.setTenantId(SecureUtil.getTenantId());
-				corpsDesc.setCreateDept(Long.valueOf(SecureUtil.getDeptId()));
-				corpsDesc.setCreateTime(date);
-				corpsDesc.setCreateUser(userId);
-				baseMapper.insert(corpsDesc);
-				Long pId = corpsDesc.getId();
-				String tenantId = corpsDesc.getTenantId();
 				//保护客户联系人信息
-				CorpsAttn corpsAttn = new CorpsAttn();
+				CorpsAttn corpsAttn1 = new CorpsAttn();
 				User user = userClient.loginByAccount("", corpsDesc.getTel(), "4", AuthUtil.getTenantId());
 				if (ObjectUtils.isNotNull(user)) {
-					corpsAttn.setUserId(user.getId());
+					corpsAttn1.setUserId(user.getId());
 				}
-				corpsAttn.setCode(corpsDesc.getCname());
-				corpsAttn.setCname(corpsDesc.getCname());
-				corpsAttn.setAttn(corpsDesc.getAttn());
-				corpsAttn.setTel(corpsDesc.getTel());
-				corpsAttn.setTenantId(AuthUtil.getTenantId());
-				corpsAttn.setPid(corpsDesc.getId());
-				corpsAttn.setCreateTime(new Date());
-				corpsAttn.setTenantId(AuthUtil.getTenantId());
-				corpsAttn.setCreateUser(AuthUtil.getUserId());
-				corpsAttnService.save(corpsAttn);
-				//保存客户地址信息
-				CorpsAddr corpsAddr = new CorpsAddr();
+				corpsAttn1.setCode(corpsDesc.getCname());
+				corpsAttn1.setCname(corpsDesc.getCname());
+				corpsAttn1.setAttn(corpsDesc.getAttn());
+				corpsAttn1.setTel(corpsDesc.getTel());
+				corpsAttn1.setTenantId(AuthUtil.getTenantId());
+				corpsAttn1.setPid(corpsDesc1.getId());
+				corpsAttn1.setCreateTime(new Date());
+				corpsAttn1.setTenantId(AuthUtil.getTenantId());
+				corpsAttn1.setCreateUser(AuthUtil.getUserId());
+				corpsAttnService.save(corpsAttn1);
+			}
+			CorpsAddr corpsAddr = corpsAddrService.getOne(new LambdaQueryWrapper<CorpsAddr>().eq(CorpsAddr::getIsDeleted, 0)
+				.eq(CorpsAddr::getTenantId, AuthUtil.getTenantId())
+				.eq(CorpsAddr::getPid, corpsDesc1.getId())
+				.eq(CorpsAddr::getTel, corpsDesc.getTel()));
+			if (ObjectUtils.isNotNull(corpsAddr)) {
 				corpsAddr.setAddr(corpsDesc.getAddr());
-				corpsAddr.setDetailedAddress(corpsDesc.getAddr());
+				corpsAddr.setDetailedAddress(corpsDesc.getDetails());
 				corpsAddr.setAttn(corpsDesc.getAttn());
-				corpsAddr.setTel(corpsDesc.getTel());
-				corpsAddr.setTenantId(AuthUtil.getTenantId());
-				corpsAddr.setPid(corpsDesc.getId());
-				corpsAddr.setCreateTime(new Date());
-				corpsAddr.setTenantId(AuthUtil.getTenantId());
-				corpsAddr.setCreateUser(AuthUtil.getUserId());
-				corpsAddrService.save(corpsAddr);
-				//保存客户与类别对应关系
-				this.saveOrUpdateTypeDesc(corpsDesc, userId, pId, date, tenantId);
+				corpsAddr.setAbbreviation("送货地址");
+				corpsAddr.setAlias("默认地址-" + corpsDesc.getAttn());
+				corpsAddrService.updateById(corpsAddr);
+			} else {
+				//保存客户地址信息
+				CorpsAddr corpsAddr1 = new CorpsAddr();
+				corpsAddr1.setAddr(corpsDesc.getAddr());
+				corpsAddr1.setDetailedAddress(corpsDesc.getDetails());
+				corpsAddr1.setAttn(corpsDesc.getAttn());
+				corpsAddr1.setTel(corpsDesc.getTel());
+				corpsAddr1.setAbbreviation("送货地址");
+				corpsAddr1.setAlias("默认地址-" + corpsDesc.getAttn());
+				corpsAddr1.setTenantId(AuthUtil.getTenantId());
+				corpsAddr1.setPid(corpsDesc1.getId());
+				corpsAddr1.setCreateTime(new Date());
+				corpsAddr1.setTenantId(AuthUtil.getTenantId());
+				corpsAddr1.setCreateUser(AuthUtil.getUserId());
+				corpsAddrService.save(corpsAddr1);
 			}
 		} else {
 			corpsDesc.setTenantId(SecureUtil.getTenantId());
-			corpsDesc.setUpdateTime(date);
 			corpsDesc.setCreateDept(Long.valueOf(SecureUtil.getDeptId()));
-			corpsDesc.setUpdateUser(userId);
-			baseMapper.updateById(corpsDesc);
+			corpsDesc.setCreateTime(date);
+			corpsDesc.setCreateUser(userId);
+			baseMapper.insert(corpsDesc);
+			Long pId = corpsDesc.getId();
+			String tenantId = corpsDesc.getTenantId();
+			//保护客户联系人信息
+			CorpsAttn corpsAttn = new CorpsAttn();
+			User user = userClient.loginByAccount("", corpsDesc.getTel(), "4", AuthUtil.getTenantId());
+			if (ObjectUtils.isNotNull(user)) {
+				corpsAttn.setUserId(user.getId());
+			}
+			corpsAttn.setCode(corpsDesc.getCname());
+			corpsAttn.setCname(corpsDesc.getCname());
+			corpsAttn.setAttn(corpsDesc.getAttn());
+			corpsAttn.setTel(corpsDesc.getTel());
+			corpsAttn.setTenantId(AuthUtil.getTenantId());
+			corpsAttn.setPid(corpsDesc.getId());
+			corpsAttn.setCreateTime(new Date());
+			corpsAttn.setTenantId(AuthUtil.getTenantId());
+			corpsAttn.setCreateUser(AuthUtil.getUserId());
+			corpsAttnService.save(corpsAttn);
+			//保存客户地址信息
+			CorpsAddr corpsAddr = new CorpsAddr();
+			corpsAddr.setAddr(corpsDesc.getAddr());
+			corpsAddr.setDetailedAddress(corpsDesc.getDetails());
+			corpsAddr.setAttn(corpsDesc.getAttn());
+			corpsAddr.setTel(corpsDesc.getTel());
+			corpsAddr.setAbbreviation("送货地址");
+			corpsAddr.setAlias("默认地址-" + corpsDesc.getAttn());
+			corpsAddr.setTenantId(AuthUtil.getTenantId());
+			corpsAddr.setPid(corpsDesc.getId());
+			corpsAddr.setCreateTime(new Date());
+			corpsAddr.setTenantId(AuthUtil.getTenantId());
+			corpsAddr.setCreateUser(AuthUtil.getUserId());
+			corpsAddrService.save(corpsAddr);
+			//保存客户与类别对应关系
+			this.saveOrUpdateTypeDesc(corpsDesc, userId, pId, date, tenantId);
 		}
-
 		return R.data(corpsDesc);
 	}
 
@@ -866,7 +888,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 			} else {
 				CorpsDesc corpsDesc1 = new CorpsDesc();
 				R<User> res = userClient.userInfoById(AuthUtil.getUserId());
-				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())){
+				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 					corpsDesc1.setTel(res.getData().getPhone());
 				}
 				return R.data(corpsDesc1);
@@ -874,7 +896,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		} else {
 			CorpsDesc corpsDesc1 = new CorpsDesc();
 			R<User> res = userClient.userInfoById(AuthUtil.getUserId());
-			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())){
+			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				corpsDesc1.setTel(res.getData().getPhone());
 			}
 			return R.data(corpsDesc1);

+ 4 - 4
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java

@@ -687,15 +687,15 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 
 		GoodsDesc goodsDesc = BeanUtil.copy(goodsDescDto, GoodsDesc.class);
 
-		Long id = goodsDescDto.getId();
+		Long id = goodsDesc.getId();
 		// 代表主表、子表都是新增,
 		if (id == null) {
 			if (StringUtil.isBlank(goodsDesc.getCnameInt())) {
 				goodsDesc.setCnameInt(getCnameInt(goodsDesc.getCname()));
 			}
-			goodsDescDto.setTenantId(AuthUtil.getTenantId());
-			goodsDescDto.setCreateTime(new Date());
-			goodsDescDto.setCreateUser(SecureUtil.getUserId());
+			goodsDesc.setTenantId(AuthUtil.getTenantId());
+			goodsDesc.setCreateTime(new Date());
+			goodsDesc.setCreateUser(SecureUtil.getUserId());
 
 			goodsDescMapper.insert(goodsDesc);
 			// ExcelProperty

+ 1 - 1
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/controller/TongLianPaymentController.java

@@ -118,7 +118,7 @@ public class TongLianPaymentController extends BladeController {
 
 					wechatMark.setSrcBillNo(AnalysisMapUtils.getString("cusorderid", params));
 					wechatMark.setSerialNumber(AnalysisMapUtils.getString("trxid", params));
-					wechatMark.setAmount(new BigDecimal(Objects.requireNonNull(AnalysisMapUtils.getString("trxamt", params))));
+					wechatMark.setAmount(new BigDecimal(Objects.requireNonNull(AnalysisMapUtils.getString("trxamt", params))).divide(new BigDecimal(100), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP));
 
 					//支付成功业务处理
 					Order order = new Order();

+ 16 - 7
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java

@@ -338,14 +338,24 @@ public class AppPartsController extends BladeController {
 		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(Order::getTenantId, SecureUtil.getTenantId());//租户id
 		lambdaQueryWrapper.eq(Order::getIsDeleted, 0);//订单是否有效
-		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
+		if (ObjectUtils.isNotNull(order.getType()) && "1".equals(order.getType())){
+			CorpsAttn corpsAttn = corpsAttnClient.getUser(AuthUtil.getUserId());
+			if (ObjectUtils.isNotNull(corpsAttn)) {
+				CorpsDesc corpsDesc = corpsDescClient.getCorpId(corpsAttn.getPid());
+				if (ObjectUtils.isNotNull(corpsDesc)) {
+					lambdaQueryWrapper.eq( Order::getCorpId, corpsDesc.getId());//客户id
+				}
+			}
+		}else{
+			lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getSalesName()), Order::getSalesName, order.getSalesName());//业务员
+			if (AuthUtil.getUserRole().contains("销售") || AuthUtil.getUserRole().contains("业务员")) {
+				lambdaQueryWrapper.eq(Order::getCreateUser, AuthUtil.getUserId());
+			}
+		}
 		lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.SALES.getType());
 		lambdaQueryWrapper.eq(Order::getTradeType, OrderTypeEnum.PARTS.getType());
 		lambdaQueryWrapper.eq(Order::getConfirmStatus, 1);
-		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getSalesName()), Order::getSalesName, order.getSalesName());//业务员
-		if (AuthUtil.getUserRole().contains("销售") || AuthUtil.getUserRole().contains("业务员")) {
-			lambdaQueryWrapper.eq(Order::getCreateUser, AuthUtil.getUserId());
-		}
 		List<Order> orderList = orderService.list(lambdaQueryWrapper);
 
 		BigDecimal total;
@@ -628,8 +638,7 @@ public class AppPartsController extends BladeController {
 	@ApiOperation(value = "新增或修改", notes = "传入order")
 	public R quickBillingWX(@Valid @RequestBody Order order) {
 		order.setTradeType(OrderTypeEnum.PARTS.getType());
-		return orderService.quickBillingWX(order);
-	}
+		return orderService.quickBillingWX(order);}
 
 	/**
 	 * 收付款(单)

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -495,7 +495,7 @@ public interface IOrderService extends IService<Order> {
 
 	R cancelOrder(Order order);
 
-	R payPrepay(Long orderId);
+	R payPrepay(Order order);
 
     R generatePurchase(Order order);
 

+ 33 - 15
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -4247,7 +4247,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						}
 					}
 					//通联支付下单处理
-					R r = this.payPrepay(order.getId());
+					R r = this.payPrepay(order);
 					if (!r.isSuccess() || r.getCode() != 200) {
 						throw new RuntimeException("支付失败!原因:" + r.getData());
 					} else {
@@ -4547,6 +4547,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R collectHairGoods(Order order) {
 		if (order.getId() == null) {
 			throw new RuntimeException("缺少必要参数");
@@ -4862,6 +4864,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R offset(Order order) {
 		Order selectOrder = baseMapper.selectById(order.getId());
 		if (ObjectUtils.isNotNull(selectOrder) && ObjectUtils.isNotNull(selectOrder.getCorpId())) {
@@ -4885,6 +4889,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R cancelOrder(Order order) {
 		if (order.getId() == null) {
 			throw new RuntimeException("缺少必要参数");
@@ -4918,15 +4924,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
-	public R payPrepay(Long orderId) {
+	public R payPrepay(Order order) {
 		//查询订单及物流信息
-		Order orderInfo = baseMapper.selectById(orderId);
+//		Order orderInfo = baseMapper.selectById(orderId);
 
-		if (null == orderInfo) {
+		if (null == order) {
 			throw new RuntimeException("未找到订单信息,订单已取消");
 		}
 
-		if (orderInfo.getActualPaymentStatus() > 1) {
+		if (order.getActualPaymentStatus() > 1) {
 			throw new RuntimeException("订单已支付,请不要重复操作");
 		}
 
@@ -4944,7 +4950,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		try {
 			// body 订单标题
 			LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-			lambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getTenantId, AuthUtil.getTenantId()).eq(OrderItems::getPid, orderId);
+			lambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getTenantId, AuthUtil.getTenantId()).eq(OrderItems::getPid, order.getId());
 			//订单的商品nideshop_order_goods表
 			List<OrderItems> orderGoods = orderItemsMapper.selectList(lambdaQueryWrapper);
 			String body = "商品-";
@@ -4960,8 +4966,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 			PaymentDTO paymentDTO = new PaymentDTO();
-			paymentDTO.setTrxamt(orderInfo.getDebitAmount().intValue());
-			paymentDTO.setReqsn(orderInfo.getSysNo());
+			paymentDTO.setTrxamt(order.getBalanceAmount().multiply(new BigDecimal(100)).intValue());
+			paymentDTO.setReqsn(order.getSysNo());
 			paymentDTO.setPaytype(parameters.getPayType());
 			paymentDTO.setBody(body);
 			paymentDTO.setRemark("");
@@ -4985,12 +4991,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				// 付款
-				orderInfo.setActualPaymentStatus(1);
-				orderInfo.setRmbAmount(orderInfo.getDebitAmount().multiply(new BigDecimal(100)));
-				orderInfo.setOldTrxId(res.getData().get("trxid").toString());
+				order.setActualPaymentStatus(1);
+				order.setRmbAmount(order.getDebitAmount().multiply(new BigDecimal(100)));
+				order.setOldTrxId(res.getData().get("trxid").toString());
 				//更新订单表
-				baseMapper.updateById(orderInfo);
-				res.getData().put("id", orderInfo.getId());
+				baseMapper.updateById(order);
+				res.getData().put("id", order.getId());
 				return R.data(res.getData());
 			} else {
 				throw new RuntimeException("下单失败");
@@ -5388,6 +5394,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R quickBillingWX(Order order) {
 		// 校验单号重复-新增
 		if (order.getId() == null && StringUtils.isNotBlank(order.getOrderNo())) {
@@ -5585,7 +5593,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			}
 		}
 		//通联支付下单处理
-		R r = this.payPrepay(order.getId());
+		R r = this.payPrepay(order);
 		if (!r.isSuccess() || r.getCode() != 200) {
 			throw new RuntimeException("支付失败!原因:" + r.getData());
 		} else {
@@ -5678,6 +5686,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	/**
 	 * 确认发货,收货
 	 */
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R delivery(Order order) {
 		if (order.getId() == null) {
 			throw new RuntimeException("缺少必要参数");
@@ -5869,6 +5879,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R savePlaceOrderMall(Order order) {
 		// 校验单号重复-新增
 		if (order.getId() == null && StringUtils.isNotBlank(order.getOrderNo())) {
@@ -6121,6 +6133,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R quickBillingMall(Order order) {
 		// 校验单号重复-新增
 		if (order.getId() == null && StringUtils.isNotBlank(order.getOrderNo())) {
@@ -6253,6 +6267,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			if (ObjectUtils.isNotNull(goodsDescList) && goodsDescList.size() > 0) {
 				order.setGoodsList(goodsDescList.stream().map(GoodsDesc::getCname).distinct().collect(Collectors.joining()));
 			}
+		} else {
+			throw new RuntimeException("请选择商品信息");
 		}
 		if (ObjectUtils.isNull(order.getThisUsedProfit())) {
 			order.setThisUsedProfit(new BigDecimal("0"));
@@ -6303,7 +6319,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			}
 		}
 		//通联支付下单处理
-		R r = this.payPrepay(order.getId());
+		R r = this.payPrepay(order);
 		if (!r.isSuccess() || r.getCode() != 200) {
 			throw new RuntimeException("支付失败!原因:" + r.getData());
 		} else {
@@ -6312,6 +6328,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R cancelOrderMall(Order order) {
 		if (order.getId() == null) {
 			throw new RuntimeException("缺少必要参数");

+ 3 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/mapper/StockGoodsMapper.xml

@@ -230,6 +230,9 @@
                     ORDER BY t1.stock_price desc
                 </if>
             </if>
+            <if test="stock.sort == null">
+                ORDER BY t1.create_time desc
+            </if>
         </where>
     </select>
     <select id="selectAppStockStatistics" resultType="org.springblade.stock.vo.AppStockPartsVO">