From 65816321c28dab1f43d0563af67dbcbad2c5bdca Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 22 五月 2023 18:15:39 +0800
Subject: [PATCH] demo补完
---
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 171 insertions(+), 8 deletions(-)
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 126199b..4708c86 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.domain.dto.*;
import com.ruoyi.order.domain.pojo.goods.Goods;
import com.ruoyi.order.domain.pojo.goods.GoodsFile;
@@ -15,17 +16,22 @@
import com.ruoyi.order.domain.pojo.order.ConsumerGoods;
import com.ruoyi.order.domain.pojo.order.Order;
import com.ruoyi.order.domain.pojo.order.OrderGoods;
+import com.ruoyi.order.domain.pojo.order.ShoppingCart;
import com.ruoyi.order.domain.vo.*;
import com.ruoyi.order.service.goods.GoodsFileService;
import com.ruoyi.order.service.goods.ShopGoodsService;
import com.ruoyi.order.service.order.ConsumerGoodsService;
import com.ruoyi.order.service.order.OrderGoodsService;
+import com.ruoyi.order.service.order.ShoppingCartService;
import com.ruoyi.order.util.CodeFactoryUtil;
import com.ruoyi.system.api.RemoteMemberService;
import com.ruoyi.system.api.RemoteShopService;
import com.ruoyi.system.api.RemoteUserService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.AppBaseGetDto;
+import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
+import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto;
+import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.AppOrderTotalVo;
@@ -79,6 +85,9 @@
@Resource
private ConsumerGoodsService consumerGoodsService;
+
+ @Resource
+ private ShoppingCartService shoppingCartService;
/**
* @description: buyGoods
@@ -241,6 +250,8 @@
String orderNo = CodeFactoryUtil.getShopOrderNo();
OrderGoods orderGoods;
String orderGoodsId;
+ ShoppingCart shoppingCart;
+ HashSet<String> goodsTypeSet = new HashSet<>();
for(AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList){
appSureOrderGoodsVo = new AppSureOrderGoodsVo();
useCoupon = 0;
@@ -313,7 +324,9 @@
orderGoods.setOrderId(orderId);
orderGoods.setGoodsId(goodsId);
orderGoods.setBuyNum(buyNum);
- orderGoods.setCouponId(userCouponId.toString());
+ if(userCouponId!=null){
+ orderGoods.setCouponId(userCouponId.toString());
+ }
orderGoods.setGoodsPrice(goodsPrice);
orderGoods.setGoodsTotalMoney(orderGoodsMoney);
orderGoods.setGoodsReceivableMoney(goodsRealPrice);
@@ -321,11 +334,23 @@
orderGoods.setServiceNum(serviceNum);
orderGoods.setGoodsType(goods.getGoodsType());
orderGoodsService.save(orderGoods);
+ //清空购物车
+ shoppingCartService.deleteByUserIdAndGoodsId(userId,goodsId);
+ if(goods.getGoodsType()==1){
+ goodsTypeSet.add("周期");
+ }else if(goods.getGoodsType()==2){
+ goodsTypeSet.add("服务");
+ }else if(goods.getGoodsType()==3){
+ goodsTypeSet.add("体验");
+ }else if(goods.getGoodsType()==4){
+ goodsTypeSet.add("单品");
+ }
}
Order order = new Order();
order.setOrderId(orderId);
order.setDelFlag(0);
- order.setOrderStatus(1);
+ //为对接支付 直接付款成功
+ order.setOrderStatus(2);
order.setOrderNo(orderNo);
order.setOrderFrom(1);
order.setShopId(appPlaceOrderDto.getShopId());
@@ -334,25 +359,37 @@
order.setCouponMoney(couponDiscount);
order.setDiscountMoney(couponDiscount);
order.setReceivableMoney(orderPayMoney);
+ order.setReceivableDeposit(orderPayDeposit);
order.setPayType(appPlaceOrderDto.getPayType());
if(order.getPayType()==1){
order.setPayMoney(orderPayMoney);
order.setOnlinePayMoney(orderPayMoney);
appPlaceOrderVo.setPayMoney(orderPayMoney);
+ appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney()));
order.setCloseFlag(1);
}else if(order.getPayType()==2){
order.setPayMoney(orderPayDeposit);
order.setOnlinePayMoney(orderPayDeposit);
appPlaceOrderVo.setPayMoney(orderPayDeposit);
+ appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney()));
order.setCloseFlag(0);
}
order.setOrderRemark(appPlaceOrderDto.getOrderRemark());
order.setGoodsNum(goodsNum);
order.setCreateTime(new Date());
this.save(order);
+ //更新用户商品类型
+ if(goodsTypeSet!=null&&goodsTypeSet.size()>0){
+ AppMemberGoodsTypeDto appMemberGoodsTypeDto = new AppMemberGoodsTypeDto();
+ appMemberGoodsTypeDto.setUserId(userId);
+ appMemberGoodsTypeDto.setGoodsTypeSet(goodsTypeSet);
+ remoteMemberService.updateMemberGoodsType(appMemberGoodsTypeDto);
+ }
appPlaceOrderVo.setOrderId(orderId);
appPlaceOrderVo.setOrderNo(orderNo);
+
//调用支付
+
return appPlaceOrderVo;
}
@@ -388,6 +425,7 @@
}else{
appUserOrderPageVo.setSameShop(0);
}
+ appUserOrderPageVo.setVerifyCode("1-"+appUserOrderPageVo.getOrderId());
}
}
return appUserOrderPageVoList;
@@ -416,9 +454,15 @@
appUserOrderGetVo.setPayMoney(order.getPayMoney());
appUserOrderGetVo.setOrderRemark(order.getOrderRemark());
appUserOrderGetVo.setShopId(order.getShopId());
+ appUserOrderGetVo.setCreateTime(order.getCreateTime());
+ appUserOrderGetVo.setPayTime(order.getCreateTime());
+ appUserOrderGetVo.setUseTime(order.getUseTime());
+ appUserOrderGetVo.setCancelTime(order.getCancelTime());
+ appUserOrderGetVo.setOrderRemark(order.getOrderRemark());
Shop shop = remoteShopService.getShop(order.getShopId()).getData();
appUserOrderGetVo.setShopName(shop.getShopName());
appUserOrderGetVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList);
+ appUserOrderGetVo.setVerifyCode("1-"+orderId);
return appUserOrderGetVo;
}
@@ -497,6 +541,9 @@
merVerifyOrderVo.setReceivableMoney(order.getReceivableMoney());
merVerifyOrderVo.setPayMoney(order.getPayMoney());
merVerifyOrderVo.setOrderRemark(order.getOrderRemark());
+ merVerifyOrderVo.setCreateTime(order.getCreateTime());
+ merVerifyOrderVo.setPayTime(order.getPayTime());
+ merVerifyOrderVo.setUseTime(order.getUseTime());
merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList);
SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData();
merVerifyOrderVo.setUserName(sysUser.getNickName());
@@ -514,14 +561,15 @@
public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto){
String orderId = merVerifyOrderDto.getOrderId();
BigDecimal relReceiveMoney = merVerifyOrderDto.getRelReceiveMoney();
+ BigDecimal relPayMoney = merVerifyOrderDto.getRelPayMoney();
Date nowTime = new Date();
//更新订单信息
Order order = this.getById(orderId);
order.setOrderStatus(3);
order.setUseTime(nowTime);
order.setUseUserId(merVerifyOrderDto.getUserId());
- order.setOfflinePayMoney(relReceiveMoney);
- order.setPayMoney(order.getPayMoney().add(relReceiveMoney));
+ order.setOfflinePayMoney(relPayMoney);
+ order.setPayMoney(relReceiveMoney.add(relPayMoney));
order.setCloseFlag(1);
this.saveOrUpdate(order);
//创建服务商品
@@ -560,6 +608,9 @@
merVerifyOrderVo.setPayMoney(order.getPayMoney());
merVerifyOrderVo.setOrderRemark(order.getOrderRemark());
merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList);
+ merVerifyOrderVo.setCreateTime(order.getCreateTime());
+ merVerifyOrderVo.setPayTime(order.getPayTime());
+ merVerifyOrderVo.setUseTime(order.getUseTime());
SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData();
merVerifyOrderVo.setUserName(sysUser.getNickName());
merVerifyOrderVo.setUserMobile(sysUser.getPhonenumber());
@@ -576,8 +627,12 @@
public List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto){
List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page,merMemberNoClearOrderDto.getMemberUserId());
if(merMemberNoClearOrderVoList!=null&&!merMemberNoClearOrderVoList.isEmpty()){
+ BigDecimal zeroBig = new BigDecimal("0.00");
for(MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList){
merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney()));
+ if(merMemberNoClearOrderVo.getUnPaidMoney()==null){
+ merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
+ }
}
}
return merMemberNoClearOrderVoList;
@@ -603,6 +658,27 @@
@Override
public void createNewOrder(MerNewOrderDto merNewOrderDto){
Long userId = merNewOrderDto.getBuyUserId();
+ if(userId==null){
+ String name = merNewOrderDto.getName();
+ String mobile = merNewOrderDto.getMobile();
+ SysUser sysUser = remoteUserService.getSysUserByMobile(mobile).getData();
+ if(sysUser==null){
+ //创建新用户
+ String memberId = IdUtils.simpleUUID();
+ sysUser = new SysUser();
+ sysUser.setUserName(mobile);
+ sysUser.setUserType("03");
+ sysUser.setNickName(name);
+ sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
+ String password = "hongruitang";
+ sysUser.setPassword(SecurityUtils.encryptPassword(password));
+ log.debug("sysUser"+sysUser.toString());
+ sysUser = remoteUserService.registerUser(sysUser).getData();
+ userId = sysUser.getUserId();
+ }else{
+ userId = sysUser.getUserId();
+ }
+ }
//创建订单
List<AppBuyGoodsDto> appBuyGoodsDtoList = merNewOrderDto.getAppBuyGoodsDtoList();
String goodsId;
@@ -616,7 +692,11 @@
BigDecimal goodsTotalPrice;
BigDecimal goodsRealPrice;
List<AppUserCouponVo> appUserCouponVoList = remoteMemberService.listVoUserCouponByUserId(userId).getData();
- Map<Long,AppUserCouponVo> appUserCouponVoMap = appUserCouponVoList.stream().collect(Collectors.toMap(AppUserCouponVo::getUserCouponId, Function.identity()));
+ Map<Long,AppUserCouponVo> appUserCouponVoMap = new HashMap<>();
+ if(null != appUserCouponVoList){
+ appUserCouponVoMap = appUserCouponVoList.stream().collect(Collectors.toMap(AppUserCouponVo::getUserCouponId, Function.identity()));
+ }
+
AppUserCouponVo appUserCouponVo;
Integer couponType;
BigDecimal moneyThreshold;
@@ -649,7 +729,7 @@
goodsRealPrice = goodsTotalPrice;
if(userCouponId!=null){
appUserCouponVo = appUserCouponVoMap.get(userCouponId);
- if(StringUtils.isBlank(appUserCouponVo.getRelGoodsIds()) || appUserCouponVo.getRelGoodsIds().contains(goodsId)){
+ if(null != appUserCouponVo && (StringUtils.isBlank(appUserCouponVo.getRelGoodsIds()) || appUserCouponVo.getRelGoodsIds().contains(goodsId))){
couponType = appUserCouponVo.getCouponType();
if(couponType == 1 && appUserCouponVo.getMoneyThreshold()!=null && appUserCouponVo.getDiscountMoney()!=null){
moneyThreshold = appUserCouponVo.getMoneyThreshold();
@@ -685,7 +765,9 @@
orderGoods.setOrderId(orderId);
orderGoods.setGoodsId(goodsId);
orderGoods.setBuyNum(buyNum);
- orderGoods.setCouponId(userCouponId.toString());
+ if(null != userCouponId){
+ orderGoods.setCouponId(userCouponId.toString());
+ }
orderGoods.setGoodsPrice(goodsPrice);
orderGoods.setGoodsTotalMoney(orderGoodsMoney);
orderGoods.setGoodsReceivableMoney(goodsRealPrice);
@@ -699,13 +781,14 @@
order.setDelFlag(0);
order.setOrderStatus(3);
order.setOrderNo(orderNo);
- order.setOrderFrom(1);
+ order.setOrderFrom(3);
order.setShopId(merNewOrderDto.getShopId());
order.setUserId(userId);
order.setOrderMoney(orderGoodsMoney);
order.setCouponMoney(couponDiscount);
order.setDiscountMoney(couponDiscount);
order.setReceivableMoney(orderPayMoney);
+ order.setReceivableDeposit(new BigDecimal("0.00"));
order.setPayType(1);
if(order.getPayType()==1){
order.setPayMoney(orderPayMoney);
@@ -750,5 +833,85 @@
consumerGoods.setCreateTime(new Date());
consumerGoodsService.save(consumerGoods);
}
+ Member member = remoteMemberService.getMember(userId).getData();
+ if(member!=null&&member.getBindingFlag()!=1){
+ //绑定商户
+ AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
+ appMemberBindingDto.setShopId(merNewOrderDto.getShopId());
+ appMemberBindingDto.setUserId(userId);
+ appMemberBindingDto.setBindingFlag(1);
+ remoteMemberService.updateMemberBinding(appMemberBindingDto);
+ }
+ }
+
+
+ /**
+ *
+ * @param merOrderPageDto
+ * @return
+ */
+ @Override
+ public List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto){
+ List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerOrder(page, merOrderPageDto);
+ if(merOrderPageVoList!=null&&!merOrderPageVoList.isEmpty()){
+ Long userId;
+ Member member;
+ Integer orderFrom;
+ String orderFromDesc;
+ BigDecimal zeroBig = new BigDecimal("0.00");
+ for(MerOrderPageVo merOrderPageVo : merOrderPageVoList){
+ userId = merOrderPageVo.getUserId();
+ member = remoteMemberService.getMember(userId).getData();
+ if(member!=null){
+ if(StringUtils.isNotBlank(member.getNickName())){
+ merOrderPageVo.setUserName(member.getNickName());
+ }
+ merOrderPageVo.setUserMobile(member.getMobile());
+ }else{
+ SysUser sysUser = remoteUserService.getSysUser(userId).getData();
+ if(StringUtils.isNotBlank(sysUser.getNickName())){
+ merOrderPageVo.setUserName(sysUser.getNickName());
+ }
+ merOrderPageVo.setUserMobile(sysUser.getPhonenumber());
+ }
+ orderFrom = merOrderPageVo.getOrderFrom();
+ if(orderFrom!=null){
+ if(orderFrom == 1){
+ orderFromDesc = "商城订单";
+ }else{
+ orderFromDesc = "线下创建";
+ }
+ }else{
+ orderFromDesc = "商城订单";
+ }
+ merOrderPageVo.setOrderFromDesc(orderFromDesc);
+ merOrderPageVo.setUnPaidMoney(merOrderPageVo.getReceivableMoney().subtract(merOrderPageVo.getPayMoney()));
+ if(merOrderPageVo.getUnPaidMoney()==null){
+ merOrderPageVo.setUnPaidMoney(zeroBig);
+ }
+ }
+ }
+ return merOrderPageVoList;
+ }
+
+ /**
+ *
+ * @param page
+ * @param merMemberNoClearOrderDto
+ * @return
+ */
+ @Override
+ public List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto){
+ List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberOrder(page,merMemberNoClearOrderDto.getMemberUserId());
+ if(merMemberNoClearOrderVoList!=null&&!merMemberNoClearOrderVoList.isEmpty()){
+ BigDecimal zeroBig = new BigDecimal("0.00");
+ for(MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList){
+ merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney()));
+ if(merMemberNoClearOrderVo.getUnPaidMoney()==null){
+ merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
+ }
+ }
+ }
+ return merMemberNoClearOrderVoList;
}
}
--
Gitblit v1.7.1