Commit 62cedbf9 authored by 廖旭伟's avatar 廖旭伟

增加数据管理模块

parent ccfd59ee
package com.mortals.xhx.base.framework.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.AntPathMatcher;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
AntPathMatcher matcher = new AntPathMatcher();
matcher.setCaseSensitive(false);
configurer.setPathMatcher(matcher);
}
}
...@@ -9,7 +9,7 @@ import java.util.Map; ...@@ -9,7 +9,7 @@ import java.util.Map;
/** /**
* 系统应用状态 * 系统应用状态
*/ */
public enum AppStatusEnum implements IBaseEnum { public enum ModelCensusStatus implements IBaseEnum {
NOT_OPENED(0,"暂未开通", SysConstains.STYLE_DEFAULT), NOT_OPENED(0,"暂未开通", SysConstains.STYLE_DEFAULT),
OPENED(1,"已开通", SysConstains.STYLE_DEFAULT), OPENED(1,"已开通", SysConstains.STYLE_DEFAULT),
; ;
...@@ -17,7 +17,7 @@ public enum AppStatusEnum implements IBaseEnum { ...@@ -17,7 +17,7 @@ public enum AppStatusEnum implements IBaseEnum {
private String desc; private String desc;
private String style; private String style;
AppStatusEnum(int value, String desc, String style) { ModelCensusStatus(int value, String desc, String style) {
this.value = value; this.value = value;
this.desc = desc; this.desc = desc;
this.style = style; this.style = style;
...@@ -38,8 +38,8 @@ public enum AppStatusEnum implements IBaseEnum { ...@@ -38,8 +38,8 @@ public enum AppStatusEnum implements IBaseEnum {
return this.style; return this.style;
} }
public static AppStatusEnum getByValue(int value) { public static ModelCensusStatus getByValue(int value) {
for (AppStatusEnum e : AppStatusEnum.values()) { for (ModelCensusStatus e : ModelCensusStatus.values()) {
if (e.getValue() == value) { if (e.getValue() == value) {
return e; return e;
} }
...@@ -49,7 +49,7 @@ public enum AppStatusEnum implements IBaseEnum { ...@@ -49,7 +49,7 @@ public enum AppStatusEnum implements IBaseEnum {
public static Map<String,String> getEnumMap(int... eItem) { public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>(); Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (AppStatusEnum item : AppStatusEnum.values()) { for (ModelCensusStatus item : ModelCensusStatus.values()) {
try{ try{
boolean hasE = false; boolean hasE = false;
for (int e : eItem){ for (int e : eItem){
......
...@@ -9,7 +9,7 @@ import java.util.Map; ...@@ -9,7 +9,7 @@ import java.util.Map;
/** /**
* 应用数据统计类型 * 应用数据统计类型
*/ */
public enum AppCensusType implements IBaseEnum { public enum ModelCensusType implements IBaseEnum {
FU_WU(1,"聚焦服务", SysConstains.STYLE_DEFAULT), FU_WU(1,"聚焦服务", SysConstains.STYLE_DEFAULT),
XIE_TONG(2,"聚焦协同", SysConstains.STYLE_DEFAULT), XIE_TONG(2,"聚焦协同", SysConstains.STYLE_DEFAULT),
JIAN_GUAN(3,"聚焦监管", SysConstains.STYLE_DEFAULT), JIAN_GUAN(3,"聚焦监管", SysConstains.STYLE_DEFAULT),
...@@ -20,7 +20,7 @@ public enum AppCensusType implements IBaseEnum { ...@@ -20,7 +20,7 @@ public enum AppCensusType implements IBaseEnum {
private String desc; private String desc;
private String style; private String style;
AppCensusType(int value, String desc, String style) { ModelCensusType(int value, String desc, String style) {
this.value = value; this.value = value;
this.desc = desc; this.desc = desc;
this.style = style; this.style = style;
...@@ -41,8 +41,8 @@ public enum AppCensusType implements IBaseEnum { ...@@ -41,8 +41,8 @@ public enum AppCensusType implements IBaseEnum {
return this.style; return this.style;
} }
public static AppCensusType getByValue(int value) { public static ModelCensusType getByValue(int value) {
for (AppCensusType e : AppCensusType.values()) { for (ModelCensusType e : ModelCensusType.values()) {
if (e.getValue() == value) { if (e.getValue() == value) {
return e; return e;
} }
...@@ -52,7 +52,7 @@ public enum AppCensusType implements IBaseEnum { ...@@ -52,7 +52,7 @@ public enum AppCensusType implements IBaseEnum {
public static Map<String,String> getEnumMap(int... eItem) { public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>(); Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (AppCensusType item : AppCensusType.values()) { for (ModelCensusType item : ModelCensusType.values()) {
try{ try{
boolean hasE = false; boolean hasE = false;
for (int e : eItem){ for (int e : eItem){
......
package com.mortals.xhx.module.model.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.model.model.ModelCensusEntity;
import java.util.List;
/**
* 模块下的数据统计Dao
* 模块下的数据统计 DAO接口
*
* @author zxfei
* @date 2022-07-05
*/
public interface ModelCensusDao extends ICRUDDao<ModelCensusEntity,Long>{
}
package com.mortals.xhx.module.model.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.model.dao.ModelCensusDao;
import com.mortals.xhx.module.model.model.ModelCensusEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 模块下的数据统计DaoImpl DAO接口
*
* @author zxfei
* @date 2022-07-05
*/
@Repository("modelCensusDao")
public class ModelCensusDaoImpl extends BaseCRUDDaoMybatis<ModelCensusEntity,Long> implements ModelCensusDao {
}
package com.mortals.xhx.module.model.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.model.model.vo.ModelCensusVo;
/**
* 模块下的数据统计实体对象
*
* @author zxfei
* @date 2022-07-05
*/
public class ModelCensusEntity extends ModelCensusVo {
private static final long serialVersionUID = 1L;
/**
* 模块ID,主键
*/
private Long modelId;
/**
* 数据统计名称
*/
private String censusName;
/**
* 链接地址
*/
private String censusUrl;
/**
* 统计类型, 1:服务,2:协同,3:监管,4:数据,5:运营。默认1
*/
private Integer censusType;
/**
* 状态,0暂未开通,1已开通
*/
private Integer status;
/**
* 创建用户名称
*/
private String createUserName;
/**
* 更新用户名称
*/
private String updateUserName;
public ModelCensusEntity(){}
/**
* 获取 模块ID,主键
* @return Long
*/
public Long getModelId(){
return modelId;
}
/**
* 设置 模块ID,主键
* @param modelId
*/
public void setModelId(Long modelId){
this.modelId = modelId;
}
/**
* 获取 数据统计名称
* @return String
*/
public String getCensusName(){
return censusName;
}
/**
* 设置 数据统计名称
* @param censusName
*/
public void setCensusName(String censusName){
this.censusName = censusName;
}
/**
* 获取 链接地址
* @return String
*/
public String getCensusUrl(){
return censusUrl;
}
/**
* 设置 链接地址
* @param censusUrl
*/
public void setCensusUrl(String censusUrl){
this.censusUrl = censusUrl;
}
/**
* 获取 统计类型, 1:服务,2:协同,3:监管,4:数据,5:运营。默认1
* @return Integer
*/
public Integer getCensusType(){
return censusType;
}
/**
* 设置 统计类型, 1:服务,2:协同,3:监管,4:数据,5:运营。默认1
* @param censusType
*/
public void setCensusType(Integer censusType){
this.censusType = censusType;
}
/**
* 获取 状态,0暂未开通,1已开通
* @return Integer
*/
public Integer getStatus(){
return status;
}
/**
* 设置 状态,0暂未开通,1已开通
* @param status
*/
public void setStatus(Integer status){
this.status = status;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
/**
* 获取 更新用户名称
* @return String
*/
public String getUpdateUserName(){
return updateUserName;
}
/**
* 设置 更新用户名称
* @param updateUserName
*/
public void setUpdateUserName(String updateUserName){
this.updateUserName = updateUserName;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof ModelCensusEntity) {
ModelCensusEntity tmp = (ModelCensusEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",modelId:").append(getModelId());
sb.append(",censusName:").append(getCensusName());
sb.append(",censusUrl:").append(getCensusUrl());
sb.append(",censusType:").append(getCensusType());
sb.append(",status:").append(getStatus());
sb.append(",createUserName:").append(getCreateUserName());
sb.append(",updateUserName:").append(getUpdateUserName());
return sb.toString();
}
public void initAttrValue(){
this.modelId = null;
this.censusName = "";
this.censusUrl = "";
this.censusType = 1;
this.status = 0;
this.createUserName = "";
this.updateUserName = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.model.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.model.model.ModelCensusEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 模块下的数据统计视图对象
*
* @author zxfei
* @date 2022-07-05
*/
@Data
public class ModelCensusVo extends BaseEntityLong {
/**
* 统计类型, 1:服务,2:协同,3:监管,4:数据,5:运营。默认1
*/
private String censusTypeName;
/**
* 状态,0暂未开通,1已开通
*/
private String statusName;
}
\ No newline at end of file
package com.mortals.xhx.module.model.model.vo; package com.mortals.xhx.module.model.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.model.model.ModelCensusEntity;
import com.mortals.xhx.module.model.model.ModelEntity; import com.mortals.xhx.module.model.model.ModelEntity;
import lombok.Data; import lombok.Data;
...@@ -14,4 +15,7 @@ import java.util.List; ...@@ -14,4 +15,7 @@ import java.util.List;
@Data @Data
public class ModelVo extends BaseEntityLong { public class ModelVo extends BaseEntityLong {
private Long siteId;
/** 模块下包含的数据统计 */
private List<ModelCensusEntity> censusList;
} }
\ No newline at end of file
package com.mortals.xhx.module.model.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.model.model.ModelCensusEntity;
import java.util.List;
/**
* ModelCensusService
*
* 模块下的数据统计 service接口
*
* @author zxfei
* @date 2022-07-05
*/
public interface ModelCensusService extends ICRUDService<ModelCensusEntity,Long>{
List<ModelCensusEntity> getModelCensusList(Long modelId);
/**
* 获取站点下的所有模块
* @param siteId
* @return
* @throws AppException
*/
List<ModelCensusEntity> getListBySiteId(Long siteId) throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.model.service; package com.mortals.xhx.module.model.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.model.model.ModelEntity; import com.mortals.xhx.module.model.model.ModelEntity;
import com.mortals.xhx.module.model.model.ModelQuery;
import java.util.List;
/** /**
* ModelService * ModelService
* *
...@@ -11,4 +17,20 @@ import com.mortals.xhx.module.model.model.ModelEntity; ...@@ -11,4 +17,20 @@ import com.mortals.xhx.module.model.model.ModelEntity;
*/ */
public interface ModelService extends ICRUDService<ModelEntity,Long>{ public interface ModelService extends ICRUDService<ModelEntity,Long>{
/**
* 包含模块下的数据统计
* @param params
* @param context
* @return
* @throws AppException
*/
List<ModelEntity> getListAllInfo(ModelQuery params, Context context) throws AppException;
/**
* 获取站点下的所有模块
* @param siteId
* @return
* @throws AppException
*/
List<ModelEntity> getListBySiteId(Long siteId) throws AppException;
} }
\ No newline at end of file
package com.mortals.xhx.module.model.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.common.code.ModelCensusStatus;
import com.mortals.xhx.common.code.ModelCensusType;
import com.mortals.xhx.module.model.model.ModelCensusQuery;
import com.mortals.xhx.module.model.model.ModelEntity;
import com.mortals.xhx.module.model.model.ModelQuery;
import com.mortals.xhx.module.model.service.ModelService;
import com.mortals.xhx.module.site.model.SiteEntity;
import com.mortals.xhx.module.site.service.SiteService;
import io.sentry.protocol.App;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.model.dao.ModelCensusDao;
import com.mortals.xhx.module.model.model.ModelCensusEntity;
import com.mortals.xhx.module.model.service.ModelCensusService;
import java.util.*;
import java.util.stream.Collectors;
/**
* ModelCensusService
* 模块下的数据统计 service实现
*
* @author zxfei
* @date 2022-07-05
*/
@Service("modelCensusService")
public class ModelCensusServiceImpl extends AbstractCRUDServiceImpl<ModelCensusDao, ModelCensusEntity, Long> implements ModelCensusService {
@Autowired
private SiteService siteService;
@Autowired
private ModelService modelService;
@Override
protected void findAfter(ModelCensusEntity entity, Context context, List<ModelCensusEntity> list) throws AppException {
setInfo(list);
}
@Override
public List<ModelCensusEntity> getModelCensusList(Long modelId) {
Map<String, Object> condition = new HashMap<>();
condition.put("modelId",modelId);
List<ModelCensusEntity> list = this.dao.getList(condition);
setInfo(list);
return list;
}
@Override
public List<ModelCensusEntity> getListBySiteId(Long siteId) throws AppException {
if(siteId==null || siteId==0){
return Collections.emptyList();
}
SiteEntity siteEntity = siteService.get(siteId);
if(siteEntity!=null){
List<String> modelIds = StringUtils.converStr2List(siteEntity.getModelIds());
List<Long> ids = modelIds.stream().map(s -> DataUtil.converStr2Long(s.trim(),0)).collect(Collectors.toList());
if(ids.isEmpty()){
ids.add(0l);
}
ModelCensusQuery censusQuery = new ModelCensusQuery();
censusQuery.setModelIdList(ids);
List<ModelCensusEntity> modelCensusEntityList = this.find(censusQuery);
return modelCensusEntityList;
}else {
return Collections.emptyList();
}
}
@Override
protected void validData(ModelCensusEntity entity, Context context) throws AppException {
if(entity.getModelId()==null){
throw new AppException("模块ID不能为空");
}
if(StringUtils.isEmpty(entity.getCensusName())){
throw new AppException("数据统计名称不能为空");
}
if(entity.getStatus()==null){
throw new AppException("开通状态不能为空");
}
if(entity.getCensusType()==null){
throw new AppException("所属类型不能为空");
}
}
private void setInfo(List<ModelCensusEntity> list){
if(CollectionUtils.isNotEmpty(list)) {
list.stream().forEach(item -> {
ModelCensusStatus status = ModelCensusStatus.getByValue(item.getStatus());
item.setStatusName(status != null ? status.getDesc() : "");
ModelCensusType type = ModelCensusType.getByValue(item.getCensusType());
item.setCensusTypeName(type != null ? type.getDesc() : "");
});
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.model.service.impl; package com.mortals.xhx.module.model.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.model.model.ModelCensusEntity;
import com.mortals.xhx.module.model.model.ModelQuery;
import com.mortals.xhx.module.model.service.ModelCensusService;
import com.mortals.xhx.module.site.model.SiteEntity;
import com.mortals.xhx.module.site.service.SiteService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.model.dao.ModelDao; import com.mortals.xhx.module.model.dao.ModelDao;
import com.mortals.xhx.module.model.model.ModelEntity; import com.mortals.xhx.module.model.model.ModelEntity;
import com.mortals.xhx.module.model.service.ModelService; import com.mortals.xhx.module.model.service.ModelService;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* ModelService * ModelService
* 模块 service实现 * 模块 service实现
...@@ -13,5 +29,42 @@ import com.mortals.xhx.module.model.service.ModelService; ...@@ -13,5 +29,42 @@ import com.mortals.xhx.module.model.service.ModelService;
*/ */
@Service("modelService") @Service("modelService")
public class ModelServiceImpl extends AbstractCRUDServiceImpl<ModelDao, ModelEntity, Long> implements ModelService { public class ModelServiceImpl extends AbstractCRUDServiceImpl<ModelDao, ModelEntity, Long> implements ModelService {
@Autowired
private ModelCensusService modelCensusService;
@Autowired
private SiteService siteService;
@Override
public List<ModelEntity> getListAllInfo(ModelQuery params, Context context) throws AppException {
List<ModelEntity> list = this.dao.getList(params);
if(CollectionUtils.isNotEmpty(list)){
list.stream().forEach(item->{
List<ModelCensusEntity> censusList = modelCensusService.getModelCensusList(item.getId());
item.setCensusList(censusList);
});
}
return list;
}
@Override
public List<ModelEntity> getListBySiteId(Long siteId) throws AppException {
if(siteId==null || siteId==0){
return Collections.emptyList();
}
SiteEntity siteEntity = siteService.get(siteId);
if(siteEntity!=null){
List<String> modelIds = StringUtils.converStr2List(siteEntity.getModelIds());
List<Long> ids = modelIds.stream().map(s -> DataUtil.converStr2Long(s.trim(),0)).collect(Collectors.toList());
if(ids.isEmpty()){
ids.add(0l);
}
ModelQuery modelQuery = new ModelQuery();
modelQuery.setIdList(ids);
List<ModelEntity> modelEntityList = this.find(modelQuery);
return modelEntityList;
}else {
return Collections.emptyList();
}
}
} }
\ No newline at end of file
package com.mortals.xhx.module.model.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.common.Rest;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.code.ModelCensusStatus;
import com.mortals.xhx.common.code.ModelCensusType;
import com.mortals.xhx.module.model.model.ModelEntity;
import com.mortals.xhx.module.model.model.ModelQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.model.model.ModelCensusEntity;
import com.mortals.xhx.module.model.model.ModelCensusQuery;
import com.mortals.xhx.module.model.service.ModelCensusService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 模块下的数据统计
*
* @author zxfei
* @date 2022-07-05
*/
@RestController
@RequestMapping("model/census")
public class ModelCensusController extends BaseCRUDJsonBodyMappingController<ModelCensusService,ModelCensusEntity,Long> {
@Autowired
private ParamService paramService;
public ModelCensusController(){
super.setModuleDesc( "模块下的数据统计");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "censusType", IBaseEnum.getEnumMap(ModelCensusType.class));
this.addDict(model, "status", IBaseEnum.getEnumMap(ModelCensusStatus.class));
super.init(model, context);
}
/**
* 条件查询,无分页信息
* @param query
* @return
*/
@PostMapping({"list/noPage"})
@UnAuth
public Rest<Object> getList(@RequestBody ModelCensusQuery query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "查询" + this.getModuleDesc();
int code=1;
try {
List<ModelCensusEntity> result = this.getService().find(query, context);
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
this.init(model, context);
ret.setCode(code);
ret.setData(model);
ret.setDict(model.remove("dict"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
/**
* 条件查询,无分页信息
* @param query
* @return
*/
@PostMapping({"list/bySite"})
@UnAuth
public Rest<Object> getListBySite(@RequestBody ModelQuery query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "查询" + this.getModuleDesc();
int code=1;
try {
List<ModelCensusEntity> result = this.getService().getListBySiteId(query.getSiteId());
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
this.init(model, context);
ret.setCode(code);
ret.setData(model);
ret.setDict(model.remove("dict"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
}
\ No newline at end of file
package com.mortals.xhx.module.model.web; package com.mortals.xhx.module.model.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol; import com.mortals.framework.model.OrderCol;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
...@@ -11,10 +15,14 @@ import com.mortals.xhx.module.model.model.ModelQuery; ...@@ -11,10 +15,14 @@ import com.mortals.xhx.module.model.model.ModelQuery;
import com.mortals.xhx.module.model.service.ModelService; import com.mortals.xhx.module.model.service.ModelService;
import com.mortals.xhx.module.window.model.WindowMatterEntity; import com.mortals.xhx.module.window.model.WindowMatterEntity;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -51,5 +59,96 @@ public class ModelController extends BaseCRUDJsonBodyMappingController<ModelServ ...@@ -51,5 +59,96 @@ public class ModelController extends BaseCRUDJsonBodyMappingController<ModelServ
super.init(model, context); super.init(model, context);
} }
/**
* 条件查询,无分页信息
* @param query
* @return
*/
@PostMapping({"list/noPage"})
@UnAuth
public Rest<Object> getList(@RequestBody ModelQuery query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "查询" + this.getModuleDesc();
int code=1;
try {
List<ModelEntity> result = this.getService().find(query, context);
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
this.init(model, context);
ret.setCode(code);
ret.setData(model);
ret.setDict(model.remove("dict"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
/***
* 包含模块下的数据统计
* @param query
* @return
*/
@PostMapping({"list/allInfo"})
@UnAuth
public Rest<Object> getListAllInfo(@RequestBody ModelQuery query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "查询" + this.getModuleDesc();
int code=1;
try {
List<ModelEntity> result = this.getService().getListAllInfo(query, context);
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
this.init(model, context);
ret.setCode(code);
ret.setData(model);
ret.setDict(model.remove("dict"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
/**
* 通过站点查询
* @param query
* @return
*/
@PostMapping({"list/bySite"})
@UnAuth
public Rest<Object> getListBySite(@RequestBody ModelEntity query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "查询" + this.getModuleDesc();
int code=1;
try {
List<ModelEntity> result = this.getService().getListBySiteId(query.getSiteId());
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
this.init(model, context);
ret.setCode(code);
ret.setData(model);
ret.setDict(model.remove("dict"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
} }
\ No newline at end of file
package com.mortals.xhx.module.site.model.vo;
import com.mortals.xhx.module.model.model.ModelEntity;
import com.mortals.xhx.module.site.model.SiteEntity;
import lombok.Data;
import java.util.List;
/**
* 站点完整信息
*/
@Data
public class SitAllInfoVO extends SiteEntity {
}
package com.mortals.xhx.module.site.model.vo; package com.mortals.xhx.module.site.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.model.model.ModelEntity;
import com.mortals.xhx.module.site.model.SiteEntity; import com.mortals.xhx.module.site.model.SiteEntity;
import lombok.Data; import lombok.Data;
...@@ -13,5 +14,8 @@ import java.util.List; ...@@ -13,5 +14,8 @@ import java.util.List;
*/ */
@Data @Data
public class SiteVo extends BaseEntityLong { public class SiteVo extends BaseEntityLong {
private List<Long> idList; private List<Long> idList;
/** 站点包含的模块 */
private List<ModelEntity> modelList;
} }
\ No newline at end of file
package com.mortals.xhx.module.site.service; package com.mortals.xhx.module.site.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDCacheService; import com.mortals.framework.service.ICRUDCacheService;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.area.model.AreaEntity; import com.mortals.xhx.module.area.model.AreaEntity;
import com.mortals.xhx.module.area.model.AreaTreeSelect; import com.mortals.xhx.module.area.model.AreaTreeSelect;
import com.mortals.xhx.module.site.model.SiteEntity; import com.mortals.xhx.module.site.model.SiteEntity;
import com.mortals.xhx.module.site.model.SiteQuery;
import com.mortals.xhx.module.site.model.SiteTreeSelect; import com.mortals.xhx.module.site.model.SiteTreeSelect;
import java.util.List; import java.util.List;
...@@ -50,5 +52,7 @@ public interface SiteService extends ICRUDCacheService<SiteEntity, Long> { ...@@ -50,5 +52,7 @@ public interface SiteService extends ICRUDCacheService<SiteEntity, Long> {
void setSiteTree(List<SiteTreeSelect> list, Context context); void setSiteTree(List<SiteTreeSelect> list, Context context);
List<SiteEntity> getListAllInfoByQuery(SiteQuery query,Context context) throws AppException;
} }
\ No newline at end of file
...@@ -11,10 +11,14 @@ import com.mortals.xhx.module.area.model.AreaEntity; ...@@ -11,10 +11,14 @@ import com.mortals.xhx.module.area.model.AreaEntity;
import com.mortals.xhx.module.area.model.AreaQuery; import com.mortals.xhx.module.area.model.AreaQuery;
import com.mortals.xhx.module.area.model.AreaTreeSelect; import com.mortals.xhx.module.area.model.AreaTreeSelect;
import com.mortals.xhx.module.area.service.AreaService; import com.mortals.xhx.module.area.service.AreaService;
import com.mortals.xhx.module.model.model.ModelEntity;
import com.mortals.xhx.module.model.model.ModelQuery;
import com.mortals.xhx.module.model.service.ModelService;
import com.mortals.xhx.module.site.model.SiteQuery; import com.mortals.xhx.module.site.model.SiteQuery;
import com.mortals.xhx.module.site.model.SiteTreeSelect; import com.mortals.xhx.module.site.model.SiteTreeSelect;
import lombok.Getter; import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
...@@ -45,6 +49,8 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE ...@@ -45,6 +49,8 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
@Autowired @Autowired
private AreaService areaService; private AreaService areaService;
@Autowired
private ModelService modelService;
@Override @Override
protected void validData(SiteEntity entity, Context context) throws AppException { protected void validData(SiteEntity entity, Context context) throws AppException {
...@@ -235,4 +241,25 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE ...@@ -235,4 +241,25 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
public void setSiteTree(List<SiteTreeSelect> list, Context context) { public void setSiteTree(List<SiteTreeSelect> list, Context context) {
siteTreeMap.put(context.getUser().getId(), list); siteTreeMap.put(context.getUser().getId(), list);
} }
@Override
public List<SiteEntity> getListAllInfoByQuery(SiteQuery query, Context context) throws AppException {
List<SiteEntity> list = this.find(query,context);
if(CollectionUtils.isNotEmpty(list)){
list.stream().forEach(item->{
ModelQuery modelQuery = new ModelQuery();
List<String> modelIds = StringUtils.converStr2List(item.getModelIds());
List<Long> ids = modelIds.stream().map(s -> DataUtil.converStr2Long(s.trim(),0)).collect(Collectors.toList());
if(ids.isEmpty()){
ids.add(0l);
}
modelQuery.setIdList(ids);
List<ModelEntity> modelEntityList = modelService.find(modelQuery);
item.setModelList(modelEntityList);
});
}
return list;
}
} }
\ No newline at end of file
...@@ -2,9 +2,13 @@ package com.mortals.xhx.module.site.web; ...@@ -2,9 +2,13 @@ package com.mortals.xhx.module.site.web;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth; import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.model.model.ModelEntity;
import com.mortals.xhx.module.model.model.ModelQuery; import com.mortals.xhx.module.model.model.ModelQuery;
import com.mortals.xhx.module.model.service.ModelService; import com.mortals.xhx.module.model.service.ModelService;
import com.mortals.xhx.module.site.model.SiteEntity; import com.mortals.xhx.module.site.model.SiteEntity;
...@@ -138,9 +142,64 @@ public class SiteController extends BaseCRUDJsonBodyMappingController<SiteServic ...@@ -138,9 +142,64 @@ public class SiteController extends BaseCRUDJsonBodyMappingController<SiteServic
return jsonObject.toJSONString(); return jsonObject.toJSONString();
} }
public static void main(String[] args) { /**
//深度克隆 * 条件查询,无分页信息
* @param query
* @return
*/
@PostMapping({"list/noPage"})
@UnAuth
public Rest<Object> getList(@RequestBody SiteQuery query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "查询" + this.getModuleDesc();
int code=1;
try {
List<SiteEntity> result = this.getService().find(query, context);
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
//this.init(model, context);
ret.setCode(code);
ret.setData(model);
//ret.setDict(model.remove("dict"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
//ObjectUtil.clone() /**
* 包含站点下面的模块以及模块下面的数据统计
* @param query
* @return
*/
@PostMapping({"list/allInfo"})
@UnAuth
public Rest<Object> list(@RequestBody SiteQuery query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "查询" + this.getModuleDesc();
int code=1;
try {
List<SiteEntity> result = this.getService().getListAllInfoByQuery(query, context);
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
this.init(model, context);
ret.setCode(code);
ret.setData(model);
ret.setDict(model.remove("dict"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
} }
} }
\ No newline at end of file
package com.mortals.xhx.common.pdu;
import lombok.Data;
import java.util.List;
@Data
public class ModelPdu {
private List<Long> idList;
private Long siteId;
}
package com.mortals.xhx.feign.model;
import com.alibaba.fastjson.JSON;
import com.mortals.xhx.common.code.ApiRespCodeEnum;
import com.mortals.xhx.common.pdu.ModelPdu;
import com.mortals.xhx.common.pdu.SitePdu;
import com.mortals.xhx.feign.IFeign;
import com.mortals.xhx.feign.model.vo.ModelCensusFeignVO;
import com.mortals.xhx.feign.model.vo.ModelFeignVO;
import com.mortals.xhx.feign.model.vo.SiteFeignVO;
import com.mortals.xhx.feign.rsp.ApiResp;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(name = "base-manager", path = "/zwfw", fallback = ModelFeignFallbackFactory.class)
public interface IApiModelFeign extends IFeign {
/**
* 根据条件查询站点列表
* @param query
* @return
*/
@PostMapping(value = "/site/list/noPage")
String getSitesByQuery(@RequestBody SitePdu query);
/**
* 根据条件查询站点列表
* @param query
* @return
*/
@PostMapping(value = "/site/list/allInfo")
ApiResp<List<SiteFeignVO>> getSitesAllInfoByQuery(@RequestBody SitePdu query);
/***
* 站点模块列表
* @param query
* @return
*/
@PostMapping(value = "model/list/noPage")
ApiResp<List<ModelFeignVO>> getModelByQuery(@RequestBody ModelPdu query);
/***
* 站点模块列表
* @param query
* @return
*/
@PostMapping(value = "model/list/bySite")
ApiResp<List<ModelFeignVO>> getModelBySiteId(@RequestBody ModelPdu query);
/***
* 站点模块列表
* @param query
* @return
*/
@PostMapping(value = "model/list/allInfo")
String getModelallInfo(@RequestBody ModelPdu query);
/***
* 站点模块数据统计列表
* @return
*/
@PostMapping(value = "model/census/list/noPage")
ApiResp<List<ModelCensusFeignVO>> getModelCensusByQuery(@RequestBody ModelPdu query);
@PostMapping(value = "model/census/list/bySite")
ApiResp<List<ModelCensusFeignVO>> getModelCensusBySiteId(@RequestBody ModelPdu query);
}
@Slf4j
@Component
class ModelFeignFallbackFactory implements FallbackFactory<IApiModelFeign> {
@Override
public IApiModelFeign create(Throwable throwable) {
return new IApiModelFeign() {
@Override
public String getSitesByQuery(SitePdu query) {
ApiResp<String> failResp = new ApiResp<>();
failResp.setCode(ApiRespCodeEnum.FAILED.getValue());
failResp.setMsg("暂时无法获取站点列表,请稍后再试!");
return JSON.toJSONString(failResp);
}
@Override
public ApiResp<List<ModelFeignVO>> getModelByQuery(ModelPdu query) {
ApiResp<List<ModelFeignVO>> failResp = new ApiResp<>();
failResp.setCode(ApiRespCodeEnum.FAILED.getValue());
failResp.setMsg("暂时无法获取站点模块列表,请稍后再试!");
return failResp;
}
@Override
public ApiResp<List<ModelFeignVO>> getModelBySiteId(ModelPdu query) {
ApiResp<List<ModelFeignVO>> failResp = new ApiResp<>();
failResp.setCode(ApiRespCodeEnum.FAILED.getValue());
failResp.setMsg("暂时无法获取站点模块列表,请稍后再试!");
return failResp;
}
@Override
public String getModelallInfo(ModelPdu query) {
ApiResp<String> failResp = new ApiResp<>();
failResp.setCode(ApiRespCodeEnum.FAILED.getValue());
failResp.setMsg("暂时无法获取站点模块列表,请稍后再试!");
return JSON.toJSONString(failResp);
}
@Override
public ApiResp<List<ModelCensusFeignVO>> getModelCensusByQuery(ModelPdu query) {
ApiResp<List<ModelCensusFeignVO>> failResp = new ApiResp<>();
failResp.setCode(ApiRespCodeEnum.FAILED.getValue());
failResp.setMsg("暂时无法获取站点模块数据统计列表,请稍后再试!");
return failResp;
}
@Override
public ApiResp<List<ModelCensusFeignVO>> getModelCensusBySiteId(ModelPdu query) {
ApiResp<List<ModelCensusFeignVO>> failResp = new ApiResp<>();
failResp.setCode(ApiRespCodeEnum.FAILED.getValue());
failResp.setMsg("暂时无法获取站点模块数据统计列表,请稍后再试!");
return failResp;
}
@Override
public ApiResp<List<SiteFeignVO>> getSitesAllInfoByQuery(SitePdu query) {
ApiResp<List<SiteFeignVO>> failResp = new ApiResp<>();
failResp.setCode(ApiRespCodeEnum.FAILED.getValue());
failResp.setMsg("暂时无法获取站点模块列表,请稍后再试!");
return failResp;
}
};
}
}
package com.mortals.xhx.feign.model.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class ModelCensusFeignVO implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
/**
* 模块ID,主键
*/
private Long modelId;
/**
* 数据统计名称
*/
private String censusName;
/**
* 链接地址
*/
private String censusUrl;
/**
* 统计类型, 1:服务,2:协同,3:监管,4:数据,5:运营。默认1
*/
private Integer censusType;
/**
* 状态,0暂未开通,1已开通
*/
private Integer status;
/**
* 创建用户名称
*/
private String createUserName;
/**
* 更新用户名称
*/
private String updateUserName;
/**
* 统计类型, 1:服务,2:协同,3:监管,4:数据,5:运营。默认1
*/
private String censusTypeName;
/**
* 状态,0暂未开通,1已开通
*/
private String statusName;
}
package com.mortals.xhx.feign.model.vo;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ModelFeignVO implements Serializable {
private static final long serialVersionUID = 123L;
private Long id;
/**
* 模块名称
*/
private String modelName;
/**
* 模块编码
*/
private String modelCode;
/**
* 模块图标
*/
private String modelIcon;
/**
* 模块地址
*/
private String modelUrl;
/**
* 备注信息
*/
private String remark;
/**
* 排序
*/
@JSONField(serialize = false)
private Integer sort;
/** 模块下包含的数据统计 */
private List<ModelCensusFeignVO> censusList;
}
package com.mortals.xhx.feign.model.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class SiteFeignVO implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
/**
* 站点名称
*/
private String siteName;
/**
* 站点编号
*/
private String siteCode;
/**
* 区域Id
*/
private String areaID;
/**
* 区域编号
*/
private String areaCode;
/**
* 区域名称
*/
private String areaName;
/**
* 省编码
*/
private String proCode;
/**
* 市编码
*/
private String cityCode;
/**
* 区编码
*/
private String districtCode;
/**
* 站点服务器ip
*/
private String siteIp;
/**
* 站点服务器端口
*/
private String sitePort;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
/**
* 中心联系电话
*/
private String siteTel;
/**
* 中心详细地址
*/
private String detailAddress;
/**
* 中心介绍
*/
private String siteRemark;
/**
* 上午上班开始时间
*/
private Date amWorkStartTime;
/**
* 上午上班结束时间
*/
private Date amWorkEndTime;
/**
* 下午上班开始时间
*/
private Date pmWorkStartTime;
/**
* 下午上班结束时间
*/
private Date pmWorkEndTime;
/**
* 周一 (1.上班,0.不上)
*/
private Integer workday1;
/**
* 周二 (1.上班,0.不上)
*/
private Integer workday2;
/**
* 周三 (1.上班,0.不上)
*/
private Integer workday3;
/**
* 周四 (1.上班,0.不上)
*/
private Integer workday4;
/**
* 周五 (1.上班,0.不上)
*/
private Integer workday5;
/**
* 周六 (1.上班,0.不上)
*/
private Integer workday6;
/**
* 周日 (1.上班,0.不上)
*/
private Integer workday7;
/**
* 楼层
*/
private Integer level;
/**
* 楼栋
*/
private Integer building;
/**
* 部署模块,逗号分隔
*/
private String modelIds;
/** 站点包含的模块 */
private List<ModelFeignVO> modelList;
}
package com.mortals.xhx.module.menu.model.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Data
public class MenuNodeVO implements Serializable {
private static final long serialVersionUID = 169L;
private String nodeName;
private Long nodeId;
private Long parentId;
private List<MenuNodeVO> childList;
public MenuNodeVO(String nodeName, Long nodeId, Long parentId) {
this.nodeName = nodeName;
this.nodeId = nodeId;
this.parentId = parentId;
}
public void addChild(MenuNodeVO node){
if (childList==null){
childList =new ArrayList<>();
}
childList.add(node);
}
@Override
public String toString() {
return "MenuNodeVO{" +
"nodeName='" + nodeName + '\'' +
", nodeId=" + nodeId +
", parentId=" + parentId +
", childList=" + childList +
'}';
}
}
package com.mortals.xhx.module.model;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseJsonBodyController;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.pdu.ModelPdu;
import com.mortals.xhx.feign.model.IApiModelFeign;
import com.mortals.xhx.feign.model.vo.ModelCensusFeignVO;
import com.mortals.xhx.feign.model.vo.ModelFeignVO;
import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.module.role.service.RoleModelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RestController
@RequestMapping("site/model")
public class ModelController extends BaseJsonBodyController {
@Autowired
private IApiModelFeign apiModelFeign;
@Autowired
private RoleModelService roleModelService;
/**
* 获取所有模块列表
* @return
*/
@PostMapping({"list/all"})
@UnAuth
public Rest<Object> getAllList() {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询站点编排" ;
int code=1;
try {
ModelPdu modelPdu = new ModelPdu();
ApiResp<List<ModelFeignVO>> apiResp = apiModelFeign.getModelByQuery(modelPdu);
if (apiResp.getCode() != YesNoEnum.YES.getValue()) {
throw new AppException("获取站点列表信息失败:" + apiResp.getMsg());
}
model.put("data", apiResp.getData());
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
ret.setCode(code);
ret.setData(model);
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
/**
* 根据站点id查询模块列表
* @param query
* @return
*/
@PostMapping({"list"})
@UnAuth
public Rest<Object> getList(@RequestBody ModelVO query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询站点编排" ;
int code=1;
try {
ModelPdu modelPdu = new ModelPdu();
modelPdu.setSiteId(query.getSiteId());
ApiResp<List<ModelFeignVO>> apiResp = apiModelFeign.getModelBySiteId(modelPdu);
if (apiResp.getCode() != YesNoEnum.YES.getValue()) {
throw new AppException("获取站点列表信息失败:" + apiResp.getMsg());
}
if(this.getCurUser()==null){
throw new AppException("未登录或者登录过期");
}
Map<Long,Long> map = roleModelService.getModelIdsUserId(this.getCurUser().getId());
List<ModelFeignVO> modelFeignVOList = apiResp.getData();
List<ModelFeignVO> list = modelFeignVOList.stream().filter(item->map.containsKey(item.getId())).collect(Collectors.toList());
model.put("data", list);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
ret.setCode(code);
ret.setData(model);
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
/**
* 根据站点id查询数据管理列表
* @param query
* @return
*/
@PostMapping({"census/list"})
@UnAuth
public Rest<Object> getCensusList(@RequestBody ModelVO query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询站点编排" ;
int code=1;
try {
ModelPdu modelPdu = new ModelPdu();
modelPdu.setSiteId(query.getSiteId());
ApiResp<List<ModelCensusFeignVO>> apiResp = apiModelFeign.getModelCensusBySiteId(modelPdu);
if (apiResp.getCode() != YesNoEnum.YES.getValue()) {
throw new AppException("获取站点数据管理列表信息失败:" + apiResp.getMsg());
}
if(this.getCurUser()==null){
throw new AppException("未登录或者登录过期");
}
Map<Long,Long> map = roleModelService.getModelCensusByUserId(this.getCurUser().getId());
List<ModelCensusFeignVO> modelFeignVOList = apiResp.getData();
List<ModelCensusFeignVO> list = modelFeignVOList.stream().filter(item->map.containsKey(item.getId())).collect(Collectors.toList());
Map<String, List<ModelCensusFeignVO>> resultList = list.stream().collect(Collectors.groupingBy(item->{ return "CensusType_"+item.getCensusType();}));
model.put("data", resultList);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
ret.setCode(code);
ret.setData(model);
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
/**
* 获取所有数据管理列表
* @return
*/
@PostMapping({"census/list/all"})
@UnAuth
public Rest<Object> getAllCensusList() {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询数据管理列表" ;
int code=1;
try {
ModelPdu modelPdu = new ModelPdu();
ApiResp<List<ModelCensusFeignVO>> apiResp = apiModelFeign.getModelCensusByQuery(modelPdu);
if (apiResp.getCode() != YesNoEnum.YES.getValue()) {
throw new AppException("获取所有数据管理列表信息失败:" + apiResp.getMsg());
}
model.put("data", apiResp.getData());
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
ret.setCode(code);
ret.setData(model);
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
}
package com.mortals.xhx.module.model;
import lombok.Data;
@Data
public class ModelVO {
private Long siteId;
}
package com.mortals.xhx.module.role.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.role.model.vo.RoleModelVo;
/**
* 角色模块数据实体对象
*
* @author zxfei
* @date 2022-07-07
*/
public class RoleModelEntity extends RoleModelVo {
private static final long serialVersionUID = 1L;
/**
* 角色ID,主键
*/
private Long roleId;
/**
* 模块ID,主键
*/
private String modelIds;
/**
* 模块下的数据统计
*/
private String censusIds;
public RoleModelEntity(){}
/**
* 获取 角色ID,主键
* @return Long
*/
public Long getRoleId(){
return roleId;
}
/**
* 设置 角色ID,主键
* @param roleId
*/
public void setRoleId(Long roleId){
this.roleId = roleId;
}
/**
* 获取 模块ID,主键
* @return String
*/
public String getModelIds(){
return modelIds;
}
/**
* 设置 模块ID,主键
* @param modelIds
*/
public void setModelIds(String modelIds){
this.modelIds = modelIds;
}
/**
* 获取 模块下的数据统计
* @return String
*/
public String getCensusIds(){
return censusIds;
}
/**
* 设置 模块下的数据统计
* @param censusIds
*/
public void setCensusIds(String censusIds){
this.censusIds = censusIds;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof RoleModelEntity) {
RoleModelEntity tmp = (RoleModelEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",roleId:").append(getRoleId());
sb.append(",modelIds:").append(getModelIds());
sb.append(",censusIds:").append(getCensusIds());
return sb.toString();
}
public void initAttrValue(){
this.roleId = null;
this.modelIds = "";
this.censusIds = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.model;
import java.util.List;
import com.mortals.xhx.module.role.model.RoleModelEntity;
/**
* 角色模块数据查询对象
*
* @author zxfei
* @date 2022-07-07
*/
public class RoleModelQuery extends RoleModelEntity {
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长列表 */
private List <Long> idList;
/** 开始 角色ID,主键 */
private Long roleIdStart;
/** 结束 角色ID,主键 */
private Long roleIdEnd;
/** 增加 角色ID,主键 */
private Long roleIdIncrement;
/** 角色ID,主键列表 */
private List <Long> roleIdList;
/** 模块ID,主键 */
private List<String> modelIdsList;
/** 模块下的数据统计 */
private List<String> censusIdsList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<RoleModelQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<RoleModelQuery> andConditionList;
public RoleModelQuery(){}
/**
* 获取 开始 主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 开始 角色ID,主键
* @return roleIdStart
*/
public Long getRoleIdStart(){
return this.roleIdStart;
}
/**
* 设置 开始 角色ID,主键
* @param roleIdStart
*/
public void setRoleIdStart(Long roleIdStart){
this.roleIdStart = roleIdStart;
}
/**
* 获取 结束 角色ID,主键
* @return $roleIdEnd
*/
public Long getRoleIdEnd(){
return this.roleIdEnd;
}
/**
* 设置 结束 角色ID,主键
* @param roleIdEnd
*/
public void setRoleIdEnd(Long roleIdEnd){
this.roleIdEnd = roleIdEnd;
}
/**
* 获取 增加 角色ID,主键
* @return roleIdIncrement
*/
public Long getRoleIdIncrement(){
return this.roleIdIncrement;
}
/**
* 设置 增加 角色ID,主键
* @param roleIdIncrement
*/
public void setRoleIdIncrement(Long roleIdIncrement){
this.roleIdIncrement = roleIdIncrement;
}
/**
* 获取 角色ID,主键
* @return roleIdList
*/
public List<Long> getRoleIdList(){
return this.roleIdList;
}
/**
* 设置 角色ID,主键
* @param roleIdList
*/
public void setRoleIdList(List<Long> roleIdList){
this.roleIdList = roleIdList;
}
/**
* 获取 模块ID,主键
* @return modelIdsList
*/
public List<String> getModelIdsList(){
return this.modelIdsList;
}
/**
* 设置 模块ID,主键
* @param modelIdsList
*/
public void setModelIdsList(List<String> modelIdsList){
this.modelIdsList = modelIdsList;
}
/**
* 获取 模块下的数据统计
* @return censusIdsList
*/
public List<String> getCensusIdsList(){
return this.censusIdsList;
}
/**
* 设置 模块下的数据统计
* @param censusIdsList
*/
public void setCensusIdsList(List<String> censusIdsList){
this.censusIdsList = censusIdsList;
}
/**
* 设置 主键,自增长
* @param id
*/
public RoleModelQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 主键,自增长
* @param idStart
*/
public RoleModelQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 主键,自增长
* @param idEnd
*/
public RoleModelQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 主键,自增长
* @param idIncrement
*/
public RoleModelQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 主键,自增长
* @param idList
*/
public RoleModelQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 角色ID,主键
* @param roleId
*/
public RoleModelQuery roleId(Long roleId){
setRoleId(roleId);
return this;
}
/**
* 设置 开始 角色ID,主键
* @param roleIdStart
*/
public RoleModelQuery roleIdStart(Long roleIdStart){
this.roleIdStart = roleIdStart;
return this;
}
/**
* 设置 结束 角色ID,主键
* @param roleIdEnd
*/
public RoleModelQuery roleIdEnd(Long roleIdEnd){
this.roleIdEnd = roleIdEnd;
return this;
}
/**
* 设置 增加 角色ID,主键
* @param roleIdIncrement
*/
public RoleModelQuery roleIdIncrement(Long roleIdIncrement){
this.roleIdIncrement = roleIdIncrement;
return this;
}
/**
* 设置 角色ID,主键
* @param roleIdList
*/
public RoleModelQuery roleIdList(List<Long> roleIdList){
this.roleIdList = roleIdList;
return this;
}
/**
* 设置 模块ID,主键
* @param modelIds
*/
public RoleModelQuery modelIds(String modelIds){
setModelIds(modelIds);
return this;
}
/**
* 设置 模块ID,主键
* @param modelIdsList
*/
public RoleModelQuery modelIdsList(List<String> modelIdsList){
this.modelIdsList = modelIdsList;
return this;
}
/**
* 设置 模块下的数据统计
* @param censusIds
*/
public RoleModelQuery censusIds(String censusIds){
setCensusIds(censusIds);
return this;
}
/**
* 设置 模块下的数据统计
* @param censusIdsList
*/
public RoleModelQuery censusIdsList(List<String> censusIdsList){
this.censusIdsList = censusIdsList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<RoleModelQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<RoleModelQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<RoleModelQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<RoleModelQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.role.model.RoleModelEntity;
import java.util.Map;
/**
* RoleModelService
*
* 角色模块数据 service接口
*
* @author zxfei
* @date 2022-07-05
*/
public interface RoleModelService extends ICRUDService<RoleModelEntity,Long>{
/**
* 获取用户拥有的模块权限
* @param userId
* @return
*/
Map<Long,Long> getModelIdsUserId(Long userId);
/**
* 获取用户拥有的模块数据统计权限
* @param userId
* @return
*/
Map<Long,Long> getModelCensusByUserId(Long userId);
}
\ No newline at end of file
package com.mortals.xhx.module.role.service.impl;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.role.model.RoleModelQuery;
import com.mortals.xhx.module.role.model.RoleUserEntity;
import com.mortals.xhx.module.role.service.RoleUserService;
import com.mortals.xhx.module.user.model.UserEntity;
import com.mortals.xhx.module.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.role.dao.RoleModelDao;
import com.mortals.xhx.module.role.model.RoleModelEntity;
import com.mortals.xhx.module.role.service.RoleModelService;
import java.util.*;
import java.util.stream.Collectors;
/**
* RoleModelService
* 角色模块数据 service实现
*
* @author zxfei
* @date 2022-07-05
*/
@Service("roleModelService")
public class RoleModelServiceImpl extends AbstractCRUDServiceImpl<RoleModelDao, RoleModelEntity, Long> implements RoleModelService {
@Autowired
private RoleUserService roleUserService;
@Override
public Map<Long, Long> getModelIdsUserId(Long userId) {
List<RoleModelEntity> roleModelList = getListByUser(userId);
Map<Long, Long> map = new HashMap<>();
roleModelList.stream().forEach(item->{
List<String> modelIds = StringUtils.converStr2List(item.getModelIds());
List<Long> ids = modelIds.stream().map(s -> DataUtil.converStr2Long(s.trim(),0)).collect(Collectors.toList());
ids.stream().forEach(i->{
map.put(i,i);
});
});
return map;
}
@Override
public Map<Long, Long> getModelCensusByUserId(Long userId) {
List<RoleModelEntity> roleModelList = getListByUser(userId);
Map<Long, Long> map = new HashMap<>();
roleModelList.stream().forEach(item->{
List<String> censusIds = StringUtils.converStr2List(item.getCensusIds());
List<Long> ids = censusIds.stream().map(s -> DataUtil.converStr2Long(s.trim(),0)).collect(Collectors.toList());
ids.stream().forEach(i->{
map.put(i,i);
});
});
return map;
}
private List<RoleModelEntity> getListByUser(Long userId){
RoleUserEntity query = new RoleUserEntity();
query.setUserId(userId);
List<RoleUserEntity> roleUserEntityList = roleUserService.find(query);
List<Long> roleIds = new ArrayList<>();
roleUserEntityList.stream().forEach(item->{
roleIds.add(item.getRoleId());
});
RoleModelQuery condition = new RoleModelQuery();
condition.setRoleIdList(roleIds);
List<RoleModelEntity> roleModelEntities = this.find(condition);
return roleModelEntities;
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.pdu.SitePdu;
import com.mortals.xhx.feign.model.IApiModelFeign;
import com.mortals.xhx.feign.model.vo.SiteFeignVO;
import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.module.role.model.RoleModelEntity;
import com.mortals.xhx.module.role.service.RoleModelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
* 角色模块数据
*
* @author zxfei
* @date 2022-07-05
*/
@RestController
@RequestMapping("role/model")
public class RoleModelController extends BaseCRUDJsonBodyMappingController<RoleModelService,RoleModelEntity,Long> {
@Autowired
private IApiModelFeign apiModelFeign;
public RoleModelController(){
super.setModuleDesc( "角色模块数据");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
@PostMapping({"site/allInfo"})
@UnAuth
public Rest<Object> list(@RequestBody RoleModelEntity query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询登录用户具有的站点信息";
int code=1;
try {
String siteIds = this.getCurUser().getSiteIds();
List<String> siteIdList = StringUtils.converStr2List(siteIds);
List<Long> ids = siteIdList.stream().map(s -> DataUtil.converStr2Long(s.trim(),0)).collect(Collectors.toList());
SitePdu sitePdu =new SitePdu();
sitePdu.setIdList(ids);
ApiResp<List<SiteFeignVO>> apiResp = apiModelFeign.getSitesAllInfoByQuery(sitePdu);
if (apiResp.getCode() != YesNoEnum.YES.getValue()) {
throw new AppException("获取站点列表信息失败:" + apiResp.getMsg());
}
model.put("data", apiResp.getData());
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
ret.setCode(code);
ret.setData(model);
ret.setDict(model.get("dict"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment