package com.vci.web.service.impl; import com.vci.corba.framework.data.UserConfig; import com.vci.dto.BdHomeConfigDTO; import com.vci.enumpck.UserConfigTypeEnum; import com.vci.pagemodel.BdHomeConfigVO; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; import com.vci.starter.web.pagemodel.SessionInfo; import com.vci.web.service.HomeConfigServiceI; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Description 首页配置服务 * @Author dangsn * @Date 2024/12/24 15:46 */ @Service public class HomeConfigServiceImpl implements HomeConfigServiceI { /** * 平台调用客户端 */ @Autowired private PlatformClientUtil platformClientUtil; /** * 新增首页配置 * * @param homeConfigDTO 首页配置传输对象 */ @Override public void addData(BdHomeConfigDTO homeConfigDTO) { SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfo(); String oid = WebUtil.getPk(); homeConfigDTO.setOid(oid); UserConfig userConfig = new UserConfig(); userConfig.oid = homeConfigDTO.getOid(); userConfig.name = homeConfigDTO.getName(); userConfig.type = UserConfigTypeEnum.HOME.getValue(); userConfig.content = WebUtil.getJSONStringWithDateFormat(homeConfigDTO); userConfig.userId = sessionInfo.getUserId(); userConfig.userName = sessionInfo.getUserName(); try { platformClientUtil.getFrameworkService().saveUserConfig(userConfig); } catch (Exception e) { throw new RuntimeException(e); } } /** * 修改首页配置 * * @param homeConfigDTO 首页配置传输对象 */ @Override public void editData(BdHomeConfigDTO homeConfigDTO) { WebUtil.alertNotNull(homeConfigDTO.getOid(), "数据主键"); SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfo(); UserConfig userConfig = new UserConfig(); userConfig.oid = homeConfigDTO.getOid(); userConfig.name = homeConfigDTO.getName(); userConfig.type = UserConfigTypeEnum.HOME.getValue(); userConfig.content = WebUtil.getJSONStringWithDateFormat(homeConfigDTO); userConfig.userId = sessionInfo.getUserId(); userConfig.userName = sessionInfo.getUserName(); try { platformClientUtil.getFrameworkService().saveUserConfig(userConfig); } catch (Exception e) { throw new RuntimeException(e); } } /** * 删除首页配置 * * @param homeConfigDTO 首页配置传输对象 */ @Override public void delData(BdHomeConfigDTO homeConfigDTO) { WebUtil.alertNotNull(homeConfigDTO.getOid(), "数据主键"); List oidList = WebUtil.str2List(homeConfigDTO.getOid()); if(!CollectionUtils.isEmpty(oidList)){ try { platformClientUtil.getFrameworkService().batchDeleteUserConfigByOids(oidList.toArray(new String[0])); } catch (Exception e) { throw new RuntimeException(e); } } } /** * 根据OID获取首页配置 * * @param oid 首页配置OID * @return 首页配置 */ @Override public BdHomeConfigVO getDataByOid(String oid) { WebUtil.alertNotNull(oid, "数据主键"); try { UserConfig userConfig = platformClientUtil.getFrameworkService().getUserConfigByOid(oid); return DO2VO(userConfig); } catch (Exception e) { throw new RuntimeException(e); } } private List DOS2VOS(UserConfig[] userConfigArray){ List voList = new ArrayList<>(); if(userConfigArray != null && userConfigArray.length>0){ for(UserConfig userConfig : userConfigArray){ voList.add(DO2VO(userConfig)); } } return voList; } private BdHomeConfigVO DO2VO(UserConfig userConfig){ return WebUtil.jsonString2JavaBean(userConfig.content, BdHomeConfigVO.class); } /** * 分页获取首页配置 * * @param baseQueryObject 查询对象 * @return 首页配置 */ @Override public DataGrid gridData(BaseQueryObject baseQueryObject) { Map conditionMap = baseQueryObject.getConditionMap(); PageHelper pageHelper = baseQueryObject.getPageHelper(); if(conditionMap == null){ conditionMap = new HashMap<>(); } if(pageHelper == null){ pageHelper = new PageHelper(); } SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfo(); UserConfig userConfig = new UserConfig(); userConfig.userId = sessionInfo.getUserId(); userConfig.userName = sessionInfo.getUserName(); userConfig.name = conditionMap.getOrDefault("name", ""); userConfig.type = UserConfigTypeEnum.HOME.getValue(); long count; List voList = new ArrayList<>(); try { UserConfig[] userConfigArray = platformClientUtil.getFrameworkService().getPageUserConfig(userConfig, pageHelper.getPage(), pageHelper.getLimit()); voList.addAll(DOS2VOS(userConfigArray)); count = platformClientUtil.getFrameworkService().getCountUserConfig(userConfig); } catch (Exception e) { throw new RuntimeException(e); } DataGrid dataGrid = new DataGrid<>(); dataGrid.setPage(pageHelper.getPage()); dataGrid.setLimit(pageHelper.getLimit()); dataGrid.setData(voList); dataGrid.setTotal(count); return dataGrid; } /** * 获取所有首页配置 * * @return 首页配置 */ @Override public List getAllData() { SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfo(); UserConfig userConfig = new UserConfig(); userConfig.userId = sessionInfo.getUserId(); userConfig.userName = sessionInfo.getUserName(); try { UserConfig[] userConfigArray = platformClientUtil.getFrameworkService().getUserConfig(userConfig); return DOS2VOS(userConfigArray); } catch (Exception e) { throw new RuntimeException(e); } } }