Commit 2927665e authored by 万成波's avatar 万成波

模块拆分

parent 349ab971
package com.tangguo.controller;
import java.util.List;
import java.util.Arrays;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import com.tangguo.domain.BbsMomentComment;
import com.tangguo.service.IBbsMomentCommentService;
......@@ -68,7 +66,8 @@ public class BbsMomentCommentController extends BaseController {
@Log(title = "动态评论记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public AjaxResult remove(@PathVariable Long id) {
return toAjax(bbsMomentCommentService.removeById(id));
this.bbsMomentCommentService.deleteComment(id);
return AjaxResult.success();
}
}
......@@ -13,6 +13,8 @@ import lombok.ToString;
import lombok.experimental.Accessors;
import com.tangguo.common.annotation.Excel;
import java.util.List;
/**
* 动态评论记录对象 bbs_moment_comment
*
......@@ -83,10 +85,21 @@ public class BbsMomentComment extends BaseEntity {
@ApiModelProperty("评论祖级路径(逗号分隔)")
private String ancestorPath;
/** 删除评论内容 */
@Excel(name = "删除评论内容")
@ApiModelProperty("删除评论内容")
private String deleteContent;
/**
* 动态内容
*/
@TableField(exist = false)
private String momentContent;
/**
* 子评论和回复
*/
@TableField(exist = false)
private List<BbsMomentComment> comments;
}
package com.tangguo.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 动态评论状态
*
* @author 谈笑
* @createTime 2025-08-29 10:29:27 星期五
*/
@Getter
@AllArgsConstructor
public enum CommentStatus {
SC(0, "删除"), ZC(1, "正常"), YC(2, "隐藏");
private final int status;
private final String desc;
}
......@@ -13,7 +13,7 @@ import lombok.Getter;
@AllArgsConstructor
public enum ShowStatus {
SHOW(1, "上架"), NOT_SHOW(0, "下架");
SJ(1, "上架"), XJ(0, "下架");
private final int status;
......
......@@ -4,18 +4,18 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 是否置顶
* 话题置顶状态
*
* @author 谈笑
* @createTime 2025-08-27 16:27:34 星期三
*/
@Getter
@AllArgsConstructor
public enum IsTop {
public enum TopicTopStatus {
TOP(1, "置顶"), NOT_TOP(0, "不置顶");
ZD(1, "置顶"), BZD(0, "不置顶");
private final int isTop;
private final int value;
private final String desc;
......
......@@ -15,6 +15,9 @@ import java.util.List;
public interface BbsMomentCommentMapper extends BaseMapper<BbsMomentComment> {
List<BbsMomentComment> selectComments(@Param("comment") BbsMomentComment comment);
List<BbsMomentComment> selectBbsMomentCommentList(@Param("comment") BbsMomentComment comment);
List<BbsMomentComment> selectBbsMomentComments(@Param("commentId") Long commentId);
}
......@@ -21,5 +21,20 @@ public interface IBbsMomentCommentService extends IService<BbsMomentComment> {
List<BbsMomentComment> selectBbsMomentCommentList(BbsMomentComment comment);
/**
* 查询动态评论记录详情
*
* @param commentId 动态评论记录Id
* @return 动态评论记录详情
*/
BbsMomentComment getBbsMomentComment(Long commentId);
/**
* 删除评论
*
* @param commentId 评论Id
*/
void deleteComment(Long commentId);
}
package com.tangguo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tangguo.common.exception.ServiceException;
import com.tangguo.domain.BbsMomentComment;
import com.tangguo.enums.CommentStatus;
import com.tangguo.mapper.BbsMomentCommentMapper;
import com.tangguo.service.IBbsMomentCommentService;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import javax.annotation.Resource;
......@@ -30,7 +36,44 @@ public class BbsMomentCommentServiceImpl extends ServiceImpl<BbsMomentCommentMap
*/
@Override
public List<BbsMomentComment> selectBbsMomentCommentList(BbsMomentComment comment) {
return this.baseMapper.selectComments(comment);
return this.baseMapper.selectBbsMomentCommentList(comment);
}
/**
* 查询动态评论记录详情
*
* @param commentId 动态评论记录Id
* @return 动态评论记录详情
*/
@Override
public BbsMomentComment getBbsMomentComment(Long commentId) {
BbsMomentComment dbComment = this.getById(commentId);
if (Objects.nonNull(dbComment)) {
List<BbsMomentComment> comments = this.baseMapper.selectBbsMomentComments(commentId);
dbComment.setComments(comments);
}
return dbComment;
}
/**
* 删除评论
*
* @param commentId 评论Id
*/
@Override
public void deleteComment(Long commentId) {
BbsMomentComment dbComment = this.getById(commentId);
if (Objects.isNull(dbComment)) {
throw new ServiceException("删除失败,未查询到当前评论数据。");
}
BbsMomentComment updComment = new BbsMomentComment();
updComment.setId(dbComment.getId());
updComment.setStatus(CommentStatus.SC.getStatus());
updComment.setDeleteContent("该评论已被删除");
this.updateById(updComment);
}
}
......@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tangguo.common.exception.ServiceException;
import com.tangguo.common.utils.StringUtils;
import com.tangguo.domain.BbsTopic;
import com.tangguo.enums.IsTop;
import com.tangguo.enums.TopicTopStatus;
import com.tangguo.mapper.BbsTopicMapper;
import com.tangguo.service.IBbsTopicService;
import org.springframework.stereotype.Service;
......@@ -116,11 +116,11 @@ public class BbsTopicServiceImpl extends ServiceImpl<BbsTopicMapper, BbsTopic> i
if (!dbTopic.getIsTop().equals(isTop)) {
LambdaUpdateWrapper<BbsTopic> wrapper = Wrappers.lambdaUpdate(BbsTopic.class);
wrapper.eq(BbsTopic::getId, dbTopic.getId());
if (IsTop.TOP.getIsTop() == isTop) {
wrapper.set(BbsTopic::getIsTop, IsTop.TOP.getIsTop());
if (TopicTopStatus.ZD.getValue() == isTop) {
wrapper.set(BbsTopic::getIsTop, TopicTopStatus.ZD.getValue());
wrapper.set(BbsTopic::getTopTime, new Date());
} else {
wrapper.set(BbsTopic::getIsTop, IsTop.NOT_TOP.getIsTop());
wrapper.set(BbsTopic::getIsTop, TopicTopStatus.BZD.getValue());
wrapper.set(BbsTopic::getTopTime, null);
}
this.update(wrapper);
......
......@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tangguo.mapper.BbsMomentCommentMapper">
<select id="selectComments" resultType="com.tangguo.domain.BbsMomentComment">
<select id="selectBbsMomentCommentList" resultType="com.tangguo.domain.BbsMomentComment">
SELECT
m.content AS moment_content,
c.*
......@@ -24,4 +24,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
c.create_time DESC
</select>
<select id="selectBbsMomentComments" resultType="com.tangguo.domain.BbsMomentComment">
SELECT
c1.*
FROM
bbs_moment_comment c1
LEFT JOIN
bbs_moment_comment c2 ON c2.id = c1.parent_id
WHERE
FIND_IN_SET(#{commentId}, c1.ancestor_path)
ORDER BY
c1.create_time
</select>
</mapper>
package com.tangguo.controller;
import com.tangguo.common.annotation.Log;
import com.tangguo.common.core.controller.BaseController;
import com.tangguo.common.core.domain.AjaxResult;
import com.tangguo.common.core.page.TableDataInfo;
import com.tangguo.common.enums.BusinessType;
import com.tangguo.domain.BbsPointsGoods;
import com.tangguo.service.IBbsPointsGoodsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 积分商品Controller
*
* @author ruoyi
* @date 2025-08-28
*/
@Api(tags = "积分商品管理")
@RestController
@RequestMapping("/bbs/points/goods")
public class BbsPointsGoodsController extends BaseController {
@Resource
private IBbsPointsGoodsService bbsPointsGoodsService;
/**
* 查询积分商品列表
*/
@ApiOperation("查询积分商品列表")
@PreAuthorize("@ss.hasPermi('goods:goods:list')")
@GetMapping("/list")
public TableDataInfo list(BbsPointsGoods bbsPointsGoods) {
startPage();
List<BbsPointsGoods> list = bbsPointsGoodsService.selectBbsPointsGoodsList(bbsPointsGoods);
return getDataTable(list);
}
/**
* 获取积分商品详细信息
*/
@ApiOperation("获取积分商品详细信息")
@PreAuthorize("@ss.hasPermi('goods:goods:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) {
return success(bbsPointsGoodsService.getById(id));
}
/**
* 新增积分商品
*/
@ApiOperation("新增积分商品")
@PreAuthorize("@ss.hasPermi('goods:goods:add')")
@Log(title = "积分商品", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody BbsPointsGoods goods) {
this.bbsPointsGoodsService.addGoods(goods);
return AjaxResult.success();
}
/**
* 修改积分商品
*/
@ApiOperation("修改积分商品")
@PreAuthorize("@ss.hasPermi('goods:goods:edit')")
@Log(title = "积分商品", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody BbsPointsGoods goods) {
this.bbsPointsGoodsService.editGoods(goods);
return AjaxResult.success();
}
/**
* 删除积分商品
*/
@ApiOperation("删除积分商品")
@PreAuthorize("@ss.hasPermi('goods:goods:remove')")
@Log(title = "积分商品", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public AjaxResult remove(@PathVariable Long id) {
this.bbsPointsGoodsService.deleteGoods(id);
return AjaxResult.success();
}
}
package com.tangguo.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.tangguo.common.annotation.Excel;
import com.tangguo.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 积分商品对象 bbs_points_goods
*
* @author ruoyi
* @date 2025-08-28
*/
@Data
@ToString
@NoArgsConstructor
@Accessors(chain = true)
@TableName("bbs_points_goods")
@ApiModel(value = "BbsPointsGoods", description = "积分商品实体")
public class BbsPointsGoods extends BaseEntity {
private static final long serialVersionUID = 1L;
/** ID */
@TableId(type = IdType.AUTO)
@ApiModelProperty("ID")
private Long id;
/** 商品名称 */
@Excel(name = "商品名称")
@ApiModelProperty("商品名称")
private String name;
/** 商品编码 */
@Excel(name = "商品编码")
@ApiModelProperty("商品编码")
private String code;
/** 商品图片地址 */
@Excel(name = "商品图片地址")
@ApiModelProperty("商品图片地址")
private String imgsUrl;
/** 销售价格 */
@Excel(name = "销售价格")
@ApiModelProperty("销售价格")
private BigDecimal salesPrice;
/** 兑换积分 */
@Excel(name = "兑换积分")
@ApiModelProperty("兑换积分")
private Integer exchangePoints;
/** 库存数量 */
@Excel(name = "库存数量")
@ApiModelProperty("库存数量")
private Integer stockNum;
/** 已兑数量 */
@Excel(name = "已兑数量")
@ApiModelProperty("已兑数量")
private Integer salesNum;
/** 上架状态:0 下架、1 上架 */
@Excel(name = "上架状态:0 下架、1 上架")
@ApiModelProperty("上架状态:0 下架、1 上架")
private Integer showStatus;
}
package com.tangguo.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 商品上下架状态
*
* @author 谈笑
* @createTime 2025-08-28 16:32:15 星期四
*/
@Getter
@AllArgsConstructor
public enum GoodsShowStatus {
SJ(1, "上架"), XJ(0, "下架");
private final int status;
private final String desc;
}
package com.tangguo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tangguo.domain.BbsPointsGoods;
/**
* 积分商品Mapper接口
*
* @author ruoyi
* @date 2025-08-28
*/
public interface BbsPointsGoodsMapper extends BaseMapper<BbsPointsGoods> {
}
package com.tangguo.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tangguo.domain.BbsPointsGoods;
import java.util.List;
/**
* 积分商品Service接口
*
* @author ruoyi
* @date 2025-08-28
*/
public interface IBbsPointsGoodsService extends IService<BbsPointsGoods> {
/**
* 查询积分商品列表
*
* @param bbsPointsGoods 积分商品
* @return 积分商品集合
*/
List<BbsPointsGoods> selectBbsPointsGoodsList(BbsPointsGoods bbsPointsGoods);
/**
* 添加积分商品
*
* @param goods 积分商品
*/
void addGoods(BbsPointsGoods goods);
/**
* 修改积分商品
*
* @param goods 积分商品
*/
void editGoods(BbsPointsGoods goods);
/**
* 删除积分商品
*
* @param goodsId 积分商品Id
*/
void deleteGoods(Long goodsId);
}
package com.tangguo.service.impl;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tangguo.common.exception.ServiceException;
import com.tangguo.common.utils.StringUtils;
import com.tangguo.domain.BbsPointsGoods;
import com.tangguo.mapper.BbsPointsGoodsMapper;
import com.tangguo.service.IBbsPointsGoodsService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
/**
* 积分商品Service业务层处理
*
* @author ruoyi
* @date 2025-08-28
*/
@Service
public class BbsPointsGoodsServiceImpl extends ServiceImpl<BbsPointsGoodsMapper, BbsPointsGoods> implements IBbsPointsGoodsService {
@Resource
private BbsPointsGoodsMapper bbsPointsGoodsMapper;
/**
* 查询积分商品列表
*
* @param goods 积分商品
* @return 积分商品
*/
@Override
public List<BbsPointsGoods> selectBbsPointsGoodsList(BbsPointsGoods goods) {
LambdaQueryWrapper<BbsPointsGoods> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(BbsPointsGoods::getCreateTime);
lqw.like(StringUtils.isNotBlank(goods.getName()), BbsPointsGoods::getName, goods.getName());
lqw.eq(StringUtils.isNotBlank(goods.getCode()), BbsPointsGoods::getCode, goods.getCode());
lqw.eq(StringUtils.isNotBlank(goods.getImgsUrl()), BbsPointsGoods::getImgsUrl, goods.getImgsUrl());
lqw.eq(goods.getSalesPrice() != null, BbsPointsGoods::getSalesPrice, goods.getSalesPrice());
lqw.eq(goods.getExchangePoints() != null, BbsPointsGoods::getExchangePoints, goods.getExchangePoints());
lqw.eq(goods.getStockNum() != null, BbsPointsGoods::getStockNum, goods.getStockNum());
lqw.eq(goods.getSalesNum() != null, BbsPointsGoods::getSalesNum, goods.getSalesNum());
lqw.eq(goods.getShowStatus() != null, BbsPointsGoods::getShowStatus, goods.getShowStatus());
return bbsPointsGoodsMapper.selectList(lqw);
}
/**
* 添加积分商品
*
* @param goods 积分商品
*/
@Override
public void addGoods(BbsPointsGoods goods) {
long nameCount = this.count(
Wrappers.lambdaQuery(BbsPointsGoods.class).eq(BbsPointsGoods::getName, goods.getName())
);
if (nameCount > 0) {
throw new ServiceException("添加失败,当前商品名称已存在。");
}
BbsPointsGoods addGoods = new BbsPointsGoods();
addGoods.setName(goods.getName());
addGoods.setCode(IdUtil.fastSimpleUUID());
addGoods.setImgsUrl(goods.getImgsUrl());
addGoods.setSalesPrice(goods.getSalesPrice());
addGoods.setExchangePoints(goods.getExchangePoints());
addGoods.setStockNum(goods.getStockNum());
addGoods.setSalesNum(0);
addGoods.setShowStatus(goods.getShowStatus());
this.save(addGoods);
}
/**
* 修改积分商品
*
* @param goods 积分商品
*/
@Override
public void editGoods(BbsPointsGoods goods) {
BbsPointsGoods dbGoods = this.getById(goods.getId());
if (Objects.isNull(dbGoods)) {
throw new ServiceException("修改失败,未查询到当前商品数据。");
}
if (!dbGoods.getName().equals(goods.getName())) {
long nameCount = this.count(
Wrappers.lambdaQuery(BbsPointsGoods.class).eq(BbsPointsGoods::getName, goods.getName())
);
if (nameCount > 0) {
throw new ServiceException("修改失败,当前商品名称已存在。");
}
}
BbsPointsGoods addGoods = new BbsPointsGoods();
addGoods.setId(dbGoods.getId());
addGoods.setName(goods.getName());
addGoods.setImgsUrl(goods.getImgsUrl());
addGoods.setSalesPrice(goods.getSalesPrice());
addGoods.setExchangePoints(goods.getExchangePoints());
addGoods.setStockNum(goods.getStockNum());
addGoods.setShowStatus(goods.getShowStatus());
this.updateById(addGoods);
}
/**
* 删除积分商品
*
* @param goodsId 积分商品Id
*/
@Override
public void deleteGoods(Long goodsId) {
this.removeById(goodsId);
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tangguo.mapper.BbsPointsGoodsMapper">
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment