From 84a2007b26bf0e1f458f0377dfe0193ba79aef05 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 25 Oct 2024 11:19:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=20=E4=BB=A5=E5=8F=8A=20=E9=80=80=E5=88=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/TbActivateInRecordMapper.java | 6 + .../mapper/TbActivateOutRecordMapper.java | 6 + .../mybatis/service/TbShopCouponService.java | 9 +- .../service/impl/TbShopCouponServiceImpl.java | 106 +++++++++++++----- .../impl/order/TbOrderInfoServiceImpl.java | 16 --- .../cn/ysk/cashier/vo/TbUserCouponVo.java | 1 + 6 files changed, 97 insertions(+), 47 deletions(-) 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 index 0151d766..4401388e 100644 --- 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 @@ -17,6 +17,7 @@ import java.util.List; public interface TbActivateInRecordMapper extends BaseMapper { @Select("SELECT" + + " inRecord.coupon_id as id," + " inRecord.coupon_id as couponId," + " pro.id as proId," + " CASE" + @@ -37,5 +38,10 @@ public interface TbActivateInRecordMapper extends BaseMapper " and inRecord.use_end_time > now()" + " order by inRecord.use_end_time asc") List queryByVipIdAndShopId(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId); + + @Select("update tb_activate_in_record" + + " set over_num = #{overNum}" + + " where id = #{id}") + int updateOverNum(@Param("id") Integer id, @Param("overNum") Integer overNum); } 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 index a66d9579..ba81e80a 100644 --- 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 @@ -2,6 +2,8 @@ package cn.ysk.cashier.mybatis.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.ysk.cashier.mybatis.entity.TbActivateOutRecord; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** * 活动赠送商品使用记录表(TbActivateOutRecord)表数据库访问层 @@ -11,5 +13,9 @@ import cn.ysk.cashier.mybatis.entity.TbActivateOutRecord; */ public interface TbActivateOutRecordMapper extends BaseMapper { + @Select("update tb_activate_out_record" + + " set ref_num = ref_num + #{refNum}" + + " where id = #{id}") + int updateRefNum(@Param("id") Integer id, @Param("refNum") Integer refNum); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopCouponService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopCouponService.java index 397fd91d..616211dd 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopCouponService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopCouponService.java @@ -1,6 +1,7 @@ package cn.ysk.cashier.mybatis.service; import cn.ysk.cashier.dto.CouponDto; +import cn.ysk.cashier.mybatis.entity.TbActivateOutRecord; import cn.ysk.cashier.mybatis.entity.TbCouponProduct; import cn.ysk.cashier.mybatis.vo.TbShopCouponVo; import com.baomidou.mybatisplus.extension.service.IService; @@ -24,11 +25,15 @@ public interface TbShopCouponService extends IService { TbShopCoupon findById (Integer id); - ResponseEntity find(CouponDto param); - boolean update(TbShopCouponVo param); boolean delete(Integer id); + ResponseEntity find(CouponDto param); + + boolean use(Integer shopId,Integer orderId,Integer vipUserId,List param); + + boolean refund(List param); + List findActivatePros(Integer couponId); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopCouponServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopCouponServiceImpl.java index de232083..9b7f08b5 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopCouponServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopCouponServiceImpl.java @@ -6,9 +6,12 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.ysk.cashier.dto.CouponDto; import cn.ysk.cashier.dto.TbShopCouponQueryCriteria; +import cn.ysk.cashier.mybatis.entity.TbActivateInRecord; +import cn.ysk.cashier.mybatis.entity.TbActivateOutRecord; import cn.ysk.cashier.mybatis.entity.TbCouponProduct; import cn.ysk.cashier.mybatis.entity.TbShopCoupon; import cn.ysk.cashier.mybatis.mapper.TbActivateInRecordMapper; +import cn.ysk.cashier.mybatis.mapper.TbActivateOutRecordMapper; import cn.ysk.cashier.mybatis.mapper.TbShopCouponMapper; import cn.ysk.cashier.mybatis.service.TbActivateInRecordService; import cn.ysk.cashier.mybatis.service.TbCouponProductService; @@ -66,6 +69,8 @@ public class TbShopCouponServiceImpl extends ServiceImpl collect = new ArrayList<>(); + for (TbCouponProduct product : param.getProducts()) { + product.setCouponId(param.getId()); + if (product.getId() != null) collect.add(product.getId()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("coupon_id", param.getId()); + List actProducts = couProductService.list(queryWrapper); + for (TbCouponProduct actProduct : actProducts) { + if (!collect.contains(actProduct.getId())) { + couProductService.removeById(actProduct.getId()); + } + } + couProductService.saveOrUpdateBatch(param.getProducts()); + } else { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(TbCouponProduct::getCouponId, param.getId()); + couProductService.remove(queryWrapper); + } + return true; + } + + @Override + public boolean delete(Integer id) { + tbShopCouponmapper.deleteById(id); + couProductService.remove(new LambdaQueryWrapper().eq(TbCouponProduct::getCouponId, id)); + return true; + } + @Override public ResponseEntity find(CouponDto param) { TbShopUser tbShopUser = shopUserRepository.selectByUserIdAndShopId(param.getUserId().toString(), param.getShopId().toString()); @@ -170,45 +212,51 @@ public class TbShopCouponServiceImpl extends ServiceImpl(HttpStatus.OK); } - + /** + * 使用券 + * @param shopId + * @param orderId + * @param vipUserId + * @param param giveId 和 useNum 必传 + * @return + */ @Override - public boolean update(TbShopCouponVo param) { - if (param.getId() == null) { - tbShopCouponmapper.insert(param); - } else { - tbShopCouponmapper.updateById(param); - } - if (CollectionUtil.isNotEmpty(param.getProducts())) { - List collect = new ArrayList<>(); - for (TbCouponProduct product : param.getProducts()) { - product.setCouponId(param.getId()); - if (product.getId() != null) collect.add(product.getId()); - } - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("coupon_id", param.getId()); - List actProducts = couProductService.list(queryWrapper); - for (TbCouponProduct actProduct : actProducts) { - if (!collect.contains(actProduct.getId())) { - couProductService.removeById(actProduct.getId()); - } - } - couProductService.saveOrUpdateBatch(param.getProducts()); - } else { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(TbCouponProduct::getCouponId, param.getId()); - couProductService.remove(queryWrapper); + public boolean use(Integer shopId,Integer orderId,Integer vipUserId,List param) { + for (TbActivateOutRecord outRecord : param) { + TbActivateInRecord inRecord = inRecordMapper.selectById(outRecord.getGiveId()); + inRecord.setOverNum(inRecord.getOverNum() - outRecord.getUseNum()); + inRecordMapper.updateOverNum(inRecord.getId(), inRecord.getOverNum()); + + outRecord.setType(inRecord.getType()); + outRecord.setShopId(shopId); + outRecord.setOrderId(orderId.toString()); + outRecord.setVipUserId(vipUserId); + outRecord.setStatus("closed"); + outRecord.setCreateTime(new Date()); + outRecordMapper.insert(outRecord); } return true; } + /** + * 退还券 + * @param param giveId和 refNum 必传 + * @return + */ @Override - public boolean delete(Integer id) { - tbShopCouponmapper.deleteById(id); - couProductService.remove(new LambdaQueryWrapper().eq(TbCouponProduct::getCouponId, id)); + public boolean refund(List param) { + for (TbActivateOutRecord outRecord : param) { + outRecord.setUpdateTime(new Date()); + outRecordMapper.updateRefNum(outRecord.getId(),outRecord.getRefNum()); + TbActivateInRecord inRecord = inRecordMapper.selectById(outRecord.getGiveId()); + inRecord.setOverNum(inRecord.getOverNum() + outRecord.getRefNum()); + inRecordMapper.updateOverNum(inRecord.getId(), inRecord.getOverNum()); + } return true; } + @Override public List findActivatePros(Integer couponId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("coupon_id", couponId); 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 eeae7adf..d0161535 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 @@ -400,22 +400,6 @@ 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()); for (TbOrderDetail detail : details) { detail.setStatus("cancelled"); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbUserCouponVo.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbUserCouponVo.java index f13b5211..459ac51c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbUserCouponVo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbUserCouponVo.java @@ -6,6 +6,7 @@ import java.util.Date; @Data public class TbUserCouponVo { + private Integer id; private Integer couponId; private Integer proId; //优惠券名称