Commit 6aff4115 authored by yht15023815643's avatar yht15023815643

Merge branch 'zuhuduan' of http://192.168.60.201/root/dsk-operate-sys into zuhuduan

parents 6019274a 5a340148
package com.dsk.web.controller.system; package com.dsk.web.controller.system;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import com.dsk.common.annotation.Log; import com.dsk.common.annotation.Log;
import com.dsk.common.core.controller.BaseController; import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.DskAccessTokenVO;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.enums.BusinessType; import com.dsk.common.enums.BusinessType;
import com.dsk.common.utils.poi.ExcelUtil; import com.dsk.common.utils.poi.ExcelUtil;
...@@ -133,4 +135,18 @@ public class SysConfigController extends BaseController { ...@@ -133,4 +135,18 @@ public class SysConfigController extends BaseController {
configService.resetConfigCache(); configService.resetConfigCache();
return R.ok(); return R.ok();
} }
/**
* 获取大司空open 插件访问token
*/
@SaCheckLogin
@Log(title = "获取dsk访问token", businessType = BusinessType.OTHER)
@GetMapping("/dsk/accessToken")
public R<DskAccessTokenVO> dskAccessToken() {
DskAccessTokenVO dskAccessTokenVO= configService.getDskAccessToken();
return R.ok(dskAccessTokenVO);
}
} }
package com.dsk.common.core.domain.model;
import lombok.Data;
/**
* @author tanyang
* @create 2023-09-11 17:20
**/
@Data
public class DskAccessTokenVO {
private String accessToken;
private Long expire;
}
...@@ -191,32 +191,33 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -191,32 +191,33 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
List<BusinessExcelDto> businessInfoList = null; List<BusinessExcelDto> businessInfoList = null;
try { try {
businessInfoList = new ExcelUtils<>(BusinessExcelDto.class).importExcel(file.getInputStream(), 2); businessInfoList = new ExcelUtils<>(BusinessExcelDto.class).importExcel(file.getInputStream(), 2);
if (CollectionUtil.isEmpty(businessInfoList)) return AjaxResult.error("文档中无项目信息,请按照模板文档格式上传");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new ServiceException("数据导入失败,请检查文档格式是否有误!");
} }
// List<BusinessExcelDto> businessInfoList = readBusinessInfoExcel.getExcelInfo(file); // List<BusinessExcelDto> businessInfoList = readBusinessInfoExcel.getExcelInfo(file);
if (CollectionUtil.isEmpty(businessInfoList)) return AjaxResult.error("文档中无项目信息,请按照模板文档格式上传");
for (BusinessExcelDto businessInfo : businessInfoList) { for (BusinessExcelDto businessInfo : businessInfoList) {
//查询已有的项目名称 // //查询已有的项目名称
Integer count = businessInfoMapper.isRepetitionProjectName(businessInfo.getProjectName(), userId, businessInfo.getOwnerCompany()); // Integer count = businessInfoMapper.isRepetitionProjectName(businessInfo.getProjectName(), userId, businessInfo.getOwnerCompany());
row++; // row++;
if (count > 0) { // if (count > 0) {
//如果存在,跳过该项目,不保存 // //如果存在,跳过该项目,不保存
// result.add("第" + row + "行的" + businessInfo.getProjectName() + "的项目已存在,跳过该项目,保存下一条"); //// result.add("第" + row + "行的" + businessInfo.getProjectName() + "的项目已存在,跳过该项目,保存下一条");
log.info("第" + row + "行的" + businessInfo.getProjectName() + "的项目已存在,跳过该项目,保存下一条"); // log.info("第" + row + "行的" + businessInfo.getProjectName() + "的项目已存在,跳过该项目,保存下一条");
errorCount++; // errorCount++;
} else { // } else {
//保存到数据库 //保存到数据库
BusinessAddDto businessAddDto = new BusinessAddDto(); BusinessAddDto businessAddDto = new BusinessAddDto();
BeanUtil.copyProperties(businessInfo, businessAddDto); BeanUtil.copyProperties(businessInfo, businessAddDto);
businessAddDto.setUserId(userId); businessAddDto.setUserId(userId);
try { try {
new BusinessInfoServiceImpl().insertBusinessInfo(businessAddDto); // new BusinessInfoServiceImpl().insertBusinessInfo(businessAddDto);
this.insertBusinessInfo(businessAddDto);
rowSuccess++; rowSuccess++;
}catch (Exception e){ }catch (Exception e){
errorCount++; errorCount++;
} }
} // }
} }
result.add("导入项目成功条数" + rowSuccess); result.add("导入项目成功条数" + rowSuccess);
result.add("导入项目去重条数" + errorCount); result.add("导入项目去重条数" + errorCount);
......
...@@ -10,6 +10,7 @@ import com.dsk.common.core.page.TableDataInfo; ...@@ -10,6 +10,7 @@ import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.core.service.OssService; import com.dsk.common.core.service.OssService;
import com.dsk.jsk.domain.JskCombineBidPageDto; import com.dsk.jsk.domain.JskCombineBidPageDto;
import com.dsk.jsk.domain.JskCombineCertificateDto; import com.dsk.jsk.domain.JskCombineCertificateDto;
import com.dsk.jsk.domain.JskCombineCountDto;
import com.dsk.jsk.domain.JskCombineSearchDto; import com.dsk.jsk.domain.JskCombineSearchDto;
import com.dsk.jsk.domain.vo.JskCombineBidProjectExportVo; import com.dsk.jsk.domain.vo.JskCombineBidProjectExportVo;
import com.dsk.jsk.domain.vo.JskCombineWinBidProjectExportVo; import com.dsk.jsk.domain.vo.JskCombineWinBidProjectExportVo;
...@@ -228,7 +229,7 @@ public class JskCombineInfoController extends BaseController { ...@@ -228,7 +229,7 @@ public class JskCombineInfoController extends BaseController {
*@date: 2023/9/12 16:05 *@date: 2023/9/12 16:05
*/ */
@RequestMapping(value = "/memberCount", method = RequestMethod.POST) @RequestMapping(value = "/memberCount", method = RequestMethod.POST)
public R memberCount(@RequestBody JskCombineSearchDto dto) throws Exception { public R memberCount(@RequestBody JskCombineCountDto dto) throws Exception {
return baseService.memberCount(dto); return baseService.memberCount(dto);
} }
} }
package com.dsk.jsk.domain;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 集团户相关查询条件实体类
*
* @author lcl
* @create 2023/8/7
*/
@Data
public class JskCombineCountDto implements Serializable {
/**
* 集团id
*/
@NotNull(message = "集团id不能为空!")
private String combineId;
/**
* 截止时间
*/
private String endTime;
/**
* 资质类型
*/
private Integer qualificationType;
}
package com.dsk.jsk.service; package com.dsk.jsk.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.constant.CacheConstants;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
...@@ -11,9 +13,11 @@ import com.dsk.common.utils.DskOpenApiUtil; ...@@ -11,9 +13,11 @@ import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.common.utils.StringUtils; import com.dsk.common.utils.StringUtils;
import com.dsk.jsk.domain.JskCombineBidPageDto; import com.dsk.jsk.domain.JskCombineBidPageDto;
import com.dsk.jsk.domain.JskCombineCertificateDto; import com.dsk.jsk.domain.JskCombineCertificateDto;
import com.dsk.jsk.domain.JskCombineCountDto;
import com.dsk.jsk.domain.JskCombineSearchDto; import com.dsk.jsk.domain.JskCombineSearchDto;
import com.dsk.jsk.domain.vo.JskCombineBidProjectExportVo; import com.dsk.jsk.domain.vo.JskCombineBidProjectExportVo;
import com.dsk.jsk.domain.vo.JskCombineWinBidProjectExportVo; import com.dsk.jsk.domain.vo.JskCombineWinBidProjectExportVo;
import com.dsk.jsk.util.RedisCache;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -21,9 +25,12 @@ import org.springframework.http.HttpStatus; ...@@ -21,9 +25,12 @@ import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
/** /**
* @author lcl * @author lcl
...@@ -38,6 +45,9 @@ public class JskCombineInfoService { ...@@ -38,6 +45,9 @@ public class JskCombineInfoService {
@Autowired @Autowired
private EnterpriseService enterpriseService; private EnterpriseService enterpriseService;
@Resource
private RedisCache redisCache;
public TableDataInfo memberList(JskCombineSearchDto dto) throws Exception { public TableDataInfo memberList(JskCombineSearchDto dto) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/memberList", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/memberList", BeanUtil.beanToMap(dto, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
...@@ -236,12 +246,23 @@ public class JskCombineInfoService { ...@@ -236,12 +246,23 @@ public class JskCombineInfoService {
*@Author: Dgm *@Author: Dgm
*@date: 2023/9/12 16:05 *@date: 2023/9/12 16:05
*/ */
public R memberCount(JskCombineSearchDto dto) { public R memberCount(JskCombineCountDto dto) {
String redisKey = CacheConstants.PERSONAL_LOCATION + dto.getCombineId();
if (ObjectUtil.isNotEmpty(redisKey)) {
Map<String, Object> cacheMap = redisCache.getCacheObject(redisKey);
if (MapUtils.isNotEmpty(cacheMap)) {
return R.ok(cacheMap);
}
}
dto.setQualificationType(209);
dto.setEndTime(DateUtil.formatDate(new Date()));
Map<String, Object> paramsMap = BeanUtil.beanToMap(dto, false, false); Map<String, Object> paramsMap = BeanUtil.beanToMap(dto, false, false);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/memberCount", paramsMap); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/memberCount", paramsMap);
if (ObjectUtil.isNotEmpty(map.get("data"))) { if (ObjectUtil.isNotEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data")); Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
data.put("performance", businessCount(paramsMap)); data.put("performance", businessCount(paramsMap));
map.put("data", data);
redisCache.setCacheObject(redisKey, data,24, TimeUnit.HOURS);
} }
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
......
...@@ -193,6 +193,7 @@ export default { ...@@ -193,6 +193,7 @@ export default {
} }
}, },
created() { created() {
this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute))
}, },
watch:{ watch:{
statisticObj:{ statisticObj:{
...@@ -414,7 +415,7 @@ export default { ...@@ -414,7 +415,7 @@ export default {
return true return true
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
</el-row> </el-row>
<div class="empty" v-if="jtzbList.length === 0 && !isSkeleton"> <div class="empty" v-if="jtzbList.length === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,没找到相关数据</div>
</div> </div>
</div> </div>
<div class="content content_wap2"> <div class="content content_wap2">
...@@ -146,7 +146,7 @@ ...@@ -146,7 +146,7 @@
</el-row> </el-row>
<div class="empty" v-if="dxmbList.length === 0 && !dxmzbState"> <div class="empty" v-if="dxmbList.length === 0 && !dxmzbState">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,没找到相关数据</div>
</div> </div>
</div> </div>
<div class="content_wap3" ref="returnTop"> <div class="content_wap3" ref="returnTop">
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
<skeleton v-if="zxzbIsSkeleton" style="padding: 16px"></skeleton> <skeleton v-if="zxzbIsSkeleton" style="padding: 16px"></skeleton>
<div class="empty" v-if="projectList.length === 0 && !zxzbIsSkeleton"> <div class="empty" v-if="projectList.length === 0 && !zxzbIsSkeleton">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,没找到相关数据</div>
</div> </div>
<div class="list" v-if="!zxzbIsSkeleton"> <div class="list" v-if="!zxzbIsSkeleton">
<div class="item" v-for="(item,index) in projectList" :key="index"> <div class="item" v-for="(item,index) in projectList" :key="index">
......
...@@ -877,7 +877,7 @@ export default { ...@@ -877,7 +877,7 @@ export default {
span{ span{
color: #232323; color: #232323;
padding: 2px 10px; padding: 2px 10px;
margin-bottom: 4px; margin-bottom: 10px;
display: inline-block; display: inline-block;
cursor: pointer; cursor: pointer;
margin-right: 8px; margin-right: 8px;
......
package com.dsk.system.service; package com.dsk.system.service;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.model.DskAccessTokenVO;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.SysConfig; import com.dsk.system.domain.SysConfig;
...@@ -93,4 +94,5 @@ public interface ISysConfigService { ...@@ -93,4 +94,5 @@ public interface ISysConfigService {
*/ */
boolean checkConfigKeyUnique(SysConfig config); boolean checkConfigKeyUnique(SysConfig config);
DskAccessTokenVO getDskAccessToken();
} }
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.common.constant.CacheNames; import com.dsk.common.constant.CacheNames;
import com.dsk.common.constant.UserConstants; import com.dsk.common.constant.UserConstants;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.model.DskAccessTokenVO;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.core.service.ConfigService; import com.dsk.common.core.service.ConfigService;
import com.dsk.common.exception.ServiceException; import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.JsonUtils;
import com.dsk.common.utils.StringUtils; import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.redis.CacheUtils; import com.dsk.common.utils.redis.CacheUtils;
import com.dsk.common.utils.spring.SpringUtils; import com.dsk.common.utils.spring.SpringUtils;
...@@ -18,11 +27,13 @@ import com.dsk.system.domain.SysConfig; ...@@ -18,11 +27,13 @@ import com.dsk.system.domain.SysConfig;
import com.dsk.system.mapper.SysConfigMapper; import com.dsk.system.mapper.SysConfigMapper;
import com.dsk.system.service.ISysConfigService; import com.dsk.system.service.ISysConfigService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -31,6 +42,7 @@ import java.util.Map; ...@@ -31,6 +42,7 @@ import java.util.Map;
* *
* @author Lion Li * @author Lion Li
*/ */
@Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
@Service @Service
public class SysConfigServiceImpl implements ISysConfigService, ConfigService { public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
...@@ -213,6 +225,36 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { ...@@ -213,6 +225,36 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
return true; return true;
} }
@Override
public DskAccessTokenVO getDskAccessToken() {
List<SysConfig> dskName = queryListByKey("dsk");
Assert.notEmpty(dskName,"大司空数据APPkey配置异常");
Map<String,Object> dskConfig=new HashMap<>();
for (SysConfig sysConfig : dskName) {
dskConfig.put(sysConfig.getConfigKey(),sysConfig.getConfigValue());
}
String domain = (String) dskConfig.get("dsk-Domain");
String accessTokenAPI = (String) dskConfig.get("dsk-accessTokenAPI");
String appkey = (String) dskConfig.get("dsk-Appkey");
String appSecret = (String) dskConfig.get("dsk-AppSecret");
Map<String,Object> dskAccessTokenDto=new HashMap<>();
dskAccessTokenDto.put("appKey",appkey);
dskAccessTokenDto.put("appSecret",appSecret);
String post = HttpUtil.post(domain + accessTokenAPI, JsonUtils.toJsonString(dskAccessTokenDto));
Assert.notEmpty(dskName,"大司空数据accessTokenAPI响应异常");
log.info("大司空数据accessToken API响应:"+post);
Dict dict = JsonUtils.parseMap(post);
Object dataObj = dict.getObj("data");
if (dict.getInt("code")!=200||ObjectUtil.isEmpty(dataObj)) {
throw new ServiceException("API数据accessTokenAPI响应异常",500);
}
return BeanUtil.toBean(dataObj,DskAccessTokenVO.class);
}
/** /**
* 根据参数 key 获取参数值 * 根据参数 key 获取参数值
* *
...@@ -224,4 +266,10 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { ...@@ -224,4 +266,10 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
return SpringUtils.getAopProxy(this).selectConfigByKey(configKey); return SpringUtils.getAopProxy(this).selectConfigByKey(configKey);
} }
public List<SysConfig> queryListByKey(String keyName){
LambdaQueryWrapper<SysConfig> dsk = new LambdaQueryWrapper<SysConfig>().likeRight(SysConfig::getConfigKey, keyName);
return baseMapper.selectList(dsk);
}
} }
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