参数模板管理-订阅

This commit is contained in:
zhn
2024-01-12 10:36:56 +08:00
parent 8753462297
commit 2a7c376134
11 changed files with 514 additions and 2 deletions
@@ -692,3 +692,17 @@ ALTER TABLE `params_template`
ADD COLUMN `maintainer` varchar(3000) NULL COMMENT '维护人' AFTER `status`;
-- 参数模板管理订阅表 2024-01-12 未同步生产环境
CREATE TABLE `params_template_subscribe` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建日期',
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新日期',
`sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`params_template_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板id',
`user_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订阅人id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
@@ -1,6 +1,7 @@
package com.jero.modules.cert.template.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -10,9 +11,12 @@ import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.template.entity.ParamsTemplateEO;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.jero.modules.cert.template.service.IParamsTemplateEOService;
import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService;
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.dummy.enums.ReadFlagEnum;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysDictItemMapper;
@@ -64,6 +68,8 @@ public class ParamsTemplateEOController extends JeroController<ParamsTemplateEO,
private SysDictItemMapper sysDictItemMapper;
@Autowired
private ISysUserService sysUserService;
@Autowired
private IParamsTemplateSubscribeEOService paramsTemplateSubscribeEOService;
/**
* 分页列表查询
@@ -111,9 +117,33 @@ public class ParamsTemplateEOController extends JeroController<ParamsTemplateEO,
//维护人以及权限处理
maintainerAndauthority(pageList);
//订阅
subscribe(pageList);
return Result.OK(cut, pageList);
}
private void subscribe(IPage<ParamsTemplateEO> pageList) {
if(ObjectUtil.isNotEmpty(pageList)){
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<String> idList = pageList.getRecords().stream().map(ParamsTemplateEO::getId).collect(Collectors.toList());
LambdaQueryWrapper<ParamsTemplateSubscribeEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ParamsTemplateSubscribeEO::getParamsTemplateId,idList);
wrapper.eq(ParamsTemplateSubscribeEO::getUserId,currentUser.getId());
//当前登录人订阅的所有模板
List<ParamsTemplateSubscribeEO> paramsTemplateSubscribeEOList = paramsTemplateSubscribeEOService.list(wrapper);
for (ParamsTemplateEO record : pageList.getRecords()) {
List<ParamsTemplateSubscribeEO> collect = paramsTemplateSubscribeEOList
.stream().filter(e -> e.getUserId().equals(currentUser.getId())
&& e.getParamsTemplateId().equals(record.getId())).collect(Collectors.toList());
if(ObjectUtil.isNotEmpty(collect)){
record.setReadFlag(ReadFlagEnum.READ.getValue());
}else{
record.setReadFlag(ReadFlagEnum.CANCEL_READ.getValue());
}
}
}
}
private void maintainerAndauthority(IPage<ParamsTemplateEO> pageList) {
//是否为超级管理员
boolean administrator = sysUserService.isAdministrator();
@@ -0,0 +1,187 @@
package com.jero.modules.cert.template.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 参数模板订阅
* @Author: jero-boot
* @Date: 2024-01-12
* @Version: V1.0
*/
@Api(tags="参数模板订阅")
@RestController
@RequestMapping("/cert.template/paramsTemplateSubscribeEO")
@Slf4j
public class ParamsTemplateSubscribeEOController extends JeroController<ParamsTemplateSubscribeEO, IParamsTemplateSubscribeEOService> {
@Autowired
private IParamsTemplateSubscribeEOService paramsTemplateSubscribeEOService;
/**
* 分页列表查询
*
* @param paramsTemplateSubscribeEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "参数模板订阅-分页列表查询")
@ApiOperation(value="参数模板订阅-分页列表查询", notes="参数模板订阅-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ParamsTemplateSubscribeEO> queryWrapper = QueryGenerator.initQueryWrapper(paramsTemplateSubscribeEO, req.getParameterMap());
Page<ParamsTemplateSubscribeEO> page = new Page<ParamsTemplateSubscribeEO>(pageNo, pageSize);
IPage<ParamsTemplateSubscribeEO> pageList = paramsTemplateSubscribeEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "参数模板订阅-列表查询")
@ApiOperation(value="参数模板订阅-列表查询", notes="参数模板订阅-列表查询")
@GetMapping(value = "/list")
public Result<List<ParamsTemplateSubscribeEO>> queryList() {
List<ParamsTemplateSubscribeEO> list = paramsTemplateSubscribeEOService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param paramsTemplateSubscribeEO
* @return
*/
@AutoLog(value = "参数模板订阅-添加")
@ApiOperation(value="参数模板订阅-添加", notes="参数模板订阅-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) {
paramsTemplateSubscribeEOService.add(paramsTemplateSubscribeEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param paramsTemplateSubscribeEO
* @return
*/
@AutoLog(value = "参数模板订阅-编辑")
@ApiOperation(value="参数模板订阅-编辑", notes="参数模板订阅-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) {
paramsTemplateSubscribeEOService.editById(paramsTemplateSubscribeEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "去掉订阅")
@ApiOperation(value="去掉订阅", notes="去掉订阅")
@DeleteMapping(value = "/cancelSubscribe")
public Result<?> cancelSubscribe(@RequestParam(name="id",required=true) String id) {
paramsTemplateSubscribeEOService.deleteById(id);
return Result.OK("去掉订阅成功!");
}
@AutoLog(value = "参数模板订阅-通过id删除")
@ApiOperation(value="参数模板订阅-通过id删除", notes="参数模板订阅-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
paramsTemplateSubscribeEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "参数模板订阅-批量删除")
@ApiOperation(value="参数模板订阅-批量删除", notes="参数模板订阅-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.paramsTemplateSubscribeEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "参数模板订阅-通过id查询")
@ApiOperation(value="参数模板订阅-通过id查询", notes="参数模板订阅-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
ParamsTemplateSubscribeEO paramsTemplateSubscribeEO = paramsTemplateSubscribeEOService.queryById(id);
if(paramsTemplateSubscribeEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(paramsTemplateSubscribeEO);
}
/**
* 导出excel
*
* @param request
* @param paramsTemplateSubscribeEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) {
return super.exportXls(request, paramsTemplateSubscribeEO, ParamsTemplateSubscribeEO.class, "参数模板订阅");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ParamsTemplateSubscribeEO.class);
}
}
@@ -112,5 +112,9 @@ public class ParamsTemplateEO implements Serializable {
@ApiModelProperty(value = "权限标识-->有权限0,没有权限1")
private java.lang.String authorityFlag;
@TableField(exist = false)
@ApiModelProperty(value = "订阅标识-->订阅0,取消订阅1")
private java.lang.String readFlag;
}
@@ -0,0 +1,74 @@
package com.jero.modules.cert.template.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 参数模板订阅
* @Author: jero-boot
* @Date: 2024-01-12
* @Version: V1.0
*/
@Data
@TableName("params_template_subscribe")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="params_template_subscribe对象", description="参数模板订阅")
public class ParamsTemplateSubscribeEO implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**模板id*/
@Excel(name = "模板id", width = 15)
@ApiModelProperty(value = "模板id")
private java.lang.String paramsTemplateId;
/**订阅人id*/
@Excel(name = "订阅人id", width = 15)
@ApiModelProperty(value = "订阅人id")
private java.lang.String userId;
}
@@ -0,0 +1,17 @@
package com.jero.modules.cert.template.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 参数模板订阅
* @Author: jero-boot
* @Date: 2024-01-12
* @Version: V1.0
*/
public interface ParamsTemplateSubscribeEOMapper extends BaseMapper<ParamsTemplateSubscribeEO> {
}
@@ -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.jero.modules.cert.template.mapper.ParamsTemplateSubscribeEOMapper">
<resultMap id="ParamsTemplateSubscribeEOResultMap" type="com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="params_template_id" property="paramsTemplateId" />
<result column="user_id" property="userId" />
</resultMap>
</mapper>
@@ -0,0 +1,61 @@
package com.jero.modules.cert.template.service;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 参数模板订阅
* @Author: jero-boot
* @Date: 2024-01-12
* @Version: V1.0
*/
public interface IParamsTemplateSubscribeEOService extends IService<ParamsTemplateSubscribeEO> {
/**
* 保存
*
* @param paramsTemplateSubscribeEO
* @return
*/
void add(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO);
/**
* 更新
*
* @param paramsTemplateSubscribeEO
* @return
*/
void editById(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
ParamsTemplateSubscribeEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<ParamsTemplateSubscribeEO> queryList();
}
@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
/**
* @Description: 参数项基本信息表发布版
@@ -43,6 +44,8 @@ public class ParamsInfoPublishEOServiceImpl extends ServiceImpl<ParamsInfoPublis
private ICertCategoryParamsInfoEOService certCategoryParamsInfoEOService;
@Autowired
private ICertCategoryParamsInfoPublishEOService certCategoryParamsInfoPublishEOService;
@Autowired
private IParamsTemplateSubscribeEOService paramsTemplateSubscribeEOService;
/**
* 保存
@@ -189,6 +192,17 @@ public class ParamsInfoPublishEOServiceImpl extends ServiceImpl<ParamsInfoPublis
certCategoryParamsInfoPublishEOService.saveBatch(targetCertCategoryParamsInfoPublishEOList);
paramsTemplateEOService.updateById(updateSource);
//发布成功后给订阅人发消息
LambdaQueryWrapper<ParamsTemplateSubscribeEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ParamsTemplateSubscribeEO::getParamsTemplateId,paramsTemplateId);
List<ParamsTemplateSubscribeEO> paramsTemplateSubscribeEOList = paramsTemplateSubscribeEOService.list(wrapper);
if(ObjectUtils.isNotEmpty(paramsTemplateSubscribeEOList)){
List<String> userIdList = paramsTemplateSubscribeEOList
.stream().map(ParamsTemplateSubscribeEO::getUserId).distinct().collect(Collectors.toList());
}
return newVersion;
}
@@ -0,0 +1,97 @@
package com.jero.modules.cert.template.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.jero.modules.cert.template.mapper.ParamsTemplateSubscribeEOMapper;
import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @Description: 参数模板订阅
* @Author: jero-boot
* @Date: 2024-01-12
* @Version: V1.0
*/
@Service
public class ParamsTemplateSubscribeEOServiceImpl extends ServiceImpl<ParamsTemplateSubscribeEOMapper, ParamsTemplateSubscribeEO> implements IParamsTemplateSubscribeEOService {
/**
* 保存
*
* @param paramsTemplateSubscribeEO
* @return
*/
@Override
public void add(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) {
Date now = new Date();
paramsTemplateSubscribeEO.setCreateTime(now);
paramsTemplateSubscribeEO.setUpdateTime(now);
save(paramsTemplateSubscribeEO);
}
/**
* 更新
*
* @param paramsTemplateSubscribeEO
* @return
*/
@Override
public void editById(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) {
Date now = new Date();
paramsTemplateSubscribeEO.setUpdateTime(now);
saveOrUpdate(paramsTemplateSubscribeEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryWrapper<ParamsTemplateSubscribeEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ParamsTemplateSubscribeEO::getParamsTemplateId,id);
wrapper.eq(ParamsTemplateSubscribeEO::getUserId,currentUser.getId());
this.remove(wrapper);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public ParamsTemplateSubscribeEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<ParamsTemplateSubscribeEO> queryList() {
return list();
}
}
@@ -6,8 +6,8 @@ package com.jero.modules.dummy.enums;
* @auth zhn
*/
public enum ReadFlagEnum {
CANCEL_READ("取消订阅","0"),
READ("订阅","1");
CANCEL_READ("订阅","0"),
READ("取消订阅","1");