diff --git a/archives/pom.xml b/archives/pom.xml index deae10a..87889a6 100644 --- a/archives/pom.xml +++ b/archives/pom.xml @@ -29,13 +29,6 @@ logging 1.0 - - - net.sf.json-lib - json-lib - 2.4 - jdk15 - \ No newline at end of file diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/controller/DictrionaryController.java b/archives/src/main/java/com/storeroom/modules/dictionary/controller/DictrionaryController.java index ba6ef42..2ce52f4 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/controller/DictrionaryController.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/controller/DictrionaryController.java @@ -2,15 +2,22 @@ package com.storeroom.modules.dictionary.controller; import com.storeroom.annotaion.rest.AnonymousGetMapping; import com.storeroom.annotaion.rest.AnonymousPostMapping; +import com.storeroom.exception.constant.ResponseStatus; import com.storeroom.modules.dictionary.domain.vo.DictionaryVO; import com.storeroom.modules.dictionary.service.DictionaryService; +import com.storeroom.modules.dictionary.service.dto.DictionaryDTO; import com.storeroom.modules.dictionary.service.dto.DictionaryQueryCriteria; +import com.storeroom.modules.dictionary.service.dto.PrimaryDTO; import com.storeroom.utils.ApiResponse; +import com.storeroom.utils.SecurityUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -19,7 +26,7 @@ import java.util.List; @RestController @RequiredArgsConstructor @Api(tags = "字典表管理") -@RequestMapping("/dictrionary") +@RequestMapping("/api/dictrionary") public class DictrionaryController { private final DictionaryService dictionaryService; @@ -31,4 +38,34 @@ public class DictrionaryController { return ApiResponse.success(dictionaryService.findDictrionaryMenu()); } + @ApiOperation("编辑字典") +// @GetMapping("/edit") + @AnonymousPostMapping(value = "/edit") + public ApiResponse edit( + @Validated @RequestBody DictionaryDTO dto + ){ +// dictionaryService.edit(dto,SecurityUtils.getCurrentUsername()); + dictionaryService.edit(dto,"test"); + return ApiResponse.success(dto.getId() == null ? ResponseStatus.SUCCESS : HttpStatus.NO_CONTENT); + } + + @ApiOperation("删除字典") +// @GetMapping("/delete") + @AnonymousPostMapping(value = "/delete") + public ApiResponse delete( + @Validated @RequestBody PrimaryDTO dto + ){ + dictionaryService.delete(dto.getId()); + return ApiResponse.success(ResponseStatus.SUCCESS); + } + + @ApiOperation("根据字典id分页查询子集") +// @GetMapping("/findSubsetById") + @AnonymousGetMapping(value = "/findSubsetById") + public ApiResponse findSubsetById( + DictionaryQueryCriteria criteria,Pageable page + ){ + return ApiResponse.success(dictionaryService.findSubsetById(criteria.getId(),page)); + } + } diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/controller/FieldController.java b/archives/src/main/java/com/storeroom/modules/dictionary/controller/FieldController.java new file mode 100644 index 0000000..672d077 --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/controller/FieldController.java @@ -0,0 +1,48 @@ +package com.storeroom.modules.dictionary.controller; + +import com.storeroom.annotaion.rest.AnonymousGetMapping; +import com.storeroom.annotaion.rest.AnonymousPostMapping; +import com.storeroom.exception.constant.ResponseStatus; +import com.storeroom.modules.dictionary.service.FieldService; +import com.storeroom.modules.dictionary.service.dto.FieldDTO; +import com.storeroom.modules.dictionary.service.dto.PrimaryDTO; +import com.storeroom.utils.ApiResponse; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@Api(tags = "字段表管理") +@RequestMapping("/api/field") +public class FieldController { + + private final FieldService fieldService; + + @ApiOperation("编辑字段表") +// @GetMapping("/edit") + @AnonymousPostMapping(value = "/edit") + public ApiResponse edit( + @Validated @RequestBody FieldDTO dto + ){ + String returnCode = fieldService.edit(dto,"test"); + return returnCode != null ? ApiResponse.error(ResponseStatus.FIELD_REPEAT) : + ApiResponse.success(dto.getId() == null ? ResponseStatus.SUCCESS : HttpStatus.NO_CONTENT); + } + + @ApiOperation("分类查询字段表") +// @GetMapping("/findGroupType") + @AnonymousGetMapping(value = "/findGroupType") + public ApiResponse findGroupType( + Integer is_type + ){ + return ApiResponse.success(fieldService.findGroupType(is_type)); + } + +} diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/domain/Field.java b/archives/src/main/java/com/storeroom/modules/dictionary/domain/Field.java new file mode 100644 index 0000000..b3bb4d9 --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/domain/Field.java @@ -0,0 +1,60 @@ +package com.storeroom.modules.dictionary.domain; + +import com.storeroom.base.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; +import java.io.Serializable; + +@Entity +@Getter +@Setter +@Table(name="sys_field") +public class Field extends BaseEntity implements Serializable { + + @Id + @Column(name = "id") + @GeneratedValue(generator = "idGenerator") + @GenericGenerator(name = "idGenerator", strategy = "uuid") + private String id; + + @Column(name = "field_name") + @ApiModelProperty(value = "字段名称") + private String fieldName; + + @Column(name = "field_cn_name") + @ApiModelProperty(value = "字段含义") + private String fieldCnName; + + @Column(name = "is_default_value") + @ApiModelProperty(value = "默认值") + private String isDefaultValue; + + @Column(name = "dictionary_id") + @ApiModelProperty(value = "字典id") + private String dictionaryId; + + @Column(name = "is_data_type") + @ApiModelProperty(value = "数据类型") + private Integer isDataType; + + @Column(name = "is_column_length") + @ApiModelProperty(value = "字段长度") + private Integer isColumnLength; + + @Column(name = "is_sequence") + @ApiModelProperty(value = "排序") + private Integer isSequence; + + @Column(name = "is_type") + @ApiModelProperty(value = "功能") + private Integer isType; + + @Column(name = "is_system") + @ApiModelProperty(value = "是否为系统字段") + private Boolean isSystem; + +} diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/domain/vo/DictionaryVO.java b/archives/src/main/java/com/storeroom/modules/dictionary/domain/vo/DictionaryVO.java index 77832f2..907e85d 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/domain/vo/DictionaryVO.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/domain/vo/DictionaryVO.java @@ -28,22 +28,22 @@ public class DictionaryVO { private String dicCode; @ApiModelProperty(value = "设备id") - @JSONField(name="deviceId") - @JsonProperty("device_id") + @JSONField(name="dicExplain") + @JsonProperty("dic_explain") private String dicExplain; @ApiModelProperty(value = "设备id") - @JSONField(name="deviceId") - @JsonProperty("device_id") + @JSONField(name="dicSequence") + @JsonProperty("dic_sequence") private String dicSequence; @ApiModelProperty(value = "设备id") - @JSONField(name="deviceId") - @JsonProperty("device_id") + @JSONField(name="dicType") + @JsonProperty("dic_type") private String dicType; @ApiModelProperty(value = "父id") - @JSONField(name="deviceId") + @JSONField(name="dicPid") @JsonProperty("dic_pid") private String dicPid; diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/domain/vo/FieldVO.java b/archives/src/main/java/com/storeroom/modules/dictionary/domain/vo/FieldVO.java new file mode 100644 index 0000000..1266867 --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/domain/vo/FieldVO.java @@ -0,0 +1,65 @@ +package com.storeroom.modules.dictionary.domain.vo; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class FieldVO { + + @ApiModelProperty(value = "字段id") + @JSONField(name="id") + @JsonProperty("id") + private String id; + + @ApiModelProperty(value = "字段名称") + @JSONField(name="fieldName") + @JsonProperty("field_name") + private String fieldName; + + @ApiModelProperty(value = "字段含义") + @JSONField(name="fieldCnName") + @JsonProperty("field_cn_name") + private String fieldCnName; + + @ApiModelProperty(value = "默认值") + @JSONField(name="isDefaultValue") + @JsonProperty("is_default_value") + private String isDefaultValue; + + @ApiModelProperty(value = "字典id") + @JSONField(name="dictionaryId") + @JsonProperty("dictionary_id") + private String dictionaryId; + + @ApiModelProperty(value = "数据类型") + @JSONField(name="isDataType") + @JsonProperty("is_data_type") + private Integer isDataType; + + @ApiModelProperty(value = "字段长度") + @JSONField(name="isColumnLength") + @JsonProperty("is_column_length") + private Integer isColumnLength; + + @ApiModelProperty(value = "排序") + @JSONField(name="isSequence") + @JsonProperty("is_sequence") + private Integer isSequence; + + @ApiModelProperty(value = "功能") + @JSONField(name="isType") + @JsonProperty("is_type") + private Integer isType; + + @ApiModelProperty(value = "是否为系统字段") + @JSONField(name="isSystem") + @JsonProperty("is_system") + private Boolean isSystem; + +} diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/repository/DictionaryRepository.java b/archives/src/main/java/com/storeroom/modules/dictionary/repository/DictionaryRepository.java index 1297642..ca5f5a0 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/repository/DictionaryRepository.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/repository/DictionaryRepository.java @@ -1,14 +1,32 @@ package com.storeroom.modules.dictionary.repository; import com.storeroom.modules.dictionary.domain.Dictionary; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; +import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; -public interface DictionaryRepository extends JpaRepository { +public interface DictionaryRepository extends JpaRepository{ - @Query(" from Dictionary ") + @Query(" from Dictionary order by dicSequence asc") List findAllOrderBy(); + + @Query("select id from Dictionary where dicPid = ?1 ") + List findAllByPid(String pid); + + @Modifying + @Transactional(rollbackFor = Exception.class) + @Query(nativeQuery = true,value = "delete from sys_dictionary where id in ?1 ") + void deleteByIds(List ids); + + @Query(nativeQuery = true, + countQuery = "SELECT count(1) FROM sys_dictionary where dic_pid = ?1", + value = "SELECT id,dic_name as dicName,dic_code as dicCode,dic_explain as dicExplain,dic_sequence as dicSequence,dic_type as dicType,dic_pid as dicPid FROM sys_dictionary where dic_pid = ?1") + Page> findSubsetById(String id, Pageable page); } diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/repository/FieldRepository.java b/archives/src/main/java/com/storeroom/modules/dictionary/repository/FieldRepository.java new file mode 100644 index 0000000..a5f05c7 --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/repository/FieldRepository.java @@ -0,0 +1,22 @@ +package com.storeroom.modules.dictionary.repository; + +import com.storeroom.modules.dictionary.domain.Field; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; + +public interface FieldRepository extends JpaRepository{ + + @Query(nativeQuery = true,value = "select id from sys_field where field_name = ?1 limit 0,1 ") + String findIdFirstByFieldName(String fieldName); + + @Query("from Field where isType = ?1 order by isSequence asc ") + List findAllByIsType(Integer isType); + +} diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/DictionaryService.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/DictionaryService.java index 27ab670..0f7ebd9 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/service/DictionaryService.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/DictionaryService.java @@ -1,9 +1,20 @@ package com.storeroom.modules.dictionary.service; +import com.storeroom.modules.dictionary.domain.Dictionary; import com.storeroom.modules.dictionary.domain.vo.DictionaryVO; +import com.storeroom.modules.dictionary.service.dto.DictionaryDTO; +import com.storeroom.utils.ResultUtils; +import org.springframework.data.domain.Pageable; import java.util.List; public interface DictionaryService { + //获取字典目录 List findDictrionaryMenu(); + //编辑字典信息 + void edit(DictionaryDTO dto,String userName); + //删除字典信息 + void delete(String dictionaryId); + //根据字典id查询子集 + ResultUtils> findSubsetById(String id, Pageable pageable); } diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/FieldService.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/FieldService.java new file mode 100644 index 0000000..371890f --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/FieldService.java @@ -0,0 +1,19 @@ +package com.storeroom.modules.dictionary.service; + +import com.storeroom.modules.dictionary.domain.vo.DictionaryVO; +import com.storeroom.modules.dictionary.domain.vo.FieldVO; +import com.storeroom.modules.dictionary.service.dto.DictionaryDTO; +import com.storeroom.modules.dictionary.service.dto.FieldDTO; +import com.storeroom.utils.ResultUtils; +import org.springframework.data.domain.Pageable; + +import java.util.List; + +public interface FieldService { + + //编辑字段信息 + String edit(FieldDTO dto,String userName); + //分类获取字段数据 + List findGroupType(Integer isType); + +} diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/DictionaryDTO.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/DictionaryDTO.java new file mode 100644 index 0000000..195597c --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/DictionaryDTO.java @@ -0,0 +1,52 @@ +package com.storeroom.modules.dictionary.service.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.storeroom.annotaion.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Column; +import java.io.Serializable; + +@Getter +@Setter +public class DictionaryDTO implements Serializable { + + @Query + @JSONField(name="id") + @JsonProperty("id") + private String id; + + @Query + @JSONField(name="dic_name") + @JsonProperty("dic_name") + private String dicName; + + @Query + @JSONField(name="dic_code") + @JsonProperty("dic_code") + private String dicCode; + + @Query + @JSONField(name="dic_explain") + @JsonProperty("dic_explain") + private String dicExplain; + + @Query + @JSONField(name="dic_sequence") + @JsonProperty("dic_sequence") + private Integer dicSequence; + + @Query + @JSONField(name="dic_type") + @JsonProperty("dic_type") + private Boolean dicType; + + @Query + @JSONField(name="dic_pid") + @JsonProperty("dic_pid") + private String dicPid; + +} diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/DictionaryQueryCriteria.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/DictionaryQueryCriteria.java index dc5a988..9d5342d 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/DictionaryQueryCriteria.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/DictionaryQueryCriteria.java @@ -1,7 +1,40 @@ package com.storeroom.modules.dictionary.service.dto; +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.storeroom.annotaion.Query; import lombok.Data; @Data public class DictionaryQueryCriteria { + + @Query + @JSONField(name="id") + @JsonProperty("id") + private String id; + + @Query + @JSONField(name="dic_name") + @JsonProperty("dic_name") + private String dic_name; + + @Query + @JSONField(name="dic_code") + @JsonProperty("dic_code") + private String dic_code; + + @Query + @JSONField(name="dic_explain") + @JsonProperty("dic_explain") + private String dic_explain; + + @Query + @JSONField(name="dic_sequence") + @JsonProperty("dic_sequence") + private Integer dic_sequence; + + @Query + @JSONField(name="dic_pid") + @JsonProperty("dic_pid") + private Integer dic_pid; } diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/FieldDTO.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/FieldDTO.java new file mode 100644 index 0000000..c0456cf --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/FieldDTO.java @@ -0,0 +1,64 @@ +package com.storeroom.modules.dictionary.service.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.storeroom.annotaion.Query; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +@Getter +@Setter +public class FieldDTO implements Serializable { + + @Query + @JSONField(name="id") + @JsonProperty("id") + private String id; + + @Query + @JSONField(name="field_name") + @JsonProperty("field_name") + private String fieldName; + + @Query + @JSONField(name="field_cn_name") + @JsonProperty("field_cn_name") + private String fieldCnName; + + @Query + @JSONField(name="is_default_value") + @JsonProperty("is_default_value") + private String isDefaultValue; + + @Query + @JSONField(name="dictionary_id") + @JsonProperty("dictionary_id") + private String dictionaryId; + + @Query + @JSONField(name="is_data_type") + @JsonProperty("is_data_type") + private Integer isDataType; + + @Query + @JSONField(name="is_column_length") + @JsonProperty("is_column_length") + private Integer isColumnLength; + + @Query + @JSONField(name="is_sequence") + @JsonProperty("is_sequence") + private Integer isSequence; + + @Query + @JSONField(name="is_type") + @JsonProperty("is_type") + private Integer isType; + + @Query + @JSONField(name="is_system") + @JsonProperty("is_system") + private Boolean isSystem; +} diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/PrimaryDTO.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/PrimaryDTO.java new file mode 100644 index 0000000..8df8a2e --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/PrimaryDTO.java @@ -0,0 +1,22 @@ +package com.storeroom.modules.dictionary.service.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class PrimaryDTO { + + @JSONField(name="id") + @JsonProperty("id") + private String id; + + @JSONField(name="ids") + @JsonProperty("ids") + private List ids; + +} diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DictionaryServiceImpl.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DictionaryServiceImpl.java index 1601c4e..50985cb 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DictionaryServiceImpl.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DictionaryServiceImpl.java @@ -5,13 +5,22 @@ import com.storeroom.modules.dictionary.domain.Dictionary; import com.storeroom.modules.dictionary.domain.vo.DictionaryVO; import com.storeroom.modules.dictionary.repository.DictionaryRepository; import com.storeroom.modules.dictionary.service.DictionaryService; +import com.storeroom.modules.dictionary.service.dto.DictionaryDTO; +import com.storeroom.utils.MapUtil; +import com.storeroom.utils.PageSort; +import com.storeroom.utils.ResultUtils; import lombok.RequiredArgsConstructor; -import net.sf.json.JSONArray; import org.springframework.cache.annotation.CacheConfig; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; +import java.util.Map; @Service @RequiredArgsConstructor @@ -38,6 +47,57 @@ public class DictionaryServiceImpl implements DictionaryService { return menuList; } + @Override + @Transactional(rollbackFor = Exception.class) + public void edit(DictionaryDTO dto, String userName) { + Dictionary dictionary = new Dictionary(); + if(null != dto.getId()){ + dictionary = dictionaryRepository.findById(dto.getId()).get(); + }else{ + dictionary.setCreateBy(userName); + } + dictionary.setDicName(dto.getDicName()); + dictionary.setDicCode(dto.getDicCode()); + dictionary.setDicExplain(dto.getDicExplain()); + dictionary.setDicSequence(dto.getDicSequence()); + dictionary.setDicType(dto.getDicType()); + dictionary.setDicPid(dto.getDicPid()); + dictionary.setUpdatedBy(userName); + dictionary = dictionaryRepository.saveAndFlush(dictionary); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String dictionaryId) { + List deleteIds = new ArrayList(); + deleteIds.add(dictionaryId); + deleteIds = getChildId(dictionaryId,deleteIds); + dictionaryRepository.deleteByIds(deleteIds); + } + + @Override + public ResultUtils> findSubsetById(String id, Pageable pageable) { + PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "dic_sequence", Sort.Direction.ASC); + //分页查询 + Page> pageMap = dictionaryRepository.findSubsetById(id,page); + //初始化分页返回数据 + List deviceVOList = MapUtil.setList(pageMap.getContent(),DictionaryVO.class); + return ResultUtils.getResult(deviceVOList,pageMap); + } + + private List getChildId(String id,List deleteIds){ + if(null == id){ + return deleteIds; + } + + List ids = dictionaryRepository.findAllByPid(id); + for(String did : ids){ + deleteIds.add(did); + getChildId(did,deleteIds); + } + return deleteIds; + } + private static List getChild(String id, List rootMenu) { // 子菜单 List childList = new ArrayList<>(); diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/FieldServiceImpl.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/FieldServiceImpl.java new file mode 100644 index 0000000..4fc5d10 --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/FieldServiceImpl.java @@ -0,0 +1,55 @@ +package com.storeroom.modules.dictionary.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.storeroom.modules.dictionary.domain.Field; +import com.storeroom.modules.dictionary.domain.vo.FieldVO; +import com.storeroom.modules.dictionary.repository.FieldRepository; +import com.storeroom.modules.dictionary.service.FieldService; +import com.storeroom.modules.dictionary.service.dto.FieldDTO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +@RequiredArgsConstructor +public class FieldServiceImpl implements FieldService { + + private final FieldRepository fieldRepository; + + @Override + public String edit(FieldDTO dto, String userName) { + Field field = new Field(); + if(null != dto.getId()){ + field = fieldRepository.findById(dto.getId()).get(); + }else{ + field.setCreateBy(userName); + } + String origId = fieldRepository.findIdFirstByFieldName(dto.getFieldName()); + if(null != origId && origId.equals(dto.getId())){ + return "已存在该字段"; + } + field.setFieldName(dto.getFieldName()); + field.setFieldCnName(dto.getFieldCnName()); + field.setIsDefaultValue(dto.getIsDefaultValue()); + field.setDictionaryId(dto.getDictionaryId()); + field.setIsDataType(dto.getIsDataType()); + field.setIsColumnLength(dto.getIsColumnLength()); + field.setIsSequence(dto.getIsSequence()); + field.setIsType(dto.getIsType()); + field.setIsSystem(dto.getIsSystem()); + field = fieldRepository.saveAndFlush(field); + return null; + } + + @Override + public List findGroupType(Integer isType) { + List fieldList = fieldRepository.findAllByIsType(isType); + List fieldVOList = new ArrayList<>(); + for(Field field:fieldList){ + fieldVOList.add(BeanUtil.copyProperties(field,FieldVO.class)); + } + return fieldVOList; + } +} diff --git a/common/src/main/java/com/storeroom/exception/constant/ResponseStatus.java b/common/src/main/java/com/storeroom/exception/constant/ResponseStatus.java index 3342e02..29e7aaf 100644 --- a/common/src/main/java/com/storeroom/exception/constant/ResponseStatus.java +++ b/common/src/main/java/com/storeroom/exception/constant/ResponseStatus.java @@ -18,7 +18,9 @@ public enum ResponseStatus { //token过期 TOKEN_UNAUTHORIZED(4001,"当前登录状态过期"), //token 为空 - TOKEN_IS_NULL(4002,"找不到当前登录信息"); + TOKEN_IS_NULL(4002,"找不到当前登录信息"), + //Field重复 + FIELD_REPEAT(5001,"当前字段重复"); diff --git a/common/src/main/java/com/storeroom/utils/HttpServletUtil.java b/common/src/main/java/com/storeroom/utils/HttpServletUtil.java new file mode 100644 index 0000000..727a1eb --- /dev/null +++ b/common/src/main/java/com/storeroom/utils/HttpServletUtil.java @@ -0,0 +1,65 @@ +package com.storeroom.utils; + + +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/* + *@Description:获取HttpServlet子对象 + *@Author: Liu_Lee + */ +public class HttpServletUtil { + + /** + * 获取ServletRequestAttributes对象 + */ + public static ServletRequestAttributes getServletRequest(){ + return (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + } + + /** + * 获取HttpServletRequest对象 + */ + public static HttpServletRequest getRequest(){ + return getServletRequest().getRequest(); + } + + /** + * 获取HttpServletResponse对象 + */ + public static HttpServletResponse getResponse(){ + return getServletRequest().getResponse(); + } + + /** + * 获取请求参数 + */ + public static String getParameter(String param){ + return getRequest().getParameter(param); + } + + /** + * 获取请求参数,带默认值 + */ + public static String getParameter(String param, String defaultValue){ + String parameter = getRequest().getParameter(param); + return StringUtils.isEmpty(parameter) ? defaultValue : parameter; + } + + /** + * 获取请求参数转换为int类型 + */ + public static Integer getParameterInt(String param){ + return Integer.valueOf(getRequest().getParameter(param)); + } + + /** + * 获取请求参数转换为int类型,带默认值 + */ + public static Integer getParameterInt(String param, Integer defaultValue){ + return Integer.valueOf(getParameter(param, String.valueOf(defaultValue))); + } +} diff --git a/common/src/main/java/com/storeroom/utils/MapUtil.java b/common/src/main/java/com/storeroom/utils/MapUtil.java new file mode 100644 index 0000000..d6db63b --- /dev/null +++ b/common/src/main/java/com/storeroom/utils/MapUtil.java @@ -0,0 +1,19 @@ +package com.storeroom.utils; + +import com.alibaba.fastjson.JSONArray; + +import java.util.List; +import java.util.Map; + +public class MapUtil { + /** + * List> 到 List 数据转换 + */ + public static List setList(final List> srcList, Class clazz) { + JSONArray jsonArray = new JSONArray(); + jsonArray.addAll(srcList); + List addList = jsonArray.toJavaList(clazz); + return addList; + } + +} diff --git a/common/src/main/java/com/storeroom/utils/PageSort.java b/common/src/main/java/com/storeroom/utils/PageSort.java new file mode 100644 index 0000000..5a6c129 --- /dev/null +++ b/common/src/main/java/com/storeroom/utils/PageSort.java @@ -0,0 +1,81 @@ +package com.storeroom.utils; + + +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; + +import java.util.ArrayList; +import java.util.List; + +/* + *@Description:分页排序数据 + *@Author: Liu_Lee + *@Date: 2020/9/16 13:30 + *@program: exhibit-admin + */ +public class PageSort { + private static final Integer PAGE_SIZE_DEF = 10; + private static final String ORDER_BY_COLUMN_DEF = "createtime"; + private static final Sort.Direction SORT_DIRECTION = Sort.Direction.DESC; + + + + public static PageRequest pageRequest() { + return pageRequest(PAGE_SIZE_DEF, ORDER_BY_COLUMN_DEF, SORT_DIRECTION); + } + + /** + * 创建分页排序对象 + * + * @param sortDirection 排序方式默认值 + */ + public static PageRequest pageRequest(Integer page, Sort.Direction sortDirection) { + return pageRequest(PAGE_SIZE_DEF, ORDER_BY_COLUMN_DEF, sortDirection); + } + + /** + * 创建分页排序对象 + * + * @param orderByColumnDef 排序字段名称默认值 + * @param sortDirection 排序方式默认值 + */ + public static PageRequest pageRequest(Integer page, String orderByColumnDef, Sort.Direction sortDirection) { + return pageRequest(PAGE_SIZE_DEF, orderByColumnDef, sortDirection); + } + + /** + * 创建分页排序对象 + * + * @param pageSizeDef 分页数据数量默认值 + * @param orderByColumnDef 排序字段名称默认值 + * @param sortDirection 排序方式默认值 + */ + public static PageRequest pageRequest(Integer page, Integer pageSizeDef, String orderByColumnDef, Sort.Direction sortDirection) { + Integer pageIndex = HttpServletUtil.getParameterInt("page", page); + Integer pageSize = HttpServletUtil.getParameterInt("size", pageSizeDef); + String orderByColumn = HttpServletUtil.getParameter("orderByColumn", orderByColumnDef); + String direction = HttpServletUtil.getParameter("isAsc", sortDirection.toString()); + Sort sort = Sort.by(Sort.Direction.fromString(direction), orderByColumn); + + return PageRequest.of(pageIndex - 1, pageSize, sort); + } + + /** + * 创建分页排序对象 + * + * @param pageSizeDef 分页数据数量默认值 + * @param orderByColumnDef 多个排序字段名称默认值 + * @param sortDirection 多个排序方式默认值 + */ + public static PageRequest pageRequest(Integer page, Integer pageSizeDef, List orderByColumnDef, List sortDirection) { + Integer pageIndex = HttpServletUtil.getParameterInt("page", page); + Integer pageSize = HttpServletUtil.getParameterInt("size", pageSizeDef); + List orderList = new ArrayList(); + for(int i = 0;i { + + @ApiModelProperty(value = "返回数据") + private List content; + + @Getter(AccessLevel.NONE) + @ApiModelProperty(value = "返回数据") + private T contentT; + + @ApiModelProperty(value = "返回状态") + private boolean bReturn; + + @ApiModelProperty(value = "返回信息") + private String Msg; + + @ApiModelProperty(value = "是否有上一页") + private boolean hasPrevious; + + @ApiModelProperty(value = "是否有下一页") + private boolean hasNext; + + @ApiModelProperty(value = "总数量") + private long totalElements; + + @ApiModelProperty(value = "总页数") + private int totalPages; + + @ApiModelProperty(value = "当前页数") + private int number; + + @ApiModelProperty(value = "每页显示数量") + private int size; + + public ResultUtils() { } + + public ResultUtils(List content, boolean hasPrevious, boolean hasNext, long totalElements, int totalPages, int number, int size) { + this.content = content; + this.bReturn = true; + this.Msg = "OK"; + this.hasPrevious = hasPrevious; + this.hasNext = hasNext; + this.totalElements = totalElements; + this.totalPages = totalPages; + this.number = number; + this.size = size; + } + + public ResultUtils(T contentT) { + List tList = new ArrayList<>(); + tList.add(contentT); + this.content = tList; + this.bReturn = true; + this.Msg = "OK"; + this.hasPrevious = false; + this.hasNext = false; + this.totalElements = 1; + this.totalPages = 1; + this.number = 1; + this.size = 1; + } + + public ResultUtils(List content){ + this.content = content; + this.bReturn = true; + this.Msg = "OK"; + this.hasPrevious = false; + this.hasNext = false; + this.totalElements = content.size(); + this.totalPages = 1; + this.number = 1; + this.size = content.size(); + } + + public ResultUtils(boolean bReturn, String Msg){ + this.bReturn = bReturn; + this.Msg = Msg; + } + + /*** + * 单条数据返回 + * @param content 数据 + * @param 泛型类 + * @return 分页返回 + */ + public static ResultUtils getResult(T content) { + return (ResultUtils) new ResultUtils(Collections.singletonList(content)); + } + + /*** + * 多条数据返回 + * @param content 数据 + * @param 泛型类 + * @return 分页返回 + */ + public static ResultUtils> getResult(List content) { + return (ResultUtils>) new ResultUtils(content); + } + + /*** + * 多条数据分页返回 + * @param content 数据 + * @param pages 分页 + * @param 泛型类 + * @return 分页返回 + */ + public static ResultUtils> getResult(List content, Page pages) { + return (ResultUtils>) new ResultUtils(content, pages.hasPrevious(), pages.hasNext(), pages.getTotalElements(), pages.getTotalPages(), pages.getNumber() + 1, pages.getSize()); + } + + /*** + * 无返回时(添加、编辑、删除)返回成功 + * @return 无返回时(添加、编辑、删除)返回成功 + * @param 泛型类 + */ + public static ResultUtils Succsee(){ + return (ResultUtils) new ResultUtils(true,"OK"); + } + + /*** + * 无返回时(添加、编辑、删除)返回失败 + * @param Msg 返回信息 + * @param 泛型类 + * @return 无返回时(添加、编辑、删除)返回失败 + */ + public static ResultUtils Error(String Msg){ + return (ResultUtils) new ResultUtils(true,Msg); + } +}