Commit e9ce2625 authored by 万成波's avatar 万成波

积分模块

parent 3a981ab2
......@@ -17,6 +17,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 积分规则配置Controller
......@@ -38,25 +39,10 @@ public class BbsPointsSettingController extends BaseController {
*/
@ApiOperation("查询积分规则配置列表")
@PreAuthorize("@ss.hasPermi('points:points:list')")
@GetMapping("/list")
public TableDataInfo list(BbsPointsSetting bbsPointsSetting) {
startPage();
List<BbsPointsSetting> list = bbsPointsSettingService.selectBbsPointsSettingList(bbsPointsSetting);
return getDataTable(list);
}
/**
* 导出积分规则配置列表
*/
@ApiOperation("导出积分规则配置列表")
@PreAuthorize("@ss.hasPermi('points:points:export')")
@Log(title = "积分规则配置", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, BbsPointsSetting bbsPointsSetting) {
List<BbsPointsSetting> list = bbsPointsSettingService.selectBbsPointsSettingList(bbsPointsSetting);
ExcelUtil<BbsPointsSetting> util = new ExcelUtil<BbsPointsSetting>(BbsPointsSetting.class);
util.exportExcel(response, list, "积分规则配置数据");
@GetMapping("/details")
public AjaxResult details() {
Map<String, List<BbsPointsSetting>> details = this.bbsPointsSettingService.getSettingDetails();
return AjaxResult.success(details);
}
......@@ -78,8 +64,9 @@ public class BbsPointsSettingController extends BaseController {
@PreAuthorize("@ss.hasPermi('points:points:add')")
@Log(title = "积分规则配置", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody BbsPointsSetting bbsPointsSetting) {
return toAjax(bbsPointsSettingService.save(bbsPointsSetting));
public AjaxResult add(@RequestBody BbsPointsSetting setting) {
this.bbsPointsSettingService.addSetting(setting);
return AjaxResult.success();
}
......@@ -89,9 +76,10 @@ public class BbsPointsSettingController extends BaseController {
@ApiOperation("修改积分规则配置")
@PreAuthorize("@ss.hasPermi('points:points:edit')")
@Log(title = "积分规则配置", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody BbsPointsSetting bbsPointsSetting) {
return toAjax(bbsPointsSettingService.updateById(bbsPointsSetting));
@PutMapping("/status")
public AjaxResult edit(@RequestBody BbsPointsSetting setting) {
this.bbsPointsSettingService.editSetting(setting);
return AjaxResult.success();
}
......@@ -101,9 +89,10 @@ public class BbsPointsSettingController extends BaseController {
@ApiOperation("删除积分规则配置")
@PreAuthorize("@ss.hasPermi('points:points:remove')")
@Log(title = "积分规则配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(bbsPointsSettingService.removeByIds(Arrays.asList(ids)));
@DeleteMapping("/{id}")
public AjaxResult remove(@PathVariable Long id) {
this.bbsPointsSettingService.deleteSetting(id);
return AjaxResult.success();
}
}
package com.tangguo.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 积分配置类型
*
* @author 谈笑
* @createTime 2025-09-01 10:14:35 星期一
*/
@Getter
@AllArgsConstructor
public enum PointsSettingType {
ADD("增加积分"), DEC("减少积分");
private final String desc;
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.tangguo.domain.BbsPointsSetting;
import java.util.List;
import java.util.Map;
/**
* 积分规则配置Service接口
......@@ -21,4 +22,44 @@ public interface IBbsPointsSettingService extends IService<BbsPointsSetting> {
*/
List<BbsPointsSetting> selectBbsPointsSettingList(BbsPointsSetting bbsPointsSetting);
/**
* 查询积分规则配置明细
*
* @return 配置明细
*/
Map<String, List<BbsPointsSetting>> getSettingDetails();
/**
* 添加积分配置
*
* @param setting 积分配置
*/
void addSetting(BbsPointsSetting setting);
/**
* 修改积分配置
*
* @param setting 积分配置
*/
void editSetting(BbsPointsSetting setting);
/**
* 删除积分配置
*
* @param settingId 配置Id
*/
void deleteSetting(Long settingId);
/**
* 修改配置状态
*
* @param setting 积分配置
*/
void setSettingStatus(BbsPointsSetting setting);
}
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.BbsPointsSetting;
import com.tangguo.enums.PointsSettingType;
import com.tangguo.mapper.BbsPointsSettingMapper;
import com.tangguo.service.IBbsPointsSettingService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
* 积分规则配置Service业务层处理
......@@ -25,6 +28,7 @@ public class BbsPointsSettingServiceImpl extends ServiceImpl<BbsPointsSettingMap
@Resource
private BbsPointsSettingMapper bbsPointsSettingMapper;
/**
* 查询积分规则配置列表
*
......@@ -33,23 +37,117 @@ public class BbsPointsSettingServiceImpl extends ServiceImpl<BbsPointsSettingMap
*/
@Override
public List<BbsPointsSetting> selectBbsPointsSettingList(BbsPointsSetting bbsPointsSetting) {
return bbsPointsSettingMapper.selectList(buildQueryWrapper(bbsPointsSetting));
return this.list();
}
/**
* 查询积分规则配置明细
*
* @return 配置明细
*/
@Override
public Map<String, List<BbsPointsSetting>> getSettingDetails() {
List<BbsPointsSetting> settings = this.list();
List<BbsPointsSetting> addSetting = settings.stream()
.filter(s -> PointsSettingType.ADD.name().equals(s.getType())).collect(Collectors.toList());
List<BbsPointsSetting> decSetting = settings.stream()
.filter(s -> PointsSettingType.DEC.name().equals(s.getType())).collect(Collectors.toList());
Map<String, List<BbsPointsSetting>> settingMap = new LinkedHashMap<>(2);
settingMap.put(PointsSettingType.ADD.name(), addSetting);
settingMap.put(PointsSettingType.DEC.name(), decSetting);
return settingMap;
}
private LambdaQueryWrapper<BbsPointsSetting> buildQueryWrapper(BbsPointsSetting query) {
Map<String, Object> params = query.getParams();
LambdaQueryWrapper<BbsPointsSetting> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(BbsPointsSetting::getCreateTime);
lqw.eq(StringUtils.isNotBlank(query.getType()), BbsPointsSetting::getType, query.getType());
lqw.like(StringUtils.isNotBlank(query.getAgentName()), BbsPointsSetting::getAgentName, query.getAgentName());
lqw.eq(StringUtils.isNotBlank(query.getAgentId()), BbsPointsSetting::getAgentId, query.getAgentId());
lqw.like(StringUtils.isNotBlank(query.getOperateName()), BbsPointsSetting::getOperateName, query.getOperateName());
lqw.eq(StringUtils.isNotBlank(query.getOperateCode()), BbsPointsSetting::getOperateCode, query.getOperateCode());
lqw.eq(query.getOperatePoints() != null, BbsPointsSetting::getOperatePoints, query.getOperatePoints());
lqw.eq(query.getLimitCount() != null, BbsPointsSetting::getLimitCount, query.getLimitCount());
lqw.eq(query.getEnableStatus() != null, BbsPointsSetting::getEnableStatus, query.getEnableStatus());
return lqw;
/**
* 添加积分配置
*
* @param setting 积分配置
*/
@Override
public void addSetting(BbsPointsSetting setting) {
long nameCount = this.count(
Wrappers.lambdaQuery(BbsPointsSetting.class).eq(BbsPointsSetting::getOperateName, setting.getOperateName())
);
if (nameCount > 0) {
throw new ServiceException("新增失败,操作行为名称重复。");
}
BbsPointsSetting addSetting = new BbsPointsSetting();
addSetting.setType(setting.getType());
addSetting.setAgentName(setting.getAgentName());
addSetting.setOperateName(setting.getOperateName());
addSetting.setOperateCode(IdUtil.fastSimpleUUID());
addSetting.setOperatePoints(setting.getOperatePoints());
addSetting.setLimitCount(setting.getLimitCount());
addSetting.setEnableStatus(setting.getEnableStatus());
this.save(addSetting);
}
/**
* 修改积分配置
*
* @param setting 积分配置
*/
@Override
public void editSetting(BbsPointsSetting setting) {
BbsPointsSetting dbSetting = this.getById(setting.getId());
if (Objects.isNull(dbSetting)) {
throw new ServiceException("修改失败,未查询到当前积分配置数据。");
}
if (!dbSetting.getOperateName().equals(setting.getOperateName())) {
long nameCount = this.count(
Wrappers.lambdaQuery(BbsPointsSetting.class).eq(BbsPointsSetting::getOperateName, setting.getOperateName())
);
if (nameCount > 0) {
throw new ServiceException("修改失败,操作行为名称重复。");
}
}
BbsPointsSetting updSetting = new BbsPointsSetting();
updSetting.setId(dbSetting.getId());
updSetting.setOperateName(setting.getOperateName());
updSetting.setOperatePoints(setting.getOperatePoints());
updSetting.setLimitCount(setting.getLimitCount());
updSetting.setEnableStatus(setting.getEnableStatus());
this.updateById(updSetting);
}
/**
* 删除积分配置
*
* @param settingId 配置Id
*/
@Override
public void deleteSetting(Long settingId) {
this.removeById(settingId);
}
/**
* 修改配置状态
*
* @param setting 积分配置
*/
@Override
public void setSettingStatus(BbsPointsSetting setting) {
BbsPointsSetting dbSetting = this.getById(setting.getId());
if (Objects.isNull(dbSetting)) {
throw new ServiceException("修改失败,未查询到当前积分配置数据。");
}
if (!dbSetting.getEnableStatus().equals(setting.getEnableStatus())) {
BbsPointsSetting updSetting = new BbsPointsSetting();
updSetting.setId(dbSetting.getId());
updSetting.setEnableStatus(setting.getEnableStatus());
this.updateById(updSetting);
}
}
}
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