tj
2025-03-20 87a0ccb7ed3f0c9bfd856169ef03de136cd1047d
高级安全防护
已修改7个文件
已添加10个文件
1937 ■■■■■ 文件已修改
pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/controller/ConfigSecurityController.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/controller/SysDictController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/datasource/entities/ConfigSecurity.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/datasource/entities/ConfigSecurityExample.java 950 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/datasource/mappers/ConfigSecurityMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/datasource/mappers/SysDictItemMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/dto/ConfigSecurityCreateOrUpdate.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/dto/ConfigSecurityQuery.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/dto/PageQuery.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/exception/GlobalExceptionHandler.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/service/configSecurity/ConfigSecurityService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/service/configSecurity/impl/ConfigSecurityServiceImpl.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/service/sys/SysDictService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/jsh/erp/service/sys/impl/SysDictServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper_xml/ConfigSecurityMapper.xml 323 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper_xml/SysDictItemMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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);
        }
    }
}
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();
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;
    }
}
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);
        }
    }
}
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);
}
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);
}
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;
}
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;
}
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;
}
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());
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;
}
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;
    }
}
src/main/java/com/jsh/erp/service/sys/SysDictService.java
@@ -30,4 +30,11 @@
    int deleteItemById(Long id);
    SysDictItem getByDictCodeAndItemText(String dictCode, String itemText);
}
    /**
     * 根据字典编码获取字典项
     * @param dictCode
     * @return
     */
    List<SysDictItem> getItemsBySictCode(String dictCode);
}
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);
    }
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>
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