EventTemplate控制器编写

This commit is contained in:
hanyong
2022-09-13 16:34:09 +08:00
parent da281bfde5
commit bedc8fd208
16 changed files with 6177 additions and 561 deletions

View File

@@ -0,0 +1,127 @@
package com.njcn.system.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil;
import com.njcn.system.pojo.param.DictDataParam;
import com.njcn.system.pojo.param.EventTemplateParam;
import com.njcn.system.pojo.vo.DictDataVO;
import com.njcn.system.pojo.vo.EventTemplateTree;
import com.njcn.system.pojo.vo.EventTemplateVO;
import com.njcn.system.service.IEventTemplateService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* pqs
*
* @author hany
* @date 2022/9/7
*/
@Slf4j
@Api(tags = "事件模板")
@RestController
@RequestMapping("/EventTemplate")
@RequiredArgsConstructor
@Validated
public class EventTemplateController extends BaseController{
private final IEventTemplateService iEventTemplateService;
/**
* 获取字典树
* @author hany
* @date 2022/09/09
*/
@ApiOperation("获取字典树")
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
@GetMapping("/getEventTemplateTree")
public HttpResult<List<EventTemplateTree>> getEventTemplateTree(){
String methodDescribe = getMethodDescribe("getEventTemplateTree");
List<EventTemplateTree> tree = iEventTemplateService.getEventTemplateTree();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, tree, methodDescribe);
}
/**
* 分页查询字典类型数据
* @author hany
* @date 2022/09/09
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/list")
@ApiOperation("查询字典数据")
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
public HttpResult<Page<EventTemplateVO>> list(@RequestBody @Validated EventTemplateParam.EventTemplateQueryParam queryParam) {
String methodDescribe = getMethodDescribe("list");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, queryParam);
Page<EventTemplateVO> result = iEventTemplateService.listEventTemplateData(queryParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
/**
* 新增模板
* @author hany
* @date 2022/09/09
*/
@PostMapping("/add")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("新增模板")
@ApiImplicitParam(name = "dictDataParam", value = "模板数据", required = true)
public HttpResult<Boolean> add(@RequestBody EventTemplateParam eventTemplateParam){
String methodDescribe = getMethodDescribe("add");
LogUtil.njcnDebug(log, "{},模板数据为:{}", methodDescribe, eventTemplateParam);
boolean result = iEventTemplateService.add(eventTemplateParam);
if (result) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
}
/**
* 修改
* @author hany
* @date 2022/09/08
*/
@PostMapping("/update")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("修改字典")
@ApiImplicitParam(name = "dictDataUpdateParam", value = "字典表数据", required = true)
public HttpResult<Boolean> update(@RequestBody EventTemplateParam.EventTemplateUpdateParam eventTemplateUpdateParam){
String methodDescribe = getMethodDescribe("update");
LogUtil.njcnDebug(log, "{},字典表数据数据为:{}", methodDescribe, eventTemplateUpdateParam);
boolean result = iEventTemplateService.update(eventTemplateUpdateParam);
if (result) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
}
/**
* 删除
* @author hany
* @date 2022/09/08
*/
@DeleteMapping("/delete")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("删除字典")
@ApiImplicitParam(name = "id", value = "字典表索引", required = true)
public HttpResult<Boolean> delete(@RequestParam("id") String id){
String methodDescribe = getMethodDescribe("delete");
iEventTemplateService.delete(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,24 @@
package com.njcn.system.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.system.pojo.po.EventDict;
import com.njcn.system.pojo.vo.DictDataVO;
import com.njcn.system.pojo.vo.EventTemplateVO;
import org.apache.ibatis.annotations.Param;
/**
* @author hany
* @createTime 2022/09/08
*/
public interface EventTemplateMapper extends BaseMapper<EventDict> {
/**
* 分页查询字典数据
* @param page 分页数据
* @param queryWrapper 查询条件
* @return 字典数据
*/
Page<EventTemplateVO> page(@Param("page")Page<EventTemplateVO> page, @Param("ew")QueryWrapper<EventTemplateVO> queryWrapper);
}

View File

@@ -0,0 +1,14 @@
<?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.njcn.system.mapper.EventTemplateMapper">
<!--获取字典分页列表-->
<select id="page" resultType="EventTemplateVO">
SELECT eventreport_dict.*
FROM eventreport_dict eventreport_dict
WHERE ${ew.sqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,45 @@
package com.njcn.system.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.system.pojo.param.DictDataParam;
import com.njcn.system.pojo.param.EventTemplateParam;
import com.njcn.system.pojo.vo.EventTemplateTree;
import com.njcn.system.pojo.vo.EventTemplateVO;
import java.util.List;
/**
* @author: hany
* @date: 2022/09/08
* @Description: <描述>
*/
public interface IEventTemplateService {
/**
* 获取字典树
*/
List<EventTemplateTree> getEventTemplateTree();
/**
* 根据前台传递参数,分页查询字典数据
* @param queryParam 查询参数
* @return 字典列表
*/
Page<EventTemplateVO> listEventTemplateData(EventTemplateParam.EventTemplateQueryParam queryParam);
/**
* 新增
*/
boolean add(EventTemplateParam eventDataParam);
/**
* 修改
* @param eventDataUpdateParam
*/
boolean update(EventTemplateParam.EventTemplateUpdateParam eventDataUpdateParam);
/**
* 删除
*/
boolean delete(String id);
}

View File

@@ -0,0 +1,137 @@
package com.njcn.system.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.db.constant.DbConstant;
import com.njcn.system.enums.EventResponseEnum;
import com.njcn.system.mapper.EventTemplateMapper;
import com.njcn.system.pojo.param.EventTemplateParam;
import com.njcn.system.pojo.po.EventDict;
import com.njcn.system.pojo.vo.EventTemplateTree;
import com.njcn.system.pojo.vo.EventTemplateVO;
import com.njcn.system.service.IEventTemplateService;
import com.njcn.web.factory.PageFactory;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author: hany
* @date: 2022/09/07
* @Description: <描述>
*/
@Service
@AllArgsConstructor
public class EventTemplateServiceImpl extends ServiceImpl<EventTemplateMapper, EventDict> implements IEventTemplateService {
/**
* 获取字典树
* @author hany
* @date 2022/09/09
*/
@Override
public List<EventTemplateTree> getEventTemplateTree() {
return null;
}
/**
* 分页查询字典类型数据
* @author hany
* @date 2022/09/13
*/
@Override
public Page<EventTemplateVO> listEventTemplateData(EventTemplateParam.EventTemplateQueryParam queryParam) {
QueryWrapper<EventTemplateVO> queryWrapper = new QueryWrapper<>();
if (ObjectUtil.isNotNull(queryParam)) {
//查询参数不为空,进行条件填充
if (StrUtil.isNotBlank(queryParam.getSearchValue())) {
//字典类型表,仅提供名称、编码模糊查询
queryWrapper
.and(param -> param.like("eventreport_dict.name", queryParam.getSearchValue())
.or().like("eventreport_dict.pid", queryParam.getSearchValue()));
}
//排序
if (ObjectUtil.isAllNotEmpty(queryParam.getSortBy(), queryParam.getOrderBy())) {
queryWrapper.orderBy(true, queryParam.getOrderBy().equals(DbConstant.ASC), StrUtil.toUnderlineCase(queryParam.getSortBy()));
} else {
//没有排序参数默认根据sort字段排序没有排序字段的根据updateTime更新时间排序
queryWrapper.orderBy(true, true, "eventreport_dict.sort");
}
}
queryWrapper.ne("eventreport_dict.state", DataStateEnum.DELETED.getCode());
//初始化分页数据
return this.baseMapper.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper);
}
/**
* 新增
* @author hany
* @date 2022/09/08
*/
@Override
public boolean add(EventTemplateParam eventTemplateParam) {
checkName(eventTemplateParam,true);
EventDict eventDict = new EventDict();
BeanUtils.copyProperties(eventTemplateParam,eventDict);
eventDict.setState(DataStateEnum.ENABLE.getCode());
return this.save(eventDict);
}
/**
* 修改
*/
@Override
public boolean update(EventTemplateParam.EventTemplateUpdateParam eventTemplateUpdateParam) {
checkName(eventTemplateUpdateParam,false);
EventDict eventDict = new EventDict();
BeanUtils.copyProperties(eventTemplateUpdateParam,eventDict);
return this.updateById(eventDict);
}
/**
* 删除
*/
@Override
public boolean delete(String id) {
LambdaQueryWrapper<EventDict> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(EventDict::getPid,id).eq(EventDict::getState,DataStateEnum.ENABLE.getCode());
int resCount = this.count(lambdaQueryWrapper);
if(resCount>0){
throw new BusinessException(EventResponseEnum.CHILDREN_EXIT);
}
UpdateWrapper<EventDict> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda().eq(EventDict::getState,DataStateEnum.ENABLE.getCode()).set(EventDict::getState,DataStateEnum.DELETED.getCode()).eq(EventDict::getId,id);
return this.update(updateWrapper);
}
/**
* 名称重复校验
*/
private void checkName(EventTemplateParam eventTemplateParam,boolean flag){
LambdaQueryWrapper<EventDict> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(EventDict::getName,eventTemplateParam.getName())
.eq(EventDict::getState, DataStateEnum.ENABLE.getCode());
//修改
if(!flag){
if(eventTemplateParam instanceof EventTemplateParam.EventTemplateUpdateParam ){
lambdaQueryWrapper.ne(EventDict::getId,((EventTemplateParam.EventTemplateUpdateParam)eventTemplateParam).getId());
}
}
int res = this.count(lambdaQueryWrapper);
//大于等于1个则表示重复
if (res >= 1) {
throw new BusinessException(EventResponseEnum.DIC_NAME_REPEAT);
}
}
}