diff --git a/src/main/java/com/yunniu/farming/webadmin/model/OrderMain.java b/src/main/java/com/yunniu/farming/webadmin/model/OrderMain.java index a46e97e..07f25fc 100644 --- a/src/main/java/com/yunniu/farming/webadmin/model/OrderMain.java +++ b/src/main/java/com/yunniu/farming/webadmin/model/OrderMain.java @@ -120,6 +120,8 @@ public class OrderMain { @JsonInclude(JsonInclude.Include.NON_NULL) private Date ddef10; // 自定义项10 + private Long groupOrderId; + @TableField(exist = false) private Long areaId; diff --git a/src/main/java/com/yunniu/farming/webadmin/service/GroupOrderService.java b/src/main/java/com/yunniu/farming/webadmin/service/GroupOrderService.java index ca8d611..30fa875 100644 --- a/src/main/java/com/yunniu/farming/webadmin/service/GroupOrderService.java +++ b/src/main/java/com/yunniu/farming/webadmin/service/GroupOrderService.java @@ -1,5 +1,8 @@ package com.yunniu.farming.webadmin.service; +import com.yunniu.farming.webadmin.model.GroupOrder; +import com.yunniu.farming.webadmin.model.OrderMain; + /** * @author zyf * @date 2023/5/16 @@ -7,4 +10,5 @@ package com.yunniu.farming.webadmin.service; */ public interface GroupOrderService { + GroupOrder addGroupOrder(OrderMain item); } diff --git a/src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java b/src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java index c9f6c50..d638943 100644 --- a/src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java +++ b/src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java @@ -1,9 +1,26 @@ package com.yunniu.farming.webadmin.service.impl; +import com.alibaba.fastjson.JSON; +import com.aliyun.oss.ServiceException; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.mysql.cj.xdevapi.Warning; +import com.yunniu.farming.webadmin.dao.GroupAreaDao; +import com.yunniu.farming.webadmin.dao.GroupBuyDao; +import com.yunniu.farming.webadmin.dao.GroupOrderDao; +import com.yunniu.farming.webadmin.model.GroupBuy; +import com.yunniu.farming.webadmin.model.GroupOrder; +import com.yunniu.farming.webadmin.model.OrderMain; import com.yunniu.farming.webadmin.service.GroupOrderService; +import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; +import java.util.List; +import java.util.Objects; + /** * @author zyf * @date 2023/5/16 @@ -12,4 +29,58 @@ import org.springframework.stereotype.Service; @Service @Slf4j public class GroupOrderServiceImpl implements GroupOrderService { + + @Autowired + private GroupOrderDao orderDao; + @Autowired + private GroupBuyDao groupBuyDao; + @Autowired + private GroupAreaDao groupAreaDao; + + /** + * 保存团购订单 + * @param item + * @return + */ + @Override + public GroupOrder addGroupOrder(OrderMain item) { + if (item.getAreaId() == null){ + throw new ServiceException("缺少小区id参数"); + } + if (item.getGroupBuyId() == null) { + throw new ServiceException("缺少团购id参数"); + } + // 查询此团购活动在此小区是否有待成团的订单 + GroupOrder groupOrder = orderDao.selectOne(Wrappers.<GroupOrder>lambdaQuery() + .eq(GroupOrder::getAreaId, item.getAreaId()) + .eq(GroupOrder::getGroupBuyId, item.getGroupBuyId()) + .eq(GroupOrder::getGroupStatus, 0) + ); + // 查询团购活动是否存在 + GroupBuy groupBuy = groupBuyDao.selectById(item.getGroupBuyId()); + if (ObjectUtils.isEmpty(groupBuy)) { + throw new ServiceException("团购活动不存在"); + } + if (ObjectUtils.isEmpty(groupOrder)) { + List<Integer> list = JSON.parseArray(groupBuy.getAreaIds(), Integer.class); + if (!list.contains(item.getAreaId())) { + throw new ServiceException("小区不存在"); + } + GroupOrder order = new GroupOrder(); + order.setAreaId(item.getAreaId()); + order.setGroupBuyId(item.getGroupBuyId()); + order.setGroupSize(1); + order.setGroupStatus(0); + order.setCreateTime(new Date()); + orderDao.insert(order); + return order; + }else { + groupOrder.setGroupSize(groupOrder.getGroupSize() + 1); + if (Objects.equals(groupOrder.getGroupSize(), groupBuy.getGroupSize())) { + groupOrder.setGroupStatus(1); + groupOrder.setSuccessTime(new Date()); + } + return groupOrder; + } + } } diff --git a/src/main/java/com/yunniu/farming/webadmin/service/impl/OrderMainServiceImpl.java b/src/main/java/com/yunniu/farming/webadmin/service/impl/OrderMainServiceImpl.java index 11fbd9b..2556c69 100644 --- a/src/main/java/com/yunniu/farming/webadmin/service/impl/OrderMainServiceImpl.java +++ b/src/main/java/com/yunniu/farming/webadmin/service/impl/OrderMainServiceImpl.java @@ -93,7 +93,8 @@ public class OrderMainServiceImpl { if (item.getId() == null) { if (item.getItype().equals(OrderMain.ITYPE_GROUP)){ -// GroupOrder order = orderService. + GroupOrder order = orderService.addGroupOrder(item); + item.setGroupOrderId(order.getId()); } // 单据日期 item.setSorderdate(DateTools.getDate("yyyy-MM-dd")); @@ -141,6 +142,10 @@ public class OrderMainServiceImpl { return Result.error("创建订单失败"); } + if (item.getItype().equals(OrderMain.ITYPE_GROUP)){ + GroupOrder order = orderService.addGroupOrder(item); + item.setGroupOrderId(order.getId()); + } // 单据日期 item.setSorderdate(DateTools.getDate("yyyy-MM-dd")); // 提交订单时间 @@ -153,7 +158,7 @@ public class OrderMainServiceImpl { item.setIpaystatus(OrderMain.PAY_STATUS_NO);// 未支付 } - item.setItype(OrderMain.ITYPE_TAKE);//外卖订单 +// item.setItype(OrderMain.ITYPE_TAKE);//外卖订单 item.setIstatus(OrderMain.STATUS_NOPAY);//未付款