From 91e2e0caafc04c76d1df77d94d69c6420d1480e9 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 22 Aug 2024 16:04:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E8=B5=A0=E9=80=81=E5=95=86?= =?UTF-8?q?=E5=93=81=20=E8=AE=A2=E5=8D=95=E8=B6=85=E6=97=B6=20=E5=9B=9E?= =?UTF-8?q?=E6=BB=9A=E8=B5=A0=E9=80=81=E4=BD=BF=E7=94=A8=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/entity/TbActivateInRecord.java | 119 ++++++++++++++++++ .../mybatis/entity/TbActivateOutRecord.java | 109 ++++++++++++++++ .../mapper/TbActivateInRecordMapper.java | 15 +++ .../mapper/TbActivateOutRecordMapper.java | 15 +++ .../service/TbActivateInRecordService.java | 15 +++ .../service/TbActivateOutRecordService.java | 17 +++ .../impl/TbActivateInRecordServiceImpl.java | 18 +++ .../impl/TbActivateOutRecordServiceImpl.java | 18 +++ .../impl/order/TbOrderInfoServiceImpl.java | 25 ++++ 9 files changed, 351 insertions(+) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateInRecord.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateOutRecord.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateInRecordMapper.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateOutRecordMapper.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateInRecordService.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateOutRecordService.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateInRecordServiceImpl.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateOutRecordServiceImpl.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateInRecord.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateInRecord.java new file mode 100644 index 00000000..06e25bcc --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateInRecord.java @@ -0,0 +1,119 @@ +package cn.ysk.cashier.mybatis.entity; + +import java.util.Date; + +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; + +/** + * 活动商品赠送表(TbActivateInRecord)表实体类 + * + * @author ww + * @since 2024-08-22 14:50:16 + */ +@SuppressWarnings("serial") +public class TbActivateInRecord extends Model { + + private Integer id; + //会员id + private Integer vipUserId; + //商品id + private Integer proId; + //赠送数量 + private Integer num; + //未使用数量 + private Integer overNum; + //店铺id + private Integer shopId; + //来源活动id + private Integer sourceActId; + + private Integer sourceFlowId; + + private Date createTime; + + private Date updateTime; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getVipUserId() { + return vipUserId; + } + + public void setVipUserId(Integer vipUserId) { + this.vipUserId = vipUserId; + } + + public Integer getProId() { + return proId; + } + + public void setProId(Integer proId) { + this.proId = proId; + } + + public Integer getNum() { + return num; + } + + public void setNum(Integer num) { + this.num = num; + } + + public Integer getOverNum() { + return overNum; + } + + public void setOverNum(Integer overNum) { + this.overNum = overNum; + } + + public Integer getShopId() { + return shopId; + } + + public void setShopId(Integer shopId) { + this.shopId = shopId; + } + + public Integer getSourceActId() { + return sourceActId; + } + + public void setSourceActId(Integer sourceActId) { + this.sourceActId = sourceActId; + } + + public Integer getSourceFlowId() { + return sourceFlowId; + } + + public void setSourceFlowId(Integer sourceFlowId) { + this.sourceFlowId = sourceFlowId; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateOutRecord.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateOutRecord.java new file mode 100644 index 00000000..fc57add8 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateOutRecord.java @@ -0,0 +1,109 @@ +package cn.ysk.cashier.mybatis.entity; + +import java.util.Date; + +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; + +/** + * 活动赠送商品使用记录表(TbActivateOutRecord)表实体类 + * + * @author ww + * @since 2024-08-22 14:53:52 + */ +@SuppressWarnings("serial") +public class TbActivateOutRecord extends Model { + + private Integer id; + //商品赠送Id + private Integer giveId; + //商品id + private Integer proId; + //未使用数量 + private Integer useNum; + //退单量 + private Integer refNum; + //订单id + private String orderId; + //新建: create, 完成: closed, 取消:cancel, + private String status; + + private Date createTime; + + private Date updateTime; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getGiveId() { + return giveId; + } + + public void setGiveId(Integer giveId) { + this.giveId = giveId; + } + + public Integer getProId() { + return proId; + } + + public void setProId(Integer proId) { + this.proId = proId; + } + + public Integer getUseNum() { + return useNum; + } + + public void setUseNum(Integer useNum) { + this.useNum = useNum; + } + + public Integer getRefNum() { + return refNum; + } + + public void setRefNum(Integer refNum) { + this.refNum = refNum; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateInRecordMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateInRecordMapper.java new file mode 100644 index 00000000..3aa1b730 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateInRecordMapper.java @@ -0,0 +1,15 @@ +package cn.ysk.cashier.mybatis.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import cn.ysk.cashier.mybatis.entity.TbActivateInRecord; + +/** + * 活动商品赠送表(TbActivateInRecord)表数据库访问层 + * + * @author ww + * @since 2024-08-22 14:50:16 + */ +public interface TbActivateInRecordMapper extends BaseMapper { + +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateOutRecordMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateOutRecordMapper.java new file mode 100644 index 00000000..a66d9579 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateOutRecordMapper.java @@ -0,0 +1,15 @@ +package cn.ysk.cashier.mybatis.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import cn.ysk.cashier.mybatis.entity.TbActivateOutRecord; + +/** + * 活动赠送商品使用记录表(TbActivateOutRecord)表数据库访问层 + * + * @author ww + * @since 2024-08-22 14:53:52 + */ +public interface TbActivateOutRecordMapper extends BaseMapper { + +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateInRecordService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateInRecordService.java new file mode 100644 index 00000000..7bc277e9 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateInRecordService.java @@ -0,0 +1,15 @@ +package cn.ysk.cashier.mybatis.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import cn.ysk.cashier.mybatis.entity.TbActivateInRecord; + + +/** + * 活动商品赠送表(TbActivateInRecord)表服务接口 + * + * @author ww + * @since 2024-08-22 14:50:16 + */ +public interface TbActivateInRecordService extends IService { +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateOutRecordService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateOutRecordService.java new file mode 100644 index 00000000..f393c7b0 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateOutRecordService.java @@ -0,0 +1,17 @@ +package cn.ysk.cashier.mybatis.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import cn.ysk.cashier.mybatis.entity.TbActivateOutRecord; + +import java.util.Map; + +/** + * 活动赠送商品使用记录表(TbActivateOutRecord)表服务接口 + * + * @author ww + * @since 2024-08-22 14:53:52 + */ +public interface TbActivateOutRecordService extends IService { + +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateInRecordServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateInRecordServiceImpl.java new file mode 100644 index 00000000..31f27c83 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateInRecordServiceImpl.java @@ -0,0 +1,18 @@ +package cn.ysk.cashier.mybatis.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.ysk.cashier.mybatis.mapper.TbActivateInRecordMapper; +import cn.ysk.cashier.mybatis.entity.TbActivateInRecord; +import cn.ysk.cashier.mybatis.service.TbActivateInRecordService; +import org.springframework.stereotype.Service; + +/** + * 活动商品赠送表(TbActivateInRecord)表服务实现类 + * + * @author ww + * @since 2024-08-22 14:50:16 + */ +@Service("tbActivateInRecordService") +public class TbActivateInRecordServiceImpl extends ServiceImpl implements TbActivateInRecordService { +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateOutRecordServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateOutRecordServiceImpl.java new file mode 100644 index 00000000..066cb6c9 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateOutRecordServiceImpl.java @@ -0,0 +1,18 @@ +package cn.ysk.cashier.mybatis.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.ysk.cashier.mybatis.mapper.TbActivateOutRecordMapper; +import cn.ysk.cashier.mybatis.entity.TbActivateOutRecord; +import cn.ysk.cashier.mybatis.service.TbActivateOutRecordService; +import org.springframework.stereotype.Service; + +/** + * 活动赠送商品使用记录表(TbActivateOutRecord)表服务实现类 + * + * @author ww + * @since 2024-08-22 14:53:52 + */ +@Service("tbActivateOutRecordService") +public class TbActivateOutRecordServiceImpl extends ServiceImpl implements TbActivateOutRecordService { +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java index 1fbab89b..e010e8c9 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java @@ -10,7 +10,12 @@ import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mapper.order.TbOrderInfoMapper; import cn.ysk.cashier.mapper.product.TbProductMapper; import cn.ysk.cashier.mapper.product.TbProductSkuMapper; +import cn.ysk.cashier.mybatis.entity.TbActivateInRecord; +import cn.ysk.cashier.mybatis.entity.TbActivateOutRecord; +import cn.ysk.cashier.mybatis.entity.TbActivateProduct; import cn.ysk.cashier.mybatis.entity.TbOrderPayment; +import cn.ysk.cashier.mybatis.service.TbActivateInRecordService; +import cn.ysk.cashier.mybatis.service.TbActivateOutRecordService; import cn.ysk.cashier.mybatis.service.TbOrderPaymentService; import cn.ysk.cashier.pojo.TbShopPayType; import cn.ysk.cashier.pojo.order.TbOrderDetail; @@ -33,6 +38,8 @@ import cn.ysk.cashier.vo.TbOrderInfoVo; import cn.ysk.cashier.vo.TbOrderPayCountVo; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -79,6 +86,8 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { private final RedisUtils redisUtils; private final ThirdPayService thirdPayService; private final TbCashierCartRepository cartRepository; + private final TbActivateInRecordService inRecordService; + private final TbActivateOutRecordService outRecordService; private final RabbitTemplate rabbitTemplate; @Value("${thirdPay.url}") @@ -362,6 +371,22 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { @Transactional(rollbackFor = Exception.class) public void upOrderStatus(TbOrderInfo tbOrderInfo) { tbOrderInfo.setStatus("cancelled"); + //订单取消 赠送商品数量返回 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id",tbOrderInfo.getId()); + queryWrapper.eq("status","create"); + List outRecords = outRecordService.list(queryWrapper); + for (TbActivateOutRecord outRecord : outRecords) { + TbActivateInRecord inRecord = inRecordService.getById(outRecord.getGiveId()); + inRecord.setOverNum(inRecord.getOverNum() + outRecord.getUseNum()); + inRecordService.updateById(inRecord); + } + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(TbActivateOutRecord::getOrderId, tbOrderInfo.getId()) + .eq(TbActivateOutRecord::getStatus, "create") + .set(TbActivateOutRecord::getStatus, "cancel"); + outRecordService.update(lambdaUpdateWrapper); + List details = tbOrderDetailRepository.searchDetailByOrderId(tbOrderInfo.getId()); Set keys = new HashSet<>(); for (TbOrderDetail detail : details) {