|
@@ -2,6 +2,7 @@ package shop.alien.store.controller;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
@@ -13,7 +14,9 @@ import org.springframework.util.StringUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
import shop.alien.entity.result.R;
|
|
|
+import shop.alien.entity.store.LifeClassBanner;
|
|
|
import shop.alien.entity.store.LifeClassManage;
|
|
|
+import shop.alien.mapper.LifeClassBannerMapper;
|
|
|
import shop.alien.mapper.LifeClassManageMapper;
|
|
|
import shop.alien.store.service.LifeClassManageService;
|
|
|
import shop.alien.entity.store.excelVo.util.ExcelExporter;
|
|
@@ -43,6 +46,8 @@ public class LifeClassManageController {
|
|
|
|
|
|
private final LifeClassManageMapper lifeClassManageMapper;
|
|
|
|
|
|
+ private final LifeClassBannerMapper lifeClassBannerMapper;
|
|
|
+
|
|
|
@GetMapping("/getClassesPages")
|
|
|
public Map<String, Object> getClassesPages(@RequestParam(defaultValue = "1") int page,
|
|
|
@RequestParam(defaultValue = "10") int size,
|
|
@@ -76,10 +81,18 @@ public class LifeClassManageController {
|
|
|
public Integer addPlayCount(
|
|
|
@RequestParam String classId) {
|
|
|
log.info("LifeClassManageController.addPlayCount?classId={}", classId);
|
|
|
- LambdaUpdateWrapper<LifeClassManage> wrapper = new LambdaUpdateWrapper<>();
|
|
|
- wrapper.eq(LifeClassManage::getId, classId);
|
|
|
- wrapper.setSql("play_count = play_count + 1");
|
|
|
- return lifeClassManageMapper.update(null, wrapper);
|
|
|
+ LifeClassManage lifeClassManage = lifeClassManageMapper.selectById(classId);
|
|
|
+ if (ObjectUtils.isEmpty(lifeClassManage.getPlayCount())) {
|
|
|
+ LifeClassManage classManage = new LifeClassManage();
|
|
|
+ classManage.setId(classId);
|
|
|
+ classManage.setPlayCount(1);
|
|
|
+ return lifeClassManageMapper.updateById(classManage);
|
|
|
+ } else {
|
|
|
+ LambdaUpdateWrapper<LifeClassManage> wrapper = new LambdaUpdateWrapper<>();
|
|
|
+ wrapper.eq(LifeClassManage::getId, classId);
|
|
|
+ wrapper.setSql("play_count = play_count + 1");
|
|
|
+ return lifeClassManageMapper.update(null, wrapper);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@ApiOperation("课程列表")
|
|
@@ -167,5 +180,80 @@ public class LifeClassManageController {
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 保存banner轮播图
|
|
|
+ * <p>
|
|
|
+ * 该方法用于添加或更新班级的轮播图信息如果传入的轮播图ID为空,则视为新增轮播图;
|
|
|
+ * 否则,视为更新现有轮播图信息此外,该方法还会检查当前激活的轮播图数量是否已达到上限(4个),
|
|
|
+ * 如果达到上限,则不允许添加新的轮播图,直到有一个轮播图被下架
|
|
|
+ *
|
|
|
+ * @param lifeClassBanner 包含轮播图信息的LifeClassBanner对象
|
|
|
+ * @return 返回一个R对象,表示操作结果如果操作成功,返回成功消息;
|
|
|
+ * 如果操作失败或达到轮播图数量上限,返回相应的错误消息
|
|
|
+ */
|
|
|
+ @ApiOperation("保存banner轮播图")
|
|
|
+ @PostMapping("/saveClassBanner")
|
|
|
+ public R saveClassBanner(@RequestBody LifeClassBanner lifeClassBanner) {
|
|
|
+ // 记录方法调用的日志信息
|
|
|
+ log.info("LifeClassManageController.saveClassBanner?lifeClassBanner={}", lifeClassBanner);
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 判断传入的轮播图ID是否为空,为空则插入新记录,否则更新现有记录
|
|
|
+ if (ObjectUtils.isEmpty(lifeClassBanner.getId())) {
|
|
|
+ lifeClassBannerMapper.insert(lifeClassBanner);
|
|
|
+ return R.success("操作成功");
|
|
|
+ } else {
|
|
|
+ // 检查当前激活的轮播图数量是否达到上限
|
|
|
+ if (ObjectUtils.isNotEmpty(lifeClassBanner.getPlayFlag())) {
|
|
|
+ if (lifeClassBanner.getPlayFlag() == 1) {
|
|
|
+ if (lifeClassBannerMapper.selectCount(new LambdaUpdateWrapper<LifeClassBanner>().eq(LifeClassBanner::getPlayFlag, 1).eq(LifeClassBanner::getDeleteFlag, 0)) >= 4) {
|
|
|
+ return R.fail("轮播图位置已满,请先下架一个后再进行替换");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lifeClassBannerMapper.updateById(lifeClassBanner);
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 捕获异常并返回操作失败的消息
|
|
|
+ return R.fail("操作失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation("分页查询banner轮播图")
|
|
|
+ @GetMapping("/getClassBannerPages")
|
|
|
+ public R getClassBannerPages(@RequestParam(defaultValue = "1") int page,
|
|
|
+ @RequestParam(defaultValue = "10") int size,
|
|
|
+ @RequestParam(required = false) String bannerTitle,
|
|
|
+ @RequestParam(required = false) String playFlag) {
|
|
|
+ log.info("LifeClassManageController.getClassBannerPages?page={},size={},bannerTitle={},playFlag={}", page, size, bannerTitle, playFlag);
|
|
|
+ IPage<LifeClassBanner> bannerPages = lifeClassManageService.getClassBannerPages(page, size, bannerTitle, playFlag);
|
|
|
+ return R.data(bannerPages);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation("更新banner轮播图")
|
|
|
+ @PostMapping("/updateSort")
|
|
|
+ public R updateSort(@RequestBody List<LifeClassBanner> lifeClassBannerList) {
|
|
|
+ log.info("LifeClassManageController.updateSort?lifeClassBannerList={}", lifeClassBannerList);
|
|
|
+ for (int i = 0; i < lifeClassBannerList.size(); i++) {
|
|
|
+ lifeClassBannerList.get(i).setBannerSort(i + 1);
|
|
|
+ lifeClassBannerMapper.updateById(lifeClassBannerList.get(i));
|
|
|
+ }
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
|
|
|
+ @ApiOperation("删除banner轮播图")
|
|
|
+ @PostMapping("/delClassBanner")
|
|
|
+ public R delClassBanner(@RequestParam String id) {
|
|
|
+ // 记录方法调用的日志信息
|
|
|
+ log.info("LifeClassManageController.delClassBanner?id={}", id);
|
|
|
+
|
|
|
+ try {
|
|
|
+ lifeClassBannerMapper.update(null, new LambdaUpdateWrapper<LifeClassBanner>().eq(LifeClassBanner::getId, id).set(LifeClassBanner::getDeleteFlag, 1));
|
|
|
+ return R.success("操作成功");
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 捕获异常并返回操作失败的消息
|
|
|
+ return R.fail("操作失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|