diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/controller/SysRoleController.java b/src/main/java/com/coscoshipping/ebtp/project/role/controller/SysRoleController.java index 3e921f5..6368c9e 100644 --- a/src/main/java/com/coscoshipping/ebtp/project/role/controller/SysRoleController.java +++ b/src/main/java/com/coscoshipping/ebtp/project/role/controller/SysRoleController.java @@ -1,7 +1,10 @@ package com.coscoshipping.ebtp.project.role.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; +import com.coscoshipping.ebtp.project.role.entity.vo.SysRoleVO; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -12,6 +15,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import javax.annotation.Resource; import javax.validation.Valid; +import java.time.LocalDateTime; import java.util.List; import com.coscoshipping.ebtp.project.role.entity.SysRole; import com.coscoshipping.ebtp.project.role.service.SysRoleService; @@ -34,10 +38,9 @@ public class SysRoleController{ * @return */ @ApiOperation("插入新数据") - @PostMapping - public BaseResponse insert(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid SysRole sysRole){ - - Boolean i = iSysRoleService.save(sysRole); + @PostMapping("/insert") + public BaseResponse insert(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid SysRoleVO sysRole){ + Boolean i = iSysRoleService.insertByVo(sysRole); return BaseResponse.success(i); } @@ -50,10 +53,10 @@ public class SysRoleController{ * @return */ @ApiOperation("修改数据") - @PutMapping - public BaseResponse update(@ApiParam(value = "对象数据", required = true) @RequestBody SysRole sysRole){ + @PostMapping("/update") + public BaseResponse update(@ApiParam(value = "对象数据", required = true) @RequestBody SysRoleVO sysRole){ - Boolean i = iSysRoleService.updateById(sysRole); + Boolean i = iSysRoleService.updateByVo(sysRole); return BaseResponse.success(i); } @@ -67,9 +70,9 @@ public class SysRoleController{ */ @ApiOperation("根据id查询数据") @GetMapping("/{id}") - public BaseResponse get(@ApiParam(value = "主键id", required = true) @PathVariable String id){ - - SysRole sysRole = iSysRoleService.getById(id); + public BaseResponse getInfo(@ApiParam(value = "主键id", required = true) @PathVariable String id){ + + SysRoleVO sysRole = iSysRoleService.getInfoById(id); return BaseResponse.success(sysRole); } @@ -82,9 +85,9 @@ public class SysRoleController{ * @date 2020/10/21 14:56 */ @ApiOperation(value = "delete",notes = "删除数据") - @DeleteMapping("/{id}") - public BaseResponse delete(@ApiParam(value = "主键id", required = true) @PathVariable Long id) { - Boolean i = iSysRoleService.removeById(id); + @GetMapping("/del/{id}") + public BaseResponse delete(@ApiParam(value = "主键id", required = true) @PathVariable String id) { + Boolean i = iSysRoleService.deleteRoleById(id); return BaseResponse.success(i); } @@ -104,4 +107,18 @@ public class SysRoleController{ //RespsExceptionEnum.FRAME_EXCEPTION_DEMO_NOT_FIND.customValid(list.isEmpty()); return BaseResponse.success(list); } + + /** + * 查询分页数据 + * + * @param sysRoleVO 分页信息 + * + * @return 返回结果 + */ + @ApiOperation("查询分页数据") + @PostMapping("/getPage") + public BaseResponse> getPage(@ApiParam(value = "对象数据", required = true) @RequestBody SysRoleVO sysRoleVO){ + + return BaseResponse.success(iSysRoleService.getPage(sysRoleVO)); + } } diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/dao/SysRoleMenuMapper.java b/src/main/java/com/coscoshipping/ebtp/project/role/dao/SysRoleMenuMapper.java new file mode 100644 index 0000000..9ed5c40 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/role/dao/SysRoleMenuMapper.java @@ -0,0 +1,11 @@ +package com.coscoshipping.ebtp.project.role.dao; + + +import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper; +import java.util.List; +import org.springframework.stereotype.Repository; +import com.coscoshipping.ebtp.project.role.entity.SysRoleMenu; + +@Repository +public interface SysRoleMenuMapper extends IBaseMapper { +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/dao/mapper/SysRoleMapper.xml b/src/main/java/com/coscoshipping/ebtp/project/role/dao/mapper/SysRoleMapper.xml index 49be108..8b2dc6f 100644 --- a/src/main/java/com/coscoshipping/ebtp/project/role/dao/mapper/SysRoleMapper.xml +++ b/src/main/java/com/coscoshipping/ebtp/project/role/dao/mapper/SysRoleMapper.xml @@ -1,14 +1,14 @@ - + - + @@ -19,15 +19,15 @@ - + - - + + diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/dao/mapper/SysRoleMenuMapper.xml b/src/main/java/com/coscoshipping/ebtp/project/role/dao/mapper/SysRoleMenuMapper.xml new file mode 100644 index 0000000..7cdd157 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/role/dao/mapper/SysRoleMenuMapper.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/entity/SysRole.java b/src/main/java/com/coscoshipping/ebtp/project/role/entity/SysRole.java index ee1ee3f..b69dcb2 100644 --- a/src/main/java/com/coscoshipping/ebtp/project/role/entity/SysRole.java +++ b/src/main/java/com/coscoshipping/ebtp/project/role/entity/SysRole.java @@ -1,8 +1,7 @@ package com.coscoshipping.ebtp.project.role.entity; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; import com.chinaunicom.mall.ebtp.common.config.CustomLocalDateTimeTypeHandler; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; @@ -23,11 +22,12 @@ import java.time.LocalDateTime; @Accessors(chain = true) @TableName(value = "sys_role", autoResultMap = true) @ApiModel(value = "SysRole对象", description = "角色表") -public class SysRole implements Serializable { +public class SysRole extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键") + @TableId(value = "role_id", type = IdType.INPUT) private String roleId; @ApiModelProperty(value = "角色范围") @@ -42,8 +42,8 @@ public class SysRole implements Serializable { @ApiModelProperty(value = "角色描述") private String roleDesc; - @ApiModelProperty(value = "是否公共角色(yes,no)") - private String rolePublic; +// @ApiModelProperty(value = "是否公共角色(yes,no)") +// private String rolePublic; @ApiModelProperty(value = "状态(1正常 0停用)") private String roleStatus; @@ -72,45 +72,17 @@ public class SysRole implements Serializable { @ApiModelProperty(value = "角色标识:集团:G;省级:P;市级:C") private String roleFlag; - @ApiModelProperty(value = "是否业务授权(yes,no)") - private String roleBusiness; +// @ApiModelProperty(value = "是否业务授权(yes,no)") +// private String roleBusiness; @ApiModelProperty(value = "是否前台人员配置 0 前台配置,1 后台业务授权,2 不确定 默认后台业务授权") private String isPage; - @ApiModelProperty(value = "乐观锁标记位") - private Integer versions; +// @ApiModelProperty(value = "乐观锁标记位") +// private Integer versions; - @ApiModelProperty(value = "是否走申请流程(Y/N),默认N") - private String isApply; - - @TableField(fill = FieldFill.INSERT) - @ApiModelProperty(value = "创建者") - private String createBy; - - @TableField(fill = FieldFill.INSERT, typeHandler = CustomLocalDateTimeTypeHandler.class) - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "创建时间") - private LocalDateTime createDate; - - @TableField(fill = FieldFill.UPDATE) - @ApiModelProperty(value = "更新者") - private String updateBy; - - @TableField(fill = FieldFill.UPDATE, typeHandler = CustomLocalDateTimeTypeHandler.class) - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "更新时间") - private LocalDateTime updateDate; - - @TableField(fill = FieldFill.INSERT) - @ApiModelProperty(value = "租户标识") - private String tenantId; - - @TableField(fill = FieldFill.INSERT) - @ApiModelProperty(value = "逻辑删除,normal表示正常(默认),deleted表示删除") - private String deleteFlag; +// @ApiModelProperty(value = "是否走申请流程(Y/N),默认N") +// private String isApply;\ } diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/entity/SysRoleMenu.java b/src/main/java/com/coscoshipping/ebtp/project/role/entity/SysRoleMenu.java new file mode 100644 index 0000000..bd39ac0 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/role/entity/SysRoleMenu.java @@ -0,0 +1,31 @@ +package com.coscoshipping.ebtp.project.role.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** +* 实体类 SysRoleMenu-角色和菜单关联表 +* +* @author yss +*/ +@Data +@Accessors(chain = true) +@TableName(value = "sys_role_menu", autoResultMap = true) +@ApiModel(value = "SysRoleMenu对象", description = "角色和菜单关联表") +public class SysRoleMenu implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "角色ID") + private String roleId; + + @ApiModelProperty(value = "菜单ID") + private String menuId; + + +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/entity/vo/SysRoleVO.java b/src/main/java/com/coscoshipping/ebtp/project/role/entity/vo/SysRoleVO.java new file mode 100644 index 0000000..dccc8a0 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/role/entity/vo/SysRoleVO.java @@ -0,0 +1,37 @@ +package com.coscoshipping.ebtp.project.role.entity.vo; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; +import com.coscoshipping.ebtp.project.role.entity.SysRole; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * 用户角色信息VO类 SysRoleVO + * + * @author zyx + * @date 2025/5/8 + */ +@Data +@Accessors(chain = true) +@ApiModel("用户角色信息VO类") +@TableName(autoResultMap = true) +public class SysRoleVO extends SysRole implements Serializable { + + /** + * 分页数据 + */ + @ApiModelProperty(value = "分页对象信息") + private BasePageRequest basePageRequest; + + + private List menuIds; +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/service/SysRoleMenuService.java b/src/main/java/com/coscoshipping/ebtp/project/role/service/SysRoleMenuService.java new file mode 100644 index 0000000..01d0413 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/role/service/SysRoleMenuService.java @@ -0,0 +1,15 @@ +package com.coscoshipping.ebtp.project.role.service; + + +import com.chinaunicom.mall.ebtp.common.base.service.IBaseService; +import com.coscoshipping.ebtp.project.role.entity.SysRoleMenu; + +/** + * 对数据表 sys_role_menu 操作的 service + * @author yss + * + */ +public interface SysRoleMenuService extends IBaseService{ + + +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/service/SysRoleService.java b/src/main/java/com/coscoshipping/ebtp/project/role/service/SysRoleService.java index 65460bf..5575f10 100644 --- a/src/main/java/com/coscoshipping/ebtp/project/role/service/SysRoleService.java +++ b/src/main/java/com/coscoshipping/ebtp/project/role/service/SysRoleService.java @@ -1,8 +1,10 @@ package com.coscoshipping.ebtp.project.role.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.chinaunicom.mall.ebtp.common.base.service.IBaseService; import com.coscoshipping.ebtp.project.role.entity.SysRole; +import com.coscoshipping.ebtp.project.role.entity.vo.SysRoleVO; /** * 对数据表 sys_role 操作的 service @@ -11,5 +13,32 @@ import com.coscoshipping.ebtp.project.role.entity.SysRole; */ public interface SysRoleService extends IBaseService{ + /** + * 角色分页 + * @param sysRoleVO 标段信息 + * @return 返回结果 + */ + IPage getPage(SysRoleVO sysRoleVO); + + /** + * 查询角色基本信息 + * @param id + * @return + */ + SysRoleVO getInfoById(String id); + + + Boolean insertByVo(SysRoleVO bo); + + + Boolean updateByVo(SysRoleVO bo); + /** + * 通过角色ID删除角色 + * + * @param roleId 角色ID + * @return 结果 + */ + Boolean deleteRoleById(String roleId); + } diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/service/impl/SysRoleMenuServiceImpl.java b/src/main/java/com/coscoshipping/ebtp/project/role/service/impl/SysRoleMenuServiceImpl.java new file mode 100644 index 0000000..58eca4d --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/role/service/impl/SysRoleMenuServiceImpl.java @@ -0,0 +1,17 @@ +package com.coscoshipping.ebtp.project.role.service.impl; + + +import org.springframework.stereotype.Service; +import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; +import com.coscoshipping.ebtp.project.role.dao.SysRoleMenuMapper; +import com.coscoshipping.ebtp.project.role.entity.SysRoleMenu; +import com.coscoshipping.ebtp.project.role.service.SysRoleMenuService; +/** + * 对数据表 sys_role_menu 操作的 serviceImpl + * @author yss + * + */ +@Service +public class SysRoleMenuServiceImpl extends BaseServiceImpl implements SysRoleMenuService { + +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/service/impl/SysRoleServiceImpl.java b/src/main/java/com/coscoshipping/ebtp/project/role/service/impl/SysRoleServiceImpl.java index 612dcdc..6d785b9 100644 --- a/src/main/java/com/coscoshipping/ebtp/project/role/service/impl/SysRoleServiceImpl.java +++ b/src/main/java/com/coscoshipping/ebtp/project/role/service/impl/SysRoleServiceImpl.java @@ -1,6 +1,19 @@ package com.coscoshipping.ebtp.project.role.service.impl; +import cn.hutool.core.bean.BeanUtil; +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.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; +import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum; +import com.coscoshipping.ebtp.project.role.dao.SysRoleMenuMapper; +import com.coscoshipping.ebtp.project.role.entity.SysRoleMenu; +import com.coscoshipping.ebtp.project.role.entity.vo.SysRoleVO; +import com.coscoshipping.ebtp.project.role.service.SysRoleMenuService; +import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; @@ -8,6 +21,16 @@ import org.springframework.beans.factory.annotation.Autowired; import com.coscoshipping.ebtp.project.role.dao.SysRoleMapper; import com.coscoshipping.ebtp.project.role.entity.SysRole; import com.coscoshipping.ebtp.project.role.service.SysRoleService; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static java.util.stream.Collectors.groupingBy; + /** * 对数据表 sys_role 操作的 serviceImpl * @author yss @@ -16,4 +39,122 @@ import com.coscoshipping.ebtp.project.role.service.SysRoleService; @Service public class SysRoleServiceImpl extends BaseServiceImpl implements SysRoleService { + @Resource + private SysRoleMenuService roleMenuService; + + @Override + public IPage getPage(SysRoleVO sysRoleVO) { + + LambdaQueryWrapper query = buildQueryWrapper(sysRoleVO); + + if(null == sysRoleVO.getBasePageRequest()){ + sysRoleVO.setBasePageRequest(new BasePageRequest()); + } + //查询 + IPage result = new Page<>(sysRoleVO.getBasePageRequest().getPageNo(), sysRoleVO.getBasePageRequest().getPageSize()); + result = this.page(result, query); + return result; + } + + @Override + public SysRoleVO getInfoById(String id) { + SysRole sysRole = this.getById(id); + SysRoleVO roleVO = BeanUtil.toBean(sysRole, SysRoleVO.class); + //查询菜单信息 + List roleMenuList = roleMenuService.list(new LambdaQueryWrapper().eq(SysRoleMenu::getRoleId, id)); + List menuIds = roleMenuList.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()); + roleVO.setMenuIds(menuIds); + return roleVO; + } + + @Override + public Boolean insertByVo(SysRoleVO vo) { + vo.setRoleId(PropertyUtils.getSnowflakeId()).setCreateDate(LocalDateTime.now()); +// SysRole add = BeanUtil.toBean(VO, SysRole.class); + validEntityBeforeSave(vo,false); + boolean flag = baseMapper.insert(vo) > 0; + if (flag) { + insertRoleMenu(vo); + } + return flag; + } + + @Override + public Boolean updateByVo(SysRoleVO vo) { +// SysRole update = BeanUtil.toBean(vo, SysRole.class); + validEntityBeforeSave(vo,true); + // 删除角色与菜单关联 + roleMenuService.remove(new LambdaQueryWrapper().eq(SysRoleMenu::getRoleId, vo.getRoleId())); + boolean flag = baseMapper.updateById(vo) > 0; + if (flag) { + insertRoleMenu(vo); + } + return flag; + } + + @Override + public Boolean deleteRoleById(String roleId) { + // 删除角色与菜单关联 + roleMenuService.remove(new LambdaQueryWrapper().eq(SysRoleMenu::getRoleId, roleId)); + return this.removeById(roleId); + } + + /** + * 新增角色菜单信息 + * + * @param role 角色对象 + */ + public int insertRoleMenu(SysRoleVO role) { + int rows = 1; + // 新增用户与角色管理 + List list = new ArrayList(); + role.getMenuIds().forEach(menuId -> { + SysRoleMenu rm = new SysRoleMenu(); + rm.setRoleId(role.getRoleId()); + rm.setMenuId(menuId); + list.add(rm); + }); + if (list.size() > 0) { + rows = roleMenuService.saveBatch(list) ? list.size() : 0; + } + return rows; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysRole entity,boolean isUpdate){ + //TODO 做一些数据校验,如唯一约束 + //校验角色编码是否重复 + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(entity.getRoleCode()), SysRole::getRoleCode, entity.getRoleCode()); + if (isUpdate){ + lqw.ne(StringUtils.isNotBlank(entity.getRoleId()), SysRole::getRoleId, entity.getRoleId()); + } + List roleList =baseMapper.selectList(lqw); + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("角色编码已存在",roleList.size()>1); + } + + private LambdaQueryWrapper buildQueryWrapper(SysRoleVO vo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(vo.getRoleName()), SysRole::getRoleName , vo.getRoleName()); + lqw.like(StringUtils.isNotBlank(vo.getRoleCode()), SysRole::getRoleCode, vo.getRoleCode()); + lqw.eq(StringUtils.isNotBlank(vo.getRoleScope()), SysRole::getRoleScope, vo.getRoleScope()); + lqw.like(StringUtils.isNotBlank(vo.getRoleDesc()), SysRole::getRoleDesc, vo.getRoleDesc()); +// lqw.eq(vo.getContributionLevel() != null, SysRole::getContributionLevel, vo.getContributionLevel()); +// lqw.eq(vo.getArrivalTime() != null, SysRole::getArrivalTime, vo.getArrivalTime()); + lqw.eq(StringUtils.isNotBlank(vo.getRoleStatus()), SysRole::getRoleStatus, vo.getRoleStatus()); + lqw.eq(StringUtils.isNotBlank(vo.getRoleProvince()), SysRole::getRoleProvince, vo.getRoleProvince()); + lqw.eq(StringUtils.isNotBlank(vo.getRoleCity()), SysRole::getRoleCity, vo.getRoleCity()); + lqw.eq(StringUtils.isNotBlank(vo.getRoleOu()), SysRole::getRoleOu, vo.getRoleOu()); + lqw.eq(StringUtils.isNotBlank(vo.getRoleCut()), SysRole::getRoleCut, vo.getRoleCut()); + lqw.eq(StringUtils.isNotBlank(vo.getIsProvince()), SysRole::getIsProvince, vo.getIsProvince()); + lqw.eq(StringUtils.isNotBlank(vo.getIsCity()), SysRole::getIsCity, vo.getIsCity()); + lqw.eq(StringUtils.isNotBlank(vo.getIsGroup()), SysRole::getIsGroup, vo.getIsGroup()); + lqw.eq(StringUtils.isNotBlank(vo.getIsPage()), SysRole::getIsPage, vo.getIsPage()); + lqw.eq(vo.getCreateBy() != null, SysRole::getCreateBy, vo.getCreateBy()); + lqw.eq(vo.getUpdateBy() != null, SysRole::getUpdateBy, vo.getUpdateBy()); + lqw.orderByDesc(SysRole::getCreateDate); + return lqw; + } } diff --git a/src/main/resources/application-master.yml b/src/main/resources/application-master.yml index 41e8dac..97d5217 100644 --- a/src/main/resources/application-master.yml +++ b/src/main/resources/application-master.yml @@ -41,7 +41,7 @@ spring: connection-properties: druid.stat.merggSql=ture;druid.stat.slowSqlMillis=5000 props: sql: - show: false + show: true jackson: date-format: yyyy-MM-dd HH:mm:ss