diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/entity/HotelLeaseLog.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/entity/HotelLeaseLog.java
index 84bafb1..a6189b4 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/entity/HotelLeaseLog.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/entity/HotelLeaseLog.java
@@ -106,4 +106,11 @@ public class HotelLeaseLog implements Serializable {
@TableField(exist = false)
private String isWash;
private String orderDetailId;
+ /**水洗数量*/
+ private Integer washNum;
+ /**水洗单价*/
+ @TableField(exist = false)
+ private BigDecimal washUnitPrice;
+ private String pid;
+
}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/mapper/xml/HotelLeaseLogMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/mapper/xml/HotelLeaseLogMapper.xml
index 56052d5..84413a1 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/mapper/xml/HotelLeaseLogMapper.xml
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/mapper/xml/HotelLeaseLogMapper.xml
@@ -5,8 +5,9 @@
-
\ No newline at end of file
+
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/controller/OrderController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/controller/OrderController.java
index 09bb4cd..6bf11ba 100644
--- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/controller/OrderController.java
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/controller/OrderController.java
@@ -50,7 +50,7 @@ public class OrderController {
@ApiOperation(value = "下订单")
@PostMapping("/create")
public Result> createOrder(HttpServletRequest request, @RequestParam String req){
- return orderService.createOrder2(req,TokenUtils.getTokenByRequest(request));
+ return orderService.createOrder4(req,TokenUtils.getTokenByRequest(request));
}
@ApiOperation(value = "订单支付")
@@ -63,7 +63,7 @@ public class OrderController {
@PostMapping("/notify")
public Object orderNotify(@RequestBody String requestBody){
- return orderService.orderNotify2(requestBody);
+ return orderService.orderNotify4(requestBody);
}
@@ -71,7 +71,7 @@ public class OrderController {
@PostMapping("/confirm")
public Result> confirmOrder(HttpServletRequest request,ConfirmOrderReq confirmOrderReq){
confirmOrderReq.setToken(TokenUtils.getTokenByRequest(request));
- return orderService.confirmOrder(confirmOrderReq);
+ return orderService.confirmOrder3(confirmOrderReq);
}
@ApiOperation(value = "上传自己的桌布")
@@ -120,7 +120,7 @@ public class OrderController {
@PostMapping("/cancel")
public Result> cancelOrder(HttpServletRequest request,CancelOrderReq cancelOrderReq){
cancelOrderReq.setToken(TokenUtils.getTokenByRequest(request));
- return orderService.cancelOrder(cancelOrderReq);
+ return orderService.cancelOrder2(cancelOrderReq);
}
}
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/service/IOrderService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/service/IOrderService.java
index 0290112..17660cf 100644
--- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/service/IOrderService.java
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/service/IOrderService.java
@@ -42,6 +42,10 @@ public interface IOrderService {
Result> createOrder2(String req, String token);
+ Result> createOrder3(String req, String token);
+
+ Result> createOrder4(String req, String token);
+
/**
* 支付
* @param orderPayReq
@@ -70,6 +74,20 @@ public interface IOrderService {
*/
Object orderNotify2(String requestBody);
+ /**
+ * 支付回调
+ * @param requestBody
+ * @return
+ */
+ Object orderNotify3(String requestBody);
+
+ /**
+ * 支付回调
+ * @param requestBody
+ * @return
+ */
+ Object orderNotify4(String requestBody);
+
/**
* 申请退货/换货
* @param applyRefundOrderReq
@@ -87,6 +105,10 @@ public interface IOrderService {
*/
Result> confirmOrder(ConfirmOrderReq confirmOrderReq);
+ Result> confirmOrder2(ConfirmOrderReq confirmOrderReq);
+
+ Result> confirmOrder3(ConfirmOrderReq confirmOrderReq);
+
/**
* 上传桌布
* @param uploadTableclothReq
@@ -108,6 +130,8 @@ public interface IOrderService {
*/
Result> cancelOrder(CancelOrderReq cancelOrderReq);
+ Result> cancelOrder2(CancelOrderReq cancelOrderReq);
+
/**
* 换货订单支付接口
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/service/impl/OrderServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/service/impl/OrderServiceImpl.java
index 22d4884..992fc40 100644
--- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/service/impl/OrderServiceImpl.java
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/service/impl/OrderServiceImpl.java
@@ -52,6 +52,7 @@ import org.jeecg.modules.hotelshop.service.IHotelShopService;
import org.jeecg.modules.pay.MpWxPayService;
import org.jeecg.modules.xcx.order.req.*;
import org.jeecg.modules.xcx.order.service.IOrderService;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -749,6 +750,571 @@ public class OrderServiceImpl implements IOrderService {
}
+ @Override
+ public Result> createOrder3(String req, String token) {
+
+ Integer n = (Integer) redisUtil.get("create:order:"+token);
+ if(n != null){
+ throw new JeecgBootException("请勿重复点击");
+ }
+ redisUtil.set("create:order:"+token,1,3);
+ HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(token);
+ if(StringUtils.isBlank(req)){
+ throw new JeecgBootException("请求错误,请刷新重试");
+ }
+ List createOrderReqs = JSON.parseArray(req, CreateOrderReq.class);
+ if(createOrderReqs == null || createOrderReqs.size() == 0){
+ throw new JeecgBootException("请求错误,请刷新重试");
+ }
+ HotelShop hotelShop = hotelShopService.lambdaQuery()
+ .eq(HotelShop::getDelFlag, 0)
+ .eq(HotelShop::getId, hanHaiMember.getShopId())
+ .one();
+
+ Long count = hotelAddressService.lambdaQuery()
+ .eq(HotelAddress::getDelFlag, 0)
+ .eq(HotelAddress::getUserId, hanHaiMember.getId())
+ .count();
+ if (count == 0){
+ throw new JeecgBootException("请先添加地址");
+ }
+ HotelAddress hotelAddress = hotelAddressService.lambdaQuery()
+ .eq(HotelAddress::getDelFlag, 0)
+ .eq(HotelAddress::getUserId, hanHaiMember.getId())
+ .eq(HotelAddress::getId, createOrderReqs.get(0).getAddressId())
+ .one();
+ if(hotelAddress == null){
+ throw new JeecgBootException("请选择地址");
+ }
+
+ //押金
+ String depositPrice1 = hotelConfService.getConf("depositPrice");
+ BigDecimal depositPrice = new BigDecimal(depositPrice1);
+
+ //押金优惠券开关
+ Integer couponFlag = Integer.parseInt(hotelConfService.getConf("couponFlag"));
+ //押金券额
+ BigDecimal couponPrice = new BigDecimal(hotelConfService.getConf("couponPrice"));
+ //押金优惠券条件
+ BigDecimal couponCondition = new BigDecimal(hotelConfService.getConf("couponCondition"));
+
+ //租金优惠券开关
+ Integer leaseCouponFlag = Integer.parseInt(hotelConfService.getConf("leaseCouponFlag"));
+ //租金券额
+ BigDecimal leaseCouponPrice = new BigDecimal(hotelConfService.getConf("leaseCouponPrice"));
+ //租金优惠券条件
+ BigDecimal leaseCouponCondition = new BigDecimal(hotelConfService.getConf("leaseCouponCondition"));
+
+
+ List hotelOrderDetails = new ArrayList<>();
+ //总支付金额
+ BigDecimal totalPrice = BigDecimal.ZERO;
+ //总租金费用
+ BigDecimal totalRentPrice = BigDecimal.ZERO;
+ //总水洗费用
+ BigDecimal totalwashPrice = BigDecimal.ZERO;
+ HotelOrderLog hotelOrderLog = new HotelOrderLog();
+ hotelOrderLog.setId(IdWorker.getIdStr());
+
+ HotelOrder hotelOrder = new HotelOrder();
+ hotelOrder.setId(IdWorker.getIdStr());
+ hotelOrder.setUserName(hotelAddress.getName());
+ hotelOrder.setUserPhone(hotelAddress.getPhone());
+ hotelOrder.setUserAddress(hotelAddress.getAddress()+hotelAddress.getAddressDetail());
+ hotelOrder.setUserId(hanHaiMember.getId());
+ hotelOrder.setType(0);
+ hotelOrder.setStatus(0);
+ hotelOrder.setWashShopFlag(0);
+ hotelOrder.setOrderLogId(hotelOrderLog.getId());
+ for (CreateOrderReq createOrderReq:createOrderReqs){
+ HotelOrderDetail hotelOrderDetail = new HotelOrderDetail();
+ hotelOrderDetail.setOrderId(hotelOrder.getId());
+
+ //租赁逻辑
+ if(createOrderReq.getType() == 0){
+ hotelOrder.setTitle("押金租赁");
+ hotelOrderLog.setType(0);
+ if(StringUtils.isBlank(createOrderReq.getId())){
+ throw new JeecgBootException("商品信息错误");
+ }
+ HotelGoods hotelGoods = hotelGoodsService.lambdaQuery()
+ .eq(HotelGoods::getDelFlag, 0)
+ .eq(HotelGoods::getId, createOrderReq.getId())
+ .one();
+ if(hotelGoods == null){
+ throw new JeecgBootException("商品信息错误");
+ }
+
+ if(StringUtils.isBlank(createOrderReq.getSkuId())){
+ throw new JeecgBootException("请选择规格");
+ }
+
+ HotelGoodsSku hotelGoodsSku = hotelGoodsSkuService.lambdaQuery()
+ .eq(HotelGoodsSku::getDelFlag, 0)
+ .eq(HotelGoodsSku::getId, createOrderReq.getSkuId())
+ .one();
+ if(hotelGoodsSku == null){
+ throw new JeecgBootException("规格信息错误");
+ }
+
+ HotelCategory hotelCategory = hotelCategoryService.lambdaQuery()
+ .eq(HotelCategory::getDelFlag, 0)
+ .eq(HotelCategory::getId, hotelGoods.getCategoryId())
+ .one();
+
+ BigDecimal price = depositPrice.multiply(new BigDecimal(createOrderReq.getNum()));
+ totalPrice = totalPrice.add(price);
+ hotelOrder.setDeposit(totalPrice);
+
+
+ hotelOrderDetail.setPic(hotelGoods.getPic());
+ hotelOrderDetail.setDeposit(price);
+ hotelOrderDetail.setGoodsId(hotelGoods.getId());
+ hotelOrderDetail.setGoodsName(hotelGoods.getName());
+ hotelOrderDetail.setSkuId(hotelGoodsSku.getId());
+ hotelOrderDetail.setSku(hotelGoodsSku.getTitle());
+ hotelOrderDetail.setNum(createOrderReq.getNum());
+ hotelOrderDetail.setOrderPay(price);
+ hotelOrderDetail.setCategoryId(hotelCategory.getId());
+ hotelOrderDetail.setOriginalPrice(price);
+ hotelOrderDetail.setOrderId(hotelOrder.getId());
+ hotelOrderDetails.add(hotelOrderDetail);
+ }else if(createOrderReq.getType() == 1){//水洗逻辑
+ hotelOrderLog.setType(1);
+ hotelOrder.setType(1);
+ hotelOrder.setStatus(3);
+
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getId, createOrderReq.getLeaseId())
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .one();
+ if(hotelLeaseLog == null){
+ throw new JeecgBootException("数据错误,请刷新重试");
+ }
+ if(hotelLeaseLog.getLeaseFlag() == 1 && hotelLeaseLog.getStartTime() == null){
+ throw new JeecgBootException("还未确认收货,无法水洗");
+ }
+ int num = hotelLeaseLog.getNum() - hotelLeaseLog.getWashNum();
+ if(num <= 0 || num hotelOrderDetailList = hotelOrderDetailService.lambdaQuery()
+ .eq(HotelOrderDetail::getDelFlag, 0)
+ .eq(HotelOrderDetail::getLeaseId, hotelLeaseLog.getId())
+ .list();
+
+ if(hotelOrderDetailList != null && hotelOrderDetailList.size() > 0){
+ HotelOrder hotelOrder1 = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getType, 1)
+ .in(HotelOrder::getStatus, 4, 5, 6, 16)
+ .eq(HotelOrder::getId, hotelOrderDetailList.stream().map(HotelOrderDetail::getOrderId).collect(Collectors.toList()))
+ .one();
+ if(hotelOrder1 != null){
+ throw new JeecgBootException("该租赁正在水洗中");
+ }
+ }
+
+
+
+ hotelOrder.setOrderLogId(hotelOrderLog.getId());
+
+
+ HotelCategory hotelCategory = hotelCategoryService.lambdaQuery()
+ .eq(HotelCategory::getDelFlag, 0)
+ .eq(HotelCategory::getId, hotelLeaseLog.getCategoryId())
+ .one();
+
+ /*相差天数*/
+ Long untilDay = new Long(0);
+// BigDecimal sumDepositPrice = BigDecimal.ZERO;
+
+ List hotelLeaseLogList = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getLeaseFlag, 1)
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .list();
+
+ for (HotelLeaseLog hotelLeaseLog2:hotelLeaseLogList){
+// if(hotelLeaseLog.getLeaseFlag() == 1){
+ HotelGoodsSku hotelGoodsSku = hotelGoodsSkuService.lambdaQuery()
+ .eq(HotelGoodsSku::getDelFlag, 0)
+ .eq(HotelGoodsSku::getId, hotelLeaseLog2.getSkuId())
+ .one();
+ if(hotelGoodsSku == null){
+ throw new JeecgBootException("规格信息错误");
+ }
+ untilDay = DateUtils2.getUntilDay(hotelLeaseLog2.getStartTime(), DateUtils2.getDate(DateUtils2.getNowDate()));
+// untilDay = untilDay == null
+ /*租金费用*/
+ BigDecimal sumDepositPrice = hotelGoodsSku.getPrice().multiply(new BigDecimal(untilDay).multiply(new BigDecimal(hotelLeaseLog2.getNum())));
+ totalRentPrice = totalRentPrice.add(sumDepositPrice);
+// }
+ }
+
+
+
+
+
+ /*水洗费用*/
+ BigDecimal washPrice = hotelCategory.getPrice().multiply(new BigDecimal(createOrderReq.getNum()));
+ totalwashPrice = totalwashPrice.add(washPrice);
+ /*总费用*/
+ BigDecimal countPrice = totalRentPrice.add(washPrice);
+ totalPrice = totalPrice.add(countPrice);
+
+ hotelOrder.setTitle("水洗订单");
+ hotelOrderDetail.setPic(hotelLeaseLog.getGoodsPic());
+ hotelOrder.setShopId(hotelShop.getUserId());
+ hotelOrderDetail.setRentPay(totalRentPrice);
+ hotelOrderDetail.setWashPay(washPrice);
+ hotelOrderDetail.setOrderPay(countPrice);
+
+ hotelOrderDetail.setOriginalPrice(countPrice);
+ if(StringUtils.isNotBlank(hotelLeaseLog.getGoodsId())){
+ hotelOrderDetail.setGoodsId(hotelLeaseLog.getGoodsId());
+ }
+
+ hotelOrderDetail.setGoodsName(hotelLeaseLog.getGoodsName());
+ if(StringUtils.isNotBlank(hotelLeaseLog.getSkuId())){
+ hotelOrderDetail.setSkuId(hotelLeaseLog.getSkuId());
+ }
+
+ hotelOrderDetail.setSku(hotelLeaseLog.getSku());
+ hotelOrderDetail.setNum(createOrderReq.getNum());
+ hotelOrderDetail.setLeaseId(hotelLeaseLog.getId());
+ hotelOrderDetail.setOrderId(hotelOrder.getId());
+ hotelOrderDetails.add(hotelOrderDetail);
+
+ }
+ }
+
+ BigDecimal originalPrice = totalPrice;
+ hotelOrder.setOriginalPrice(originalPrice);
+ hotelOrder.setDiscountPrice(couponPrice);
+ hotelOrder.setRentPay(totalRentPrice);
+ hotelOrder.setWashPay(totalwashPrice);
+ if(createOrderReqs.get(0).getType() == 0 && couponFlag == 1){
+
+ if(totalPrice.compareTo(couponCondition) >= 0){
+ totalPrice = totalPrice.subtract(couponPrice);
+ }
+ }else if(createOrderReqs.get(0).getType() == 1 && leaseCouponFlag == 1){
+ if(totalRentPrice.compareTo(leaseCouponCondition) >= 0){
+ totalRentPrice = totalRentPrice.subtract(leaseCouponPrice);
+ totalPrice = totalRentPrice.add(totalwashPrice);
+ hotelOrder.setRentPay(totalRentPrice);
+ }
+
+ }
+ hotelOrder.setOrderPay(totalPrice);
+
+ hotelOrderLog.setOrderPay(totalPrice);
+ hotelOrderLog.setUserId(hanHaiMember.getId());
+ hotelOrderLogService.save(hotelOrderLog);
+ hotelOrderDetailService.saveBatch(hotelOrderDetails);
+ hotelOrderService.save(hotelOrder);
+
+ return Result.OK(hotelOrderLog);
+ }
+
+ @Override
+ public Result> createOrder4(String req, String token) {
+
+ Integer n = (Integer) redisUtil.get("create:order:"+token);
+ if(n != null){
+ throw new JeecgBootException("请勿重复点击");
+ }
+ redisUtil.set("create:order:"+token,1,3);
+ HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(token);
+ if(StringUtils.isBlank(req)){
+ throw new JeecgBootException("请求错误,请刷新重试");
+ }
+ List createOrderReqs = JSON.parseArray(req, CreateOrderReq.class);
+ if(createOrderReqs == null || createOrderReqs.size() == 0){
+ throw new JeecgBootException("请求错误,请刷新重试");
+ }
+ HotelShop hotelShop = hotelShopService.lambdaQuery()
+ .eq(HotelShop::getDelFlag, 0)
+ .eq(HotelShop::getId, hanHaiMember.getShopId())
+ .one();
+
+ Long count = hotelAddressService.lambdaQuery()
+ .eq(HotelAddress::getDelFlag, 0)
+ .eq(HotelAddress::getUserId, hanHaiMember.getId())
+ .count();
+ if (count == 0){
+ throw new JeecgBootException("请先添加地址");
+ }
+ HotelAddress hotelAddress = hotelAddressService.lambdaQuery()
+ .eq(HotelAddress::getDelFlag, 0)
+ .eq(HotelAddress::getUserId, hanHaiMember.getId())
+ .eq(HotelAddress::getId, createOrderReqs.get(0).getAddressId())
+ .one();
+ if(hotelAddress == null){
+ throw new JeecgBootException("请选择地址");
+ }
+
+ //押金
+ String depositPrice1 = hotelConfService.getConf("depositPrice");
+ BigDecimal depositPrice = new BigDecimal(depositPrice1);
+
+ //押金优惠券开关
+ Integer couponFlag = Integer.parseInt(hotelConfService.getConf("couponFlag"));
+ //押金券额
+ BigDecimal couponPrice = new BigDecimal(hotelConfService.getConf("couponPrice"));
+ //押金优惠券条件
+ BigDecimal couponCondition = new BigDecimal(hotelConfService.getConf("couponCondition"));
+
+ //租金优惠券开关
+ Integer leaseCouponFlag = Integer.parseInt(hotelConfService.getConf("leaseCouponFlag"));
+ //租金券额
+ BigDecimal leaseCouponPrice = new BigDecimal(hotelConfService.getConf("leaseCouponPrice"));
+ //租金优惠券条件
+ BigDecimal leaseCouponCondition = new BigDecimal(hotelConfService.getConf("leaseCouponCondition"));
+
+
+ List hotelOrderDetails = new ArrayList<>();
+ //总支付金额
+ BigDecimal totalPrice = BigDecimal.ZERO;
+ //总租金费用
+ BigDecimal totalRentPrice = BigDecimal.ZERO;
+ //总水洗费用
+ BigDecimal totalwashPrice = BigDecimal.ZERO;
+ HotelOrderLog hotelOrderLog = new HotelOrderLog();
+ hotelOrderLog.setId(IdWorker.getIdStr());
+
+ HotelOrder hotelOrder = new HotelOrder();
+ hotelOrder.setId(IdWorker.getIdStr());
+ hotelOrder.setUserName(hotelAddress.getName());
+ hotelOrder.setUserPhone(hotelAddress.getPhone());
+ hotelOrder.setUserAddress(hotelAddress.getAddress()+hotelAddress.getAddressDetail());
+ hotelOrder.setUserId(hanHaiMember.getId());
+ hotelOrder.setType(0);
+ hotelOrder.setStatus(0);
+ hotelOrder.setWashShopFlag(0);
+ hotelOrder.setOrderLogId(hotelOrderLog.getId());
+ for (CreateOrderReq createOrderReq:createOrderReqs){
+ HotelOrderDetail hotelOrderDetail = new HotelOrderDetail();
+ hotelOrderDetail.setOrderId(hotelOrder.getId());
+
+ //租赁逻辑
+ if(createOrderReq.getType() == 0){
+ hotelOrder.setTitle("押金租赁");
+ hotelOrderLog.setType(0);
+ if(StringUtils.isBlank(createOrderReq.getId())){
+ throw new JeecgBootException("商品信息错误");
+ }
+ HotelGoods hotelGoods = hotelGoodsService.lambdaQuery()
+ .eq(HotelGoods::getDelFlag, 0)
+ .eq(HotelGoods::getId, createOrderReq.getId())
+ .one();
+ if(hotelGoods == null){
+ throw new JeecgBootException("商品信息错误");
+ }
+
+ if(StringUtils.isBlank(createOrderReq.getSkuId())){
+ throw new JeecgBootException("请选择规格");
+ }
+
+ HotelGoodsSku hotelGoodsSku = hotelGoodsSkuService.lambdaQuery()
+ .eq(HotelGoodsSku::getDelFlag, 0)
+ .eq(HotelGoodsSku::getId, createOrderReq.getSkuId())
+ .one();
+ if(hotelGoodsSku == null){
+ throw new JeecgBootException("规格信息错误");
+ }
+
+ HotelCategory hotelCategory = hotelCategoryService.lambdaQuery()
+ .eq(HotelCategory::getDelFlag, 0)
+ .eq(HotelCategory::getId, hotelGoods.getCategoryId())
+ .one();
+
+ BigDecimal price = depositPrice.multiply(new BigDecimal(createOrderReq.getNum()));
+ totalPrice = totalPrice.add(price);
+ hotelOrder.setDeposit(totalPrice);
+
+
+ hotelOrderDetail.setPic(hotelGoods.getPic());
+ hotelOrderDetail.setDeposit(price);
+ hotelOrderDetail.setGoodsId(hotelGoods.getId());
+ hotelOrderDetail.setGoodsName(hotelGoods.getName());
+ hotelOrderDetail.setSkuId(hotelGoodsSku.getId());
+ hotelOrderDetail.setSku(hotelGoodsSku.getTitle());
+ hotelOrderDetail.setNum(createOrderReq.getNum());
+ hotelOrderDetail.setOrderPay(price);
+ hotelOrderDetail.setCategoryId(hotelCategory.getId());
+ hotelOrderDetail.setOriginalPrice(price);
+ hotelOrderDetail.setOrderId(hotelOrder.getId());
+ hotelOrderDetails.add(hotelOrderDetail);
+ }else if(createOrderReq.getType() == 1){//水洗逻辑
+ hotelOrderLog.setType(1);
+ hotelOrder.setType(1);
+ hotelOrder.setStatus(3);
+
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getId, createOrderReq.getLeaseId())
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .one();
+ if(hotelLeaseLog == null){
+ throw new JeecgBootException("数据错误,请刷新重试");
+ }
+ if(hotelLeaseLog.getLeaseFlag() == 1 && hotelLeaseLog.getStartTime() == null){
+ throw new JeecgBootException("还未确认收货,无法水洗");
+ }
+ HotelCategory hotelCategory = hotelCategoryService.lambdaQuery()
+ .eq(HotelCategory::getDelFlag, 0)
+ .eq(HotelCategory::getId, hotelLeaseLog.getCategoryId())
+ .one();
+ int num = hotelLeaseLog.getNum() - createOrderReq.getNum();
+ HotelLeaseLog newLeaseLog = null;
+ if(num > 0){
+ //新物品
+ newLeaseLog = new HotelLeaseLog();
+ BeanUtils.copyProperties(hotelLeaseLog, newLeaseLog);
+ newLeaseLog.setId(IdWorker.getIdStr());
+ newLeaseLog.setNum(createOrderReq.getNum());
+ BigDecimal multiply1 = hotelCategory.getPrice().multiply(new BigDecimal(createOrderReq.getNum()));
+ newLeaseLog.setPrice(multiply1);
+ newLeaseLog.setPid(hotelLeaseLog.getId());
+ newLeaseLog.setCreateTime(new Date());
+
+ //旧物品修改
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
+ hotelLeaseLog1.setId(hotelLeaseLog.getId());
+ hotelLeaseLog1.setNum(num);
+ BigDecimal multiply = hotelCategory.getPrice().multiply(new BigDecimal(num));
+ hotelLeaseLog1.setPrice(multiply);
+ hotelLeaseLogService.updateById(hotelLeaseLog1);
+ }
+
+
+ List hotelOrderDetailList = hotelOrderDetailService.lambdaQuery()
+ .eq(HotelOrderDetail::getDelFlag, 0)
+ .eq(HotelOrderDetail::getLeaseId, hotelLeaseLog.getId())
+ .list();
+
+ if(hotelOrderDetailList != null && hotelOrderDetailList.size() > 0){
+ HotelOrder hotelOrder1 = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getType, 1)
+ .in(HotelOrder::getStatus, 4, 5, 6, 16)
+ .eq(HotelOrder::getId, hotelOrderDetailList.stream().map(HotelOrderDetail::getOrderId).collect(Collectors.toList()))
+ .one();
+ if(hotelOrder1 != null){
+ throw new JeecgBootException("该租赁正在水洗中");
+ }
+ }
+
+
+
+ hotelOrder.setOrderLogId(hotelOrderLog.getId());
+
+
+
+
+ /*相差天数*/
+ Long untilDay = new Long(0);
+// BigDecimal sumDepositPrice = BigDecimal.ZERO;
+
+ List hotelLeaseLogList = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getLeaseFlag, 1)
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .list();
+
+ for (HotelLeaseLog hotelLeaseLog2:hotelLeaseLogList){
+// if(hotelLeaseLog.getLeaseFlag() == 1){
+ HotelGoodsSku hotelGoodsSku = hotelGoodsSkuService.lambdaQuery()
+ .eq(HotelGoodsSku::getDelFlag, 0)
+ .eq(HotelGoodsSku::getId, hotelLeaseLog2.getSkuId())
+ .one();
+ if(hotelGoodsSku == null){
+ throw new JeecgBootException("规格信息错误");
+ }
+ untilDay = DateUtils2.getUntilDay(hotelLeaseLog2.getStartTime(), DateUtils2.getDate(DateUtils2.getNowDate()));
+// untilDay = untilDay == null
+ /*租金费用*/
+ BigDecimal sumDepositPrice = hotelGoodsSku.getPrice().multiply(new BigDecimal(untilDay).multiply(new BigDecimal(hotelLeaseLog2.getNum())));
+ totalRentPrice = totalRentPrice.add(sumDepositPrice);
+// }
+ }
+
+
+
+
+
+ /*水洗费用*/
+ BigDecimal washPrice = hotelCategory.getPrice().multiply(new BigDecimal(createOrderReq.getNum()));
+ totalwashPrice = totalwashPrice.add(washPrice);
+ /*总费用*/
+ BigDecimal countPrice = totalRentPrice.add(washPrice);
+ totalPrice = totalPrice.add(countPrice);
+
+ hotelOrder.setTitle("水洗订单");
+ hotelOrderDetail.setPic(hotelLeaseLog.getGoodsPic());
+ hotelOrder.setShopId(hotelShop.getUserId());
+ hotelOrderDetail.setRentPay(totalRentPrice);
+ hotelOrderDetail.setWashPay(washPrice);
+ hotelOrderDetail.setOrderPay(countPrice);
+
+ hotelOrderDetail.setOriginalPrice(countPrice);
+ if(StringUtils.isNotBlank(hotelLeaseLog.getGoodsId())){
+ hotelOrderDetail.setGoodsId(hotelLeaseLog.getGoodsId());
+ }
+
+ hotelOrderDetail.setGoodsName(hotelLeaseLog.getGoodsName());
+ if(StringUtils.isNotBlank(hotelLeaseLog.getSkuId())){
+ hotelOrderDetail.setSkuId(hotelLeaseLog.getSkuId());
+ }
+
+ hotelOrderDetail.setSku(hotelLeaseLog.getSku());
+ hotelOrderDetail.setNum(createOrderReq.getNum());
+ hotelOrderDetail.setLeaseId(newLeaseLog == null ?hotelLeaseLog.getId():newLeaseLog.getId());
+ hotelOrderDetail.setOrderId(hotelOrder.getId());
+ hotelOrderDetails.add(hotelOrderDetail);
+
+ //新增新物品
+ if(newLeaseLog != null){
+ hotelLeaseLogService.save(newLeaseLog);
+ }
+ }
+ }
+
+ BigDecimal originalPrice = totalPrice;
+ hotelOrder.setOriginalPrice(originalPrice);
+ hotelOrder.setDiscountPrice(couponPrice);
+ hotelOrder.setRentPay(totalRentPrice);
+ hotelOrder.setWashPay(totalwashPrice);
+ if(createOrderReqs.get(0).getType() == 0 && couponFlag == 1){
+
+ if(totalPrice.compareTo(couponCondition) >= 0){
+ totalPrice = totalPrice.subtract(couponPrice);
+ }
+ }else if(createOrderReqs.get(0).getType() == 1 && leaseCouponFlag == 1){
+ if(totalRentPrice.compareTo(leaseCouponCondition) >= 0){
+ totalRentPrice = totalRentPrice.subtract(leaseCouponPrice);
+ totalPrice = totalRentPrice.add(totalwashPrice);
+ hotelOrder.setRentPay(totalRentPrice);
+ }
+
+ }
+ hotelOrder.setOrderPay(totalPrice);
+
+ hotelOrderLog.setOrderPay(totalPrice);
+ hotelOrderLog.setUserId(hanHaiMember.getId());
+ hotelOrderLogService.save(hotelOrderLog);
+ hotelOrderDetailService.saveBatch(hotelOrderDetails);
+ hotelOrderService.save(hotelOrder);
+
+
+ return Result.OK(hotelOrderLog);
+ }
+
+
@Transactional(rollbackFor = Exception.class)
@Override
public Result> orderPay(OrderPayReq orderPayReq) {
@@ -762,227 +1328,668 @@ public class OrderServiceImpl implements IOrderService {
String orderNo = hotelOrderLog.getId();
HotelCouponLog hotelCouponLog = hotelCouponLogService.lambdaQuery()
.eq(HotelCouponLog::getDelFlag, 0)
- .eq(HotelCouponLog::getStatus,0)
- .eq(HotelCouponLog::getUserId, hanHaiMember.getId())
- .eq(HotelCouponLog::getId, orderPayReq.getCouponId())
+ .eq(HotelCouponLog::getStatus,0)
+ .eq(HotelCouponLog::getUserId, hanHaiMember.getId())
+ .eq(HotelCouponLog::getId, orderPayReq.getCouponId())
+ .one();
+
+// if(hotelOrderLog.getType() == 1){
+// hotelOrderService.lambdaQuery()
+// .eq(HotelOrder::getDelFlag, 0)
+// .eq(HotelOrder::getType, 1)
+// .eq(HotelOrder::get,)
+// HotelOrder hotelOrder1 = hotelOrderService.lambdaQuery()
+// .eq(HotelOrder::getDelFlag, 0)
+// .eq(HotelOrder::getType, 1)
+// .in(HotelOrder::getStatus, 4, 5, 6, 16)
+// .eq(HotelOrder::getLeaseId, hotelLeaseLog.getId())
+// .one();
+// if(hotelOrder1 != null){
+// throw new JeecgBootException("该租赁正在水洗中");
+// }
+// }
+
+ //0可使用优惠券 1不可以
+ Integer use = 1;
+ if(hotelCouponLog!= null){
+ if(hotelCouponLog.getType() == 0){
+ Long nowMill = DateUtils2.getMilliSecond(DateUtils2.getNowDate());
+ if(hotelCouponLog.getEndTime() != null){
+ if(nowMill < DateUtils2.getMilliSecond(hotelCouponLog.getEndTime().toString())){
+ use = 0;
+ }
+ }else{
+ String couponTime = hotelConfService.getConf("couponTime");
+ String[] split = StringUtils.split(couponTime, "=");
+ if(nowMill > DateUtils2.getMilliSecond(split[0]) || nowMill < DateUtils2.getMilliSecond(split[1])){
+ use = 0;
+ }
+ }
+ }else if(hotelCouponLog.getType() == 1){
+ use = 0;
+ }
+
+ }
+
+
+
+ HttpServletRequest req = SpringContextUtils.getHttpServletRequest();
+ BigDecimal multiply = hotelOrderLog.getOrderPay();
+ HotelOrderLog hotelOrderLog1 = null;
+ HotelOrder hotelOrder1 = null;
+ //租金
+ BigDecimal rentPay = BigDecimal.ZERO;
+ BigDecimal washPay = BigDecimal.ZERO;
+ if(StringUtils.isNotBlank(orderPayReq.getOrderId()) && hotelOrderLog.getType() == 0){
+ HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getId, orderPayReq.getOrderId())
+ .eq(HotelOrder::getUserId, hanHaiMember.getId())
+ .one();
+
+
+ hotelOrderLog1 = new HotelOrderLog();
+ hotelOrderLog1.setId(IdWorker.getIdStr());
+ hotelOrderLog1.setType(hotelOrderLog.getType());
+ hotelOrderLog1.setOrderPay(hotelOrder.getOrderPay());
+ hotelOrderLog1.setUserId(hotelOrderLog.getUserId());
+ multiply = hotelOrderLog1.getOrderPay();
+ orderNo = hotelOrderLog1.getId();
+
+ hotelOrder1 = new HotelOrder();
+ hotelOrder1.setId(hotelOrder.getId());
+ hotelOrder1.setOrderLogId(hotelOrderLog1.getId());
+ }
+
+ if(use == 0){
+ if(hotelOrderLog1 == null){
+ if(hotelOrderLog.getOrderPay().compareTo(hotelCouponLog.getConditionPrice()) >= 0){
+ if(hotelOrderLog.getType() == 0 && hotelCouponLog.getUseType() == 0){
+ multiply = hotelOrderLog.getOrderPay().subtract(hotelCouponLog.getPrice());
+
+ HotelCouponLog hotelCouponLog1 = new HotelCouponLog();
+ hotelCouponLog1.setId(hotelCouponLog.getId());
+ hotelCouponLog1.setOrderLogId(hotelOrderLog.getId());
+ hotelCouponLogService.updateById(hotelCouponLog1);
+
+ HotelOrderLog hotelOrderLog2 = new HotelOrderLog();
+ hotelOrderLog2.setId(hotelOrderLog.getId());
+ hotelOrderLog2.setDiscountOrderPay(multiply);
+ hotelOrderLogService.updateById(hotelOrderLog2);
+ }else if(hotelOrderLog.getType() == 1 && hotelCouponLog.getUseType() == 1){//租金
+ HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getOrderLogId, hotelOrderLog.getId())
+ .one();
+ rentPay = (hotelOrder.getRentPay() == null?BigDecimal.ZERO:hotelOrder.getRentPay()).subtract(hotelCouponLog.getPrice());
+ multiply = (hotelOrder.getWashPay() == null?BigDecimal.ZERO:hotelOrder.getWashPay()).add(rentPay);
+ HotelCouponLog hotelCouponLog1 = new HotelCouponLog();
+ hotelCouponLog1.setId(hotelCouponLog.getId());
+ hotelCouponLog1.setOrderLogId(hotelOrderLog.getId());
+ hotelCouponLogService.updateById(hotelCouponLog1);
+
+ HotelOrderLog hotelOrderLog2 = new HotelOrderLog();
+ hotelOrderLog2.setId(hotelOrderLog.getId());
+ hotelOrderLog2.setDiscountOrderPay(multiply);
+ hotelOrderLogService.updateById(hotelOrderLog2);
+
+ HotelOrder hotelOrder2 = new HotelOrder();
+ hotelOrder2.setId(hotelOrder.getId());
+ hotelOrder2.setRentPay(rentPay);
+ hotelOrderService.updateById(hotelOrder2);
+
+ }else if(hotelOrderLog.getType() == 1 && hotelCouponLog.getUseType() == 2){//水洗
+ HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getOrderLogId, hotelOrderLog.getId())
+ .one();
+ washPay = hotelOrder.getWashPay().subtract(hotelCouponLog.getPrice());
+ multiply = (hotelOrder.getRentPay() == null?BigDecimal.ZERO:hotelOrder.getRentPay()).add(washPay);
+ HotelCouponLog hotelCouponLog1 = new HotelCouponLog();
+ hotelCouponLog1.setId(hotelCouponLog.getId());
+ hotelCouponLog1.setOrderLogId(hotelOrderLog.getId());
+ hotelCouponLogService.updateById(hotelCouponLog1);
+
+ HotelOrderLog hotelOrderLog2 = new HotelOrderLog();
+ hotelOrderLog2.setId(hotelOrderLog.getId());
+ hotelOrderLog2.setDiscountOrderPay(multiply);
+ hotelOrderLogService.updateById(hotelOrderLog2);
+
+ HotelOrder hotelOrder2 = new HotelOrder();
+ hotelOrder2.setId(hotelOrder.getId());
+ hotelOrder2.setWashPay(washPay);
+ hotelOrderService.updateById(hotelOrder2);
+ }
+
+ }
+ }else{
+ if(hotelOrderLog1.getOrderPay().compareTo(hotelCouponLog.getConditionPrice()) >= 0){
+ multiply = hotelOrderLog1.getOrderPay().subtract(hotelCouponLog.getPrice());
+
+ HotelCouponLog hotelCouponLog1 = new HotelCouponLog();
+ hotelCouponLog1.setId(hotelCouponLog.getId());
+ hotelCouponLog1.setOrderLogId(hotelOrderLog.getId());
+ hotelCouponLogService.updateById(hotelCouponLog1);
+
+ hotelOrderLog1.setDiscountOrderPay(multiply);
+ }
+ }
+
+
+ }
+
+ if(hotelOrderLog1 != null){
+ hotelOrderLogService.save(hotelOrderLog1);
+ hotelOrderService.updateById(hotelOrder1);
+ }
+
+ multiply = multiply.multiply(new BigDecimal(100));
+// HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
+// .eq(HotelOrder::getDelFlag, 0)
+// .eq(HotelOrder::getId, orderPayReq.getId())
+// .one();
+//
+// HotelGoods hotelGoods = hotelGoodsService.lambdaQuery()
+// .eq(HotelGoods::getDelFlag, 0)
+// .eq(HotelGoods::getId, hotelOrder.getGoodsId())
+// .one();
+
+
+ Object order = mpWxPayService.createOrder("酒店桌布", oConvertUtils.getIpAddrByRequest(req), hotelOrderLog.getId(), multiply.intValue(), orderNo, hanHaiMember.getAppletOpenid(),orderNotifyUrl,"{}");
+
+ return Result.OK(order);
+ }
+
+ @Override
+ public Result> orderPay2(OrderPayReq orderPayReq) {
+ HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(orderPayReq.getToken());
+
+ HotelOrderLog hotelOrderLog = hotelOrderLogService.lambdaQuery()
+ .eq(HotelOrderLog::getDelFlag, 0)
+ .eq(HotelOrderLog::getId, orderPayReq.getId())
+ .eq(HotelOrderLog::getIsPay, 0)
+ .one();
+ if(hotelOrderLog.getPayInfo() != null){
+
+ Long time = DateUtils2.getMilliSecond(DateUtils2.getYYYYMMDDHHMMSS(hotelOrderLog.getCreateTime()))+ 3600000L;
+ if(time < DateUtils2.getMilliSecond(DateUtils2.getNowDate())){
+ HotelOrder order = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getOrderLogId, hotelOrderLog.getId())
+ .one();
+// HotelOrder hotelOrder = new HotelOrder();
+// hotelOrder.setId(order.getId());
+// hotelOrder.setDelFlag(1);
+ hotelOrderService.removeById(order.getId());
+ hotelOrderLogService.removeById(hotelOrderLog.getId());
+
+
+ return Result.error("该订单已超过一小时,无法继续支付,请重新创建订单");
+ }
+
+ Object jsonObject = JSON.parseObject(hotelOrderLog.getPayInfo());
+ return Result.OK(jsonObject);
+ }
+ String orderNo = hotelOrderLog.getId();
+
+ HttpServletRequest req = SpringContextUtils.getHttpServletRequest();
+ BigDecimal multiply = hotelOrderLog.getOrderPay();
+
+ multiply = multiply.multiply(new BigDecimal(100));
+ Object order = mpWxPayService.createOrder("酒店桌布", oConvertUtils.getIpAddrByRequest(req), hotelOrderLog.getId(), multiply.intValue(), orderNo, hanHaiMember.getAppletOpenid(),orderNotifyUrl,"{}");
+
+ HotelOrderLog hotelOrderLog1 = new HotelOrderLog();
+ hotelOrderLog1.setId(orderNo);
+ hotelOrderLog1.setPayInfo(JSON.toJSONString(order));
+ hotelOrderLogService.updateById(hotelOrderLog1);
+
+ return Result.OK(order);
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public Object orderNotify(String requestBody) {
+ WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody);
+ //对比outTradeNo进行业务处理
+ if (notify == null){
+ //会继续通知
+ return "FAIL";
+ }
+ String outTradeNo = notify.getOutTradeNo();
+ System.err.println(outTradeNo);
+ HotelOrderLog hotelOrderLog = hotelOrderLogService.lambdaQuery()
+ .eq(HotelOrderLog::getDelFlag, 0)
+ .eq(HotelOrderLog::getId, outTradeNo)
+ .eq(HotelOrderLog::getIsPay, 0)
+ .one();
+ List hotelOrderList = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getOrderLogId, hotelOrderLog.getId())
+ .list();
+
+ /*订单未找到*/
+ if(hotelOrderList == null || hotelOrderList.size() == 0){
+ System.err.println("订单未找到");
+ return "FAIL";
+ }
+ HotelCouponLog hotelCouponLog = hotelCouponLogService.lambdaQuery()
+ .eq(HotelCouponLog::getDelFlag, 0)
+ .eq(HotelCouponLog::getStatus, 0)
+ .eq(HotelCouponLog::getOrderLogId, hotelOrderLog.getId())
.one();
-// if(hotelOrderLog.getType() == 1){
-// hotelOrderService.lambdaQuery()
-// .eq(HotelOrder::getDelFlag, 0)
-// .eq(HotelOrder::getType, 1)
-// .eq(HotelOrder::get,)
-// HotelOrder hotelOrder1 = hotelOrderService.lambdaQuery()
-// .eq(HotelOrder::getDelFlag, 0)
-// .eq(HotelOrder::getType, 1)
-// .in(HotelOrder::getStatus, 4, 5, 6, 16)
-// .eq(HotelOrder::getLeaseId, hotelLeaseLog.getId())
-// .one();
-// if(hotelOrder1 != null){
-// throw new JeecgBootException("该租赁正在水洗中");
-// }
-// }
+ BigDecimal divide = BigDecimal.ONE;
+ if(hotelCouponLog != null){
+ HotelCouponLog hotelCouponLog1 = new HotelCouponLog();
+ hotelCouponLog1.setId(hotelCouponLog.getId());
+ hotelCouponLog1.setStatus(1);
+ hotelCouponLogService.updateById(hotelCouponLog1);
+ divide = hotelOrderLog.getDiscountOrderPay().divide(hotelOrderLog.getOrderPay(), 2, BigDecimal.ROUND_HALF_UP);
- //0可使用优惠券 1不可以
- Integer use = 1;
- if(hotelCouponLog!= null){
- if(hotelCouponLog.getType() == 0){
- Long nowMill = DateUtils2.getMilliSecond(DateUtils2.getNowDate());
- if(hotelCouponLog.getEndTime() != null){
- if(nowMill < DateUtils2.getMilliSecond(hotelCouponLog.getEndTime().toString())){
- use = 0;
+ }
+
+
+ List hotelOrders = new ArrayList<>();
+ List hotelLeaseLogs = new ArrayList<>();
+ List orders = new ArrayList<>();
+ Integer type = 0;
+ Integer n = 0;
+ for (HotelOrder hotelOrder:hotelOrderList) {
+ n = n+1;
+ /*租赁业务*/
+ if(hotelOrder.getType() == 0){
+ /*已经处理过订单*/
+ if (hotelOrder.getStatus() !=0){
+ return "SUCCESS";
+ }
+ HotelLeaseLog hotelLeaseLog = new HotelLeaseLog();
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
+// if(hotelOrder.getWashShopFlag() == 1){//水洗店
+
+
+
+
+
+
+
+// }else{//用户
+
+ //用户
+ hotelLeaseLog.setUserId(hotelOrder.getUserId());
+ hotelLeaseLog.setShopId(hotelOrder.getShopId());
+ hotelLeaseLog.setOrderId(hotelOrder.getId());
+ hotelLeaseLog.setGoodsId(hotelOrder.getGoodsId());
+ hotelLeaseLog.setSkuId(hotelOrder.getSkuId());
+ hotelLeaseLog.setGoodsName(hotelOrder.getGoodsName());
+ hotelLeaseLog.setGoodsPic(hotelOrder.getPic());
+ hotelLeaseLog.setSku(hotelOrder.getSku());
+ hotelLeaseLog.setStatus(0);
+ hotelLeaseLog.setNum(hotelOrder.getNum());
+ hotelLeaseLog.setPrice(hotelOrder.getDeposit());
+ hotelLeaseLog.setCategoryId(hotelOrder.getCategoryId());
+
+
+ HotelGoods hotelGoods = hotelGoodsService.lambdaQuery()
+ .eq(HotelGoods::getDelFlag, 0)
+ .eq(HotelGoods::getId, hotelOrder.getGoodsId())
+ .one();
+
+ HotelGoodsSku hotelGoodsSku = hotelGoodsSkuService.lambdaQuery()
+ .eq(HotelGoodsSku::getDelFlag, 0)
+ .eq(HotelGoodsSku::getId, hotelOrder.getSkuId())
+ .one();
+
+ HanHaiMember hanHaiMember = hanHaiMemberService.lambdaQuery()
+ .eq(HanHaiMember::getId, hotelOrder.getUserId())
+ .one();
+
+ HotelShop hotelShop = hotelShopService.lambdaQuery()
+ .eq(HotelShop::getDelFlag, 0)
+ .eq(HotelShop::getId, hanHaiMember.getShopId())
+ .one();
+
+ HotelCategory hotelCategory = hotelCategoryService.lambdaQuery()
+ .eq(HotelCategory::getDelFlag, 0)
+ .eq(HotelCategory::getId, hotelGoods.getCategoryId())
+ .one();
+ /*水洗店*/
+ HotelOrder hotelOrder2 = new HotelOrder();
+ hotelOrder2.setId(IdWorker.getIdStr());
+ hotelOrder2.setTitle(hotelGoods.getName());
+ hotelOrder2.setPic(hotelGoods.getPic());
+ hotelOrder2.setUserName(hotelShop.getUserName());
+ hotelOrder2.setUserPhone(hotelShop.getPhone());
+ hotelOrder2.setUserAddress(hotelShop.getAddress());
+ hotelOrder2.setUserId(hotelShop.getUserId());
+ hotelOrder2.setDeposit(hotelOrder.getDeposit());
+ hotelOrder2.setType(0);
+ hotelOrder2.setStatus(1);
+ hotelOrder2.setGoodsId(hotelGoods.getId());
+ hotelOrder2.setGoodsName(hotelGoods.getName());
+ hotelOrder2.setSkuId(hotelGoodsSku.getId());
+ hotelOrder2.setSku(hotelGoodsSku.getTitle());
+ hotelOrder2.setNum(hotelOrder.getNum());
+ hotelOrder2.setOrderPay(hotelOrder.getOrderPay());
+ hotelOrder2.setOrderLogId(hotelOrderLog.getId());
+ hotelOrder2.setWashShopFlag(1);
+ hotelOrder2.setCategoryId(hotelCategory.getId());
+ orders.add(hotelOrder2);
+
+
+ //水洗店
+ hotelLeaseLog1.setUserId(hotelShop.getUserId());
+ hotelLeaseLog1.setOrderId(hotelOrder2.getId());
+ hotelLeaseLog1.setGoodsId(hotelOrder2.getGoodsId());
+ hotelLeaseLog1.setSkuId(hotelOrder2.getSkuId());
+ hotelLeaseLog1.setGoodsName(hotelOrder2.getGoodsName());
+ hotelLeaseLog1.setGoodsPic(hotelOrder2.getPic());
+ hotelLeaseLog1.setSku(hotelOrder2.getSku());
+ hotelLeaseLog1.setStatus(0);
+ hotelLeaseLog1.setNum(hotelOrder2.getNum());
+ hotelLeaseLog1.setPrice(hotelOrder2.getDeposit());
+ hotelLeaseLog1.setFormUserId(hotelOrderLog.getUserId());
+ hotelLeaseLog1.setCategoryId(hotelOrder2.getCategoryId());
+// }
+
+ hotelLeaseLogs.add(hotelLeaseLog1);
+ hotelLeaseLogs.add(hotelLeaseLog);
+
+ HotelOrder hotelOrder1 = new HotelOrder();
+ hotelOrder1.setId(hotelOrder.getId());
+ hotelOrder1.setStatus(1);
+ BigDecimal multiply = hotelOrder.getOriginalPrice().multiply(divide);
+ if(n == hotelOrderList.size()){
+ BigDecimal add = multiply;
+ for (HotelOrder hotelOrder3:hotelOrders){
+ add = add.add(hotelOrder3.getOrderPay());
+ if(add.compareTo(hotelOrderLog.getOrderPay()) == -1){
+ multiply = multiply.add(hotelOrderLog.getOrderPay().subtract(add));
+ }else if(add.compareTo(hotelOrderLog.getOrderPay()) == 1){
+ multiply = multiply.subtract(hotelOrderLog.getOrderPay().subtract(add));
+ }
}
- }else{
- String couponTime = hotelConfService.getConf("couponTime");
- String[] split = StringUtils.split(couponTime, "=");
- if(nowMill > DateUtils2.getMilliSecond(split[0]) || nowMill < DateUtils2.getMilliSecond(split[1])){
- use = 0;
+ }
+ hotelOrder1.setDiscountPrice(hotelOrder.getOriginalPrice().subtract(multiply));
+ hotelOrder1.setOrderPay(multiply);
+ hotelOrders.add(hotelOrder1);
+
+ }else if(hotelOrder.getType() == 1){/*水洗逻辑*/
+
+
+ HotelOrder hotelOrder1 = new HotelOrder();
+ hotelOrder1.setId(hotelOrder.getId());
+ hotelOrder1.setStatus(4);
+ hotelOrder1.setOriginalPrice(hotelOrder.getOrderPay());
+
+ if(hotelCouponLog != null){
+ BigDecimal subtract = hotelOrder.getOrderPay().subtract(hotelOrderLog.getDiscountOrderPay());
+ hotelOrder1.setOrderPay(hotelOrderLog.getDiscountOrderPay());
+ hotelOrder1.setDiscountPrice(subtract);
+ if(hotelCouponLog.getUseType() == 1){//租金
+ hotelOrder1.setRentPay(subtract);
+
+ }else if(hotelCouponLog.getUseType() == 2){ //水洗
+ hotelOrder1.setWashPay(subtract);
}
}
- }else if(hotelCouponLog.getType() == 1){
- use = 0;
+ hotelOrders.add(hotelOrder1);
+
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getId, hotelOrder.getLeaseId())
+ .one();
+ if(hotelLeaseLog == null){
+ return "FAIL";
+ }
+ if(hotelLeaseLog.getLeaseFlag() == 1){
+ type = 1;
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
+ hotelLeaseLog1.setId(hotelLeaseLog.getId());
+ hotelLeaseLog1.setStartTime(new Date());
+ hotelLeaseLogs.add(hotelLeaseLog1);
+ }
+
+
}
}
+ HotelOrderLog hotelOrderLog1 = new HotelOrderLog();
+ hotelOrderLog1.setId(hotelOrderLog.getId());
+ hotelOrderLog1.setIsPay(1);
+ hotelOrderLogService.updateById(hotelOrderLog1);
+
+ if(type == 0){
+ hotelLeaseLogService.saveBatch(hotelLeaseLogs);
+ hotelOrderService.saveBatch(orders);
+ }else{
+ hotelLeaseLogService.updateBatchById(hotelLeaseLogs);
+
+ }
+
+ hotelOrderService.updateBatchById(hotelOrders);
+
+
+ //不再通知该结果
+ return "SUCCESS";
+ }
+
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public Object orderNotify2(String requestBody) {
+ WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody);
+ //对比outTradeNo进行业务处理
+ if (notify == null){
+ //会继续通知
+ return "FAIL";
+ }
+ String outTradeNo = notify.getOutTradeNo();
+ System.err.println(outTradeNo);
+ HotelOrderLog hotelOrderLog = hotelOrderLogService.lambdaQuery()
+ .eq(HotelOrderLog::getDelFlag, 0)
+ .eq(HotelOrderLog::getId, outTradeNo)
+ .eq(HotelOrderLog::getIsPay, 0)
+ .one();
+ HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getOrderLogId, hotelOrderLog.getId())
+ .one();
+
+ /*订单未找到*/
+ if(hotelOrder == null ){
+ System.err.println("订单未找到");
+ return "FAIL";
+ }
+
+ /*已经处理过订单*/
+ if (hotelOrder.getStatus() !=0 && hotelOrder.getStatus() != 3){
+ return "SUCCESS";
+ }
+ List hotelOrderDetails = hotelOrderDetailService.lambdaQuery()
+ .eq(HotelOrderDetail::getDelFlag, 0)
+ .eq(HotelOrderDetail::getOrderId, hotelOrder.getId())
+ .list();
+ HanHaiMember hanHaiMember = hanHaiMemberService.lambdaQuery()
+ .eq(HanHaiMember::getId, hotelOrder.getUserId())
+ .one();
- HttpServletRequest req = SpringContextUtils.getHttpServletRequest();
- BigDecimal multiply = hotelOrderLog.getOrderPay();
- HotelOrderLog hotelOrderLog1 = null;
- HotelOrder hotelOrder1 = null;
- //租金
- BigDecimal rentPay = BigDecimal.ZERO;
- BigDecimal washPay = BigDecimal.ZERO;
- if(StringUtils.isNotBlank(orderPayReq.getOrderId()) && hotelOrderLog.getType() == 0){
- HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
- .eq(HotelOrder::getDelFlag, 0)
- .eq(HotelOrder::getId, orderPayReq.getOrderId())
- .eq(HotelOrder::getUserId, hanHaiMember.getId())
- .one();
+ HotelShop hotelShop = hotelShopService.lambdaQuery()
+ .eq(HotelShop::getDelFlag, 0)
+ .eq(HotelShop::getId, hanHaiMember.getShopId())
+ .one();
+ HotelOrder shopOrder = new HotelOrder();
+ shopOrder.setId(IdWorker.getIdStr());
+ shopOrder.setTitle(hotelOrder.getTitle());
+ List hotelOrderDetails1 = new ArrayList<>();
+ List hotelLeaseLogs = new ArrayList<>();
+ List hotelLeaseLogs2 = new ArrayList<>();
+ List orders = new ArrayList<>();
+ Integer type = 0;
+ for (HotelOrderDetail hotelOrderDetail:hotelOrderDetails) {
+ /*租赁业务*/
+ if(hotelOrder.getType() == 0){
- hotelOrderLog1 = new HotelOrderLog();
- hotelOrderLog1.setId(IdWorker.getIdStr());
- hotelOrderLog1.setType(hotelOrderLog.getType());
- hotelOrderLog1.setOrderPay(hotelOrder.getOrderPay());
- hotelOrderLog1.setUserId(hotelOrderLog.getUserId());
- multiply = hotelOrderLog1.getOrderPay();
- orderNo = hotelOrderLog1.getId();
+ HotelLeaseLog hotelLeaseLog = new HotelLeaseLog();
- hotelOrder1 = new HotelOrder();
- hotelOrder1.setId(hotelOrder.getId());
- hotelOrder1.setOrderLogId(hotelOrderLog1.getId());
- }
- if(use == 0){
- if(hotelOrderLog1 == null){
- if(hotelOrderLog.getOrderPay().compareTo(hotelCouponLog.getConditionPrice()) >= 0){
- if(hotelOrderLog.getType() == 0 && hotelCouponLog.getUseType() == 0){
- multiply = hotelOrderLog.getOrderPay().subtract(hotelCouponLog.getPrice());
+ //用户
+ hotelLeaseLog.setUserId(hotelOrder.getUserId());
+ hotelLeaseLog.setShopId(hotelOrder.getShopId());
+ hotelLeaseLog.setOrderId(hotelOrder.getId());
+ hotelLeaseLog.setOrderDetailId(hotelOrderDetail.getId());
+ hotelLeaseLog.setGoodsId(hotelOrderDetail.getGoodsId());
+ hotelLeaseLog.setSkuId(hotelOrderDetail.getSkuId());
+ hotelLeaseLog.setGoodsName(hotelOrderDetail.getGoodsName());
+ hotelLeaseLog.setGoodsPic(hotelOrderDetail.getPic());
+ hotelLeaseLog.setSku(hotelOrderDetail.getSku());
+ hotelLeaseLog.setStatus(0);
+ hotelLeaseLog.setNum(hotelOrderDetail.getNum());
+ hotelLeaseLog.setPrice(hotelOrderDetail.getDeposit());
+ hotelLeaseLog.setCategoryId(hotelOrderDetail.getCategoryId());
- HotelCouponLog hotelCouponLog1 = new HotelCouponLog();
- hotelCouponLog1.setId(hotelCouponLog.getId());
- hotelCouponLog1.setOrderLogId(hotelOrderLog.getId());
- hotelCouponLogService.updateById(hotelCouponLog1);
- HotelOrderLog hotelOrderLog2 = new HotelOrderLog();
- hotelOrderLog2.setId(hotelOrderLog.getId());
- hotelOrderLog2.setDiscountOrderPay(multiply);
- hotelOrderLogService.updateById(hotelOrderLog2);
- }else if(hotelOrderLog.getType() == 1 && hotelCouponLog.getUseType() == 1){//租金
- HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
- .eq(HotelOrder::getDelFlag, 0)
- .eq(HotelOrder::getOrderLogId, hotelOrderLog.getId())
- .one();
- rentPay = (hotelOrder.getRentPay() == null?BigDecimal.ZERO:hotelOrder.getRentPay()).subtract(hotelCouponLog.getPrice());
- multiply = (hotelOrder.getWashPay() == null?BigDecimal.ZERO:hotelOrder.getWashPay()).add(rentPay);
- HotelCouponLog hotelCouponLog1 = new HotelCouponLog();
- hotelCouponLog1.setId(hotelCouponLog.getId());
- hotelCouponLog1.setOrderLogId(hotelOrderLog.getId());
- hotelCouponLogService.updateById(hotelCouponLog1);
+ HotelGoods hotelGoods = hotelGoodsService.lambdaQuery()
+ .eq(HotelGoods::getDelFlag, 0)
+ .eq(HotelGoods::getId, hotelOrderDetail.getGoodsId())
+ .one();
- HotelOrderLog hotelOrderLog2 = new HotelOrderLog();
- hotelOrderLog2.setId(hotelOrderLog.getId());
- hotelOrderLog2.setDiscountOrderPay(multiply);
- hotelOrderLogService.updateById(hotelOrderLog2);
+ HotelGoodsSku hotelGoodsSku = hotelGoodsSkuService.lambdaQuery()
+ .eq(HotelGoodsSku::getDelFlag, 0)
+ .eq(HotelGoodsSku::getId, hotelOrderDetail.getSkuId())
+ .one();
- HotelOrder hotelOrder2 = new HotelOrder();
- hotelOrder2.setId(hotelOrder.getId());
- hotelOrder2.setRentPay(rentPay);
- hotelOrderService.updateById(hotelOrder2);
- }else if(hotelOrderLog.getType() == 1 && hotelCouponLog.getUseType() == 2){//水洗
- HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
- .eq(HotelOrder::getDelFlag, 0)
- .eq(HotelOrder::getOrderLogId, hotelOrderLog.getId())
- .one();
- washPay = hotelOrder.getWashPay().subtract(hotelCouponLog.getPrice());
- multiply = (hotelOrder.getRentPay() == null?BigDecimal.ZERO:hotelOrder.getRentPay()).add(washPay);
- HotelCouponLog hotelCouponLog1 = new HotelCouponLog();
- hotelCouponLog1.setId(hotelCouponLog.getId());
- hotelCouponLog1.setOrderLogId(hotelOrderLog.getId());
- hotelCouponLogService.updateById(hotelCouponLog1);
- HotelOrderLog hotelOrderLog2 = new HotelOrderLog();
- hotelOrderLog2.setId(hotelOrderLog.getId());
- hotelOrderLog2.setDiscountOrderPay(multiply);
- hotelOrderLogService.updateById(hotelOrderLog2);
- HotelOrder hotelOrder2 = new HotelOrder();
- hotelOrder2.setId(hotelOrder.getId());
- hotelOrder2.setWashPay(washPay);
- hotelOrderService.updateById(hotelOrder2);
- }
- }
- }else{
- if(hotelOrderLog1.getOrderPay().compareTo(hotelCouponLog.getConditionPrice()) >= 0){
- multiply = hotelOrderLog1.getOrderPay().subtract(hotelCouponLog.getPrice());
+ HotelCategory hotelCategory = hotelCategoryService.lambdaQuery()
+ .eq(HotelCategory::getDelFlag, 0)
+ .eq(HotelCategory::getId, hotelOrderDetail.getCategoryId())
+ .one();
+ /*水洗店*/
+ HotelOrderDetail hotelOrderDetail1 = new HotelOrderDetail();
- HotelCouponLog hotelCouponLog1 = new HotelCouponLog();
- hotelCouponLog1.setId(hotelCouponLog.getId());
- hotelCouponLog1.setOrderLogId(hotelOrderLog.getId());
- hotelCouponLogService.updateById(hotelCouponLog1);
+ shopOrder.setUserName(hotelShop.getUserName());
+ shopOrder.setUserPhone(hotelShop.getPhone());
+ shopOrder.setUserAddress(hotelShop.getAddress());
+ shopOrder.setUserId(hotelShop.getUserId());
+ shopOrder.setDeposit(hotelOrder.getDeposit());
+ shopOrder.setType(0);
+ shopOrder.setStatus(1);
+ shopOrder.setOrderLogId(hotelOrderLog.getId());
+ shopOrder.setWashShopFlag(1);
+ hotelOrderDetail1.setId(IdWorker.getIdStr());
+ hotelOrderDetail1.setPic(hotelGoods.getPic());
+ hotelOrderDetail1.setGoodsId(hotelGoods.getId());
+ hotelOrderDetail1.setGoodsName(hotelGoods.getName());
+ hotelOrderDetail1.setSkuId(hotelGoodsSku.getId());
+ hotelOrderDetail1.setSku(hotelGoodsSku.getTitle());
+ hotelOrderDetail1.setNum(hotelOrderDetail.getNum());
+ hotelOrderDetail1.setOrderPay(hotelOrderDetail.getOrderPay());
+ hotelOrderDetail1.setCategoryId(hotelCategory.getId());
+ hotelOrderDetail1.setOrderId(shopOrder.getId());
+ hotelOrderDetails1.add(hotelOrderDetail1);
- hotelOrderLog1.setDiscountOrderPay(multiply);
- }
- }
+ //水洗店
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
+ hotelLeaseLog1.setUserId(hotelShop.getUserId());
+ hotelLeaseLog1.setOrderId(shopOrder.getId());
+ hotelLeaseLog1.setOrderDetailId(hotelOrderDetail1.getId());
+ hotelLeaseLog1.setGoodsId(hotelOrderDetail.getGoodsId());
+ hotelLeaseLog1.setSkuId(hotelOrderDetail.getSkuId());
+ hotelLeaseLog1.setGoodsName(hotelOrderDetail.getGoodsName());
+ hotelLeaseLog1.setGoodsPic(hotelOrderDetail.getPic());
+ hotelLeaseLog1.setSku(hotelOrderDetail.getSku());
+ hotelLeaseLog1.setStatus(0);
+ hotelLeaseLog1.setNum(hotelOrderDetail.getNum());
+ hotelLeaseLog1.setPrice(hotelOrderDetail.getDeposit());
+ hotelLeaseLog1.setFormUserId(hotelOrderLog.getUserId());
+ hotelLeaseLog1.setCategoryId(hotelOrderDetail.getCategoryId());
- }
+ hotelLeaseLogs.add(hotelLeaseLog1);
+ hotelLeaseLogs.add(hotelLeaseLog);
- if(hotelOrderLog1 != null){
- hotelOrderLogService.save(hotelOrderLog1);
- hotelOrderService.updateById(hotelOrder1);
- }
- multiply = multiply.multiply(new BigDecimal(100));
-// HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
-// .eq(HotelOrder::getDelFlag, 0)
-// .eq(HotelOrder::getId, orderPayReq.getId())
-// .one();
-//
-// HotelGoods hotelGoods = hotelGoodsService.lambdaQuery()
-// .eq(HotelGoods::getDelFlag, 0)
-// .eq(HotelGoods::getId, hotelOrder.getGoodsId())
-// .one();
+ }else if(hotelOrder.getType() == 1){/*水洗逻辑*/
- Object order = mpWxPayService.createOrder("酒店桌布", oConvertUtils.getIpAddrByRequest(req), hotelOrderLog.getId(), multiply.intValue(), orderNo, hanHaiMember.getAppletOpenid(),orderNotifyUrl,"{}");
- return Result.OK(order);
- }
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getId, hotelOrderDetail.getLeaseId())
+ .one();
+ if(hotelLeaseLog == null){
+ return "FAIL";
+ }
+ if(hotelLeaseLog.getLeaseFlag() == 1){
+ type = 1;
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
+ hotelLeaseLog1.setId(hotelLeaseLog.getId());
+ hotelLeaseLog1.setStartTime(new Date());
+ hotelLeaseLogs.add(hotelLeaseLog1);
+ }
- @Override
- public Result> orderPay2(OrderPayReq orderPayReq) {
- HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(orderPayReq.getToken());
- HotelOrderLog hotelOrderLog = hotelOrderLogService.lambdaQuery()
- .eq(HotelOrderLog::getDelFlag, 0)
- .eq(HotelOrderLog::getId, orderPayReq.getId())
- .eq(HotelOrderLog::getIsPay, 0)
- .one();
- if(hotelOrderLog.getPayInfo() != null){
+ }
+ }
+ //修改订单状态
+ HotelOrder hotelOrder1 = new HotelOrder();
+ hotelOrder1.setId(hotelOrder.getId());
+ if(hotelOrder.getType() == 0){
+ hotelOrder1.setStatus(1);
+ }else if(hotelOrder.getType() == 1){
+ hotelOrder1.setStatus(4);
+ }
+ hotelOrderService.updateById(hotelOrder1);
- Long time = DateUtils2.getMilliSecond(DateUtils2.getYYYYMMDDHHMMSS(hotelOrderLog.getCreateTime()))+ 3600000L;
- if(time < DateUtils2.getMilliSecond(DateUtils2.getNowDate())){
- HotelOrder order = hotelOrderService.lambdaQuery()
- .eq(HotelOrder::getDelFlag, 0)
- .eq(HotelOrder::getOrderLogId, hotelOrderLog.getId())
- .one();
-// HotelOrder hotelOrder = new HotelOrder();
-// hotelOrder.setId(order.getId());
-// hotelOrder.setDelFlag(1);
- hotelOrderService.removeById(order.getId());
- hotelOrderLogService.removeById(hotelOrderLog.getId());
+ HotelOrderLog hotelOrderLog1 = new HotelOrderLog();
+ hotelOrderLog1.setId(hotelOrderLog.getId());
+ hotelOrderLog1.setIsPay(1);
+ hotelOrderLogService.updateById(hotelOrderLog1);
+
+ if(type == 0){
+ hotelLeaseLogService.saveBatch(hotelLeaseLogs);
+ hotelOrderService.save(shopOrder);
+ hotelOrderDetailService.saveBatch(hotelOrderDetails1);
+ }else{
+ hotelLeaseLogService.updateBatchById(hotelLeaseLogs);
+ }
- return Result.error("该订单已超过一小时,无法继续支付,请重新创建订单");
- }
+ if(hotelOrder.getType() == 0){
+ HotelMemberAccount hotelMemberAccount = hotelMemberAccountService.lambdaQuery()
+ .eq(HotelMemberAccount::getDelFlag, 0)
+ .eq(HotelMemberAccount::getUserId, hanHaiMember.getId())
+ .one();
+ HotelMemberAccount hotelMemberAccount1 = new HotelMemberAccount();
+ hotelMemberAccount1.setId(hotelMemberAccount.getId());
+ hotelMemberAccount1.setDeposit(hotelMemberAccount.getDeposit().add(hotelOrder.getDeposit()));
+ hotelMemberAccountService.updateById(hotelMemberAccount1);
- Object jsonObject = JSON.parseObject(hotelOrderLog.getPayInfo());
- return Result.OK(jsonObject);
+ HotelBalanceLog hotelBalanceLog = new HotelBalanceLog();
+ hotelBalanceLog.setBalance(hotelOrder.getDeposit());
+ hotelBalanceLog.setUserBalance(hotelMemberAccount.getDeposit());
+ hotelBalanceLog.setOrderId(hotelOrder.getId());
+ hotelBalanceLog.setPayType(0);
+ hotelBalanceLog.setUserId(hanHaiMember.getId());
+ hotelBalanceLog.setTitle("租赁押金");
+ hotelBalanceLogService.save(hotelBalanceLog);
}
- String orderNo = hotelOrderLog.getId();
-
- HttpServletRequest req = SpringContextUtils.getHttpServletRequest();
- BigDecimal multiply = hotelOrderLog.getOrderPay();
- multiply = multiply.multiply(new BigDecimal(100));
- Object order = mpWxPayService.createOrder("酒店桌布", oConvertUtils.getIpAddrByRequest(req), hotelOrderLog.getId(), multiply.intValue(), orderNo, hanHaiMember.getAppletOpenid(),orderNotifyUrl,"{}");
- HotelOrderLog hotelOrderLog1 = new HotelOrderLog();
- hotelOrderLog1.setId(orderNo);
- hotelOrderLog1.setPayInfo(JSON.toJSONString(order));
- hotelOrderLogService.updateById(hotelOrderLog1);
- return Result.OK(order);
+ //不再通知该结果
+ return "SUCCESS";
}
+
@Transactional(rollbackFor = Exception.class)
@Override
- public Object orderNotify(String requestBody) {
+ public Object orderNotify3(String requestBody) {
WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody);
//对比outTradeNo进行业务处理
if (notify == null){
@@ -996,197 +2003,164 @@ public class OrderServiceImpl implements IOrderService {
.eq(HotelOrderLog::getId, outTradeNo)
.eq(HotelOrderLog::getIsPay, 0)
.one();
- List hotelOrderList = hotelOrderService.lambdaQuery()
+ HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
.eq(HotelOrder::getDelFlag, 0)
.eq(HotelOrder::getOrderLogId, hotelOrderLog.getId())
- .list();
+ .one();
/*订单未找到*/
- if(hotelOrderList == null || hotelOrderList.size() == 0){
+ if(hotelOrder == null ){
System.err.println("订单未找到");
return "FAIL";
}
- HotelCouponLog hotelCouponLog = hotelCouponLogService.lambdaQuery()
- .eq(HotelCouponLog::getDelFlag, 0)
- .eq(HotelCouponLog::getStatus, 0)
- .eq(HotelCouponLog::getOrderLogId, hotelOrderLog.getId())
- .one();
-
- BigDecimal divide = BigDecimal.ONE;
- if(hotelCouponLog != null){
- HotelCouponLog hotelCouponLog1 = new HotelCouponLog();
- hotelCouponLog1.setId(hotelCouponLog.getId());
- hotelCouponLog1.setStatus(1);
- hotelCouponLogService.updateById(hotelCouponLog1);
- divide = hotelOrderLog.getDiscountOrderPay().divide(hotelOrderLog.getOrderPay(), 2, BigDecimal.ROUND_HALF_UP);
+ /*已经处理过订单*/
+ if (hotelOrder.getStatus() !=0 && hotelOrder.getStatus() != 3){
+ return "SUCCESS";
}
+ List hotelOrderDetails = hotelOrderDetailService.lambdaQuery()
+ .eq(HotelOrderDetail::getDelFlag, 0)
+ .eq(HotelOrderDetail::getOrderId, hotelOrder.getId())
+ .list();
+
+ HanHaiMember hanHaiMember = hanHaiMemberService.lambdaQuery()
+ .eq(HanHaiMember::getId, hotelOrder.getUserId())
+ .one();
- List hotelOrders = new ArrayList<>();
+ HotelShop hotelShop = hotelShopService.lambdaQuery()
+ .eq(HotelShop::getDelFlag, 0)
+ .eq(HotelShop::getId, hanHaiMember.getShopId())
+ .one();
+
+ HotelOrder shopOrder = new HotelOrder();
+ shopOrder.setId(IdWorker.getIdStr());
+ shopOrder.setTitle(hotelOrder.getTitle());
+ List hotelOrderDetails1 = new ArrayList<>();
List hotelLeaseLogs = new ArrayList<>();
+ List hotelLeaseLogs2 = new ArrayList<>();
List orders = new ArrayList<>();
Integer type = 0;
- Integer n = 0;
- for (HotelOrder hotelOrder:hotelOrderList) {
- n = n+1;
+ for (HotelOrderDetail hotelOrderDetail:hotelOrderDetails) {
/*租赁业务*/
if(hotelOrder.getType() == 0){
- /*已经处理过订单*/
- if (hotelOrder.getStatus() !=0){
- return "SUCCESS";
- }
- HotelLeaseLog hotelLeaseLog = new HotelLeaseLog();
- HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
-// if(hotelOrder.getWashShopFlag() == 1){//水洗店
-
-
-
-
-
+ HotelLeaseLog hotelLeaseLog = new HotelLeaseLog();
-// }else{//用户
//用户
hotelLeaseLog.setUserId(hotelOrder.getUserId());
hotelLeaseLog.setShopId(hotelOrder.getShopId());
hotelLeaseLog.setOrderId(hotelOrder.getId());
- hotelLeaseLog.setGoodsId(hotelOrder.getGoodsId());
- hotelLeaseLog.setSkuId(hotelOrder.getSkuId());
- hotelLeaseLog.setGoodsName(hotelOrder.getGoodsName());
- hotelLeaseLog.setGoodsPic(hotelOrder.getPic());
- hotelLeaseLog.setSku(hotelOrder.getSku());
+ hotelLeaseLog.setOrderDetailId(hotelOrderDetail.getId());
+ hotelLeaseLog.setGoodsId(hotelOrderDetail.getGoodsId());
+ hotelLeaseLog.setSkuId(hotelOrderDetail.getSkuId());
+ hotelLeaseLog.setGoodsName(hotelOrderDetail.getGoodsName());
+ hotelLeaseLog.setGoodsPic(hotelOrderDetail.getPic());
+ hotelLeaseLog.setSku(hotelOrderDetail.getSku());
hotelLeaseLog.setStatus(0);
- hotelLeaseLog.setNum(hotelOrder.getNum());
- hotelLeaseLog.setPrice(hotelOrder.getDeposit());
- hotelLeaseLog.setCategoryId(hotelOrder.getCategoryId());
+ hotelLeaseLog.setNum(hotelOrderDetail.getNum());
+ hotelLeaseLog.setPrice(hotelOrderDetail.getDeposit());
+ hotelLeaseLog.setCategoryId(hotelOrderDetail.getCategoryId());
HotelGoods hotelGoods = hotelGoodsService.lambdaQuery()
.eq(HotelGoods::getDelFlag, 0)
- .eq(HotelGoods::getId, hotelOrder.getGoodsId())
+ .eq(HotelGoods::getId, hotelOrderDetail.getGoodsId())
.one();
HotelGoodsSku hotelGoodsSku = hotelGoodsSkuService.lambdaQuery()
.eq(HotelGoodsSku::getDelFlag, 0)
- .eq(HotelGoodsSku::getId, hotelOrder.getSkuId())
+ .eq(HotelGoodsSku::getId, hotelOrderDetail.getSkuId())
.one();
- HanHaiMember hanHaiMember = hanHaiMemberService.lambdaQuery()
- .eq(HanHaiMember::getId, hotelOrder.getUserId())
- .one();
- HotelShop hotelShop = hotelShopService.lambdaQuery()
- .eq(HotelShop::getDelFlag, 0)
- .eq(HotelShop::getId, hanHaiMember.getShopId())
- .one();
+
+
HotelCategory hotelCategory = hotelCategoryService.lambdaQuery()
.eq(HotelCategory::getDelFlag, 0)
- .eq(HotelCategory::getId, hotelGoods.getCategoryId())
+ .eq(HotelCategory::getId, hotelOrderDetail.getCategoryId())
.one();
/*水洗店*/
- HotelOrder hotelOrder2 = new HotelOrder();
- hotelOrder2.setId(IdWorker.getIdStr());
- hotelOrder2.setTitle(hotelGoods.getName());
- hotelOrder2.setPic(hotelGoods.getPic());
- hotelOrder2.setUserName(hotelShop.getUserName());
- hotelOrder2.setUserPhone(hotelShop.getPhone());
- hotelOrder2.setUserAddress(hotelShop.getAddress());
- hotelOrder2.setUserId(hotelShop.getUserId());
- hotelOrder2.setDeposit(hotelOrder.getDeposit());
- hotelOrder2.setType(0);
- hotelOrder2.setStatus(1);
- hotelOrder2.setGoodsId(hotelGoods.getId());
- hotelOrder2.setGoodsName(hotelGoods.getName());
- hotelOrder2.setSkuId(hotelGoodsSku.getId());
- hotelOrder2.setSku(hotelGoodsSku.getTitle());
- hotelOrder2.setNum(hotelOrder.getNum());
- hotelOrder2.setOrderPay(hotelOrder.getOrderPay());
- hotelOrder2.setOrderLogId(hotelOrderLog.getId());
- hotelOrder2.setWashShopFlag(1);
- hotelOrder2.setCategoryId(hotelCategory.getId());
- orders.add(hotelOrder2);
+ HotelOrderDetail hotelOrderDetail1 = new HotelOrderDetail();
+
+ shopOrder.setUserName(hotelShop.getUserName());
+ shopOrder.setUserPhone(hotelShop.getPhone());
+ shopOrder.setUserAddress(hotelShop.getAddress());
+ shopOrder.setUserId(hotelShop.getUserId());
+ shopOrder.setDeposit(hotelOrder.getDeposit());
+ shopOrder.setType(0);
+ shopOrder.setStatus(1);
+ shopOrder.setOrderLogId(hotelOrderLog.getId());
+ shopOrder.setWashShopFlag(1);
+ hotelOrderDetail1.setId(IdWorker.getIdStr());
+ hotelOrderDetail1.setPic(hotelGoods.getPic());
+ hotelOrderDetail1.setGoodsId(hotelGoods.getId());
+ hotelOrderDetail1.setGoodsName(hotelGoods.getName());
+ hotelOrderDetail1.setSkuId(hotelGoodsSku.getId());
+ hotelOrderDetail1.setSku(hotelGoodsSku.getTitle());
+ hotelOrderDetail1.setNum(hotelOrderDetail.getNum());
+ hotelOrderDetail1.setOrderPay(hotelOrderDetail.getOrderPay());
+ hotelOrderDetail1.setCategoryId(hotelCategory.getId());
+ hotelOrderDetail1.setOrderId(shopOrder.getId());
+ hotelOrderDetails1.add(hotelOrderDetail1);
//水洗店
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
hotelLeaseLog1.setUserId(hotelShop.getUserId());
- hotelLeaseLog1.setOrderId(hotelOrder2.getId());
- hotelLeaseLog1.setGoodsId(hotelOrder2.getGoodsId());
- hotelLeaseLog1.setSkuId(hotelOrder2.getSkuId());
- hotelLeaseLog1.setGoodsName(hotelOrder2.getGoodsName());
- hotelLeaseLog1.setGoodsPic(hotelOrder2.getPic());
- hotelLeaseLog1.setSku(hotelOrder2.getSku());
+ hotelLeaseLog1.setOrderId(shopOrder.getId());
+ hotelLeaseLog1.setOrderDetailId(hotelOrderDetail1.getId());
+ hotelLeaseLog1.setGoodsId(hotelOrderDetail.getGoodsId());
+ hotelLeaseLog1.setSkuId(hotelOrderDetail.getSkuId());
+ hotelLeaseLog1.setGoodsName(hotelOrderDetail.getGoodsName());
+ hotelLeaseLog1.setGoodsPic(hotelOrderDetail.getPic());
+ hotelLeaseLog1.setSku(hotelOrderDetail.getSku());
hotelLeaseLog1.setStatus(0);
- hotelLeaseLog1.setNum(hotelOrder2.getNum());
- hotelLeaseLog1.setPrice(hotelOrder2.getDeposit());
+ hotelLeaseLog1.setNum(hotelOrderDetail.getNum());
+ hotelLeaseLog1.setPrice(hotelOrderDetail.getDeposit());
hotelLeaseLog1.setFormUserId(hotelOrderLog.getUserId());
- hotelLeaseLog1.setCategoryId(hotelOrder2.getCategoryId());
-// }
+ hotelLeaseLog1.setCategoryId(hotelOrderDetail.getCategoryId());
hotelLeaseLogs.add(hotelLeaseLog1);
hotelLeaseLogs.add(hotelLeaseLog);
- HotelOrder hotelOrder1 = new HotelOrder();
- hotelOrder1.setId(hotelOrder.getId());
- hotelOrder1.setStatus(1);
- BigDecimal multiply = hotelOrder.getOriginalPrice().multiply(divide);
- if(n == hotelOrderList.size()){
- BigDecimal add = multiply;
- for (HotelOrder hotelOrder3:hotelOrders){
- add = add.add(hotelOrder3.getOrderPay());
- if(add.compareTo(hotelOrderLog.getOrderPay()) == -1){
- multiply = multiply.add(hotelOrderLog.getOrderPay().subtract(add));
- }else if(add.compareTo(hotelOrderLog.getOrderPay()) == 1){
- multiply = multiply.subtract(hotelOrderLog.getOrderPay().subtract(add));
- }
- }
- }
- hotelOrder1.setDiscountPrice(hotelOrder.getOriginalPrice().subtract(multiply));
- hotelOrder1.setOrderPay(multiply);
- hotelOrders.add(hotelOrder1);
-
- }else if(hotelOrder.getType() == 1){/*水洗逻辑*/
-
- HotelOrder hotelOrder1 = new HotelOrder();
- hotelOrder1.setId(hotelOrder.getId());
- hotelOrder1.setStatus(4);
- hotelOrder1.setOriginalPrice(hotelOrder.getOrderPay());
- if(hotelCouponLog != null){
- BigDecimal subtract = hotelOrder.getOrderPay().subtract(hotelOrderLog.getDiscountOrderPay());
- hotelOrder1.setOrderPay(hotelOrderLog.getDiscountOrderPay());
- hotelOrder1.setDiscountPrice(subtract);
- if(hotelCouponLog.getUseType() == 1){//租金
- hotelOrder1.setRentPay(subtract);
+ }else if(hotelOrder.getType() == 1){/*水洗逻辑*/
- }else if(hotelCouponLog.getUseType() == 2){ //水洗
- hotelOrder1.setWashPay(subtract);
- }
- }
- hotelOrders.add(hotelOrder1);
- HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ List hotelLeaseLogList = hotelLeaseLogService.lambdaQuery()
.eq(HotelLeaseLog::getDelFlag, 0)
- .eq(HotelLeaseLog::getId, hotelOrder.getLeaseId())
- .one();
- if(hotelLeaseLog == null){
- return "FAIL";
- }
- if(hotelLeaseLog.getLeaseFlag() == 1){
+ .eq(HotelLeaseLog::getLeaseFlag, 1)
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .list();
+
+ for (HotelLeaseLog hotelLeaseLog:hotelLeaseLogList){
type = 1;
HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
hotelLeaseLog1.setId(hotelLeaseLog.getId());
hotelLeaseLog1.setStartTime(new Date());
+ if(StringUtils.equals(hotelLeaseLog.getId(),hotelOrderDetail.getLeaseId())){
+ hotelLeaseLog1.setWashNum(hotelOrderDetails.get(0).getNum());
+ }
hotelLeaseLogs.add(hotelLeaseLog1);
}
}
-
}
+ //修改订单状态
+ HotelOrder hotelOrder1 = new HotelOrder();
+ hotelOrder1.setId(hotelOrder.getId());
+ if(hotelOrder.getType() == 0){
+ hotelOrder1.setStatus(1);
+ }else if(hotelOrder.getType() == 1){
+ hotelOrder1.setStatus(4);
+ }
+ hotelOrderService.updateById(hotelOrder1);
+
HotelOrderLog hotelOrderLog1 = new HotelOrderLog();
hotelOrderLog1.setId(hotelOrderLog.getId());
hotelOrderLog1.setIsPay(1);
@@ -1194,23 +2168,42 @@ public class OrderServiceImpl implements IOrderService {
if(type == 0){
hotelLeaseLogService.saveBatch(hotelLeaseLogs);
- hotelOrderService.saveBatch(orders);
+ hotelOrderService.save(shopOrder);
+ hotelOrderDetailService.saveBatch(hotelOrderDetails1);
}else{
hotelLeaseLogService.updateBatchById(hotelLeaseLogs);
}
- hotelOrderService.updateBatchById(hotelOrders);
+ if(hotelOrder.getType() == 0){
+ HotelMemberAccount hotelMemberAccount = hotelMemberAccountService.lambdaQuery()
+ .eq(HotelMemberAccount::getDelFlag, 0)
+ .eq(HotelMemberAccount::getUserId, hanHaiMember.getId())
+ .one();
+ HotelMemberAccount hotelMemberAccount1 = new HotelMemberAccount();
+ hotelMemberAccount1.setId(hotelMemberAccount.getId());
+ hotelMemberAccount1.setDeposit(hotelMemberAccount.getDeposit().add(hotelOrder.getDeposit()));
+ hotelMemberAccountService.updateById(hotelMemberAccount1);
+
+ HotelBalanceLog hotelBalanceLog = new HotelBalanceLog();
+ hotelBalanceLog.setBalance(hotelOrder.getDeposit());
+ hotelBalanceLog.setUserBalance(hotelMemberAccount.getDeposit());
+ hotelBalanceLog.setOrderId(hotelOrder.getId());
+ hotelBalanceLog.setPayType(0);
+ hotelBalanceLog.setUserId(hanHaiMember.getId());
+ hotelBalanceLog.setTitle("租赁押金");
+ hotelBalanceLogService.save(hotelBalanceLog);
+ }
+
//不再通知该结果
return "SUCCESS";
}
-
@Transactional(rollbackFor = Exception.class)
@Override
- public Object orderNotify2(String requestBody) {
+ public Object orderNotify4(String requestBody) {
WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody);
//对比outTradeNo进行业务处理
if (notify == null){
@@ -1224,7 +2217,7 @@ public class OrderServiceImpl implements IOrderService {
.eq(HotelOrderLog::getId, outTradeNo)
.eq(HotelOrderLog::getIsPay, 0)
.one();
- HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
+ HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
.eq(HotelOrder::getDelFlag, 0)
.eq(HotelOrder::getOrderLogId, hotelOrderLog.getId())
.one();
@@ -1352,14 +2345,13 @@ public class OrderServiceImpl implements IOrderService {
}else if(hotelOrder.getType() == 1){/*水洗逻辑*/
- HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ List hotelLeaseLogList = hotelLeaseLogService.lambdaQuery()
.eq(HotelLeaseLog::getDelFlag, 0)
- .eq(HotelLeaseLog::getId, hotelOrderDetail.getLeaseId())
- .one();
- if(hotelLeaseLog == null){
- return "FAIL";
- }
- if(hotelLeaseLog.getLeaseFlag() == 1){
+ .eq(HotelLeaseLog::getLeaseFlag, 1)
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .list();
+
+ for (HotelLeaseLog hotelLeaseLog:hotelLeaseLogList){
type = 1;
HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
hotelLeaseLog1.setId(hotelLeaseLog.getId());
@@ -1408,150 +2400,374 @@ public class OrderServiceImpl implements IOrderService {
hotelBalanceLog.setBalance(hotelOrder.getDeposit());
hotelBalanceLog.setUserBalance(hotelMemberAccount.getDeposit());
hotelBalanceLog.setOrderId(hotelOrder.getId());
- hotelBalanceLog.setPayType(0);
- hotelBalanceLog.setUserId(hanHaiMember.getId());
- hotelBalanceLog.setTitle("租赁押金");
+ hotelBalanceLog.setPayType(0);
+ hotelBalanceLog.setUserId(hanHaiMember.getId());
+ hotelBalanceLog.setTitle("租赁押金");
+ hotelBalanceLogService.save(hotelBalanceLog);
+ }
+
+
+
+ //不再通知该结果
+ return "SUCCESS";
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public Result> applyRefundOrder(ApplyRefundOrderReq applyRefundOrderReq) {
+ Integer n = (Integer) redisUtil.get("apply:refund:order:"+applyRefundOrderReq.getToken());
+ if(n != null){
+ return Result.error("请勿重复点击");
+ }
+ redisUtil.set("apply:refund:order:"+applyRefundOrderReq.getToken(),1,3);
+ HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(applyRefundOrderReq.getToken());
+ if(StringUtils.isBlank(applyRefundOrderReq.getReason())){
+ throw new JeecgBootException("请填写申请原因");
+ }
+ if(applyRefundOrderReq.getRefundNum() == null || applyRefundOrderReq.getRefundNum() <= 0){
+ String name = applyRefundOrderReq.getType() == 0?"退货数量":"换货数量";
+ throw new JeecgBootException("请填写"+name);
+ }
+
+ if(StringUtils.isBlank(applyRefundOrderReq.getAddressId())){
+ throw new JeecgBootException("请选择收货地址");
+ }
+ HotelAddress hotelAddress = hotelAddressService.lambdaQuery()
+ .eq(HotelAddress::getDelFlag, 0)
+ .eq(HotelAddress::getId, applyRefundOrderReq.getAddressId())
+ .one();
+ if(hotelAddress == null){
+ throw new JeecgBootException("地址数据错误");
+ }
+
+
+ HotelOrder hotelOrder1 = new HotelOrder();
+
+ if(applyRefundOrderReq.getType() == 0){
+ if(applyRefundOrderReq.getReasonPrice() == null || applyRefundOrderReq.getReasonPrice().compareTo(BigDecimal.ZERO) <= 0){
+ throw new JeecgBootException("请输入申请金额");
+ }
+ hotelOrder1.setOrderPay(hotelOrder1.getReasonPrice());
+ }
+
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .eq(HotelLeaseLog::getId, applyRefundOrderReq.getId())
+ .one();
+ if(hotelLeaseLog == null){
+ throw new JeecgBootException("数据错误,请刷新重试");
+ }
+// int num = hotelLeaseLog.getNum() - hotelLeaseLog.getWashNum();
+// if(num <= 0 || num hotelOrders = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getType,applyRefundOrderReq.getType() == 0?2:1)
+ .eq(HotelOrder::getLeaseId, hotelLeaseLog.getId())
+ .ne(HotelOrder::getStatus, 15)
+ .list();
+ if(hotelOrders.size() != 0){
+ throw new JeecgBootException("该租赁不可操作");
+ }
+ HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getId, hotelLeaseLog.getOrderId())
+ .one();
+ if(hotelOrder.getStatus() != 15){
+ throw new JeecgBootException("该订单还未收货");
+ }
+
+ HotelShop hotelShop = hotelShopService.lambdaQuery()
+ .eq(HotelShop::getDelFlag, 0)
+ .eq(HotelShop::getId, hanHaiMember.getShopId())
+ .one();
+ HotelLeaseLog hotelLeaseLog2 = new HotelLeaseLog();
+ int num = hotelLeaseLog.getNum() - applyRefundOrderReq.getRefundNum();
+ if(num > 0){
+
+ hotelLeaseLog2.setUserId(hotelLeaseLog.getUserId());
+ hotelLeaseLog2.setShopId(hotelLeaseLog.getShopId());
+ hotelLeaseLog2.setOrderId(hotelLeaseLog.getOrderId());
+ hotelLeaseLog2.setGoodsId(hotelLeaseLog.getGoodsId());
+ hotelLeaseLog2.setSkuId(hotelLeaseLog.getSkuId());
+ hotelLeaseLog2.setGoodsName(hotelLeaseLog.getGoodsName());
+ hotelLeaseLog2.setGoodsPic(hotelLeaseLog.getGoodsPic());
+ hotelLeaseLog2.setSku(hotelLeaseLog.getSku());
+ hotelLeaseLog2.setStatus(applyRefundOrderReq.getType() == 0?2:1);
+ hotelLeaseLog2.setNum(applyRefundOrderReq.getRefundNum());
+ hotelLeaseLog2.setPrice(hotelLeaseLog.getPrice());
+ hotelLeaseLog2.setCategoryId(hotelLeaseLog.getCategoryId());
+ hotelLeaseLog2.setPid(hotelLeaseLog.getId());
+ hotelLeaseLogService.save(hotelLeaseLog2);
+ }
+
+
+ HotelOrderDetail hotelOrderDetail = new HotelOrderDetail();
+ hotelOrder1.setReason(applyRefundOrderReq.getReason());
+ hotelOrder1.setRefundNum(applyRefundOrderReq.getRefundNum());
+ hotelOrder1.setType(applyRefundOrderReq.getType() == 0?3:2);
+ hotelOrder1.setReasonInfo(applyRefundOrderReq.getReasonInfo() == null?null:applyRefundOrderReq.getReasonInfo());
+ hotelOrder1.setReasonPic(applyRefundOrderReq.getReasonPic() == null?null:applyRefundOrderReq.getReasonPic());
+ hotelOrder1.setReasonPhone(applyRefundOrderReq.getPhone() == null?null:applyRefundOrderReq.getPhone());
+ hotelOrder1.setUserId(hanHaiMember.getId());
+ hotelOrderDetail.setGoodsId(hotelLeaseLog.getGoodsId());
+ hotelOrderDetail.setGoodsName(hotelLeaseLog.getGoodsName());
+ hotelOrderDetail.setSkuId(hotelLeaseLog.getSkuId());
+ hotelOrderDetail.setSku(hotelLeaseLog.getSku());
+ hotelOrderDetail.setPic(hotelLeaseLog.getGoodsPic());
+ hotelOrder1.setStatus(applyRefundOrderReq.getType() == 0 ?11:7);
+ hotelOrderDetail.setLeaseId(hotelLeaseLog.getNum() > applyRefundOrderReq.getRefundNum()?hotelLeaseLog2.getId():hotelLeaseLog.getId());
+ hotelOrder1.setLeaseId(hotelLeaseLog.getNum() > applyRefundOrderReq.getRefundNum()?hotelLeaseLog2.getId():hotelLeaseLog.getId());
+ hotelOrder1.setUserName(hotelAddress.getName());
+ hotelOrder1.setUserPhone(hotelAddress.getPhone());
+ hotelOrder1.setUserAddress(hotelAddress.getAddress()+hotelAddress.getAddressDetail());
+ hotelOrder1.setShopId(hotelShop.getUserId());
+ hotelOrderService.save(hotelOrder1);
+
+ hotelOrderDetail.setOrderId(hotelOrder1.getId());
+ hotelOrderDetailService.save(hotelOrderDetail);
+
+ if(num > 0){
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
+ hotelLeaseLog1.setId(hotelLeaseLog.getId());
+ if(hotelLeaseLog.getNum().equals(applyRefundOrderReq.getRefundNum()
+ )){
+ hotelLeaseLog1.setStatus(applyRefundOrderReq.getType() == 0?2:1);
+ }
+// int i = hotelLeaseLog.getNum() - applyRefundOrderReq.getRefundNum();
+ hotelLeaseLog1.setNum(num);
+ hotelLeaseLogService.updateById(hotelLeaseLog1);
+ }
+
+
+
+
+ return Result.OK();
+ }
+
+
+
+
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public Result> confirmOrder(ConfirmOrderReq confirmOrderReq) {
+
+ Integer n = (Integer) redisUtil.get("confirm:order:"+confirmOrderReq.getToken());
+ if(n != null){
+ throw new JeecgBootException("请勿重复点击");
+ }
+ redisUtil.set("confirm:order:"+confirmOrderReq.getToken(),1,3);
+ HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(confirmOrderReq.getToken());
+ HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .eq(HotelOrder::getId, confirmOrderReq.getId())
+// .eq(HotelOrder::getUserId, hanHaiMember.getId())
+ .one();
+ if(hotelOrder == null){
+ throw new JeecgBootException("数据错误,请刷新重试");
+ }
+ List hotelOrderDetails = hotelOrderDetailService.lambdaQuery()
+ .eq(HotelOrderDetail::getDelFlag, 0)
+ .eq(HotelOrderDetail::getOrderId, hotelOrder.getId())
+ .list();
+ if(hotelOrder.getType() == 0){
+ if(!StringUtils.equals(hotelOrder.getUserId(),hanHaiMember.getId())){
+ throw new JeecgBootException("数据订单错误");
+ }
+ List hotelLeaseLogs = new ArrayList<>();
+ for (HotelOrderDetail hotelOrderDetail:hotelOrderDetails){
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getOrderDetailId, hotelOrderDetail.getId())
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .one();
+ if(hotelLeaseLog == null){
+ throw new JeecgBootException("数据错误,请刷新重试");
+ }
+
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
+ hotelLeaseLog1.setId(hotelLeaseLog.getId());
+ hotelLeaseLog1.setStartTime(new Date());
+ hotelLeaseLogs.add(hotelLeaseLog1);
+
+ }
+ hotelLeaseLogService.updateBatchById(hotelLeaseLogs);
+ HotelOrder hotelOrder1 = new HotelOrder();
+ hotelOrder1.setId(hotelOrder.getId());
+ hotelOrder1.setStatus(15);
+ hotelOrderService.updateById(hotelOrder1);
+
+ }else if(hotelOrder.getType() == 1){
+ if(!StringUtils.equals(hotelOrder.getShopId(),hanHaiMember.getId())){
+ throw new JeecgBootException("数据订单错误");
+ }
+ HotelShop hotelShop = hotelShopService.lambdaQuery()
+ .eq(HotelShop::getDelFlag, 0)
+ .eq(HotelShop::getUserId, hotelOrder.getShopId())
+ .one();
+
+ HotelMemberAccount hotelMemberAccount = hotelMemberAccountService.lambdaQuery()
+ .eq(HotelMemberAccount::getDelFlag, 0)
+ .eq(HotelMemberAccount::getUserId, hotelShop.getUserId())
+ .one();
+
+
+ BigDecimal platformServiceRate = new BigDecimal(hotelConfService.getConf("platformServiceRate"));
+ BigDecimal platformServicePrice = hotelOrder.getOrderPay().multiply(platformServiceRate);
+ BigDecimal shopPrice = hotelOrder.getOrderPay().multiply(hotelShop.getRate());
+ BigDecimal price = hotelMemberAccount.getShopBalance().add(shopPrice);
+
+
+ HotelMemberAccount hotelMemberAccount1 = new HotelMemberAccount();
+ hotelMemberAccount1.setId(hotelMemberAccount.getId());
+ hotelMemberAccount1.setShopBalance(price);
+ hotelMemberAccountService.updateById(hotelMemberAccount1);
+
+
+ HotelBalanceLog hotelBalanceLog = new HotelBalanceLog();
+ hotelBalanceLog.setUserId(hotelShop.getUserId());
+ hotelBalanceLog.setBalance(shopPrice);
+ hotelBalanceLog.setUserBalance(hotelMemberAccount.getShopBalance());
+ hotelBalanceLog.setType(2);
+ hotelBalanceLog.setTitle("佣金到账");
+ hotelBalanceLog.setPayType(1);
+ hotelBalanceLog.setPlatformServicePrice(platformServicePrice);
+ hotelBalanceLog.setOrderId(hotelOrder.getId());
hotelBalanceLogService.save(hotelBalanceLog);
- }
+ HotelOrder hotelOrder1 = new HotelOrder();
+ hotelOrder1.setId(hotelOrder.getId());
+ hotelOrder1.setStatus(15);
+ hotelOrderService.updateById(hotelOrder1);
- //不再通知该结果
- return "SUCCESS";
- }
- @Transactional(rollbackFor = Exception.class)
- @Override
- public Result> applyRefundOrder(ApplyRefundOrderReq applyRefundOrderReq) {
- Integer n = (Integer) redisUtil.get("apply:refund:order:"+applyRefundOrderReq.getToken());
- if(n != null){
- return Result.error("请勿重复点击");
- }
- redisUtil.set("apply:refund:order:"+applyRefundOrderReq.getToken(),1,3);
- HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(applyRefundOrderReq.getToken());
- if(StringUtils.isBlank(applyRefundOrderReq.getReason())){
- throw new JeecgBootException("请填写申请原因");
- }
- if(applyRefundOrderReq.getRefundNum() == null || applyRefundOrderReq.getRefundNum() <= 0){
- String name = applyRefundOrderReq.getType() == 0?"退货数量":"换货数量";
- throw new JeecgBootException("请填写"+name);
}
- if(StringUtils.isBlank(applyRefundOrderReq.getAddressId())){
- throw new JeecgBootException("请选择收货地址");
- }
- HotelAddress hotelAddress = hotelAddressService.lambdaQuery()
- .eq(HotelAddress::getDelFlag, 0)
- .eq(HotelAddress::getId, applyRefundOrderReq.getAddressId())
- .one();
- if(hotelAddress == null){
- throw new JeecgBootException("地址数据错误");
- }
+ return Result.OK();
+ }
- HotelOrder hotelOrder1 = new HotelOrder();
- if(applyRefundOrderReq.getType() == 0){
- if(applyRefundOrderReq.getReasonPrice() == null || applyRefundOrderReq.getReasonPrice().compareTo(BigDecimal.ZERO) <= 0){
- throw new JeecgBootException("请输入申请金额");
- }
- hotelOrder1.setOrderPay(hotelOrder1.getReasonPrice());
- }
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public Result> confirmOrder2(ConfirmOrderReq confirmOrderReq) {
- HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
- .eq(HotelLeaseLog::getDelFlag, 0)
- .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
- .eq(HotelLeaseLog::getId, applyRefundOrderReq.getId())
- .one();
- if(hotelLeaseLog == null){
- throw new JeecgBootException("数据错误,请刷新重试");
- }
- List hotelOrders = hotelOrderService.lambdaQuery()
- .eq(HotelOrder::getDelFlag, 0)
- .eq(HotelOrder::getType,applyRefundOrderReq.getType() == 0?2:1)
- .eq(HotelOrder::getLeaseId, hotelLeaseLog.getId())
- .ne(HotelOrder::getStatus, 15)
- .list();
- if(hotelOrders.size() != 0){
- throw new JeecgBootException("该租赁不可操作");
+ Integer n = (Integer) redisUtil.get("confirm:order:"+confirmOrderReq.getToken());
+ if(n != null){
+ throw new JeecgBootException("请勿重复点击");
}
+ redisUtil.set("confirm:order:"+confirmOrderReq.getToken(),1,3);
+ HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(confirmOrderReq.getToken());
HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
.eq(HotelOrder::getDelFlag, 0)
- .eq(HotelOrder::getId, hotelLeaseLog.getOrderId())
+ .eq(HotelOrder::getId, confirmOrderReq.getId())
+// .eq(HotelOrder::getUserId, hanHaiMember.getId())
.one();
- if(hotelOrder.getStatus() != 15){
- throw new JeecgBootException("该订单还未收货");
+ if(hotelOrder == null){
+ throw new JeecgBootException("数据错误,请刷新重试");
}
+ List hotelOrderDetails = hotelOrderDetailService.lambdaQuery()
+ .eq(HotelOrderDetail::getDelFlag, 0)
+ .eq(HotelOrderDetail::getOrderId, hotelOrder.getId())
+ .list();
+ if(hotelOrder.getType() == 0){
+ if(!StringUtils.equals(hotelOrder.getUserId(),hanHaiMember.getId())){
+ throw new JeecgBootException("数据订单错误");
+ }
+ List hotelLeaseLogs = new ArrayList<>();
+ for (HotelOrderDetail hotelOrderDetail:hotelOrderDetails){
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getOrderDetailId, hotelOrderDetail.getId())
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .one();
+ if(hotelLeaseLog == null){
+ throw new JeecgBootException("数据错误,请刷新重试");
+ }
- HotelShop hotelShop = hotelShopService.lambdaQuery()
- .eq(HotelShop::getDelFlag, 0)
- .eq(HotelShop::getId, hanHaiMember.getShopId())
- .one();
- HotelLeaseLog hotelLeaseLog2 = new HotelLeaseLog();
- if(hotelLeaseLog.getNum() > applyRefundOrderReq.getRefundNum()){
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
+ hotelLeaseLog1.setId(hotelLeaseLog.getId());
+ hotelLeaseLog1.setStartTime(new Date());
+ hotelLeaseLogs.add(hotelLeaseLog1);
- hotelLeaseLog2.setUserId(hotelLeaseLog.getUserId());
- hotelLeaseLog2.setShopId(hotelLeaseLog.getShopId());
- hotelLeaseLog2.setOrderId(hotelLeaseLog.getOrderId());
- hotelLeaseLog2.setGoodsId(hotelLeaseLog.getGoodsId());
- hotelLeaseLog2.setSkuId(hotelLeaseLog.getSkuId());
- hotelLeaseLog2.setGoodsName(hotelLeaseLog.getGoodsName());
- hotelLeaseLog2.setGoodsPic(hotelLeaseLog.getGoodsPic());
- hotelLeaseLog2.setSku(hotelLeaseLog.getSku());
- hotelLeaseLog2.setStatus(applyRefundOrderReq.getType() == 0?2:1);
- hotelLeaseLog2.setNum(applyRefundOrderReq.getRefundNum());
- hotelLeaseLog2.setPrice(hotelLeaseLog.getPrice());
- hotelLeaseLog2.setCategoryId(hotelLeaseLog.getCategoryId());
- hotelLeaseLogService.save(hotelLeaseLog2);
- }
+ }
+ hotelLeaseLogService.updateBatchById(hotelLeaseLogs);
+ HotelOrder hotelOrder1 = new HotelOrder();
+ hotelOrder1.setId(hotelOrder.getId());
+ hotelOrder1.setStatus(15);
+ hotelOrderService.updateById(hotelOrder1);
+
+ }else if(hotelOrder.getType() == 1){
+ if(!StringUtils.equals(hotelOrder.getShopId(),hanHaiMember.getId())){
+ throw new JeecgBootException("数据订单错误");
+ }
+ HotelShop hotelShop = hotelShopService.lambdaQuery()
+ .eq(HotelShop::getDelFlag, 0)
+ .eq(HotelShop::getUserId, hotelOrder.getShopId())
+ .one();
+ HotelMemberAccount hotelMemberAccount = hotelMemberAccountService.lambdaQuery()
+ .eq(HotelMemberAccount::getDelFlag, 0)
+ .eq(HotelMemberAccount::getUserId, hotelShop.getUserId())
+ .one();
- HotelOrderDetail hotelOrderDetail = new HotelOrderDetail();
- hotelOrder1.setReason(applyRefundOrderReq.getReason());
- hotelOrder1.setRefundNum(applyRefundOrderReq.getRefundNum());
- hotelOrder1.setType(applyRefundOrderReq.getType() == 0?3:2);
- hotelOrder1.setReasonInfo(applyRefundOrderReq.getReasonInfo() == null?null:applyRefundOrderReq.getReasonInfo());
- hotelOrder1.setReasonPic(applyRefundOrderReq.getReasonPic() == null?null:applyRefundOrderReq.getReasonPic());
- hotelOrder1.setReasonPhone(applyRefundOrderReq.getPhone() == null?null:applyRefundOrderReq.getPhone());
- hotelOrder1.setUserId(hanHaiMember.getId());
- hotelOrderDetail.setGoodsId(hotelLeaseLog.getGoodsId());
- hotelOrderDetail.setGoodsName(hotelLeaseLog.getGoodsName());
- hotelOrderDetail.setSkuId(hotelLeaseLog.getSkuId());
- hotelOrderDetail.setSku(hotelLeaseLog.getSku());
- hotelOrderDetail.setPic(hotelLeaseLog.getGoodsPic());
- hotelOrder1.setStatus(applyRefundOrderReq.getType() == 0 ?11:7);
- hotelOrderDetail.setLeaseId(hotelLeaseLog.getNum() > applyRefundOrderReq.getRefundNum()?hotelLeaseLog2.getId():hotelLeaseLog.getId());
- hotelOrder1.setLeaseId(hotelLeaseLog.getNum() > applyRefundOrderReq.getRefundNum()?hotelLeaseLog2.getId():hotelLeaseLog.getId());
- hotelOrder1.setUserName(hotelAddress.getName());
- hotelOrder1.setUserPhone(hotelAddress.getPhone());
- hotelOrder1.setUserAddress(hotelAddress.getAddress()+hotelAddress.getAddressDetail());
- hotelOrder1.setShopId(hotelShop.getUserId());
- hotelOrderService.save(hotelOrder1);
- hotelOrderDetail.setOrderId(hotelOrder1.getId());
- hotelOrderDetailService.save(hotelOrderDetail);
+ BigDecimal platformServiceRate = new BigDecimal(hotelConfService.getConf("platformServiceRate"));
+ BigDecimal platformServicePrice = hotelOrder.getOrderPay().multiply(platformServiceRate);
+ BigDecimal shopPrice = hotelOrder.getOrderPay().multiply(hotelShop.getRate());
+ BigDecimal price = hotelMemberAccount.getShopBalance().add(shopPrice);
- HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
- hotelLeaseLog1.setId(hotelLeaseLog.getId());
- if(hotelLeaseLog.getNum() == applyRefundOrderReq.getRefundNum()){
- hotelLeaseLog1.setStatus(applyRefundOrderReq.getType() == 0?2:1);
- }
- hotelLeaseLog1.setNum(hotelLeaseLog.getNum() - applyRefundOrderReq.getRefundNum());
- hotelLeaseLogService.updateById(hotelLeaseLog1);
+ HotelMemberAccount hotelMemberAccount1 = new HotelMemberAccount();
+ hotelMemberAccount1.setId(hotelMemberAccount.getId());
+ hotelMemberAccount1.setShopBalance(price);
+ hotelMemberAccountService.updateById(hotelMemberAccount1);
+
+ HotelBalanceLog hotelBalanceLog = new HotelBalanceLog();
+ hotelBalanceLog.setUserId(hotelShop.getUserId());
+ hotelBalanceLog.setBalance(shopPrice);
+ hotelBalanceLog.setUserBalance(hotelMemberAccount.getShopBalance());
+ hotelBalanceLog.setType(2);
+ hotelBalanceLog.setTitle("佣金到账");
+ hotelBalanceLog.setPayType(1);
+ hotelBalanceLog.setPlatformServicePrice(platformServicePrice);
+ hotelBalanceLog.setOrderId(hotelOrder.getId());
+ hotelBalanceLogService.save(hotelBalanceLog);
+ HotelOrder hotelOrder1 = new HotelOrder();
+ hotelOrder1.setId(hotelOrder.getId());
+ hotelOrder1.setStatus(15);
+ hotelOrderService.updateById(hotelOrder1);
- return Result.OK();
- }
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getOrderDetailId, hotelOrderDetails.get(0).getId())
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .one();
+ if(hotelLeaseLog == null){
+ throw new JeecgBootException("数据错误,请刷新重试");
+ }
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
+ hotelLeaseLog1.setId(hotelLeaseLog.getId());
+ int num = hotelLeaseLog.getWashNum() - hotelOrderDetails.get(0).getNum();
+ hotelLeaseLog1.setWashNum(num);
+ hotelLeaseLogService.updateById(hotelLeaseLog1);
+ }
+ return Result.OK();
+ }
@Transactional(rollbackFor = Exception.class)
@Override
- public Result> confirmOrder(ConfirmOrderReq confirmOrderReq) {
+ public Result> confirmOrder3(ConfirmOrderReq confirmOrderReq) {
Integer n = (Integer) redisUtil.get("confirm:order:"+confirmOrderReq.getToken());
if(n != null){
@@ -1641,6 +2857,39 @@ public class OrderServiceImpl implements IOrderService {
hotelOrder1.setStatus(15);
hotelOrderService.updateById(hotelOrder1);
+
+ //子
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getId, hotelOrderDetails.get(0).getLeaseId())
+ .eq(HotelLeaseLog::getUserId, hanHaiMember.getId())
+ .one();
+ if(hotelLeaseLog == null){
+ throw new JeecgBootException("数据错误,请刷新重试");
+ }
+
+ if(StringUtils.isNotBlank(hotelLeaseLog.getPid())){
+ //父
+ HotelLeaseLog hotelLeaseLog1 = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getId, hotelLeaseLog.getPid())
+ .one();
+ int num = hotelLeaseLog.getNum() + hotelLeaseLog1.getNum();
+ BigDecimal price2 = hotelLeaseLog1.getPrice().add(hotelLeaseLog.getPrice());
+ HotelLeaseLog hotelLeaseLog2 = new HotelLeaseLog();
+ hotelLeaseLog2.setId(hotelLeaseLog1.getId());
+
+ hotelLeaseLog2.setPrice(price2);
+ hotelLeaseLog2.setNum(num);
+ hotelLeaseLogService.updateById(hotelLeaseLog2);
+
+
+ hotelLeaseLogService.removeById(hotelLeaseLog.getId());
+ }
+
+
+
+
}
@@ -1764,6 +3013,14 @@ public class OrderServiceImpl implements IOrderService {
.eq(HotelOrder::getShopId,hanHaiMember.getId())
.eq(HotelOrder::getId, confirmAcceptOrderReq.getId())
.one();
+
+ List hotelOrderDetails = hotelOrderDetailService.lambdaQuery()
+ .eq(HotelOrderDetail::getDelFlag, 0)
+ .eq(HotelOrderDetail::getId, hotelOrder.getId())
+ .list();
+
+
+
HotelOrder hotelOrder1 = new HotelOrder();
hotelOrder1.setId(hotelOrder.getId());
@@ -1785,6 +3042,14 @@ public class OrderServiceImpl implements IOrderService {
hotelOrder1.setStatus(6);
break;
case 6:
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getId, hotelOrderDetails.get(0).getLeaseId())
+ .one();
+ HotelLeaseLog hotelLeaseLog1 = new HotelLeaseLog();
+ hotelLeaseLog1.setId(hotelLeaseLog.getId());
+ hotelLeaseLog1.setWashNum(hotelLeaseLog.getWashNum() - hotelOrderDetails.get(0).getNum());
+ hotelLeaseLogService.updateById(hotelLeaseLog1);
hotelOrder1.setStatus(15);
break;
}
@@ -1879,6 +3144,56 @@ public class OrderServiceImpl implements IOrderService {
return Result.OK();
}
+ @Override
+ public Result> cancelOrder2(CancelOrderReq cancelOrderReq) {
+ HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(cancelOrderReq.getToken());
+ HotelOrder hotelOrder = hotelOrderService.lambdaQuery()
+ .eq(HotelOrder::getDelFlag, 0)
+ .in(HotelOrder::getStatus, 0, 3)
+ .eq(HotelOrder::getUserId,hanHaiMember.getId())
+ .eq(HotelOrder::getId, cancelOrderReq.getId())
+ .one();
+ if(hotelOrder == null){
+ throw new JeecgBootException("未找到该订单");
+ }
+
+ if(hotelOrder.getType() == 1){
+ HotelOrderDetail hotelOrderDetail = hotelOrderDetailService.lambdaQuery()
+ .eq(HotelOrderDetail::getDelFlag, 0)
+ .eq(HotelOrderDetail::getOrderId, hotelOrder.getId())
+ .one();
+ //子物品
+ HotelLeaseLog hotelLeaseLog = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag,0)
+ .eq(HotelLeaseLog::getId, hotelOrderDetail.getLeaseId())
+ .one();
+
+ //父物品
+ HotelLeaseLog hotelLeaseLog1 = hotelLeaseLogService.lambdaQuery()
+ .eq(HotelLeaseLog::getDelFlag, 0)
+ .eq(HotelLeaseLog::getId, hotelLeaseLog.getPid())
+ .one();
+
+ int num = hotelLeaseLog1.getNum() + hotelLeaseLog.getNum();
+ BigDecimal price = hotelLeaseLog1.getPrice().add(hotelLeaseLog.getPrice());
+ HotelLeaseLog hotelLeaseLog2 = new HotelLeaseLog();
+ hotelLeaseLog2.setId(hotelLeaseLog1.getId());
+ hotelLeaseLog2.setNum(num);
+ hotelLeaseLog2.setPrice(price);
+ hotelLeaseLogService.updateById(hotelLeaseLog2);
+
+ hotelLeaseLogService.removeById(hotelLeaseLog.getId());
+
+ }
+
+
+ HotelOrder hotelOrder1 = new HotelOrder();
+ hotelOrder1.setId(hotelOrder.getId());
+ hotelOrderService.removeById(hotelOrder1);
+
+ return Result.OK();
+ }
+
@Override
public Result> replaceOrderPay(ReplaceOrderPayReq replaceOrderPayReq) {
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(replaceOrderPayReq.getToken());