Commit 84b85097 authored by yht15023815643's avatar yht15023815643
parents 7c6471a2 7051c46d
......@@ -119,6 +119,12 @@ public class EnterpriseProjectController {
return enterpriseProjectService.bidPlanPage(body);
}
@ApiOperation(value = "招标计划项目类型(openApi)")
@RequestMapping(value = "/bidPlanProjectType",method = RequestMethod.POST)
public TableDataInfo bidPlanProjectType(@RequestBody @Valid EnterpriseProjectBidPlanProjectTypeBody body) throws Exception {
return enterpriseProjectService.bidPlanProjectType(body);
}
@ApiOperation(value = "招标计划详情(openApi)")
@RequestMapping(value = "/bidPlanDetail", method = RequestMethod.POST)
public R bidPlanDetail(@RequestBody @Valid EnterpriseProjectBidPlanDetailBody body) throws Exception {
......
......@@ -3,6 +3,7 @@ package com.dsk.web.controller.search.macroMarket;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.*;
import com.dsk.system.service.EconomicService;
import com.dsk.web.controller.tool.IpUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......
/**
*
*/
package com.dsk.web.controller.search.macroMarket;
package com.dsk.web.controller.tool;
import java.util.Arrays;
import java.util.List;
......
package com.dsk.web.controller.search.macroMarket;
package com.dsk.web.controller.tool;
import org.apache.commons.lang3.StringUtils;
......
......@@ -46,4 +46,9 @@ public class CacheConstants
* 查甲方 菜单选线
*/
public static final String DATA_UIPGROUPDATA = "data:uipGroupData";
/**
* 查甲方 菜单选线
*/
public static final String PERSONAL_LOCATION = "personal:location";
}
......@@ -34,7 +34,7 @@ public class BasePage {
*/
private Integer pageMaxSize;
private String field;
private String field = "bidSumAmount";
private String order;
......
......@@ -25,6 +25,11 @@ public class EnterpriseProjectBidPlanPageBody extends BasePage {
*/
private String keys;
/**
* 项目类型
*/
private String buildingProjectType;
/*
* 排序字段:1金额倒序,2金额正序,3发布时间倒序,4发布时间正序,15预计招标时间倒序,16预计招标时间正序
*/
......
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectBidPlanProjectTypeBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
public boolean isVaildCid() {
return 0 == cid;
}
}
......@@ -16,5 +16,15 @@ public class OpRegionalLocalDto {
*/
private Integer provinceId;
/**
* 市Id
*/
private Integer cityId;
/**
* 区 Id
*/
private Integer areaId;
private String ip;
}
......@@ -17,6 +17,16 @@ public class SpecialPurposeBondsDto {
*/
private Integer provinceId;
/**
* 市Id
*/
private Integer cityId;
/**
* 区Id
*/
private Integer areaId;
/**
* 项目类型
*/
......
......@@ -16,6 +16,15 @@ public class SpecialPurposeBondsPageDto extends BasePage {
* 省Id
*/
private Integer provinceId;
/**
* 市Id
*/
private Integer cityId;
/**
* 区Id
*/
private Integer areaId;
/**
* 排序字段 默认-投资金额
......
......@@ -3,16 +3,19 @@
* 1、url地址,如企业详情:https://pre-plug.jiansheku.com/enterprise?ak=aec7b3ff2y2q8x6t49a7e2c463ce21912&uid=a704fb35bca54707b9b5f8c9bba57815(ak:平台唯一标识;uid:用户标识)
*
* */
const steerScroll = function (iframeId, navHeight, state, parentId){ //state:监听or移除监听;navHeight:页面排除iframe后剩下高度;iframeId: iframe的id
const steerScroll = function(iframeId, navigation, state, parentId) { // state:监听or移除监听;navigation:页面排除iframe后剩下高度;iframeId: iframe的id
let dom = window
if(parentId){// 默认页面可以滚动
if (parentId) { // 默认页面可以滚动
dom = document.getElementById(parentId)
if(!dom){
return
}
dom.style.overflow = 'auto'
navHeight = 0
}else{
navigation.totalHeight = 0
} else {
document.body.style.overflow = 'visible'
}
if(state){
if (state) {
window.addEventListener('message', function(e) {
const data = e.data
const sct = parentId ? dom.scrollTop : document && document.documentElement.scrollTop || document && document.body.scrollTop
......@@ -20,10 +23,11 @@ const steerScroll = function (iframeId, navHeight, state, parentId){ //state:
// 动态设置iFrame高度
if (data.height) {
document.getElementById(iframeId).style.height = data.height+'px'
scrolling(iframeId, navHeight, parentId) // 初始加载获取滚动条距离顶部高度
scrolling(iframeId, navigation, parentId) // 初始加载获取滚动条距离顶部高度
}
// 点击企业详情页 栏目名动态设置滚动高度
if (data.scrollHeight) {
let navHeight = navigation.isFixed ? navigation.totalHeight - navigation.fixedHeight : navigation.totalHeight
dom.scrollTo(sct, parseInt(data.scrollHeight) + navHeight)
}
// 点击企业详情页 栏目下拉子标签动态设置滚动高度
......@@ -31,34 +35,39 @@ const steerScroll = function (iframeId, navHeight, state, parentId){ //state:
dom.scrollTo(sct, sct - parseInt(data.clientHeight))
}
// 点击下拉子标签动态设置滚动高度
if (data.initHeight>=0) {
if (data.initHeight >= 0) {
dom.scrollTo(sct, data.initHeight)
}
// 根据子页面弹窗显示隐藏控制当前页面是否固定不可滚动
if (data.scrollDisabled||data.scrollDisabled==false) {
if(parentId){
dom.style.overflow = data.scrollDisabled?'hidden':'auto'
}else{
document.body.style.overflow = data.scrollDisabled?'hidden':'visible'
if (data.scrollDisabled || data.scrollDisabled === false) {
if (parentId) {
dom.style.overflow = data.scrollDisabled ? 'hidden' : 'auto'
} else {
document.body.style.overflow = data.scrollDisabled ? 'hidden' : 'visible'
}
}
}
})
dom.addEventListener('scroll', scrolling(iframeId, navHeight, parentId))
}else{
dom.removeEventListener('scroll', scrolling(iframeId, navHeight, parentId))
dom.addEventListener('scroll', (event) => {
scrolling(iframeId, navigation, parentId)
})
} else {
dom.removeEventListener('scroll', (event) => {
scrolling(iframeId, navigation, parentId)
})
}
}
const scrolling = function (iframeId, navHeight, parentId){
const scrolling = function(iframeId, navigation, parentId) {
// 滚动条距文档顶部的距离
let scrollTop = parentId ? document.getElementById(parentId).scrollTop : window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
// 将滚动距离传入子组件
const ifa = document.getElementById(iframeId)
if(scrollTop<navHeight){
scrollTop = scrollTop+navHeight
if ((scrollTop < navigation.totalHeight && !navigation.isFixed) || navigation.isFixed) {
scrollTop = scrollTop + navigation.totalHeight
}
ifa.contentWindow.postMessage({ 'scrollTop': scrollTop }, '*')
const bodyHeight = document.body.clientHeight - navigation.totalHeight
ifa.contentWindow.postMessage({ 'scrollTop': scrollTop, 'bodyHeight': bodyHeight }, '*')
}
export {
......
......@@ -16,8 +16,8 @@ export default {
loading: false, // 是否加载完成-当前页控制
iframeTimer: '', // 是否加载中定时器-当前页控制
iframeHight: window.innerHeight, // iframe高度-当前页控制
navHeight: 68, // iframe以为的高度px
src: '',
navigation: {isFixed: true, fixedHeight: 56, totalHeight: 68}, // iframe之外页面顶部对象,ifFixed:是否浮动;fixedHeight:浮动对象高度;totalHeight:顶部整体高度
src: '', //iframe嵌套页面地址
domain: 'https://pre-plug.jiansheku.com',
// domain: 'http://192.168.60.30:3300',
ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912' // 需要携带的sdkId
......@@ -36,11 +36,11 @@ export default {
},
mounted() {
this.iframeLoading() // 判断iframe页面是否加载完成-当前页控制
steerScroll('companyIframe', this.navHeight, true) // 监听滚动(iframe的id、页面排除iframe后页面剩下高度[例:80]、增加监听[不传就是移除监听]、父级id[不带默认就是铺满整个页面]])
steerScroll('companyIframe', this.navigation, true) // 监听滚动(iframe的id、页面排除iframe后页面剩下顶部高度[例:80]、增加监听[不传就是移除监听]、父级id[不带默认就是铺满整个页面]])
},
beforeDestroy() {
clearInterval(this.iframeTimer) // -当前页控制
steerScroll('companyIframe', this.navHeight) // 销毁滚动
steerScroll('companyIframe', this.navigation) // 销毁滚动
},
methods: {
//判断iframe页面是否加载完成-当前页控制
......
......@@ -121,6 +121,12 @@ public class EnterpriseProjectService {
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo bidPlanProjectType(EnterpriseProjectBidPlanProjectTypeBody body) throws Exception {
if (body.isVaildCid()) return new TableDataInfo(new ArrayList<>(), 0);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidPlanProjectType", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R bidPlanDetail(EnterpriseProjectBidPlanDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidPlanDetail", BeanUtil.beanToMap(body, false, false));
......
......@@ -2,15 +2,23 @@ package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.constant.CacheConstants;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.redis.RedisCache;
import com.dsk.common.dtos.*;
import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.common.utils.SecurityUtils;
import com.dsk.system.service.EconomicService;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* @ClassName EconomicServiceImpl
......@@ -22,9 +30,12 @@ import java.util.Map;
@Service
public class EconomicServiceImpl implements EconomicService {
@Autowired
@Resource
private DskOpenApiUtil dskOpenApiUtil;
@Resource
private RedisCache redisCache;
@Override
public AjaxResult nationalPage(OpRegionalEconomicDataV1PageDto dto) {
if (ObjectUtil.isEmpty(dto.getYear())) {
......@@ -48,7 +59,24 @@ public class EconomicServiceImpl implements EconomicService {
@Override
public AjaxResult location(OpRegionalLocalDto detailsDto) {
Long userId = SecurityUtils.getLoginUser().getUserId();
String redisKey = CacheConstants.PERSONAL_LOCATION + userId;
Map<String, Object> cacheMap = redisCache.getCacheMap(redisKey);
if (MapUtils.isNotEmpty(cacheMap)) {
return AjaxResult.success(cacheMap);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/location", BeanUtil.beanToMap(detailsDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (!code.equals(HttpStatus.OK.value())) {
throw new RuntimeException();
}
Map data = MapUtils.getMap(map, "data", null);
if (ObjectUtil.isNotEmpty(detailsDto.getProvinceId()) || ObjectUtil.isNotEmpty(detailsDto.getCityId()) || ObjectUtil.isNotEmpty(detailsDto.getAreaId())) {
redisCache.setCacheMap(redisKey, data);
}
return BeanUtil.toBean(map, AjaxResult.class);
}
......
......@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.model.EnterpriseInfoHeaderBody;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.service.RegionalEnterprisesService;
......@@ -14,8 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @ClassName RegionalEnterprisesServiceImpl
......@@ -37,45 +35,91 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic
if (code.equals(HttpStatus.OK.value())) {
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
// 常合作客户
List<Integer> getTopCustomerIds = getTopCustomerIds(list);
Map<String,Object> topCustomerIdsMap = new HashMap<>(1);
topCustomerIdsMap.put("ids", getTopCustomerIds);
Map<String, Object> topCustomerMap = dskOpenApiUtil.requestBody("/operate/enterprise/selectCompanyNameList", topCustomerIdsMap);
// 常合作供应商
List<Integer> getTopSupplierIds = getTopSupplierIds(list);
Map<String,Object> topSupplierIdsMap = new HashMap<>(1);
topSupplierIdsMap.put("ids", getTopSupplierIds);
Map<String, Object> topSupplierMap = dskOpenApiUtil.requestBody("/operate/enterprise/selectCompanyNameList", topSupplierIdsMap);
if (CollectionUtils.isNotEmpty(list)) {
for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
companyMap.put("topCustomer", null);
//常合作客户id
Integer topCustomerId = MapUtils.getInteger(companyMap, "topCustomerId");
EnterpriseInfoHeaderBody body = new EnterpriseInfoHeaderBody();
body.setCompanyId(topCustomerId);
if (ObjectUtil.isNotEmpty(topCustomerId)) {
Map<String, Object> infoHeaderMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(body, false, false));
Integer infoHeaderCode = MapUtils.getInteger(infoHeaderMap, "code", 300);
if (infoHeaderCode.equals(HttpStatus.OK.value())) {
Map infoHeaderData = MapUtils.getMap(infoHeaderMap, "data", null);
String companyName = MapUtils.getString(infoHeaderData, "companyName", null);
Integer topCustomerCode = MapUtils.getInteger(topCustomerMap, "code", 300);
if (topCustomerCode.equals(HttpStatus.OK.value())) {
List<Map<String, Object>> companyNameList = (List<Map<String, Object>>)MapUtils.getObject(topCustomerMap, "data", null);
for (Map<String, Object> comMap : companyNameList) {
Integer id = MapUtils.getInteger(comMap, "id", 0);
if (id.equals(topCustomerId)) {
String companyName = MapUtils.getString(comMap, "companyName", null);
companyMap.put("topCustomer", companyName);
} else {
companyMap.put("topCustomer", null);
}
} else {
companyMap.put("topCustomer", null);
}
}
}
//常合作供应商id
Integer topSupplierId = MapUtils.getInteger(companyMap, "topSupplierId");
body.setCompanyId(topSupplierId);
companyMap.put("topSupplier", null);
if (ObjectUtil.isNotEmpty(topSupplierId)) {
Map<String, Object> infoHeaderMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(body, false, false));
Integer infoHeaderCode = MapUtils.getInteger(infoHeaderMap, "code", 300);
if (infoHeaderCode.equals(HttpStatus.OK.value())) {
Map infoHeaderData = MapUtils.getMap(infoHeaderMap, "data", null);
String companyName = MapUtils.getString(infoHeaderData, "companyName", null);
Integer topSupplierCode = MapUtils.getInteger(topSupplierMap, "code", 300);
if (topSupplierCode.equals(HttpStatus.OK.value())) {
List<Map<String, Object>> companyNameList = (List<Map<String, Object>>)MapUtils.getObject(topSupplierMap, "data", null);
for (Map<String, Object> comMap : companyNameList) {
Integer id = MapUtils.getInteger(comMap, "id", 0);
if (id.equals(topCustomerId)) {
String companyName = MapUtils.getString(comMap, "companyName", null);
companyMap.put("topSupplier", companyName);
} else {
companyMap.put("topSupplier", null);
}
} else {
companyMap.put("topSupplier", null);
}
}
}
}
}
}
return BeanUtil.toBean(map, AjaxResult.class);
}
/***
*@Description: 获取企业Id-客户
*@Param:
*@return: java.util.List<java.lang.Integer>
*@Author: Dgm
*@date: 2023/7/11 16:04
*/
public List<Integer> getTopCustomerIds(List<Object> list) {
List<Integer> getIds = new ArrayList<>(20);
for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
//常合作客户id
Integer topCustomerId = MapUtils.getInteger(companyMap, "topCustomerId");
getIds.add(topCustomerId);
}
return getIds;
}
/***
*@Description: 获取企业Id-供应商
*@Param:
*@return: java.util.List<java.lang.Integer>
*@Author: Dgm
*@date: 2023/7/11 16:04
*/
public List<Integer> getTopSupplierIds(List<Object> list) {
List<Integer> getIds = new ArrayList<>(20);
for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
//常合作供应商id
Integer topSupplierId = MapUtils.getInteger(companyMap, "topSupplierId");
getIds.add(topSupplierId);
}
return getIds;
}
}
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