用户只有一套UI,当用户查询UI没有时 则从默认中获取UI

This commit is contained in:
fanghongchao
2018-12-13 15:44:32 +08:00
parent 3ea63e3e17
commit d80396d272
5 changed files with 71 additions and 31 deletions
@@ -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<Uisettings> uisettingsList = new ArrayList<Uisettings>();
List<UisettingsDefault> uisettingsDefaultList = new ArrayList<UisettingsDefault>();
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<UisettingsDefault>) 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<UisettingsDto> uisettingsListDto = uisettingsList.stream().map(x -> {
UisettingsDto dto = uisettingsConvert.uisettingsToUisettingsDto(x);
return dto;
}).collect(Collectors.toList());
List<UisettingsDto> uisettingsListDto = new ArrayList<UisettingsDto>();
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<String> 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;
}
@@ -26,6 +26,7 @@ public interface UisettingsDao extends CrudRepository<Uisettings,String>{
//根据条件goupCode、userid查询
List<Uisettings> findByGroupCodeAndUserid(String goupCode,String userid);
Uisettings findOneByGroupCodeAndUserid(String goupCode,String userid);
//保存
Uisettings save(Uisettings uisettings);
@@ -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<UisettingsDefault,String>{
//根据条件envCode、goupCode查询
List<UisettingsDefault> findByEnvCodeAndGroupCode(String envCode,String goupCode);
//根据条件envCode查询
List<UisettingsDefault> findByEnvCode(String envCode);
//根据条件goupCode查询
List<UisettingsDefault> findByGroupCode(String goupCode);
}
@@ -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;
}
}
@@ -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);
}