From 092d38895905444cf6f4271e50be3206f39a041f Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Fri, 27 Sep 2024 13:19:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=98=E6=AC=BE=E6=97=B6=E4=BC=98=E6=83=A0?= =?UTF-8?q?=E5=8D=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/controller/UserRecordController.java | 44 +-------- .../service/impl/BuyOrderServiceImpl.java | 14 ++- .../common/controller/CouponController.java | 27 +++++- .../modules/common/entity/CouponEntity.java | 2 + .../modules/common/service/CouponService.java | 9 ++ .../service/impl/ClassEntityServiceImpl.java | 20 ++-- .../service/impl/CouponServiceImpl.java | 95 ++++++++++++++++--- 7 files changed, 143 insertions(+), 68 deletions(-) diff --git a/src/main/java/com/peanut/modules/book/controller/UserRecordController.java b/src/main/java/com/peanut/modules/book/controller/UserRecordController.java index 8f875adc..746c4bcf 100644 --- a/src/main/java/com/peanut/modules/book/controller/UserRecordController.java +++ b/src/main/java/com/peanut/modules/book/controller/UserRecordController.java @@ -1,9 +1,11 @@ package com.peanut.modules.book.controller; import cn.com.marsoft.tool.ToolObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.peanut.common.utils.PageUtils; import com.peanut.common.utils.R; +import com.peanut.common.utils.ShiroUtils; import com.peanut.modules.book.service.*; import com.peanut.modules.common.entity.*; import lombok.extern.slf4j.Slf4j; @@ -60,7 +62,7 @@ public class UserRecordController { List list = new ArrayList<>(); //此处bookid实际传的是商品id - List bookid = userRecordService.getBaseMapper().selectList(new QueryWrapper().eq("bookid", userRecordEntity.getBookid()).orderByDesc("create_date")); + List bookid = userRecordService.getBaseMapper().selectList(new QueryWrapper().eq("product_id", userRecordEntity.getProductId()).orderByDesc("create_date")); if (bookid != null) { @@ -232,44 +234,4 @@ public class UserRecordController { return R.ok("成功").put("userRecordEntity", recordEntity); } - /* - TODO 老版本接口,新版本上线后要删除 - */ - @RequestMapping("/UserRecordcomment") - public R commodity(@RequestBody UserRecord recordEntity) { - //todo 已收货限制字段,只可评价一次 - BuyOrder buyOrder = buyOrderService.getBaseMapper().selectOne(new QueryWrapper() - .eq("order_sn", recordEntity.getOrderSn()) - ); - - Integer orderId = buyOrder.getOrderId(); - BuyOrderDetail detailEntity = buyOrderDetailService.getBaseMapper().selectOne(new QueryWrapper().eq("Order_id", orderId).eq("product_id", recordEntity.getBookid())); - Integer orderId1 = detailEntity.getOrderId(); - UserRecord userRecordEntity = userRecordService.getBaseMapper().selectOne(new QueryWrapper().eq("orderSn", recordEntity.getOrderSn()).eq("userid", recordEntity.getUserid()).eq("orderdid", orderId1).last("LIMIT 1")); - - if (userRecordEntity != null) { - return R.error("您已评价过"); - } - if (recordEntity.getImages() != null) { - List> imageList = (ArrayList>) recordEntity.getImages(); - String imageStr = ""; - for (Map m : imageList) { - imageStr += m.get("url") + ","; - - } - - - recordEntity.setImages(imageStr); - } - recordEntity.setDelflag(0); - recordEntity.setOrderdId(orderId1); - userRecordService.saveOrUpdate(recordEntity); - - - detailEntity.setRecordId(1); - buyOrderDetailService.saveOrUpdate(detailEntity); - - - return R.ok("成功").put("userRecordEntity", recordEntity); - } } diff --git a/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java index 04c34846..0df518b0 100644 --- a/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java @@ -9,10 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.peanut.common.utils.ExcludeEmptyQueryWrapper; -import com.peanut.common.utils.PageUtils; -import com.peanut.common.utils.Query; -import com.peanut.common.utils.R; +import com.peanut.common.utils.*; import com.peanut.config.Constants; import com.peanut.modules.common.dao.*; import com.peanut.modules.book.service.*; @@ -62,7 +59,7 @@ public class BuyOrderServiceImpl extends ServiceImpl impl ShopProductService shopProductService; @Autowired - private BookService bookService; + private UserRecordDao userRecordDao; @Autowired private BuyOrderDao buyOrderDao; @@ -489,6 +486,13 @@ public class BuyOrderServiceImpl extends ServiceImpl impl .eq(BuyOrderProduct::getOrderId, b.getOrderId())); for (BuyOrderProduct bb : buyOrderProducts){ bb.setProduct(shopProductService.getById(bb.getProductId())); + UserRecord userRecord = userRecordDao.selectOne(new QueryWrapper() + .eq("userid", ShiroUtils.getUId()) + .eq("orderdid", b.getOrderId()) + .eq("product_id", bb.getProductId())); + if (userRecord!=null){ + bb.setRecordId(userRecord.getId()); + } } b.setProductList(buyOrderProducts); b.setTimestamp(b.getCreateTime().getTime()/1000); diff --git a/src/main/java/com/peanut/modules/common/controller/CouponController.java b/src/main/java/com/peanut/modules/common/controller/CouponController.java index f29a24ff..48feef16 100644 --- a/src/main/java/com/peanut/modules/common/controller/CouponController.java +++ b/src/main/java/com/peanut/modules/common/controller/CouponController.java @@ -4,9 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.common.utils.R; -import com.peanut.modules.common.entity.CouponEntity; -import com.peanut.modules.common.entity.CouponHistory; -import com.peanut.modules.common.entity.MyUserEntity; +import com.peanut.modules.book.service.BuyOrderProductService; +import com.peanut.modules.common.entity.*; +import com.peanut.modules.common.service.BuyOrderService; import com.peanut.modules.common.service.CouponHistoryService; import com.peanut.modules.common.service.CouponService; import lombok.extern.slf4j.Slf4j; @@ -15,7 +15,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import java.util.List; import java.util.Map; +import java.util.Set; @Slf4j @RestController("commonCoupon") @@ -26,6 +29,10 @@ public class CouponController { private CouponService couponService; @Autowired private CouponHistoryService couponHistoryService; + @Autowired + private BuyOrderService buyOrderService; + @Autowired + private BuyOrderProductService buyOrderProductService; //优惠卷列表 @RequestMapping("/getCouponList") @@ -150,4 +157,18 @@ public class CouponController { return couponService.insertCouponHistory(couponId,userId,getType); } + //当前优惠卷可用商品 + @RequestMapping("/getShopProductByCoupon") + public R getShopProductByCoupon(@RequestBody Map params){ + Set l = couponService.getShopProductByCoupon(Integer.parseInt(params.get("couponId").toString())); + return R.ok().put("productIds",l); + } + + //付款时优惠卷列表 + @RequestMapping("/getCouponListPayment") + public R getCouponListPayment(@RequestBody Map params){ + List couponHistoryList = couponService.getCouponListPayment(params); + return R.ok().put("couponHistoryList",couponHistoryList); + } + } diff --git a/src/main/java/com/peanut/modules/common/entity/CouponEntity.java b/src/main/java/com/peanut/modules/common/entity/CouponEntity.java index aede5a2d..90732917 100644 --- a/src/main/java/com/peanut/modules/common/entity/CouponEntity.java +++ b/src/main/java/com/peanut/modules/common/entity/CouponEntity.java @@ -69,4 +69,6 @@ public class CouponEntity { @TableField(exist = false) private List rangeList; + @TableField(exist = false) + private String usable; } diff --git a/src/main/java/com/peanut/modules/common/service/CouponService.java b/src/main/java/com/peanut/modules/common/service/CouponService.java index 522b0677..7cc3a7c2 100644 --- a/src/main/java/com/peanut/modules/common/service/CouponService.java +++ b/src/main/java/com/peanut/modules/common/service/CouponService.java @@ -3,6 +3,11 @@ package com.peanut.modules.common.service; import com.baomidou.mybatisplus.extension.service.IService; import com.peanut.common.utils.R; import com.peanut.modules.common.entity.CouponEntity; +import com.peanut.modules.common.entity.CouponHistory; + +import java.util.List; +import java.util.Map; +import java.util.Set; public interface CouponService extends IService { @@ -13,4 +18,8 @@ public interface CouponService extends IService { R insertCouponHistory(int couponId, int userId,int getType); + List getCouponListPayment(Map params); + + Set getShopProductByCoupon(int couponId); + } diff --git a/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java index ad1d2329..223d4cd0 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java @@ -50,6 +50,8 @@ public class ClassEntityServiceImpl extends ServiceImpl courses = classCourseDao.selectList(new LambdaQueryWrapper() .eq(ClassCourse::getModelId,classEntity.getModelId())); for (ClassCourse classCourse:courses){ - List ucb = userCourseBuyDao.selectList(new LambdaQueryWrapper() - .eq(UserCourseBuyEntity::getUserId,classUser.getUserId()) - .eq(UserCourseBuyEntity::getCourseId,classCourse.getCourseId())); - if (ucb.size() == 0){ - flag = true; - CourseEntity c = courseDao.selectById(classCourse.getCourseId()); - sb.append("用户"+ user.getTel()+"未购买课程"+c.getTitle()+";\n"); + List catalogues = courseCatalogueDao.selectList(new LambdaQueryWrapper() + .eq(CourseCatalogueEntity::getCourseId,classCourse.getCourseId())); + for (CourseCatalogueEntity catalog:catalogues){ + int ucbCount = userCourseBuyDao.selectCount(new LambdaQueryWrapper() + .eq(UserCourseBuyEntity::getUserId,classUser.getUserId()) + .eq(UserCourseBuyEntity::getCatalogueId,catalog.getId())); + if (ucbCount == 0){ + flag = true; + CourseEntity c = courseDao.selectById(classCourse.getCourseId()); + sb.append("用户"+ user.getTel()+"未购买课程"+c.getTitle()+"-"+catalog.getTitle()+";\n"); + } } } if (flag) { diff --git a/src/main/java/com/peanut/modules/common/service/impl/CouponServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/CouponServiceImpl.java index ef4664b9..eeff7f22 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/CouponServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/CouponServiceImpl.java @@ -2,28 +2,24 @@ package com.peanut.modules.common.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.common.utils.DateUtil; import com.peanut.common.utils.DateUtils; import com.peanut.common.utils.R; +import com.peanut.common.utils.ShiroUtils; import com.peanut.config.DelayQueueConfig; -import com.peanut.modules.common.dao.CouponDao; -import com.peanut.modules.common.dao.CouponHistoryDao; -import com.peanut.modules.common.dao.CourseDao; -import com.peanut.modules.common.dao.CourseMedicineDao; -import com.peanut.modules.common.entity.CouponEntity; -import com.peanut.modules.common.entity.CouponHistory; -import com.peanut.modules.common.entity.CourseEntity; -import com.peanut.modules.common.entity.CourseMedicine; +import com.peanut.modules.common.dao.*; +import com.peanut.modules.common.entity.*; import com.peanut.modules.common.service.CouponService; +import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.amqp.core.MessagePostProcessor; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; + +import java.util.*; @Slf4j @Service("commonCouponService") @@ -39,6 +35,10 @@ public class CouponServiceImpl extends ServiceImpl impl private CourseMedicineDao courseMedicineDao; @Autowired private RabbitTemplate rabbitTemplate; + @Autowired + private ShopProductDao shopProductDao; + @Autowired + private ShopProductCourseDao shopProductCourseDao; @Override public CouponEntity getByIdSetRange(int id) { @@ -107,7 +107,6 @@ public class CouponServiceImpl extends ServiceImpl impl return R.error("优惠卷已放完"); } } - private MessagePostProcessor messagePostProcessor(long date) { return message -> { message.getMessageProperties().setDelay((int)date); @@ -115,4 +114,76 @@ public class CouponServiceImpl extends ServiceImpl impl }; } + @Override + public List getCouponListPayment(Map params) { + List res = new ArrayList<>(); + List couponHistoryList = couponHistoryDao.selectList(new LambdaQueryWrapper() + .eq(CouponHistory::getUserId, ShiroUtils.getUId()) + .eq(CouponHistory::getStatus,0)); + if (couponHistoryList.size() > 0) { + for (CouponHistory couponHistory : couponHistoryList) { + if (couponHistory.getEffectType()==0){ + res.add(couponHistory); + }else { + List shopProductList = shopProductDao.selectList(new MPJLambdaWrapper() + .leftJoin(BuyOrderProduct.class,BuyOrderProduct::getProductId,ShopProduct::getProductId) + .eq(BuyOrderProduct::getOrderId,params.get("orderId").toString())); + for (ShopProduct shopProduct : shopProductList) { + Set set = getShopProductByCoupon(couponHistory.getCouponId()); + if(!set.add(shopProduct.getProductId())){ + res.add(couponHistory); + } + } + } + } + } + return res; + } + + @Override + public Set getShopProductByCoupon(int couponId) { + Set set = new HashSet<>(); + CouponEntity couponEntity = couponDao.selectById(couponId); + if (couponEntity!=null){ + String[] strs = couponEntity.getRangeInfo().split(","); + if (couponEntity.getCouponRange()==1) { + for (String courseId : strs) { + List shopProductCourseList = shopProductCourseDao.selectList(new LambdaQueryWrapper() + .eq(ShopProductCourseEntity::getCourseId,courseId)); + for (ShopProductCourseEntity shopProductCourseEntity : shopProductCourseList) { + set.add(shopProductCourseEntity.getProductId()); + } + } + }else if (couponEntity.getCouponRange()==2) { + for (String courseMedical : strs) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.leftJoin(CourseToMedicine.class,CourseToMedicine::getCourseId,ShopProductCourseEntity::getCourseId); + List l = new ArrayList(); + getCourseMedicalIds(Integer.parseInt(courseMedical),l); + wrapper.in(CourseToMedicine::getMedicalId,l); + wrapper.selectAll(ShopProductCourseEntity.class); + List shopProductCourseList = shopProductCourseDao.selectList(wrapper); + for (ShopProductCourseEntity shopProductCourseEntity : shopProductCourseList) { + set.add(shopProductCourseEntity.getProductId()); + } + } + } + } + return set; + } + + public void getCourseMedicalIds(int courseMedicalId,List list){ + CourseMedicine courseMedicine = courseMedicineDao.selectById(courseMedicalId); + if (courseMedicine.getIsLast()==1){ + list.add(courseMedicine.getId()); + }else { + List cms = courseMedicineDao.selectList(new LambdaQueryWrapper() + .eq(CourseMedicine::getPid,courseMedicine.getId())); + for (CourseMedicine cm : cms) { + getCourseMedicalIds(cm.getId(),list); + } + } + } + + }