From 87a0ccb7ed3f0c9bfd856169ef03de136cd1047d Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期四, 20 三月 2025 09:07:39 +0800
Subject: [PATCH] 高级安全防护
---
src/main/java/com/jsh/erp/dto/ConfigSecurityQuery.java | 24
src/main/resources/mapper_xml/ConfigSecurityMapper.xml | 323 +++++++++
src/main/java/com/jsh/erp/datasource/entities/ConfigSecurityExample.java | 950 ++++++++++++++++++++++++++++
pom.xml | 9
src/main/java/com/jsh/erp/datasource/entities/ConfigSecurity.java | 125 +++
src/main/java/com/jsh/erp/service/configSecurity/ConfigSecurityService.java | 24
src/main/java/com/jsh/erp/dto/PageQuery.java | 22
src/main/java/com/jsh/erp/exception/GlobalExceptionHandler.java | 16
src/main/resources/mapper_xml/SysDictItemMapper.xml | 3
src/main/java/com/jsh/erp/controller/SysDictController.java | 15
src/main/java/com/jsh/erp/controller/ConfigSecurityController.java | 190 +++++
src/main/java/com/jsh/erp/service/sys/impl/SysDictServiceImpl.java | 6
src/main/java/com/jsh/erp/datasource/mappers/ConfigSecurityMapper.java | 30
src/main/java/com/jsh/erp/datasource/mappers/SysDictItemMapper.java | 3
src/main/java/com/jsh/erp/dto/ConfigSecurityCreateOrUpdate.java | 29
src/main/java/com/jsh/erp/service/configSecurity/impl/ConfigSecurityServiceImpl.java | 159 ++++
src/main/java/com/jsh/erp/service/sys/SysDictService.java | 9
17 files changed, 1,936 insertions(+), 1 deletions(-)
diff --git a/pom.xml b/pom.xml
index 937cab6..61b8be9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -123,6 +123,15 @@
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
+
+ <!-- 分页插件 -->
+ <dependency>
+ <groupId>com.github.pagehelper</groupId>
+ <artifactId>pagehelper-spring-boot-starter</artifactId>
+ <version>1.2.3</version>
+ </dependency>
+
+
</dependencies>
<build>
diff --git a/src/main/java/com/jsh/erp/controller/ConfigSecurityController.java b/src/main/java/com/jsh/erp/controller/ConfigSecurityController.java
new file mode 100644
index 0000000..c0252e1
--- /dev/null
+++ b/src/main/java/com/jsh/erp/controller/ConfigSecurityController.java
@@ -0,0 +1,190 @@
+package com.jsh.erp.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.jsh.erp.datasource.entities.SysDict;
+import com.jsh.erp.dto.ConfigSecurityCreateOrUpdate;
+import com.jsh.erp.dto.ConfigSecurityQuery;
+import com.jsh.erp.datasource.entities.ConfigSecurity;
+import com.jsh.erp.service.configSecurity.ConfigSecurityService;
+import com.jsh.erp.utils.BaseResponseInfo;
+import com.jsh.erp.utils.ErpInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static com.jsh.erp.utils.ResponseJsonUtil.returnJson;
+
+/**
+ * @author ji sheng hua jshERP
+ */
+@RestController
+@RequestMapping(value = "/config-security")
+@Api(tags = {"高级安全防护管理"})
+public class ConfigSecurityController {
+ private Logger logger = LoggerFactory.getLogger(ConfigSecurityController.class);
+
+ @Resource
+ private ConfigSecurityService configSecurityService;
+
+
+ /**
+ * 高级安全防护列表
+ * @param currentPage
+ * @param pageSize
+ * @param type
+ * @param keyword
+ * @param request
+ * @return
+ * @throws Exception
+ */
+// @GetMapping(value = "/list")
+// @ApiOperation(value = "高级安全防护列表")
+// public BaseResponseInfo findAccountInOutList(@RequestParam("currentPage") Integer currentPage,
+// @RequestParam("pageSize") Integer pageSize,
+// @RequestParam(value = "type", required = false) String type ,
+// @RequestParam(value = "keyword", required = false) String keyword,
+// HttpServletRequest request) throws Exception{
+// ConfigSecurityQuery configSecurityQuery = new ConfigSecurityQuery(keyword,type, null, null, null, null);
+// configSecurityQuery.setCurrentPage(currentPage);
+// configSecurityQuery.setPageSize(pageSize);
+// BaseResponseInfo res = new BaseResponseInfo();
+// Map<String, Object> map = new HashMap<String, Object>();
+// try {
+// List<ConfigSecurity> dataList = configSecurityService.findList(configSecurityQuery);
+// Long total = configSecurityService.findListCount(configSecurityQuery);
+// map.put("total", total);
+// map.put("rows", dataList);
+// res.code = 200;
+// res.data = map;
+// } catch(Exception e){
+// logger.error(e.getMessage(), e);
+// res.code = 500;
+// res.data = "获取数据失败";
+// }
+// return res;
+// }
+
+
+ @GetMapping(value = "/list")
+ @ApiOperation(value = "高级安全防护列表")
+ public BaseResponseInfo findAccountInOutList(ConfigSecurityQuery configSecurityQuery,
+ HttpServletRequest request) throws Exception{
+ BaseResponseInfo res = new BaseResponseInfo();
+ Map<String, Object> map = new HashMap<String, Object>();
+ try {
+ List<ConfigSecurity> dataList = configSecurityService.findList(configSecurityQuery);
+ Long total = configSecurityService.findListCount(configSecurityQuery);
+ map.put("total", total);
+ map.put("rows", dataList);
+ res.code = 200;
+ res.data = map;
+ } catch(Exception e){
+ logger.error(e.getMessage(), e);
+ res.code = 500;
+ res.data = "获取数据失败";
+ }
+ return res;
+ }
+
+
+ @PostMapping
+ public BaseResponseInfo add(@RequestBody @Valid ConfigSecurityCreateOrUpdate configSecurityCreateOrUpdate) {
+ ConfigSecurity configSecurity = new ConfigSecurity();
+ BeanUtils.copyProperties(configSecurityCreateOrUpdate, configSecurity);
+ BaseResponseInfo baseResponseInfo = new BaseResponseInfo();
+ try {
+ int result = configSecurityService.add(configSecurity);
+ if(result > 0) {
+ baseResponseInfo.code = 200;
+ baseResponseInfo.msg = "新增成功";
+ }
+ } catch(Exception e) {
+ baseResponseInfo.code = 500;
+ baseResponseInfo.msg = e.getMessage();
+ }
+ return baseResponseInfo;
+ }
+
+ @PutMapping
+ public BaseResponseInfo update(@RequestBody @Valid ConfigSecurityCreateOrUpdate configSecurityCreateOrUpdate) {
+ ConfigSecurity configSecurity = new ConfigSecurity();
+ BaseResponseInfo baseResponseInfo = new BaseResponseInfo();
+ try {
+ int result = configSecurityService.update(configSecurity);
+ if(result > 0) {
+ baseResponseInfo.code = 200;
+ baseResponseInfo.msg = "修改成功";
+ }
+ } catch(Exception e) {
+ baseResponseInfo.code = 500;
+ baseResponseInfo.msg = e.getMessage();
+ }
+ return baseResponseInfo;
+ }
+
+ @DeleteMapping("/delete/{id}")
+ public BaseResponseInfo delete(@PathVariable Long id) {
+ BaseResponseInfo baseResponseInfo = new BaseResponseInfo();
+ try {
+ int result = configSecurityService.deleteById(id);
+ if(result > 0) {
+ baseResponseInfo.code = 200;
+ baseResponseInfo.msg = "删除成功";
+ }
+ } catch(Exception e) {
+ baseResponseInfo.code = 500;
+ baseResponseInfo.msg = e.getMessage();
+ }
+ return baseResponseInfo;
+ }
+
+ @DeleteMapping("/deleteBatch")
+ public BaseResponseInfo deleteBatch(@RequestParam("ids") String ids) {
+ BaseResponseInfo baseResponseInfo = new BaseResponseInfo();
+
+ try {
+ int result= configSecurityService.deleteBatch(ids);
+ if(result > 0) {
+ baseResponseInfo.code = 200;
+ baseResponseInfo.msg = "删除成功";
+ }
+ } catch(Exception e) {
+ baseResponseInfo.code = 500;
+ baseResponseInfo.msg = e.getMessage();
+ }
+ return baseResponseInfo;
+ }
+
+
+ /**
+ * 批量设置状态-启用或者禁用
+ * @param jsonObject
+ * @param request
+ * @return
+ */
+ @PostMapping(value = "/batchSetStatus")
+ @ApiOperation(value = "批量设置状态")
+ public String batchSetStatus(@RequestBody JSONObject jsonObject,
+ HttpServletRequest request)throws Exception {
+ Integer status = jsonObject.getInteger("status");
+ String ids = jsonObject.getString("ids");
+ Map<String, Object> objectMap = new HashMap<>();
+ int res = configSecurityService.batchSetStatus(status, ids);
+ if(res > 0) {
+ return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
+ } else {
+ return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code);
+ }
+ }
+}
diff --git a/src/main/java/com/jsh/erp/controller/SysDictController.java b/src/main/java/com/jsh/erp/controller/SysDictController.java
index f137897..e76fdf6 100644
--- a/src/main/java/com/jsh/erp/controller/SysDictController.java
+++ b/src/main/java/com/jsh/erp/controller/SysDictController.java
@@ -140,6 +140,21 @@
return baseResponseInfo;
}
+ // 字典项相关接口
+ @GetMapping("/items/dict-code/{dictCode}")
+ public BaseResponseInfo getItems(@PathVariable String dictCode) {
+ BaseResponseInfo baseResponseInfo = new BaseResponseInfo();
+ try {
+ List<SysDictItem> items = sysDictService.getItemsBySictCode(dictCode);
+ baseResponseInfo.code = 200;
+ baseResponseInfo.data = items;
+ } catch(Exception e) {
+ baseResponseInfo.code = 500;
+ baseResponseInfo.msg = e.getMessage();
+ }
+ return baseResponseInfo;
+ }
+
@PostMapping("/item")
public BaseResponseInfo addItem(@RequestBody SysDictItem sysDictItem) {
BaseResponseInfo baseResponseInfo = new BaseResponseInfo();
diff --git a/src/main/java/com/jsh/erp/datasource/entities/ConfigSecurity.java b/src/main/java/com/jsh/erp/datasource/entities/ConfigSecurity.java
new file mode 100644
index 0000000..08682e8
--- /dev/null
+++ b/src/main/java/com/jsh/erp/datasource/entities/ConfigSecurity.java
@@ -0,0 +1,125 @@
+package com.jsh.erp.datasource.entities;
+
+import java.util.Date;
+
+public class ConfigSecurity {
+ private Long id;
+
+ private String keyword;
+
+ private String type;
+
+ private String description;
+
+ private Integer sortOrder;
+
+ private Integer status;
+
+ private Boolean deleteFlag;
+
+ private Date createTime;
+
+ private Long creator;
+
+ private Date updateTime;
+
+ private Long updater;
+
+ private Long tenantId;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getKeyword() {
+ return keyword;
+ }
+
+ public void setKeyword(String keyword) {
+ this.keyword = keyword == null ? null : keyword.trim();
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type == null ? null : type.trim();
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description == null ? null : description.trim();
+ }
+
+ public Integer getSortOrder() {
+ return sortOrder;
+ }
+
+ public void setSortOrder(Integer sortOrder) {
+ this.sortOrder = sortOrder;
+ }
+
+ public Integer getStatus() {
+ return status;
+ }
+
+ public void setStatus(Integer status) {
+ this.status = status;
+ }
+
+ public Boolean getDeleteFlag() {
+ return deleteFlag;
+ }
+
+ public void setDeleteFlag(Boolean deleteFlag) {
+ this.deleteFlag = deleteFlag;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Long getCreator() {
+ return creator;
+ }
+
+ public void setCreator(Long creator) {
+ this.creator = creator;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Long getUpdater() {
+ return updater;
+ }
+
+ public void setUpdater(Long updater) {
+ this.updater = updater;
+ }
+
+ public Long getTenantId() {
+ return tenantId;
+ }
+
+ public void setTenantId(Long tenantId) {
+ this.tenantId = tenantId;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/jsh/erp/datasource/entities/ConfigSecurityExample.java b/src/main/java/com/jsh/erp/datasource/entities/ConfigSecurityExample.java
new file mode 100644
index 0000000..3f74d6b
--- /dev/null
+++ b/src/main/java/com/jsh/erp/datasource/entities/ConfigSecurityExample.java
@@ -0,0 +1,950 @@
+package com.jsh.erp.datasource.entities;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class ConfigSecurityExample {
+ protected String orderByClause;
+
+ protected boolean distinct;
+
+ protected List<Criteria> oredCriteria;
+
+ public ConfigSecurityExample() {
+ oredCriteria = new ArrayList<>();
+ }
+
+ public void setOrderByClause(String orderByClause) {
+ this.orderByClause = orderByClause;
+ }
+
+ public String getOrderByClause() {
+ return orderByClause;
+ }
+
+ public void setDistinct(boolean distinct) {
+ this.distinct = distinct;
+ }
+
+ public boolean isDistinct() {
+ return distinct;
+ }
+
+ public List<Criteria> getOredCriteria() {
+ return oredCriteria;
+ }
+
+ public void or(Criteria criteria) {
+ oredCriteria.add(criteria);
+ }
+
+ public Criteria or() {
+ Criteria criteria = createCriteriaInternal();
+ oredCriteria.add(criteria);
+ return criteria;
+ }
+
+ public Criteria createCriteria() {
+ Criteria criteria = createCriteriaInternal();
+ if (oredCriteria.size() == 0) {
+ oredCriteria.add(criteria);
+ }
+ return criteria;
+ }
+
+ protected Criteria createCriteriaInternal() {
+ Criteria criteria = new Criteria();
+ return criteria;
+ }
+
+ public void clear() {
+ oredCriteria.clear();
+ orderByClause = null;
+ distinct = false;
+ }
+
+ protected abstract static class GeneratedCriteria {
+ protected List<Criterion> criteria;
+
+ protected GeneratedCriteria() {
+ super();
+ criteria = new ArrayList<>();
+ }
+
+ public boolean isValid() {
+ return criteria.size() > 0;
+ }
+
+ public List<Criterion> getAllCriteria() {
+ return criteria;
+ }
+
+ public List<Criterion> getCriteria() {
+ return criteria;
+ }
+
+ protected void addCriterion(String condition) {
+ if (condition == null) {
+ throw new RuntimeException("Value for condition cannot be null");
+ }
+ criteria.add(new Criterion(condition));
+ }
+
+ protected void addCriterion(String condition, Object value, String property) {
+ if (value == null) {
+ throw new RuntimeException("Value for " + property + " cannot be null");
+ }
+ criteria.add(new Criterion(condition, value));
+ }
+
+ protected void addCriterion(String condition, Object value1, Object value2, String property) {
+ if (value1 == null || value2 == null) {
+ throw new RuntimeException("Between values for " + property + " cannot be null");
+ }
+ criteria.add(new Criterion(condition, value1, value2));
+ }
+
+ public Criteria andIdIsNull() {
+ addCriterion("id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdIsNotNull() {
+ addCriterion("id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdEqualTo(Long value) {
+ addCriterion("id =", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotEqualTo(Long value) {
+ addCriterion("id <>", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThan(Long value) {
+ addCriterion("id >", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("id >=", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThan(Long value) {
+ addCriterion("id <", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThanOrEqualTo(Long value) {
+ addCriterion("id <=", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdIn(List<Long> values) {
+ addCriterion("id in", values, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotIn(List<Long> values) {
+ addCriterion("id not in", values, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdBetween(Long value1, Long value2) {
+ addCriterion("id between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotBetween(Long value1, Long value2) {
+ addCriterion("id not between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordIsNull() {
+ addCriterion("keyword is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordIsNotNull() {
+ addCriterion("keyword is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordEqualTo(String value) {
+ addCriterion("keyword =", value, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordNotEqualTo(String value) {
+ addCriterion("keyword <>", value, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordGreaterThan(String value) {
+ addCriterion("keyword >", value, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordGreaterThanOrEqualTo(String value) {
+ addCriterion("keyword >=", value, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordLessThan(String value) {
+ addCriterion("keyword <", value, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordLessThanOrEqualTo(String value) {
+ addCriterion("keyword <=", value, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordLike(String value) {
+ addCriterion("keyword like", value, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordNotLike(String value) {
+ addCriterion("keyword not like", value, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordIn(List<String> values) {
+ addCriterion("keyword in", values, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordNotIn(List<String> values) {
+ addCriterion("keyword not in", values, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordBetween(String value1, String value2) {
+ addCriterion("keyword between", value1, value2, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andKeywordNotBetween(String value1, String value2) {
+ addCriterion("keyword not between", value1, value2, "keyword");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeIsNull() {
+ addCriterion("type is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeIsNotNull() {
+ addCriterion("type is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeEqualTo(String value) {
+ addCriterion("type =", value, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeNotEqualTo(String value) {
+ addCriterion("type <>", value, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeGreaterThan(String value) {
+ addCriterion("type >", value, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeGreaterThanOrEqualTo(String value) {
+ addCriterion("type >=", value, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeLessThan(String value) {
+ addCriterion("type <", value, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeLessThanOrEqualTo(String value) {
+ addCriterion("type <=", value, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeLike(String value) {
+ addCriterion("type like", value, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeNotLike(String value) {
+ addCriterion("type not like", value, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeIn(List<String> values) {
+ addCriterion("type in", values, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeNotIn(List<String> values) {
+ addCriterion("type not in", values, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeBetween(String value1, String value2) {
+ addCriterion("type between", value1, value2, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andTypeNotBetween(String value1, String value2) {
+ addCriterion("type not between", value1, value2, "type");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionIsNull() {
+ addCriterion("description is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionIsNotNull() {
+ addCriterion("description is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionEqualTo(String value) {
+ addCriterion("description =", value, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionNotEqualTo(String value) {
+ addCriterion("description <>", value, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionGreaterThan(String value) {
+ addCriterion("description >", value, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
+ addCriterion("description >=", value, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionLessThan(String value) {
+ addCriterion("description <", value, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionLessThanOrEqualTo(String value) {
+ addCriterion("description <=", value, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionLike(String value) {
+ addCriterion("description like", value, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionNotLike(String value) {
+ addCriterion("description not like", value, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionIn(List<String> values) {
+ addCriterion("description in", values, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionNotIn(List<String> values) {
+ addCriterion("description not in", values, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionBetween(String value1, String value2) {
+ addCriterion("description between", value1, value2, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andDescriptionNotBetween(String value1, String value2) {
+ addCriterion("description not between", value1, value2, "description");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderIsNull() {
+ addCriterion("sort_order is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderIsNotNull() {
+ addCriterion("sort_order is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderEqualTo(Integer value) {
+ addCriterion("sort_order =", value, "sortOrder");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderNotEqualTo(Integer value) {
+ addCriterion("sort_order <>", value, "sortOrder");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderGreaterThan(Integer value) {
+ addCriterion("sort_order >", value, "sortOrder");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderGreaterThanOrEqualTo(Integer value) {
+ addCriterion("sort_order >=", value, "sortOrder");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderLessThan(Integer value) {
+ addCriterion("sort_order <", value, "sortOrder");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderLessThanOrEqualTo(Integer value) {
+ addCriterion("sort_order <=", value, "sortOrder");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderIn(List<Integer> values) {
+ addCriterion("sort_order in", values, "sortOrder");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderNotIn(List<Integer> values) {
+ addCriterion("sort_order not in", values, "sortOrder");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderBetween(Integer value1, Integer value2) {
+ addCriterion("sort_order between", value1, value2, "sortOrder");
+ return (Criteria) this;
+ }
+
+ public Criteria andSortOrderNotBetween(Integer value1, Integer value2) {
+ addCriterion("sort_order not between", value1, value2, "sortOrder");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusIsNull() {
+ addCriterion("status is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusIsNotNull() {
+ addCriterion("status is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusEqualTo(Boolean value) {
+ addCriterion("status =", value, "status");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusNotEqualTo(Boolean value) {
+ addCriterion("status <>", value, "status");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusGreaterThan(Boolean value) {
+ addCriterion("status >", value, "status");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusGreaterThanOrEqualTo(Boolean value) {
+ addCriterion("status >=", value, "status");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusLessThan(Boolean value) {
+ addCriterion("status <", value, "status");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusLessThanOrEqualTo(Boolean value) {
+ addCriterion("status <=", value, "status");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusIn(List<Boolean> values) {
+ addCriterion("status in", values, "status");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusNotIn(List<Boolean> values) {
+ addCriterion("status not in", values, "status");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusBetween(Boolean value1, Boolean value2) {
+ addCriterion("status between", value1, value2, "status");
+ return (Criteria) this;
+ }
+
+ public Criteria andStatusNotBetween(Boolean value1, Boolean value2) {
+ addCriterion("status not between", value1, value2, "status");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagIsNull() {
+ addCriterion("delete_flag is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagIsNotNull() {
+ addCriterion("delete_flag is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagEqualTo(Boolean value) {
+ addCriterion("delete_flag =", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagNotEqualTo(Boolean value) {
+ addCriterion("delete_flag <>", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagGreaterThan(Boolean value) {
+ addCriterion("delete_flag >", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagGreaterThanOrEqualTo(Boolean value) {
+ addCriterion("delete_flag >=", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagLessThan(Boolean value) {
+ addCriterion("delete_flag <", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagLessThanOrEqualTo(Boolean value) {
+ addCriterion("delete_flag <=", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagIn(List<Boolean> values) {
+ addCriterion("delete_flag in", values, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagNotIn(List<Boolean> values) {
+ addCriterion("delete_flag not in", values, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagBetween(Boolean value1, Boolean value2) {
+ addCriterion("delete_flag between", value1, value2, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagNotBetween(Boolean value1, Boolean value2) {
+ addCriterion("delete_flag not between", value1, value2, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeIsNull() {
+ addCriterion("create_time is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeIsNotNull() {
+ addCriterion("create_time is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeEqualTo(Date value) {
+ addCriterion("create_time =", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeNotEqualTo(Date value) {
+ addCriterion("create_time <>", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeGreaterThan(Date value) {
+ addCriterion("create_time >", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+ addCriterion("create_time >=", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeLessThan(Date value) {
+ addCriterion("create_time <", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+ addCriterion("create_time <=", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeIn(List<Date> values) {
+ addCriterion("create_time in", values, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeNotIn(List<Date> values) {
+ addCriterion("create_time not in", values, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeBetween(Date value1, Date value2) {
+ addCriterion("create_time between", value1, value2, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+ addCriterion("create_time not between", value1, value2, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorIsNull() {
+ addCriterion("creator is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorIsNotNull() {
+ addCriterion("creator is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorEqualTo(Long value) {
+ addCriterion("creator =", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorNotEqualTo(Long value) {
+ addCriterion("creator <>", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorGreaterThan(Long value) {
+ addCriterion("creator >", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorGreaterThanOrEqualTo(Long value) {
+ addCriterion("creator >=", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorLessThan(Long value) {
+ addCriterion("creator <", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorLessThanOrEqualTo(Long value) {
+ addCriterion("creator <=", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorIn(List<Long> values) {
+ addCriterion("creator in", values, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorNotIn(List<Long> values) {
+ addCriterion("creator not in", values, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorBetween(Long value1, Long value2) {
+ addCriterion("creator between", value1, value2, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorNotBetween(Long value1, Long value2) {
+ addCriterion("creator not between", value1, value2, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIsNull() {
+ addCriterion("update_time is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIsNotNull() {
+ addCriterion("update_time is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeEqualTo(Date value) {
+ addCriterion("update_time =", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotEqualTo(Date value) {
+ addCriterion("update_time <>", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeGreaterThan(Date value) {
+ addCriterion("update_time >", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+ addCriterion("update_time >=", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeLessThan(Date value) {
+ addCriterion("update_time <", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+ addCriterion("update_time <=", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIn(List<Date> values) {
+ addCriterion("update_time in", values, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotIn(List<Date> values) {
+ addCriterion("update_time not in", values, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+ addCriterion("update_time between", value1, value2, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+ addCriterion("update_time not between", value1, value2, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterIsNull() {
+ addCriterion("updater is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterIsNotNull() {
+ addCriterion("updater is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterEqualTo(Long value) {
+ addCriterion("updater =", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterNotEqualTo(Long value) {
+ addCriterion("updater <>", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterGreaterThan(Long value) {
+ addCriterion("updater >", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterGreaterThanOrEqualTo(Long value) {
+ addCriterion("updater >=", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterLessThan(Long value) {
+ addCriterion("updater <", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterLessThanOrEqualTo(Long value) {
+ addCriterion("updater <=", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterIn(List<Long> values) {
+ addCriterion("updater in", values, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterNotIn(List<Long> values) {
+ addCriterion("updater not in", values, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterBetween(Long value1, Long value2) {
+ addCriterion("updater between", value1, value2, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterNotBetween(Long value1, Long value2) {
+ addCriterion("updater not between", value1, value2, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdIsNull() {
+ addCriterion("tenant_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdIsNotNull() {
+ addCriterion("tenant_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdEqualTo(Long value) {
+ addCriterion("tenant_id =", value, "tenantId");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdNotEqualTo(Long value) {
+ addCriterion("tenant_id <>", value, "tenantId");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdGreaterThan(Long value) {
+ addCriterion("tenant_id >", value, "tenantId");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("tenant_id >=", value, "tenantId");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdLessThan(Long value) {
+ addCriterion("tenant_id <", value, "tenantId");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdLessThanOrEqualTo(Long value) {
+ addCriterion("tenant_id <=", value, "tenantId");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdIn(List<Long> values) {
+ addCriterion("tenant_id in", values, "tenantId");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdNotIn(List<Long> values) {
+ addCriterion("tenant_id not in", values, "tenantId");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdBetween(Long value1, Long value2) {
+ addCriterion("tenant_id between", value1, value2, "tenantId");
+ return (Criteria) this;
+ }
+
+ public Criteria andTenantIdNotBetween(Long value1, Long value2) {
+ addCriterion("tenant_id not between", value1, value2, "tenantId");
+ return (Criteria) this;
+ }
+ }
+
+ public static class Criteria extends GeneratedCriteria {
+ protected Criteria() {
+ super();
+ }
+ }
+
+ public static class Criterion {
+ private String condition;
+
+ private Object value;
+
+ private Object secondValue;
+
+ private boolean noValue;
+
+ private boolean singleValue;
+
+ private boolean betweenValue;
+
+ private boolean listValue;
+
+ private String typeHandler;
+
+ public String getCondition() {
+ return condition;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public Object getSecondValue() {
+ return secondValue;
+ }
+
+ public boolean isNoValue() {
+ return noValue;
+ }
+
+ public boolean isSingleValue() {
+ return singleValue;
+ }
+
+ public boolean isBetweenValue() {
+ return betweenValue;
+ }
+
+ public boolean isListValue() {
+ return listValue;
+ }
+
+ public String getTypeHandler() {
+ return typeHandler;
+ }
+
+ protected Criterion(String condition) {
+ super();
+ this.condition = condition;
+ this.typeHandler = null;
+ this.noValue = true;
+ }
+
+ protected Criterion(String condition, Object value, String typeHandler) {
+ super();
+ this.condition = condition;
+ this.value = value;
+ this.typeHandler = typeHandler;
+ if (value instanceof List<?>) {
+ this.listValue = true;
+ } else {
+ this.singleValue = true;
+ }
+ }
+
+ protected Criterion(String condition, Object value) {
+ this(condition, value, null);
+ }
+
+ protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+ super();
+ this.condition = condition;
+ this.value = value;
+ this.secondValue = secondValue;
+ this.typeHandler = typeHandler;
+ this.betweenValue = true;
+ }
+
+ protected Criterion(String condition, Object value, Object secondValue) {
+ this(condition, value, secondValue, null);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/jsh/erp/datasource/mappers/ConfigSecurityMapper.java b/src/main/java/com/jsh/erp/datasource/mappers/ConfigSecurityMapper.java
new file mode 100644
index 0000000..a2d6cf3
--- /dev/null
+++ b/src/main/java/com/jsh/erp/datasource/mappers/ConfigSecurityMapper.java
@@ -0,0 +1,30 @@
+package com.jsh.erp.datasource.mappers;
+
+import com.jsh.erp.datasource.entities.ConfigSecurity;
+import com.jsh.erp.datasource.entities.ConfigSecurityExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface ConfigSecurityMapper {
+ long countByExample(ConfigSecurityExample example);
+
+ int deleteByExample(ConfigSecurityExample example);
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(ConfigSecurity record);
+
+ int insertSelective(ConfigSecurity record);
+
+ List<ConfigSecurity> selectByExample(ConfigSecurityExample example);
+
+ ConfigSecurity selectByPrimaryKey(Long id);
+
+ int updateByExampleSelective(@Param("record") ConfigSecurity record, @Param("example") ConfigSecurityExample example);
+
+ int updateByExample(@Param("record") ConfigSecurity record, @Param("example") ConfigSecurityExample example);
+
+ int updateByPrimaryKeySelective(ConfigSecurity record);
+
+ int updateByPrimaryKey(ConfigSecurity record);
+}
\ No newline at end of file
diff --git a/src/main/java/com/jsh/erp/datasource/mappers/SysDictItemMapper.java b/src/main/java/com/jsh/erp/datasource/mappers/SysDictItemMapper.java
index d720a17..d9fb79f 100644
--- a/src/main/java/com/jsh/erp/datasource/mappers/SysDictItemMapper.java
+++ b/src/main/java/com/jsh/erp/datasource/mappers/SysDictItemMapper.java
@@ -2,6 +2,7 @@
import com.jsh.erp.datasource.entities.SysDictItem;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -23,4 +24,6 @@
//通过字典类型和字典code查询具体一条
@Select("SELECT * FROM sys_dict_item di LEFT JOIN sys_dict d ON di.dict_id = d.id WHERE d.dict_code = #{dictCode} AND di.item_text = #{itemText}")
SysDictItem getByDictCodeAndItemText(String dictCode, String itemText);
+
+ List<SysDictItem> getItemsByDictCode(@Param("dictCode") String dictCode);
}
diff --git a/src/main/java/com/jsh/erp/dto/ConfigSecurityCreateOrUpdate.java b/src/main/java/com/jsh/erp/dto/ConfigSecurityCreateOrUpdate.java
new file mode 100644
index 0000000..1057621
--- /dev/null
+++ b/src/main/java/com/jsh/erp/dto/ConfigSecurityCreateOrUpdate.java
@@ -0,0 +1,29 @@
+package com.jsh.erp.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ConfigSecurityCreateOrUpdate {
+
+ private Long id;
+
+ @NotEmpty(message = "关键字不能为空")
+ @Max(value = 50, message = "关键字长度不能超过50")
+ private String keyword;
+
+ @NotEmpty(message = "类型不能为空")
+ private String type;
+
+ @NotNull(message = "状态不能为空")
+ private Integer status;
+
+
+}
diff --git a/src/main/java/com/jsh/erp/dto/ConfigSecurityQuery.java b/src/main/java/com/jsh/erp/dto/ConfigSecurityQuery.java
new file mode 100644
index 0000000..b41cc50
--- /dev/null
+++ b/src/main/java/com/jsh/erp/dto/ConfigSecurityQuery.java
@@ -0,0 +1,24 @@
+package com.jsh.erp.dto;
+
+import com.jsh.erp.datasource.entities.ConfigSecurity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ConfigSecurityQuery extends PageQuery {
+
+ private String keyword;
+
+ private String type;
+
+ private String description;
+
+ private Integer sortOrder;
+
+ private Boolean status;
+
+ private Boolean deleteFlag;
+}
diff --git a/src/main/java/com/jsh/erp/dto/PageQuery.java b/src/main/java/com/jsh/erp/dto/PageQuery.java
new file mode 100644
index 0000000..810417e
--- /dev/null
+++ b/src/main/java/com/jsh/erp/dto/PageQuery.java
@@ -0,0 +1,22 @@
+package com.jsh.erp.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PageQuery {
+
+ /**
+ * 当前页面
+ */
+ private Integer currentPage;
+ /**
+ * 每页显示条数
+ */
+ private Integer pageSize;
+
+}
diff --git a/src/main/java/com/jsh/erp/exception/GlobalExceptionHandler.java b/src/main/java/com/jsh/erp/exception/GlobalExceptionHandler.java
index 5cc0b58..03eb931 100644
--- a/src/main/java/com/jsh/erp/exception/GlobalExceptionHandler.java
+++ b/src/main/java/com/jsh/erp/exception/GlobalExceptionHandler.java
@@ -3,11 +3,14 @@
import com.alibaba.fastjson.JSONObject;
import com.jsh.erp.constants.ExceptionConstants;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.stream.Collectors;
@Slf4j
@RestControllerAdvice
@@ -32,6 +35,19 @@
return status;
}
+ // 这里针对校验org.springframework.web.bind.MethodArgumentNotValidException 异常的处置
+ if (e instanceof MethodArgumentNotValidException) {
+ status.put(ExceptionConstants.GLOBAL_RETURNS_CODE, 400);
+ List<String> errorMessages = ((MethodArgumentNotValidException) e).getBindingResult().getFieldErrors()
+ .stream()
+ .map(fieldError -> fieldError.getField() + ": " + fieldError.getDefaultMessage())
+ .collect(Collectors.toList());
+
+ // 以 JSON 数组形式返回
+ status.put(ExceptionConstants.GLOBAL_RETURNS_MESSAGE, errorMessages);
+ return status;
+ }
+
status.put(ExceptionConstants.GLOBAL_RETURNS_CODE, ExceptionConstants.SERVICE_SYSTEM_ERROR_CODE);
status.put(ExceptionConstants.GLOBAL_RETURNS_DATA, ExceptionConstants.SERVICE_SYSTEM_ERROR_MSG);
log.error("Global Exception Occured => url : {}, msg : {}", request.getRequestURL(), e.getMessage());
diff --git a/src/main/java/com/jsh/erp/service/configSecurity/ConfigSecurityService.java b/src/main/java/com/jsh/erp/service/configSecurity/ConfigSecurityService.java
new file mode 100644
index 0000000..2070ed0
--- /dev/null
+++ b/src/main/java/com/jsh/erp/service/configSecurity/ConfigSecurityService.java
@@ -0,0 +1,24 @@
+package com.jsh.erp.service.configSecurity;
+
+import com.jsh.erp.datasource.entities.ConfigSecurity;
+import com.jsh.erp.dto.ConfigSecurityQuery;
+
+import java.util.List;
+
+public interface ConfigSecurityService {
+
+
+ Long findListCount(ConfigSecurityQuery configSecurityQuery);
+
+ List<ConfigSecurity> findList(ConfigSecurityQuery configSecurityQuery);
+
+ int add(ConfigSecurity configSecurity);
+
+ int update(ConfigSecurity configSecurity);
+
+ int deleteById(Long id);
+
+ int deleteBatch(String ids);
+
+ int batchSetStatus(Integer status, String ids) throws Exception;
+}
diff --git a/src/main/java/com/jsh/erp/service/configSecurity/impl/ConfigSecurityServiceImpl.java b/src/main/java/com/jsh/erp/service/configSecurity/impl/ConfigSecurityServiceImpl.java
new file mode 100644
index 0000000..45d1a62
--- /dev/null
+++ b/src/main/java/com/jsh/erp/service/configSecurity/impl/ConfigSecurityServiceImpl.java
@@ -0,0 +1,159 @@
+package com.jsh.erp.service.configSecurity.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.github.pagehelper.PageHelper;
+import com.jsh.erp.constants.BusinessConstants;
+import com.jsh.erp.datasource.entities.ConfigSecurity;
+import com.jsh.erp.datasource.entities.ConfigSecurityExample;
+import com.jsh.erp.datasource.mappers.ConfigSecurityMapper;
+import com.jsh.erp.dto.ConfigSecurityQuery;
+import com.jsh.erp.exception.JshException;
+import com.jsh.erp.service.account.AccountService;
+import com.jsh.erp.service.configSecurity.ConfigSecurityService;
+import com.jsh.erp.service.log.LogService;
+import com.jsh.erp.utils.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class ConfigSecurityServiceImpl implements ConfigSecurityService {
+
+ private Logger logger = LoggerFactory.getLogger(AccountService.class);
+
+ @Resource
+ private ConfigSecurityMapper configSecurityMapper;
+
+ @Resource
+ private LogService logService;
+
+ @Override
+ public Long findListCount(ConfigSecurityQuery configSecurityQuery) {
+ ConfigSecurityExample example = new ConfigSecurityExample();
+ ConfigSecurityExample.Criteria criteria = example.createCriteria();
+ criteria.andDeleteFlagEqualTo(false);
+ if (StringUtils.isNotEmpty(configSecurityQuery.getKeyword())) {
+ criteria.andKeywordLike("%" + configSecurityQuery.getKeyword() + "%");
+ }
+ if (StringUtils.isNotEmpty(configSecurityQuery.getType())) {
+ criteria.andTypeEqualTo(configSecurityQuery.getType());
+ }
+
+ return configSecurityMapper.countByExample(example);
+ }
+
+ @Override
+ public List<ConfigSecurity> findList(ConfigSecurityQuery configSecurityQuery) {
+ // 设置分页参数
+ PageHelper.startPage(configSecurityQuery.getCurrentPage()-1, configSecurityQuery.getPageSize());
+
+ ConfigSecurityExample example = new ConfigSecurityExample();
+ ConfigSecurityExample.Criteria criteria = example.createCriteria();
+ criteria.andDeleteFlagEqualTo(false);
+ if (StringUtils.isNotEmpty(configSecurityQuery.getKeyword())) {
+ criteria.andKeywordLike("%" + configSecurityQuery.getKeyword() + "%");
+ }
+ if (StringUtils.isNotEmpty(configSecurityQuery.getType())) {
+ criteria.andTypeEqualTo(configSecurityQuery.getType());
+ }
+
+ example.setOrderByClause(" create_time desc ");
+
+ return configSecurityMapper.selectByExample(example);
+ }
+
+ @Transactional
+ @Override
+ public int add(ConfigSecurity configSecurity) {
+ configSecurity.setDeleteFlag(false);
+
+ extractedKeywordExists(configSecurity.getKeyword(),null);
+
+ return configSecurityMapper.insert(configSecurity);
+ }
+
+ private void extractedKeywordExists(String keyword, Long id) {
+ // 查看关键字是否已经存在
+ ConfigSecurityExample example = new ConfigSecurityExample();
+ ConfigSecurityExample.Criteria criteria = example.createCriteria();
+ criteria.andDeleteFlagEqualTo(false);
+ criteria.andKeywordEqualTo(keyword);
+ if(!Objects.isNull(id)){
+ criteria.andIdNotEqualTo(id);
+ }
+ long keywordExistedCnt = configSecurityMapper.countByExample(example);
+ if(keywordExistedCnt>0)
+ throw new RuntimeException("关键词已经存在");
+ }
+
+ @Transactional
+ @Override
+ public int update(ConfigSecurity configSecurity) {
+ extractedKeywordExists(configSecurity.getKeyword(),configSecurity.getId());
+
+ return configSecurityMapper.updateByPrimaryKeySelective(configSecurity);
+ }
+
+ @Transactional
+ @Override
+ public int deleteById(Long id) {
+ ConfigSecurity configSecurity = configSecurityMapper.selectByPrimaryKey(id);
+ configSecurity.setDeleteFlag(true);
+ return configSecurityMapper.updateByPrimaryKeySelective(configSecurity);
+// return configSecurityMapper.deleteByPrimaryKey(id);
+ }
+
+ @Transactional
+ @Override
+ public int deleteBatch(String ids) {
+
+ ConfigSecurity configSecurity = new ConfigSecurity();
+ configSecurity.setDeleteFlag(true);
+
+ ConfigSecurityExample example=new ConfigSecurityExample();
+ ConfigSecurityExample.Criteria criteria=example.createCriteria();
+ List<Long> configSecurityIds = StringUtil.strToLongList(ids);
+ criteria.andIdIn(configSecurityIds);
+ int result=0;
+ try{
+ result = configSecurityMapper.updateByExampleSelective(configSecurity, example);
+ }catch(Exception e){
+ JshException.writeFail(logger, e);
+ }
+ return result;
+ }
+
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ @Override
+ public int batchSetStatus(Integer status, String ids) throws Exception {
+
+ logService.insertLog("账户",
+ new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ENABLED).toString(),
+ ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest());
+
+ ConfigSecurity configSecurity = new ConfigSecurity();
+ configSecurity.setStatus(status);
+
+ ConfigSecurityExample example=new ConfigSecurityExample();
+ ConfigSecurityExample.Criteria criteria=example.createCriteria();
+ List<Long> configSecurityIds = StringUtil.strToLongList(ids);
+ criteria.andIdIn(configSecurityIds);
+ int result=0;
+ try{
+ result = configSecurityMapper.updateByExampleSelective(configSecurity, example);
+ }catch(Exception e){
+ JshException.writeFail(logger, e);
+ }
+ return result;
+ }
+
+
+}
diff --git a/src/main/java/com/jsh/erp/service/sys/SysDictService.java b/src/main/java/com/jsh/erp/service/sys/SysDictService.java
index 798cfb2..3104434 100644
--- a/src/main/java/com/jsh/erp/service/sys/SysDictService.java
+++ b/src/main/java/com/jsh/erp/service/sys/SysDictService.java
@@ -30,4 +30,11 @@
int deleteItemById(Long id);
SysDictItem getByDictCodeAndItemText(String dictCode, String itemText);
-}
\ No newline at end of file
+
+ /**
+ * 根据字典编码获取字典项
+ * @param dictCode
+ * @return
+ */
+ List<SysDictItem> getItemsBySictCode(String dictCode);
+}
\ No newline at end of file
diff --git a/src/main/java/com/jsh/erp/service/sys/impl/SysDictServiceImpl.java b/src/main/java/com/jsh/erp/service/sys/impl/SysDictServiceImpl.java
index 0ab1310..c4ad965 100644
--- a/src/main/java/com/jsh/erp/service/sys/impl/SysDictServiceImpl.java
+++ b/src/main/java/com/jsh/erp/service/sys/impl/SysDictServiceImpl.java
@@ -9,6 +9,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.util.Collections;
import java.util.List;
@Service
@@ -80,4 +81,9 @@
public SysDictItem getByDictCodeAndItemText(String dictCode, String itemText) {
return sysDictItemMapper.getByDictCodeAndItemText(dictCode, itemText);
}
+
+ @Override
+ public List<SysDictItem> getItemsBySictCode(String dictCode) {
+ return sysDictItemMapper.getItemsByDictCode(dictCode);
+ }
}
\ No newline at end of file
diff --git a/src/main/resources/mapper_xml/ConfigSecurityMapper.xml b/src/main/resources/mapper_xml/ConfigSecurityMapper.xml
new file mode 100644
index 0000000..e714ee6
--- /dev/null
+++ b/src/main/resources/mapper_xml/ConfigSecurityMapper.xml
@@ -0,0 +1,323 @@
+<?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.jsh.erp.datasource.mappers.ConfigSecurityMapper">
+ <resultMap id="BaseResultMap" type="com.jsh.erp.datasource.entities.ConfigSecurity">
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="keyword" jdbcType="VARCHAR" property="keyword" />
+ <result column="type" jdbcType="VARCHAR" property="type" />
+ <result column="description" jdbcType="VARCHAR" property="description" />
+ <result column="sort_order" jdbcType="INTEGER" property="sortOrder" />
+ <result column="status" jdbcType="BIT" property="status" />
+ <result column="delete_flag" jdbcType="BIT" property="deleteFlag" />
+ <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+ <result column="creator" jdbcType="BIGINT" property="creator" />
+ <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+ <result column="updater" jdbcType="BIGINT" property="updater" />
+ <result column="tenant_id" jdbcType="BIGINT" property="tenantId" />
+ </resultMap>
+ <sql id="Example_Where_Clause">
+ <where>
+ <foreach collection="oredCriteria" item="criteria" separator="or">
+ <if test="criteria.valid">
+ <trim prefix="(" prefixOverrides="and" suffix=")">
+ <foreach collection="criteria.criteria" item="criterion">
+ <choose>
+ <when test="criterion.noValue">
+ and ${criterion.condition}
+ </when>
+ <when test="criterion.singleValue">
+ and ${criterion.condition} #{criterion.value}
+ </when>
+ <when test="criterion.betweenValue">
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+ </when>
+ <when test="criterion.listValue">
+ and ${criterion.condition}
+ <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+ #{listItem}
+ </foreach>
+ </when>
+ </choose>
+ </foreach>
+ </trim>
+ </if>
+ </foreach>
+ </where>
+ </sql>
+ <sql id="Update_By_Example_Where_Clause">
+ <where>
+ <foreach collection="example.oredCriteria" item="criteria" separator="or">
+ <if test="criteria.valid">
+ <trim prefix="(" prefixOverrides="and" suffix=")">
+ <foreach collection="criteria.criteria" item="criterion">
+ <choose>
+ <when test="criterion.noValue">
+ and ${criterion.condition}
+ </when>
+ <when test="criterion.singleValue">
+ and ${criterion.condition} #{criterion.value}
+ </when>
+ <when test="criterion.betweenValue">
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+ </when>
+ <when test="criterion.listValue">
+ and ${criterion.condition}
+ <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+ #{listItem}
+ </foreach>
+ </when>
+ </choose>
+ </foreach>
+ </trim>
+ </if>
+ </foreach>
+ </where>
+ </sql>
+ <sql id="Base_Column_List">
+ id, keyword, type, description, sort_order, status, delete_flag, create_time, creator,
+ update_time, updater, tenant_id
+ </sql>
+ <select id="selectByExample" parameterType="com.jsh.erp.datasource.entities.ConfigSecurityExample" resultMap="BaseResultMap">
+ select
+ <if test="distinct">
+ distinct
+ </if>
+ <include refid="Base_Column_List" />
+ from config_security
+ <if test="_parameter != null">
+ <include refid="Example_Where_Clause" />
+ </if>
+ <if test="orderByClause != null">
+ order by ${orderByClause}
+ </if>
+ </select>
+ <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List" />
+ from config_security
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+ <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+ delete from config_security
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <delete id="deleteByExample" parameterType="com.jsh.erp.datasource.entities.ConfigSecurityExample">
+ delete from config_security
+ <if test="_parameter != null">
+ <include refid="Example_Where_Clause" />
+ </if>
+ </delete>
+ <insert id="insert" parameterType="com.jsh.erp.datasource.entities.ConfigSecurity">
+ insert into config_security (id, keyword, type,
+ description, sort_order, status,
+ delete_flag, create_time, creator,
+ update_time, updater, tenant_id
+ )
+ values (#{id,jdbcType=BIGINT}, #{keyword,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR},
+ #{description,jdbcType=VARCHAR}, #{sortOrder,jdbcType=INTEGER}, #{status,jdbcType=BIT},
+ #{deleteFlag,jdbcType=BIT}, #{createTime,jdbcType=TIMESTAMP}, #{creator,jdbcType=BIGINT},
+ #{updateTime,jdbcType=TIMESTAMP}, #{updater,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT}
+ )
+ </insert>
+ <insert id="insertSelective" parameterType="com.jsh.erp.datasource.entities.ConfigSecurity">
+ insert into config_security
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="keyword != null">
+ keyword,
+ </if>
+ <if test="type != null">
+ type,
+ </if>
+ <if test="description != null">
+ description,
+ </if>
+ <if test="sortOrder != null">
+ sort_order,
+ </if>
+ <if test="status != null">
+ status,
+ </if>
+ <if test="deleteFlag != null">
+ delete_flag,
+ </if>
+ <if test="createTime != null">
+ create_time,
+ </if>
+ <if test="creator != null">
+ creator,
+ </if>
+ <if test="updateTime != null">
+ update_time,
+ </if>
+ <if test="updater != null">
+ updater,
+ </if>
+ <if test="tenantId != null">
+ tenant_id,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="keyword != null">
+ #{keyword,jdbcType=VARCHAR},
+ </if>
+ <if test="type != null">
+ #{type,jdbcType=VARCHAR},
+ </if>
+ <if test="description != null">
+ #{description,jdbcType=VARCHAR},
+ </if>
+ <if test="sortOrder != null">
+ #{sortOrder,jdbcType=INTEGER},
+ </if>
+ <if test="status != null">
+ #{status,jdbcType=BIT},
+ </if>
+ <if test="deleteFlag != null">
+ #{deleteFlag,jdbcType=BIT},
+ </if>
+ <if test="createTime != null">
+ #{createTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="creator != null">
+ #{creator,jdbcType=BIGINT},
+ </if>
+ <if test="updateTime != null">
+ #{updateTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="updater != null">
+ #{updater,jdbcType=BIGINT},
+ </if>
+ <if test="tenantId != null">
+ #{tenantId,jdbcType=BIGINT},
+ </if>
+ </trim>
+ </insert>
+ <select id="countByExample" parameterType="com.jsh.erp.datasource.entities.ConfigSecurityExample" resultType="java.lang.Long">
+ select count(*) from config_security
+ <if test="_parameter != null">
+ <include refid="Example_Where_Clause" />
+ </if>
+ </select>
+ <update id="updateByExampleSelective" parameterType="map">
+ update config_security
+ <set>
+ <if test="record.id != null">
+ id = #{record.id,jdbcType=BIGINT},
+ </if>
+ <if test="record.keyword != null">
+ keyword = #{record.keyword,jdbcType=VARCHAR},
+ </if>
+ <if test="record.type != null">
+ type = #{record.type,jdbcType=VARCHAR},
+ </if>
+ <if test="record.description != null">
+ description = #{record.description,jdbcType=VARCHAR},
+ </if>
+ <if test="record.sortOrder != null">
+ sort_order = #{record.sortOrder,jdbcType=INTEGER},
+ </if>
+ <if test="record.status != null">
+ status = #{record.status,jdbcType=BIT},
+ </if>
+ <if test="record.deleteFlag != null">
+ delete_flag = #{record.deleteFlag,jdbcType=BIT},
+ </if>
+ <if test="record.createTime != null">
+ create_time = #{record.createTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="record.creator != null">
+ creator = #{record.creator,jdbcType=BIGINT},
+ </if>
+ <if test="record.updateTime != null">
+ update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="record.updater != null">
+ updater = #{record.updater,jdbcType=BIGINT},
+ </if>
+ <if test="record.tenantId != null">
+ tenant_id = #{record.tenantId,jdbcType=BIGINT},
+ </if>
+ </set>
+ <if test="_parameter != null">
+ <include refid="Update_By_Example_Where_Clause" />
+ </if>
+ </update>
+ <update id="updateByExample" parameterType="map">
+ update config_security
+ set id = #{record.id,jdbcType=BIGINT},
+ keyword = #{record.keyword,jdbcType=VARCHAR},
+ type = #{record.type,jdbcType=VARCHAR},
+ description = #{record.description,jdbcType=VARCHAR},
+ sort_order = #{record.sortOrder,jdbcType=INTEGER},
+ status = #{record.status,jdbcType=BIT},
+ delete_flag = #{record.deleteFlag,jdbcType=BIT},
+ create_time = #{record.createTime,jdbcType=TIMESTAMP},
+ creator = #{record.creator,jdbcType=BIGINT},
+ update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+ updater = #{record.updater,jdbcType=BIGINT},
+ tenant_id = #{record.tenantId,jdbcType=BIGINT}
+ <if test="_parameter != null">
+ <include refid="Update_By_Example_Where_Clause" />
+ </if>
+ </update>
+ <update id="updateByPrimaryKeySelective" parameterType="com.jsh.erp.datasource.entities.ConfigSecurity">
+ update config_security
+ <set>
+ <if test="keyword != null">
+ keyword = #{keyword,jdbcType=VARCHAR},
+ </if>
+ <if test="type != null">
+ type = #{type,jdbcType=VARCHAR},
+ </if>
+ <if test="description != null">
+ description = #{description,jdbcType=VARCHAR},
+ </if>
+ <if test="sortOrder != null">
+ sort_order = #{sortOrder,jdbcType=INTEGER},
+ </if>
+ <if test="status != null">
+ status = #{status,jdbcType=BIT},
+ </if>
+ <if test="deleteFlag != null">
+ delete_flag = #{deleteFlag,jdbcType=BIT},
+ </if>
+ <if test="createTime != null">
+ create_time = #{createTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="creator != null">
+ creator = #{creator,jdbcType=BIGINT},
+ </if>
+ <if test="updateTime != null">
+ update_time = #{updateTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="updater != null">
+ updater = #{updater,jdbcType=BIGINT},
+ </if>
+ <if test="tenantId != null">
+ tenant_id = #{tenantId,jdbcType=BIGINT},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.jsh.erp.datasource.entities.ConfigSecurity">
+ update config_security
+ set keyword = #{keyword,jdbcType=VARCHAR},
+ type = #{type,jdbcType=VARCHAR},
+ description = #{description,jdbcType=VARCHAR},
+ sort_order = #{sortOrder,jdbcType=INTEGER},
+ status = #{status,jdbcType=BIT},
+ delete_flag = #{deleteFlag,jdbcType=BIT},
+ create_time = #{createTime,jdbcType=TIMESTAMP},
+ creator = #{creator,jdbcType=BIGINT},
+ update_time = #{updateTime,jdbcType=TIMESTAMP},
+ updater = #{updater,jdbcType=BIGINT},
+ tenant_id = #{tenantId,jdbcType=BIGINT}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper_xml/SysDictItemMapper.xml b/src/main/resources/mapper_xml/SysDictItemMapper.xml
index 52caa3b..da2f74c 100644
--- a/src/main/resources/mapper_xml/SysDictItemMapper.xml
+++ b/src/main/resources/mapper_xml/SysDictItemMapper.xml
@@ -10,6 +10,9 @@
<select id="selectById" resultType="com.jsh.erp.datasource.entities.SysDictItem">
select * from sys_dict_item where id = #{id}
</select>
+ <select id="getItemsByDictCode" resultType="com.jsh.erp.datasource.entities.SysDictItem">
+ select * from sys_dict_item where dict_id = (select id from sys_dict where dict_code = #{dictCode})
+ </select>
<insert id="insert" parameterType="com.jsh.erp.datasource.entities.SysDictItem">
insert into sys_dict_item
--
Gitblit v1.9.3