diff --git a/src/main/java/com/gzzn/omms/adminapi/controller/settings/UISettingsController.java b/src/main/java/com/gzzn/omms/adminapi/controller/settings/UISettingsController.java index 3bd41ea..309855c 100644 --- a/src/main/java/com/gzzn/omms/adminapi/controller/settings/UISettingsController.java +++ b/src/main/java/com/gzzn/omms/adminapi/controller/settings/UISettingsController.java @@ -8,7 +8,6 @@ import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; -import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,7 +21,9 @@ import org.springframework.web.bind.annotation.RestController; import com.alibaba.fastjson.JSONObject; import com.gzzn.omms.adminapi.domain.primary.dao.settings.UisettingsDao; +import com.gzzn.omms.adminapi.domain.primary.dao.settings.UisettingsDefaultDao; import com.gzzn.omms.adminapi.domain.primary.entity.settings.Uisettings; +import com.gzzn.omms.adminapi.domain.primary.entity.settings.UisettingsDefault; import com.gzzn.omms.adminapi.dto.OpLogSwitchDto; import com.gzzn.omms.adminapi.dto.ResponseDto; import com.gzzn.omms.adminapi.dto.settings.UisettingsDto; @@ -30,6 +31,7 @@ import com.gzzn.omms.adminapi.dto.settings.convert.UisettingsConvert; import com.gzzn.omms.adminapi.elasticsearch.CommCode; import com.gzzn.omms.adminapi.elasticsearch.ElasticsearchUtil; import com.gzzn.omms.adminapi.elasticsearch.UserOptLog; +import com.gzzn.omms.adminapi.enums.ResultCode; import com.gzzn.omms.adminapi.service.IOplogSwithcInfoService; import com.gzzn.omms.adminapi.service.IUserService; import com.gzzn.omms.adminapi.utils.CommonUtils; @@ -53,6 +55,11 @@ public class UISettingsController { */ @Autowired private UisettingsDao uisettingsDao; + /** + * UI默认设置接口 + */ + @Autowired + private UisettingsDefaultDao uisettingsDefaultDao; /** * UI设置Dto接口 */ @@ -80,27 +87,47 @@ public class UISettingsController { @RequestParam(required=false) String groupCode) { List uisettingsList = new ArrayList(); + List uisettingsDefaultList = new ArrayList(); if(!StringUtils.isEmpty(envCode) && !StringUtils.isEmpty(groupCode)){ //包括envCode、groupCode条件 uisettingsList = uisettingsDao.findByEnvCodeAndGroupCodeAndUserid(envCode,groupCode,userService.getCurrentUserId()); + if(null==uisettingsList){ //用户未设置则查找默认的设置 + uisettingsDefaultList = uisettingsDefaultDao.findByEnvCodeAndGroupCode(envCode,groupCode); + } }else if(StringUtils.isEmpty(envCode) && StringUtils.isEmpty(groupCode)){ uisettingsList = uisettingsDao.findByUserid(userService.getCurrentUserId()); + if(null==uisettingsList){ //用户未设置则查找默认的设置 + uisettingsDefaultList = (List) uisettingsDefaultDao.findAll(); + } }else{ if (!StringUtils.isEmpty(envCode) && StringUtils.isEmpty(groupCode)) { //envCode条件s uisettingsList = uisettingsDao.findByEnvCodeAndUserid(envCode,userService.getCurrentUserId()); + if(null==uisettingsList){ //用户未设置则查找默认的设置 + uisettingsDefaultList = uisettingsDefaultDao.findByEnvCode(envCode); + } } if (StringUtils.isEmpty(envCode) && !StringUtils.isEmpty(groupCode)) { //groupCode条件 uisettingsList = uisettingsDao.findByGroupCodeAndUserid(groupCode,userService.getCurrentUserId()); + if(null==uisettingsList){ //用户未设置则查找默认的设置 + uisettingsDefaultList = uisettingsDefaultDao.findByGroupCode(groupCode); + } } } //转换dto - List uisettingsListDto = uisettingsList.stream().map(x -> { - UisettingsDto dto = uisettingsConvert.uisettingsToUisettingsDto(x); - return dto; - }).collect(Collectors.toList()); + List uisettingsListDto = new ArrayList(); + if(null!=uisettingsList && uisettingsList.size()>0){ + for(Uisettings u:uisettingsList){ + uisettingsListDto.add(uisettingsConvert.uisettingsToUisettingsDto(u)); + } + } + if(null!=uisettingsDefaultList && uisettingsDefaultList.size()>0){ + for(UisettingsDefault ud:uisettingsDefaultList){ + uisettingsListDto.add(uisettingsConvert.uisettingsDefaultToUisettingsDto(ud)); + } + } return ResponseDto.success(uisettingsListDto); } @@ -114,20 +141,26 @@ public class UISettingsController { @PostMapping(value="/settings/uisettings") public ResponseDto saveUISettings(@RequestBody UisettingsDto uisettingsDto) { + if(StringUtils.isEmpty(uisettingsDto.getGroupCode())){ + return ResponseDto.failure(ResultCode.PARAM_NOT_COMPLETE, "分组Code不能为空"); + } //Dto转实体类 Uisettings uisettings = uisettingsConvert.uisettingsDtoToUisettings(uisettingsDto); Uisettings oldUisettings = null; String optType = CommCode.LOG_OPT_TYPE_ADD; String oldData = "无"; + //一个用户只能拥有一套UI 通过用户id 和 groupCode 获取旧的数据 if(!StringUtils.isEmpty(uisettings.getId())){ - oldUisettings = uisettingsDao.findById(uisettings.getId()); + oldUisettings = uisettingsDao.findOneByGroupCodeAndUserid(uisettingsDto.getGroupCode(), userService.getCurrentUserId()); } if(null==oldUisettings) { uisettings.setId(CommonUtils.getUUID32()); //uuid自动生成 }else{ + uisettings.setId(oldUisettings.getId()); + oldData = JsonUtil.getString(oldUisettings); optType = CommCode.LOG_OPT_TYPE_UPDATE; } diff --git a/src/main/java/com/gzzn/omms/adminapi/domain/primary/dao/settings/UisettingsDao.java b/src/main/java/com/gzzn/omms/adminapi/domain/primary/dao/settings/UisettingsDao.java index 05113a9..a843769 100644 --- a/src/main/java/com/gzzn/omms/adminapi/domain/primary/dao/settings/UisettingsDao.java +++ b/src/main/java/com/gzzn/omms/adminapi/domain/primary/dao/settings/UisettingsDao.java @@ -26,6 +26,7 @@ public interface UisettingsDao extends CrudRepository{ //根据条件goupCode、userid查询 List findByGroupCodeAndUserid(String goupCode,String userid); + Uisettings findOneByGroupCodeAndUserid(String goupCode,String userid); //保存 Uisettings save(Uisettings uisettings); diff --git a/src/main/java/com/gzzn/omms/adminapi/domain/primary/dao/settings/UisettingsDefaultDao.java b/src/main/java/com/gzzn/omms/adminapi/domain/primary/dao/settings/UisettingsDefaultDao.java new file mode 100644 index 0000000..49af74d --- /dev/null +++ b/src/main/java/com/gzzn/omms/adminapi/domain/primary/dao/settings/UisettingsDefaultDao.java @@ -0,0 +1,20 @@ +package com.gzzn.omms.adminapi.domain.primary.dao.settings; + +import java.util.List; + +import org.springframework.data.repository.CrudRepository; + +import com.gzzn.omms.adminapi.domain.primary.entity.settings.UisettingsDefault; + +public interface UisettingsDefaultDao extends CrudRepository{ + + //根据条件envCode、goupCode查询 + List findByEnvCodeAndGroupCode(String envCode,String goupCode); + + //根据条件envCode查询 + List findByEnvCode(String envCode); + + //根据条件goupCode查询 + List findByGroupCode(String goupCode); + +} \ No newline at end of file diff --git a/src/main/java/com/gzzn/omms/adminapi/dto/settings/UisettingsDto.java b/src/main/java/com/gzzn/omms/adminapi/dto/settings/UisettingsDto.java index 76fdaa7..292f876 100644 --- a/src/main/java/com/gzzn/omms/adminapi/dto/settings/UisettingsDto.java +++ b/src/main/java/com/gzzn/omms/adminapi/dto/settings/UisettingsDto.java @@ -5,11 +5,11 @@ import io.swagger.annotations.ApiModelProperty; @ApiModel(value="UisettingsDto",description="UI设置Dto") public class UisettingsDto { - - @ApiModelProperty(value="UI的主键id:存在则进行修改 否则 进行新增",example="1") - private String id; - @ApiModelProperty(value="用户id",example="1") - private String userid; +// 一个用户只有一套默认设置 不给予用户显示 +// @ApiModelProperty(value="UI的主键id:存在则进行修改 否则 进行新增",example="1") +// private String id; +// @ApiModelProperty(value="用户id",example="1") +// private String userid; @ApiModelProperty(value="环境Code",example="web") private String envCode; @@ -19,8 +19,7 @@ public class UisettingsDto { @ApiModelProperty(value="设置的具体内容json串",example="{\"key1\": \"value1\",\"key2\": \"value2\"}") private String settingContent; - - + public String getEnvCode() { return envCode; } @@ -44,22 +43,4 @@ public class UisettingsDto { public void setSettingContent(String settingContent) { this.settingContent = settingContent; } - - public String getUserid() { - return userid; - } - - public void setUserid(String userid) { - this.userid = userid; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - } diff --git a/src/main/java/com/gzzn/omms/adminapi/dto/settings/convert/UisettingsConvert.java b/src/main/java/com/gzzn/omms/adminapi/dto/settings/convert/UisettingsConvert.java index 5d92123..f0e0cae 100644 --- a/src/main/java/com/gzzn/omms/adminapi/dto/settings/convert/UisettingsConvert.java +++ b/src/main/java/com/gzzn/omms/adminapi/dto/settings/convert/UisettingsConvert.java @@ -1,7 +1,9 @@ package com.gzzn.omms.adminapi.dto.settings.convert; import org.mapstruct.Mapper; + import com.gzzn.omms.adminapi.domain.primary.entity.settings.Uisettings; +import com.gzzn.omms.adminapi.domain.primary.entity.settings.UisettingsDefault; import com.gzzn.omms.adminapi.dto.settings.UisettingsDto; @Mapper(componentModel="spring") @@ -10,4 +12,7 @@ public interface UisettingsConvert { public UisettingsDto uisettingsToUisettingsDto(Uisettings uisettings); //Dto转实体类 public Uisettings uisettingsDtoToUisettings(UisettingsDto uisettingsDto); + + //实体类转Dto + public UisettingsDto uisettingsDefaultToUisettingsDto(UisettingsDefault uisettingsDefault); }