Commit 6b4182c1 authored by danfuman's avatar danfuman

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

parents 9555bd6a fb3a2254
......@@ -190,3 +190,4 @@ sms:
territory: ap-guangzhou
dsk:
exportBackUrl: https://szhapi.jiansheku.com/export/backUrl
\ No newline at end of file
......@@ -160,6 +160,8 @@ tenant:
- sys_client
- sys_region
- sys_user_file_record
- sys_oss_config
- sys_region
- contact_info
- customer_user
- customer_follow_record
......
......@@ -48,4 +48,15 @@ public interface GlobalConstants {
*/
String BATCH_IMPORT_FAIL_USERS = GLOBAL_REDIS_KEY + "batch_import_fail_users";
/**
* OSS配置
*/
String SYS_OSS_CONFIG = GLOBAL_REDIS_KEY + "sys_oss_config";
/**
* 默认配置KEY
*/
String DEFAULT_CONFIG_KEY = GLOBAL_REDIS_KEY + "sys_oss:default_config";
}
......@@ -52,7 +52,6 @@ public class ExportController {
public AjaxResult enterpriseInfoExport(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (null==compose.getAptitudeQueryDto()
||CollectionUtils.isEmpty(compose.getAptitudeQueryDto().getAptitudeDtoList())
|| !ObjectUtils.hasValueThroughObj(compose.getAptitudeQueryDto(), null, Arrays.asList("and", "or", "yes", "no", "level", "qualification", "new", "only"))) {
return AjaxResult.warn("导出筛选条件为空!");
}
......@@ -60,6 +59,7 @@ public class ExportController {
object.put("exportExeclName","企业基本信息导出");
}
object.put("exportTemplateName","szh-enterprise-info.xlsx");
object.put("exportStartRow",3);
return exportService.enterpriseInfoExport(object);
}
......@@ -70,14 +70,14 @@ public class ExportController {
public AjaxResult enterpriseAptitudeExport(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (null==compose.getAptitudeQueryDto()
||CollectionUtils.isEmpty(compose.getAptitudeQueryDto().getAptitudeDtoList())
|| !ObjectUtils.hasValueThroughObj(compose.getAptitudeQueryDto().getAptitudeDtoList().get(0), null, Arrays.asList("and", "or", "yes", "no", "level", "qualification", "new", "only"))) {
|| !ObjectUtils.hasValueThroughObj(compose.getAptitudeQueryDto(), null, Arrays.asList("and", "or", "yes", "no", "level", "qualification", "new", "only"))) {
return AjaxResult.warn("导出筛选条件为空!");
}
if (StringUtils.isEmpty(compose.getExportExeclName())){
object.put("exportExeclName","企业资质信息导出");
}
object.put("exportTemplateName","szh-cert-info.xlsx");
object.put("exportStartRow",3);
return exportService.enterpriseAptitudeExport(object);
}
......
......@@ -46,7 +46,7 @@ public class ExportService {
//企业基本信息导出
public AjaxResult enterpriseInfoExport(JSONObject object) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(object.get("exportExeclName").toString());
fileRecord.setFileName(object.get("exportExeclName").toString().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
......@@ -62,7 +62,7 @@ public class ExportService {
//企业资质导出
public AjaxResult enterpriseAptitudeExport(JSONObject object) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(object.get("exportExeclName").toString());
fileRecord.setFileName(object.get("exportExeclName").toString().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
......@@ -78,7 +78,7 @@ public class ExportService {
//重点项目清单
public AjaxResult importantExport(JSONObject object) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(object.get("exportExeclName").toString());
fileRecord.setFileName(object.get("exportExeclName").toString().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
......@@ -94,7 +94,7 @@ public class ExportService {
//集团成员导出
public AjaxResult memberListExport(JskCombineSearchDto dto) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(dto.getExportExeclName());
fileRecord.setFileName(dto.getExportExeclName().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
......@@ -110,7 +110,7 @@ public class ExportService {
//集团中标业绩导出
public AjaxResult exportWinBid(JskCombineSearchDto dto) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(dto.getExportExeclName());
fileRecord.setFileName(dto.getExportExeclName().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
......@@ -126,7 +126,7 @@ public class ExportService {
//集团招标业绩
public AjaxResult exportBid(JskCombineSearchDto dto) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(dto.getExportExeclName());
fileRecord.setFileName(dto.getExportExeclName().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
......
......@@ -163,7 +163,6 @@
</template>
<script>
import ClipboardJS from 'clipboard';
import { changePath, encodeStr } from '@/assets/js/common';
var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js');
import "@/assets/lib/swiper/swiper-bundle.css";
......@@ -205,11 +204,6 @@ export default {
},
mounted() {
this.handleWidth(); //企业背景是否收起
if (this.childStatistic.combineMember) {
this.graphList.unshift({
id: 0, name: '所属集团-' + this.childStatistic.combineMember.companyName, isShow: true, intro: [], ico: require('@/assets/images/detail/overview/company_ssjt.png')
});
}
this.companySwiper(); //swiper滚动板块
api.label({ companyId: this.companyId }).then(res => {
if (res.code == 200) {
......@@ -320,6 +314,9 @@ export default {
}
this.companySwiper(); //swiper滚动板块
},
resetGrapList() {
this.graphList = this.$options.data.call(this).graphList;
},
//获取认领状态
getClaimStatus() {
this.ifClaim = this.companyInfo.claimStatus;
......@@ -406,6 +403,7 @@ export default {
statistic: {
handler(newVal, oldVal) {
this.childStatistic = newVal;
this.resetGrapList();
this.handleStatistic();
},
deep: true,
......
......@@ -35,7 +35,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" width="60">
<template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) *queryParams.pageSize + scope.$index + 1}}</span>
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="企业名称" prop="companyName" :show-overflow-tooltip="true" width="150" />
......@@ -65,7 +65,7 @@
</el-table-column>
</el-table>
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false">
......@@ -85,8 +85,8 @@
<el-row>
<el-col :span="12">
<el-form-item label="续约时间" prop="dateRange">
<el-date-picker :disabled="disabled" v-model="form.dateRange" style="width: 100%" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-date-picker :disabled="disabled" v-model="form.dateRange" style="width: 100%" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -105,8 +105,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="企业规模" prop="accountCount">
<el-input onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" :disabled="disabled" v-model="form.accountCount"
placeholder="请输入企业规模" />
<el-input onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" :disabled="disabled" v-model="form.accountCount" placeholder="请输入企业规模" />
</el-form-item>
</el-col>
</el-row>
......@@ -114,7 +113,7 @@
<el-col :span="12">
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status" :disabled="disabled">
<el-radio v-for="dict in dict.type.sys_user_status" :key="dict.value" :label="dict.value">{{dict.label}}</el-radio>
<el-radio v-for="dict in dict.type.sys_user_status" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
......@@ -258,6 +257,7 @@ export default {
// 新增用户账号
async handleAddAccount(row) {
try {
if (row.status == "1") return this.$message.warning("该企业账号已过期,不能添加用户");
if (!row.tenantId) return this.$message.warning("缺少租户ID");
await this.getAccountCount(row.tenantId);
if (this.addAccountCount >= 6) {
......@@ -448,6 +448,7 @@ export default {
.el-dialog__header {
border-bottom: 1px solid #eee;
}
.el-dialog__body {
padding: 15px 20px;
}
......
package com.dsk.oss.factory;
import com.dsk.common.constant.GlobalConstants;
import com.dsk.oss.constant.OssConstant;
import com.dsk.oss.exception.OssException;
import com.dsk.oss.properties.OssProperties;
......@@ -29,7 +30,7 @@ public class OssFactory {
*/
public static OssClient instance() {
// 获取redis 默认类型
String configKey = RedisUtils.getCacheObject(OssConstant.DEFAULT_CONFIG_KEY);
String configKey = RedisUtils.getCacheObject(GlobalConstants.DEFAULT_CONFIG_KEY);
if (StringUtils.isEmpty(configKey)) {
throw new OssException("文件存储服务类型无法找到!");
}
......@@ -40,7 +41,7 @@ public class OssFactory {
* 根据类型获取实例
*/
public static OssClient instance(String configKey) {
String json = CacheUtils.get(CacheNames.SYS_OSS_CONFIG, configKey);
String json = CacheUtils.get(GlobalConstants.SYS_OSS_CONFIG, configKey);
if (json == null) {
throw new OssException("系统异常, '" + configKey + "'配置信息不存在!");
}
......
......@@ -406,15 +406,15 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/
@Override
public int deleteAuthUser(SysUserRole userRole) {
//校验企业管理员角色下是否至少有一个账号
checkAdminHasUsers(userRole.getRoleId());
//若该账号仅有一个角色,则不允许取消授权
SysUser sysUser = userMapper.selectUserById(userRole.getUserId());
if (sysUser.getRoles().size() == 1) {
throw new ServiceException("至少保留一个角色在该账号下");
}
//校验企业管理员角色下是否至少有一个账号
checkAdminHasUsers(userRole.getRoleId());
int rows = userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>()
.eq(SysUserRole::getRoleId, userRole.getRoleId())
.eq(SysUserRole::getUserId, userRole.getUserId()));
......@@ -433,6 +433,9 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/
@Override
public int deleteAuthUsers(Long roleId, Long[] userIds) {
//校验企业管理员角色下是否至少有一个账号
Integer users = checkAdminHasUsers(roleId);
//若该账号仅有一个角色,则不允许取消授权
StringBuilder lackRoleAccount = new StringBuilder();
for (Long userId : userIds) {
......@@ -441,13 +444,12 @@ public class SysRoleServiceImpl implements ISysRoleService {
lackRoleAccount.append(sysUser.getUserName()).append(",");
}
}
//将缺少角色的账号返回给前端
if (lackRoleAccount.toString().contains(",")) {
throw new ServiceException(lackRoleAccount.substring(0, lackRoleAccount.length()-1));
}
//校验企业管理员角色下是否至少有一个账号
Integer users = checkAdminHasUsers(roleId);
//如果取消授权企业管理员角色下所有账号,则抛异常
if (users != null && userIds.length == users) {
throw new ServiceException("至少要保留一个账号在企业管理员角色下!");
......
......@@ -7,8 +7,10 @@ import com.dsk.acc.openapi.api.AccClient;
import com.dsk.acc.openapi.client.Config;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.config.DskOpenApiConfig;
import com.dsk.common.constant.TenantConstants;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.tenant.helper.TenantHelper;
import com.dsk.system.domain.SysConfig;
import com.dsk.system.mapper.SysConfigMapper;
import org.apache.commons.collections4.MapUtils;
......@@ -124,20 +126,14 @@ public class DskOpenApiUtil {
return new TableDataInfo((List<?>) list, count);
}
private void initApiConfig() throws Exception {
DskOpenApiConfig dskOpenApiConfig = new DskOpenApiConfig();
Class<DskOpenApiConfig> clazz = DskOpenApiConfig.class;
Field[] fields = clazz.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
fields[i].setAccessible(true);
SysConfig config = sysConfigMapper.selectOne(Wrappers.<SysConfig>lambdaQuery().eq(SysConfig::getConfigKey, "plugIn-".concat(fields[i].getName())));
fields[i].set(dskOpenApiConfig, config.getConfigValue());
}
if (ObjectUtils.isEmpty(dskOpenApiConfig)) {
throw new ServiceException("DskOpenApiConfig 初始化失败!");
}
config = new Config(dskOpenApiConfig.accessKeyId, dskOpenApiConfig.accessKeySecret)
.setEndpoint(dskOpenApiConfig.endPoint);
private void initApiConfig() {
TenantHelper.ignore(() -> {
SysConfig accessKeyId = sysConfigMapper.selectOne(Wrappers.<SysConfig>lambdaQuery().eq(SysConfig::getTenantId, TenantConstants.DEFAULT_TENANT_ID).eq(SysConfig::getConfigKey, "dsk-Appkey"));
SysConfig accessKeySecret = sysConfigMapper.selectOne(Wrappers.<SysConfig>lambdaQuery().eq(SysConfig::getTenantId, TenantConstants.DEFAULT_TENANT_ID).eq(SysConfig::getConfigKey, "dsk-AppSecret"));
SysConfig endPoint = sysConfigMapper.selectOne(Wrappers.<SysConfig>lambdaQuery().eq(SysConfig::getTenantId, TenantConstants.DEFAULT_TENANT_ID).eq(SysConfig::getConfigKey, "dsk-Domain"));
config = new Config(accessKeyId.getConfigValue(), accessKeySecret.getConfigValue())
.setEndpoint(endPoint.getConfigValue());
});
}
}
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