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