From c542f06f4a61fe1c40466dd3e4f9785367c95e60 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Fri, 20 Sep 2024 16:20:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=BC=80=E8=AF=BE=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/controller/BuyOrderController.java | 2 + .../common/controller/ClassController.java | 6 ++ .../common/entity/UserCourseBuyEntity.java | 2 + .../common/service/ClassEntityService.java | 2 + .../service/impl/ClassEntityServiceImpl.java | 26 +++++ .../controller/UserCourseBuyController.java | 99 +++++++++++++++++++ .../master/service/UserCourseBuyService.java | 7 ++ .../impl/UserCourseBuyServiceImpl.java | 13 +++ .../service/impl/AliPayServiceImpl.java | 2 + .../service/impl/WxpayServiceImpl.java | 2 + .../service/impl/CourseServiceImpl.java | 1 + 11 files changed, 162 insertions(+) create mode 100644 src/main/java/com/peanut/modules/master/controller/UserCourseBuyController.java create mode 100644 src/main/java/com/peanut/modules/master/service/UserCourseBuyService.java create mode 100644 src/main/java/com/peanut/modules/master/service/impl/UserCourseBuyServiceImpl.java diff --git a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java index 3312a4ab..bd52f839 100644 --- a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java @@ -990,6 +990,7 @@ public class BuyOrderController { calendar.add(Calendar.DAY_OF_MONTH,s.getDays()); userCourseBuyEntity.setEndTime(calendar.getTime()); } + userCourseBuyEntity.setCome(userCourseBuyEntity.getCome()+";延期(虚拟币购买:"+orderEntity.getOrderSn()+")"); userCourseBuyDao.updateById(userCourseBuyEntity); }else{ UserCourseBuyEntity userCourseBuyEntity = new UserCourseBuyEntity(); @@ -1003,6 +1004,7 @@ public class BuyOrderController { // cal.setTime(new Date()); // cal.add(Calendar.DAY_OF_MONTH,s.getDays()); // userCourseBuyEntity.setEndTime(cal.getTime()); + userCourseBuyEntity.setCome("虚拟币购买:"+orderEntity.getOrderSn()); userCourseBuyDao.insert(userCourseBuyEntity); } } diff --git a/src/main/java/com/peanut/modules/common/controller/ClassController.java b/src/main/java/com/peanut/modules/common/controller/ClassController.java index 07def47e..b65030e5 100644 --- a/src/main/java/com/peanut/modules/common/controller/ClassController.java +++ b/src/main/java/com/peanut/modules/common/controller/ClassController.java @@ -225,6 +225,12 @@ public class ClassController { return R.ok().put("result",classEntityService.getClassByUser(params)); } + //加入小班前查询用户买课情况 + @RequestMapping("/getUserCourseBuy") + public R getUserCourseBuy(@RequestBody Map params){ + return classEntityService.getUserCourseBuy(params); + } + //加入小班 @RequestMapping("/joinClass") public R joinClass(@RequestBody Map params){ diff --git a/src/main/java/com/peanut/modules/common/entity/UserCourseBuyEntity.java b/src/main/java/com/peanut/modules/common/entity/UserCourseBuyEntity.java index 58f41957..ac827e7d 100644 --- a/src/main/java/com/peanut/modules/common/entity/UserCourseBuyEntity.java +++ b/src/main/java/com/peanut/modules/common/entity/UserCourseBuyEntity.java @@ -24,6 +24,8 @@ public class UserCourseBuyEntity { private Integer days; + private String come; + private Date startTime; private Date endTime; diff --git a/src/main/java/com/peanut/modules/common/service/ClassEntityService.java b/src/main/java/com/peanut/modules/common/service/ClassEntityService.java index d789b3f4..175af218 100644 --- a/src/main/java/com/peanut/modules/common/service/ClassEntityService.java +++ b/src/main/java/com/peanut/modules/common/service/ClassEntityService.java @@ -47,6 +47,8 @@ public interface ClassEntityService extends IService { ClassEntity getClassByUser(Map params); + R getUserCourseBuy(Map params); + R joinClass(Map params); void quitClass(Map params); 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 4b3d487b..93e382d4 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 @@ -642,6 +642,32 @@ public class ClassEntityServiceImpl extends ServiceImpl params) { + ClassEntity classEntity = this.baseMapper.selectById(params.get("classId").toString()); + MyUserEntity user = ShiroUtils.getUser(); + String msg = ""; + if ("0".equals(user.getVip())||"3".equals(user.getVip())){ + //不是vip查询每门课是否购买 + List courses = classCourseDao.selectList(new LambdaQueryWrapper() + .eq(ClassCourse::getModelId,classEntity.getModelId())); + for (ClassCourse classCourse:courses){ + List ucb = userCourseBuyDao.selectList(new LambdaQueryWrapper() + .eq(UserCourseBuyEntity::getUserId,user.getId()) + .eq(UserCourseBuyEntity::getCourseId,classCourse.getCourseId())); + if (ucb.size() == 0){ + CourseEntity courseEntity = courseDao.selectById(classCourse.getCourseId()); + if (StringUtils.isEmpty(msg)){ + msg+=courseEntity.getTitle()+""; + }else { + msg+=","+courseEntity.getTitle(); + } + } + } + } + return R.ok(msg); + } + @Override public R joinClass(Map params) { ClassEntity classEntity = this.baseMapper.selectById(params.get("classId").toString()); diff --git a/src/main/java/com/peanut/modules/master/controller/UserCourseBuyController.java b/src/main/java/com/peanut/modules/master/controller/UserCourseBuyController.java new file mode 100644 index 00000000..b0615a73 --- /dev/null +++ b/src/main/java/com/peanut/modules/master/controller/UserCourseBuyController.java @@ -0,0 +1,99 @@ +package com.peanut.modules.master.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.peanut.common.utils.DateUtils; +import com.peanut.common.utils.R; +import com.peanut.modules.common.entity.CourseCatalogueEntity; +import com.peanut.modules.common.entity.CourseEntity; +import com.peanut.modules.common.entity.MyUserEntity; +import com.peanut.modules.common.entity.UserCourseBuyEntity; +import com.peanut.modules.master.service.UserCourseBuyService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; +import java.util.Map; + +/** + * 用户开课管理 + */ +@Slf4j +@RestController("masterUserCourseBuy") +@RequestMapping("master/userCourseBuy") +public class UserCourseBuyController { + + @Autowired + private UserCourseBuyService userCourseBuyService; + + @RequestMapping("/listByPage") + public R listByPage(@RequestBody Map params) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.leftJoin(MyUserEntity.class, MyUserEntity::getId, UserCourseBuyEntity::getUserId); + wrapper.leftJoin(CourseEntity.class, CourseEntity::getId, UserCourseBuyEntity::getCourseId); + wrapper.leftJoin(CourseCatalogueEntity.class, CourseCatalogueEntity::getId, UserCourseBuyEntity::getCatalogueId); + wrapper.select("t.id,t.user_id userId,t.course_id courseId,t.catalogue_id catalogueId,t.create_time createTime," + + "t.come,t.days,t.start_time startTime,t.end_time endTime,t.del_flag expire,t1.tel,t2.title courseName,t3.title catalogueName"); + if (StringUtils.isNotEmpty(params.get("userInfo").toString())) { + wrapper.and(t->t.like(MyUserEntity::getName,params.get("userInfo")).or().like(MyUserEntity::getNickname,params.get("userInfo")) + .or().like(MyUserEntity::getTel,params.get("userInfo")).or().like(MyUserEntity::getEmail,params.get("userInfo"))); + } + if (StringUtils.isNotEmpty(params.get("courseName").toString())) { + wrapper.like(CourseEntity::getTitle,params.get("courseName")); + } + if (StringUtils.isNotEmpty(params.get("come").toString())) { + wrapper.like(UserCourseBuyEntity::getCome,params.get("come")); + } + if (StringUtils.isNotEmpty(params.get("expire").toString())) { + wrapper.eq(UserCourseBuyEntity::getDelFlag,params.get("expire")); + } + //查询出过期课程 + wrapper.disableLogicDel(); + wrapper.orderByDesc(UserCourseBuyEntity::getDelFlag); + wrapper.orderByDesc(UserCourseBuyEntity::getCreateTime); + Page> page = userCourseBuyService.pageMaps(new Page<>( + Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())), wrapper); + return R.ok().put("result", page); + } + + @RequestMapping("/insertUserCourseBuy") + public R insertUserCourseBuy(@RequestBody UserCourseBuyEntity userCourseBuyEntity) { + userCourseBuyService.save(userCourseBuyEntity); + return R.ok(); + } + + @RequestMapping("/delayUserCourseBuy") + public R delayUserCourseBuy(@RequestBody Map params) { + UserCourseBuyEntity userCourseBuyEntity = userCourseBuyService.getById(params.get("id").toString()); + int days = Integer.parseInt(params.get("days").toString()); + userCourseBuyEntity.setDays(userCourseBuyEntity.getDays()+days); + if (userCourseBuyEntity.getEndTime()!=null){ + userCourseBuyEntity.setEndTime(DateUtils.addDateDays(userCourseBuyEntity.getEndTime(),days)); + } + userCourseBuyEntity.setCome(userCourseBuyEntity.getCome()+";延期(管理员操作:"+days+","+DateUtils.format(new Date(),"yyyyMMdd")+")"); + userCourseBuyService.updateById(userCourseBuyEntity); + return R.ok(); + } + + @RequestMapping("/expireUserCourseBuy") + @Transactional + public R expireUserCourseBuy(@RequestBody Map params) { + UserCourseBuyEntity userCourseBuyEntity = userCourseBuyService.getById(params.get("id").toString()); + userCourseBuyEntity.setCome(userCourseBuyEntity.getCome()+";终止(管理员操作)"); + if (userCourseBuyEntity.getStartTime()!=null){ + userCourseBuyEntity.setStartTime(new Date()); + } + userCourseBuyEntity.setEndTime(new Date()); + userCourseBuyService.updateById(userCourseBuyEntity); + userCourseBuyService.removeById(params.get("id").toString()); + return R.ok(); + } + + + +} diff --git a/src/main/java/com/peanut/modules/master/service/UserCourseBuyService.java b/src/main/java/com/peanut/modules/master/service/UserCourseBuyService.java new file mode 100644 index 00000000..8917716a --- /dev/null +++ b/src/main/java/com/peanut/modules/master/service/UserCourseBuyService.java @@ -0,0 +1,7 @@ +package com.peanut.modules.master.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.modules.common.entity.UserCourseBuyEntity; + +public interface UserCourseBuyService extends IService { +} diff --git a/src/main/java/com/peanut/modules/master/service/impl/UserCourseBuyServiceImpl.java b/src/main/java/com/peanut/modules/master/service/impl/UserCourseBuyServiceImpl.java new file mode 100644 index 00000000..6d0ae56a --- /dev/null +++ b/src/main/java/com/peanut/modules/master/service/impl/UserCourseBuyServiceImpl.java @@ -0,0 +1,13 @@ +package com.peanut.modules.master.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.common.dao.UserCourseBuyDao; +import com.peanut.modules.common.entity.UserCourseBuyEntity; +import com.peanut.modules.master.service.UserCourseBuyService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service("masterUserCourseBuyService") +public class UserCourseBuyServiceImpl extends ServiceImpl implements UserCourseBuyService { +} diff --git a/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java b/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java index caa40407..6dac61cd 100644 --- a/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java +++ b/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java @@ -264,6 +264,7 @@ public class AliPayServiceImpl implements AliPayService { calendar.add(Calendar.DAY_OF_MONTH,s.getDays()); userCourseBuyEntity.setEndTime(calendar.getTime()); } + userCourseBuyEntity.setCome(userCourseBuyEntity.getCome()+";延期(支付宝购买:"+orderEntity.getOrderSn()+")"); userCourseBuyDao.updateById(userCourseBuyEntity); }else{ UserCourseBuyEntity userCourseBuyEntity = new UserCourseBuyEntity(); @@ -277,6 +278,7 @@ public class AliPayServiceImpl implements AliPayService { // cal.setTime(new Date()); // cal.add(Calendar.DAY_OF_MONTH,s.getDays()); // userCourseBuyEntity.setEndTime(cal.getTime()); + userCourseBuyEntity.setCome("支付宝购买:"+orderEntity.getOrderSn()); userCourseBuyDao.insert(userCourseBuyEntity); } } diff --git a/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java b/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java index c201f92c..608a128c 100644 --- a/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java +++ b/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java @@ -206,6 +206,7 @@ public class WxpayServiceImpl extends ServiceImpl impl cal.setTime(new Date()); cal.add(Calendar.DAY_OF_MONTH,30); userCourseBuyEntity.setEndTime(cal.getTime()); + userCourseBuyEntity.setCome("免费领取课程"); userCourseBuyDao.insert(userCourseBuyEntity); return R.ok(); }