Commit f2895543 authored by huangjie's avatar huangjie

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

parents fd7ad8be 0fe06802
FROM anapsix/alpine-java:8_server-jre_unlimited
MAINTAINER Lion Li
MAINTAINER Tanyang
RUN mkdir -p /ruoyi/server/logs \
/ruoyi/server/temp \
......@@ -12,7 +12,7 @@ ENV SERVER_PORT=8080
EXPOSE ${SERVER_PORT}
ADD ./target/ruoyi-admin.jar ./app.jar
ADD ./target/dsk-operate-sys.jar ./dsk-operate-sys.jar
ENTRYPOINT ["java", \
"-Djava.security.egd=file:/dev/./urandom", \
......@@ -20,4 +20,4 @@ ENTRYPOINT ["java", \
# 应用名称 如果想区分集群节点监控 改成不同的名称即可
# "-Dskywalking.agent.service_name=ruoyi-server", \
# "-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar", \
"-jar", "app.jar"]
"-jar", "dsk-operate-sys.jar"]
......@@ -4,8 +4,10 @@ import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.annotation.SaIgnore;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.RegexPool;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.ReUtil;
import com.dsk.common.constant.Constants;
import com.dsk.common.constant.GlobalConstants;
import com.dsk.common.core.domain.R;
......@@ -36,10 +38,7 @@ import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.NotBlank;
import java.time.Duration;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 登录验证
......@@ -100,13 +99,28 @@ public class SysLoginController {
*/
@SaCheckLogin
@PostMapping("/user/tenants")
public R<List<SysTenantVo>> userTenantList() {
public R<List<SysTenantVo>> userTenants() {
LoginUser loginUser = LoginHelper.getLoginUser();
List<SysTenantVo> tenantList=loginService.tenantListByAccount(loginUser.getUserPhone());
return R.ok(tenantList);
}
/**
* 用户租户列表:根据用户账号获取用户绑定的租户列表
*
* @return 结果
*/
@SaIgnore
@PostMapping("/user/tenant/list")
public R<List<SysTenantVo>> userTenantList (String phone) {
if(!ReUtil.isMatch(RegexPool.MOBILE, phone)) {
return R.ok(new ArrayList<>());
}
List<SysTenantVo> tenantList=loginService.tenantListByAccount(phone);
return R.ok(tenantList);
}
/**
* 获取当前用户默认租户
* @return
......
......@@ -24,6 +24,7 @@ import com.dsk.system.domain.SysRole;
import com.dsk.system.domain.SysUser;
import com.dsk.system.domain.vo.SysUserExportVo;
import com.dsk.system.domain.vo.SysUserImportVo;
import com.dsk.system.domain.vo.SysUserVo;
import com.dsk.system.listener.SysUserImportListener;
import com.dsk.system.service.ISysDeptService;
import com.dsk.system.service.ISysPostService;
......@@ -143,7 +144,7 @@ public class SysUserController extends BaseController {
ajax.put("posts", postService.selectPostAll());
if (ObjectUtil.isNotNull(userId)) {
SysUser sysUser = userService.selectUserById(userId);
ajax.put("user", sysUser);
ajax.put("user", BeanUtil.toBean(sysUser, SysUserVo.class));
ajax.put("postIds", postService.selectPostListByUserId(userId));
ajax.put("roleIds", StreamUtils.toList(sysUser.getRoles(), SysRole::getRoleId));
}
......
package com.dsk.common.exception;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.experimental.FieldDefaults;
@Getter
@FieldDefaults(level=AccessLevel.PRIVATE)
public class BusinessException extends RuntimeException {
private static final long serialVersionUID = 1L;
Integer code;
String msg;
public BusinessException(String msg) {
super(msg);
this.msg = msg;
}
public BusinessException(Integer code, String msg) {
super();
this.code = code;
this.msg = msg;
}
public BusinessException(String msg, Object... params) {
for (Object param : params) {
msg = msg.replaceFirst("\\{\\}", param.toString());
}
this.msg = msg;
}
public BusinessException(int code, String msg, Object... params) {
this.code = code;
for (Object param : params) {
msg = msg.replaceFirst("\\{\\}", param.toString());
}
this.msg = msg;
}
public BusinessException(Throwable throwable) {
super(throwable);
}
public String getMsg() {
return msg;
}
}
......@@ -165,4 +165,17 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant());
}
/***
*@Description: 获取当前年份
*@Param:
*@return: int
*@Author: Dgm
*@date: 2023/5/29 16:05
*/
public static int getYear() {
LocalDate localDate = LocalDate.now();
int year = localDate.getYear();
return year;
}
}
......@@ -41,7 +41,16 @@
<artifactId>dsk-acc-open-sdk-java</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.25</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.2</version>
</dependency>
<!-- <dependency>-->
......
......@@ -13,7 +13,6 @@ import com.dsk.biz.domain.vo.CustomerBusinessListVo;
import com.dsk.biz.domain.vo.CustomerListVo;
import com.dsk.biz.domain.vo.CustomerStatusListVo;
import com.dsk.biz.domain.vo.CustomerVo;
import com.dsk.jsk.service.BusinessOpportunityRadarService;
import com.dsk.jsk.service.EnterpriseCommonService;
import com.dsk.biz.mapper.CustomerMapper;
import com.dsk.biz.mapper.CustomerUserMapper;
......@@ -24,6 +23,7 @@ import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.StringUtils;
import com.dsk.search.service.BusinessOpportunityRadarService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......
package com.dsk.jsk.controller;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.PageQueryLimit;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.jsk.service.BusinessOpportunityRadarService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 查企业
* @author Administrator
*
*/
@RequestMapping("/enterprise")
@RestController
public class CompanySearchController {
@Resource
BusinessOpportunityRadarService opportunityRadarService;
/*
* 模糊查询企业名称
*/
@PostMapping("/index")
public AjaxResult landMarketPage(@RequestBody ComposeQueryDto dto) {
if (PageQueryLimit.pageLimit(dto.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.enterpriseIndex(dto);
}
/*
* 完全匹配企业名称
*/
@GetMapping("/findByName/{keyword}")
public AjaxResult findByName(@PathVariable String keyword) {
return opportunityRadarService.enterpriseByName(keyword);
}
/*
* 完全匹配企业名称
*/
@PostMapping("/page")
public AjaxResult page(@RequestBody ComposeQueryDto dto) {
if (PageQueryLimit.pageLimit(dto.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.enterprisePage(dto);
}
}
//package com.dsk.jsk.controller;
//
//
//import com.dsk.common.core.domain.AjaxResult;
//import com.dsk.jsk.domain.PageQueryLimit;
//import com.dsk.jsk.domain.bo.ComposeQueryDto;
//import com.dsk.jsk.service.BusinessOpportunityRadarService;
//import org.springframework.web.bind.annotation.*;
//
//import javax.annotation.Resource;
//
//
///**
// * 查企业
// * @author Administrator
// *
// */
//@RequestMapping("/enterprise")
//@RestController
//public class CompanySearchController {
//
//
// @Resource
// BusinessOpportunityRadarService opportunityRadarService;
//
// /*
// * 模糊查询企业名称
// */
// @PostMapping("/index")
// public AjaxResult landMarketPage(@RequestBody ComposeQueryDto dto) {
// if (PageQueryLimit.pageLimit(dto.getPage())){
// return AjaxResult.error("翻页已达到上限");
// }
// return opportunityRadarService.enterpriseIndex(dto);
// }
//
// /*
// * 完全匹配企业名称
// */
// @GetMapping("/findByName/{keyword}")
// public AjaxResult findByName(@PathVariable String keyword) {
// return opportunityRadarService.enterpriseByName(keyword);
// }
//
// /*
// * 完全匹配企业名称
// */
// @PostMapping("/page")
// public AjaxResult page(@RequestBody ComposeQueryDto dto) {
// if (PageQueryLimit.pageLimit(dto.getPage())){
// return AjaxResult.error("翻页已达到上限");
// }
// return opportunityRadarService.enterprisePage(dto);
// }
//}
package com.dsk.jsk.controller;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.*;
import com.dsk.jsk.service.service.EconomicService;
import com.dsk.jsk.util.IpUtil;
import lombok.extern.slf4j.Slf4j;
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 javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
/**
* @ClassName RegionalEconomicDataController
* @Description 区域经济大全
* @Author Dgm
* @Date 2023/5/18 10:09
* @Version 1.0.0
*/
@Slf4j
@RestController
@RequestMapping(value ="/economic")
public class RegionalEconomicDataController {
@Autowired
private EconomicService economicService;
/***
*@Description: 全国经济大全分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/national/nationalPage")
public AjaxResult nationalPage(@RequestBody @Valid OpRegionalEconomicDataV1PageDto dto) {
return economicService.nationalPage(dto);
}
/***
*@Description: 获取年份
*@Param:
*@return: com.dsk.acc.security.common.msg.RestResponse
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/years/list")
public AjaxResult yearsList(@RequestBody OpRegionalEconomicDataYearsListDto dto) {
return economicService.yearsList(dto);
}
/***
*@Description: 全国经济大全详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/details")
public AjaxResult details(@RequestBody @Valid OpRegionalEconomicDataDetailsDto detailsDto) {
return economicService.details(detailsDto);
}
/***
*@Description: 获取当前地区
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping(value = "location")
public AjaxResult location(@RequestBody OpRegionalLocalDto vo, HttpServletRequest request){
String ip = IpUtil.getIpAddr(request);
vo.setIp(ip);
return economicService.location(vo);
}
/***
*@Description: 地区经济-统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/statistics/regional")
public AjaxResult statisticsRegional(@RequestBody OpRegionalEconomicDataStatisticsRegionalDto dto) {
return economicService.statisticsRegional(dto);
}
/***
*@Description: 地区经济-主要指标列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/regional/list")
public AjaxResult regionalList(@RequestBody OpRegionalEconomicDataRegionalListDto dto) {
return economicService.regionalList(dto);
}
/***
*@Description: 地区经济
*@Param:
*@return: com.dsk.acc.security.common.msg.RestResponse
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/regional/compare")
public AjaxResult regionalCompare(@RequestBody OpRegionalEconomicDataStatisticsRegionalDto dto) {
return economicService.regionalCompare(dto);
}
/***
*@Description: 地区经济-对比
*@Param:
*@return: com.dsk.acc.security.common.msg.RestResponse
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/regional/multipleCompare")
public AjaxResult regionalMultipleCompare(@RequestBody OpRegionalEconomicRegionalCompareDto compareDto) {
return economicService.regionalMultipleCompare(compareDto);
}
}
package com.dsk.jsk.controller;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.jsk.service.service.RegionalEnterprisesService;
import com.dsk.search.controller.PageQueryLimit;
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;
/**
* @ClassName RegionalEnterprisesController
* @Description 区域企业
* @Author Dgm
* @Date 2023/5/24 16:20
* @Version
*/
@RestController
@RequestMapping(value="/enterprises")
public class RegionalEnterprisesController {
@Autowired
private RegionalEnterprisesService regionalEnterprisesService;
@PostMapping("regional/page")
public AjaxResult page(@RequestBody JSONObject object) throws Exception{
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
compose.getPage().setPage(compose.getPageNum());
compose.getPage().setLimit(compose.getPageSize());
compose.getPage().setField(compose.getField());
compose.getPage().setOrder(compose.getOrder());
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return regionalEnterprisesService.enterprisePage(compose);
}
}
package com.dsk.jsk.controller;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.SpecialBondInformationDetailsDto;
import com.dsk.jsk.domain.bo.SpecialBondInformationPageDto;
import com.dsk.jsk.domain.bo.SpecialPurposeBondsDto;
import com.dsk.jsk.domain.bo.SpecialPurposeBondsPageDto;
import com.dsk.jsk.service.service.SpecialPurposeBondsService;
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 javax.validation.Valid;
/**
* @ClassName SpecialBondProjectsController
* @Description 专项债项目
* @Author Dgm
* @Date 2023/5/18 10:09
* @Version 1.0.0
*/
@RestController
@RequestMapping(value ="/specialPurposeBonds")
public class SpecialBondProjectsController {
@Autowired
private SpecialPurposeBondsService specialPurposeBondsService;
/***
*@Description: 专项债项目分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/projects/page")
public AjaxResult page(@RequestBody SpecialPurposeBondsPageDto pageDto) {
return specialPurposeBondsService.page(pageDto);
}
/***
*@Description: 专项债项目详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/details")
public AjaxResult details(@RequestBody @Valid SpecialBondInformationDetailsDto detailsDto) {
return specialPurposeBondsService.details(detailsDto);
}
/***
*@Description: 专项债-项目类别统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/bond/statistics")
public AjaxResult bondStatistics(@RequestBody SpecialPurposeBondsDto dto) {
return specialPurposeBondsService.bondStatistics(dto);
}
/***
*@Description: 专项债分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/bond/page")
public AjaxResult bondPage(@RequestBody SpecialBondInformationPageDto dto) {
return specialPurposeBondsService.bondPage(dto);
}
}
package com.dsk.jsk.controller;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.bo.UrbanInvestmentPlatformDto;
import com.dsk.jsk.service.service.UrbanInvestmentPlatformService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @ClassName UrbanInvestmentPlatformController
* @Description 城投平台
* @Author Dgm
* @Date 2023/5/18 10:09
* @Version 1.0.0
*/
@RestController
@RequestMapping(value ="/urbanInvestment")
public class UrbanInvestmentPlatformController {
@Autowired
private UrbanInvestmentPlatformService urbanInvestmentPlatformService;
/***
*@Description: 城投平台分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/page")
public AjaxResult page(@RequestBody UrbanInvestmentPlatformDto dto) {
return urbanInvestmentPlatformService.page(dto);
}
/***
*@Description: 城投平台详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/details/{id}")
public AjaxResult details(@PathVariable("id") String id) {
return urbanInvestmentPlatformService.details(id);
}
/***
*@Description: 城投平台统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/statistics")
public AjaxResult statistics(@RequestBody UrbanInvestmentPlatformDto dto) {
return urbanInvestmentPlatformService.statistics(dto);
}
}
package com.dsk.jsk.domain;
import com.dsk.jsk.domain.bo.Page;
/**
* @author lc
* @date 2023/6/20 17:48
*/
public class PageQueryLimit {
public static boolean pageLimit(Page page){
if (null == page) {
return true;
}
if (null==page.getLimit()||null==page.getPage()){
return true;
}
if ( page.getPage()*page.getLimit()>10000){
return true;
}
return false;
}
}
//package com.dsk.jsk.domain;
//
//
//import com.dsk.jsk.domain.bo.Page;
//
///**
// * @author lc
// * @date 2023/6/20 17:48
// */
//public class PageQueryLimit {
//
// public static boolean pageLimit(Page page){
// if (null == page) {
// return true;
// }
// if (null==page.getLimit()||null==page.getPage()){
// return true;
// }
// if ( page.getPage()*page.getLimit()>10000){
// return true;
// }
// return false;
// }
//}
package com.dsk.jsk.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* @Author liujie
* @ClassName MarketAnalysisServiceImpl
* @Date 2023/5/15 16:40
**/
@Service
public class BusinessOpportunityRadarService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
public AjaxResult jskBidNewsPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult findByName(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/findByName", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult jskBidTenderPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidTender/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult establishmentPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/establishment/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult jskBidPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult landMarketPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/landMarket/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult enterpriseIndex(ComposeQueryDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", BeanUtil.beanToMap(dto,false,false));
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult enterprisePage(ComposeQueryDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page", BeanUtil.beanToMap(dto,false,false));
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult enterpriseByName(String keyword) {
Map<String, Object> params = new HashMap<>();
params.put("keyword", keyword);
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/findByName", params);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bondProjectPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/bondProject/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult jskBidPlanPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult getCapitalSourceSelect() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/getCapitalSourceSelect", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult keywordList() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/keywordList", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bidSourceList(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/source", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
//package com.dsk.jsk.service;
//
//import cn.hutool.core.bean.BeanUtil;
//import cn.hutool.json.JSONObject;
//import com.dsk.common.core.domain.AjaxResult;
//import com.dsk.common.utils.DskOpenApiUtil;
//import com.dsk.jsk.domain.bo.ComposeQueryDto;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * @Author liujie
// * @ClassName MarketAnalysisServiceImpl
// * @Date 2023/5/15 16:40
// **/
//@Service
//public class BusinessOpportunityRadarService {
//
// @Autowired
// private DskOpenApiUtil dskOpenApiUtil;
//
// public AjaxResult jskBidNewsPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult findByName(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/findByName", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult jskBidTenderPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidTender/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult establishmentPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/establishment/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult jskBidPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult landMarketPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/landMarket/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult enterpriseIndex(ComposeQueryDto dto) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", BeanUtil.beanToMap(dto,false,false));
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult enterprisePage(ComposeQueryDto dto) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page", BeanUtil.beanToMap(dto,false,false));
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult enterpriseByName(String keyword) {
// Map<String, Object> params = new HashMap<>();
// params.put("keyword", keyword);
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/findByName", params);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult bondProjectPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/bondProject/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult jskBidPlanPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult getCapitalSourceSelect() {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/getCapitalSourceSelect", null);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult keywordList() {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/keywordList", null);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// public AjaxResult bidSourceList(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/source", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//}
......@@ -13,6 +13,7 @@ import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.common.utils.EncodeIdUtil;
import com.dsk.common.utils.redis.RedisUtils;
import com.dsk.jsk.domain.*;
import com.dsk.search.service.BusinessOpportunityRadarService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger;
......
package com.dsk.jsk.service.service;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.*;
/**
* @ClassName EconomicService
* @Description 经济大全业务层
* @Author Dgm
* @Date 2023/5/18 10:17
* @Version 1.00
*/
public interface EconomicService {
/***
*@Description: 全国经济大全分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult nationalPage(OpRegionalEconomicDataV1PageDto dto);
/***
*@Description: 全国经济大全分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult yearsList(OpRegionalEconomicDataYearsListDto dataYearsListDto);
/***
*@Description: 全国经济大全详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult details(OpRegionalEconomicDataDetailsDto detailsDto);
/***
*@Description: 获取当前地区
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult location(OpRegionalLocalDto detailsDto);
/***
*@Description: 地区经济统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult statisticsRegional(OpRegionalEconomicDataStatisticsRegionalDto dto);
/***
*@Description: 地区经济-分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult regionalList(OpRegionalEconomicDataRegionalListDto dto);
/***
*@Description: 对比经济
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult regionalCompare(OpRegionalEconomicDataStatisticsRegionalDto dto);
/***
*@Description: 地区经济-对比
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult regionalMultipleCompare (OpRegionalEconomicRegionalCompareDto dto);
}
package com.dsk.jsk.service.service;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
/**
* @ClassName EconomicService
* @Description 区域企业业务层
* @Author Dgm
* @Date 2023/5/18 10:17
* @Version 1.00
*/
public interface RegionalEnterprisesService {
/***
*@Description: 区域企业分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult enterprisePage(ComposeQueryDto compose) throws Exception;
}
package com.dsk.jsk.service.service;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.SpecialBondInformationDetailsDto;
import com.dsk.jsk.domain.bo.SpecialBondInformationPageDto;
import com.dsk.jsk.domain.bo.SpecialPurposeBondsDto;
import com.dsk.jsk.domain.bo.SpecialPurposeBondsPageDto;
/**
* @ClassName EconomicService
* @Description 专项债项目业务层
* @Author Dgm
* @Date 2023/5/18 10:17
* @Version 1.00
*/
public interface SpecialPurposeBondsService {
/***
*@Description: 专项债项目分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult page(SpecialPurposeBondsPageDto dto);
/***
*@Description: 专项债项目详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult details(SpecialBondInformationDetailsDto detailsDto);
/***
*@Description: 项目类别统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult bondStatistics(SpecialPurposeBondsDto dto);
/***
*@Description: 专项债分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
AjaxResult bondPage(SpecialBondInformationPageDto pageDto);
}
package com.dsk.jsk.service.service;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.bo.UrbanInvestmentPlatformDto;
/**
* @ClassName EconomicService
* @Description 城投平台业务层
* @Author Dgm
* @Date 2023/5/18 10:17
* @Version 1.00
*/
public interface UrbanInvestmentPlatformService {
/***
*@Description: 城投平台分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult page(UrbanInvestmentPlatformDto dto);
/***
*@Description: 城投平台详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult details(String id);
/***
*@Description: 城投平台统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
AjaxResult statistics(UrbanInvestmentPlatformDto pageDto);
}
package com.dsk.jsk.service.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.constant.CacheConstants;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.*;
import com.dsk.jsk.service.service.EconomicService;
import com.dsk.jsk.util.RedisCache;
import org.apache.commons.collections4.MapUtils;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @ClassName EconomicServiceImpl
* @Description 经济大全实现
* @Author Dgm
* @Date 2023/5/18 10:23
* @Version
*/
@Service
public class EconomicServiceImpl implements EconomicService {
@Resource
private DskOpenApiUtil dskOpenApiUtil;
@Resource
private RedisCache redisCache;
/**
* 全国宏观经济:1 / 辖区经济:2 / 地区对比:3
*/
private static final Integer TYPE = 1;
/**
* 默认排序
*/
private static final String FIELD = "gdp";
private static final String ORDER = "desc";
@Override
public AjaxResult nationalPage(OpRegionalEconomicDataV1PageDto dto) {
if (ObjectUtil.isEmpty(dto.getYear())) {
dto.setYear(DateUtils.getYear() - 1);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/national/nationalPage", BeanUtil.beanToMap(dto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (!code.equals(HttpStatus.OK.value())) {
throw new RuntimeException();
}
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult yearsList(OpRegionalEconomicDataYearsListDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/years/list", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult details(OpRegionalEconomicDataDetailsDto detailsDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/details", BeanUtil.beanToMap(detailsDto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult location(OpRegionalLocalDto detailsDto) {
Long userId = LoginHelper.getUserId();
String redisKey = CacheConstants.PERSONAL_LOCATION + userId;
if (ObjectUtil.isEmpty(detailsDto.getProvinceId()) && ObjectUtil.isEmpty(detailsDto.getCityId()) && ObjectUtil.isEmpty(detailsDto.getAreaId())) {
if (ObjectUtil.isNotEmpty(redisKey)) {
Map<String, Object> cacheMap = redisCache.getCacheMap(redisKey);
if (MapUtils.isNotEmpty(cacheMap)) {
return AjaxResult.success(cacheMap);
}
}
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/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);
}
@Override
public AjaxResult statisticsRegional(OpRegionalEconomicDataStatisticsRegionalDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/statistics/regional", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult regionalList(OpRegionalEconomicDataRegionalListDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/regional/list", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult regionalCompare(OpRegionalEconomicDataStatisticsRegionalDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/regional/compare", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult regionalMultipleCompare(OpRegionalEconomicRegionalCompareDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/regional/multipleCompare", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
}
package com.dsk.jsk.service.service.impl;
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.utils.DskOpenApiUtil;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.jsk.service.service.RegionalEnterprisesService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* @ClassName RegionalEnterprisesServiceImpl
* @Description 区域企业业务层实现
* @Author Dgm
* @Date 2023/5/18 10:23
* @Version
*/
@Service
public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
@Override
public AjaxResult enterprisePage(ComposeQueryDto pageDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page",BeanUtil.beanToMap(pageDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
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");
if (ObjectUtil.isNotEmpty(topCustomerId)) {
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);
}
}
}
}
//常合作供应商id
Integer topSupplierId = MapUtils.getInteger(companyMap, "topSupplierId");
companyMap.put("topSupplier", null);
if (ObjectUtil.isNotEmpty(topSupplierId)) {
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(topSupplierId)) {
String companyName = MapUtils.getString(comMap, "companyName", null);
companyMap.put("topSupplier", companyName);
}
}
}
}
}
}
}
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;
}
}
package com.dsk.jsk.service.service.impl;
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.utils.DskOpenApiUtil;
import com.dsk.jsk.domain.bo.SpecialBondInformationDetailsDto;
import com.dsk.jsk.domain.bo.SpecialBondInformationPageDto;
import com.dsk.jsk.domain.bo.SpecialPurposeBondsDto;
import com.dsk.jsk.domain.bo.SpecialPurposeBondsPageDto;
import com.dsk.jsk.service.service.SpecialPurposeBondsService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* @ClassName EconomicServiceImpl
* @Description 专项债项目业务层实现
* @Author Dgm
* @Date 2023/5/18 10:23
* @Version
*/
@Service
public class SpecialPurposeBondsServiceImpl implements SpecialPurposeBondsService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
@Override
public AjaxResult page(SpecialPurposeBondsPageDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/specialPurposeBonds/projects/page", BeanUtil.beanToMap(dto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (code.equals(HttpStatus.OK.value())) {
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (CollectionUtils.isNotEmpty(list)) {
for (Object projectObj : list) {
Map<String, Object> projectMap = CommonUtils.assertAsMap(projectObj);
// 项目总投资
Double projectTotalInvestment = MapUtils.getDouble(projectMap, "projectTotalInvestment",0.00);
projectMap.put("projectTotalInvestment", projectTotalInvestment / 10000);
// 专项债用作资本金
Double specialBondCapital = MapUtils.getDouble(projectMap, "specialBondCapital",0.00);
projectMap.put("specialBondCapital", specialBondCapital / 10000);
// 项目资本金
Double projectCapital = MapUtils.getDouble(projectMap, "projectCapital",0.00);
projectMap.put("projectCapital", projectCapital / 10000);
}
}
}
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult details(SpecialBondInformationDetailsDto detailsDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/specialPurposeBonds/details", BeanUtil.beanToMap(detailsDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (code.equals(HttpStatus.OK.value())) {
Map projectMap = MapUtils.getMap(map, "data", null);
if (ObjectUtil.isNotEmpty(projectMap)) {
// 项目总投资
Double projectTotalInvestment = MapUtils.getDouble(projectMap, "projectTotalInvestment",0.00);
projectMap.put("projectTotalInvestment", projectTotalInvestment / 10000);
// 专项债用作资本金
Double specialBondCapital = MapUtils.getDouble(projectMap, "specialBondCapital",0.00);
projectMap.put("specialBondCapital", specialBondCapital / 10000);
// 项目资本金
Double projectCapital = MapUtils.getDouble(projectMap, "projectCapital",0.00);
projectMap.put("projectCapital", projectCapital / 10000);
// 其他资金
Double otherFunds = MapUtils.getDouble(projectMap, "otherFunds",0.00);
projectMap.put("otherFunds", otherFunds / 10000);
// 计划使用专项债融资额
Double econData012 = MapUtils.getDouble(projectMap, "econData012",0.00);
projectMap.put("econData012", econData012 / 10000);
// 当前使用专项债融资额
Double econData013 = MapUtils.getDouble(projectMap, "econData013",0.00);
projectMap.put("econData013", econData013 / 10000);
// 其他融资
Double otherFinancing = MapUtils.getDouble(projectMap, "otherFinancing",0.00);
projectMap.put("otherFinancing", otherFinancing / 10000);
// 政府安排资金
Double govSupportFunds = MapUtils.getDouble(projectMap, "govSupportFunds",0.00);
projectMap.put("govSupportFunds", govSupportFunds / 10000);
// 项目预测总收益
Double projectForecastTotalRevenue = MapUtils.getDouble(projectMap, "projectForecastTotalRevenue",0.00);
projectMap.put("projectForecastTotalRevenue", projectForecastTotalRevenue / 10000);
}
}
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult bondStatistics(SpecialPurposeBondsDto dto) {
// todo 临时处理 待还原
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/specialPurposeBonds/bond/statistics", BeanUtil.beanToMap(dto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (code.equals(HttpStatus.OK.value())) {
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(map, "data", ""));
Iterator<Object> it = list.iterator();
while (it.hasNext()) {
Map<String, Object> informationMap = (Map<String, Object>)it.next();
// 专项债用于项目规模
Integer count = MapUtils.getInteger(informationMap, "count",0);
if (count.equals(0)) {
it.remove();
}
}
}
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult bondPage(SpecialBondInformationPageDto pageDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/specialPurposeBonds/bond/page", BeanUtil.beanToMap(pageDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (code.equals(HttpStatus.OK.value())) {
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (CollectionUtils.isNotEmpty(list)) {
for (Object informationObj : list) {
Map<String, Object> informationMap = CommonUtils.assertAsMap(informationObj);
// 专项债用于项目规模
Double isUsedProjectScale = MapUtils.getDouble(informationMap, "isUsedProjectScale",0.00);
informationMap.put("isUsedProjectScale", isUsedProjectScale / 10000);
}
}
}
return BeanUtil.toBean(map, AjaxResult.class);
}
}
package com.dsk.jsk.service.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.biz.domain.vo.CustomerStatusListVo;
import com.dsk.biz.service.ICustomerService;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.jsk.domain.bo.UrbanInvestmentPlatformDto;
import com.dsk.jsk.service.service.UrbanInvestmentPlatformService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* @ClassName EconomicServiceImpl
* @Description 城投平台业务层实现
* @Author Dgm
* @Date 2023/5/18 10:23
* @Version
*/
@Service
public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatformService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
@Autowired
private ICustomerService iCustomerService;
@Override
public AjaxResult page(UrbanInvestmentPlatformDto pageDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/urbanInvestment/page", BeanUtil.beanToMap(pageDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (HttpStatus.OK.value() != code) {
throw new RuntimeException();
}
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (CollectionUtils.isEmpty(list)) {
return BeanUtil.toBean(map, AjaxResult.class);
}
ArrayList<String> companyNames = new ArrayList<>();
ArrayList<Long> cIds = new ArrayList<>();
for (Object dataMap : list) {
String name = MapUtils.getString(CommonUtils.assertAsMap(dataMap), "companyName");
if (ObjectUtil.isNotEmpty(name) && ObjectUtil.isNotEmpty(pageDto.getKeyword())) {
name = name.replaceAll("<font color='red'>","");
name = name.replaceAll("</font>","");
companyNames.add(name);
} else {
companyNames.add(name);
}
cIds.add(MapUtils.getLong(CommonUtils.assertAsMap(dataMap), "companyId"));
}
List<CustomerStatusListVo> customerStatusListVos = iCustomerService.selectStatusListByCompanyName(companyNames);
// Map<String, Object> bondCreditRatingBatchMap = new HashMap<>(1);
// bondCreditRatingBatchMap.put("cIds", cIds);
// Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/operate/enterprise/bondCreditRatingBatch", bondCreditRatingBatchMap);
// Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300);
// ArrayList<Map<String, Object>> objArrayList = new ArrayList(1);
// if (codeRating.equals(HttpStatus.OK.value())) {
// Object object = bondCreditRatingMap.get("data");
// if (ObjectUtil.isNotEmpty(object)) {
// objArrayList = (ArrayList)object;
// }
// }
//按照城投企业id合并两个list
//按照城投企业id合并两个list
for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
Long companyId = MapUtils.getLong(companyMap, "companyId");
String uipId = MapUtils.getString(companyMap, "uipId");
String companyName = MapUtils.getString(companyMap, "companyName", "");
if (ObjectUtil.isNotEmpty(companyName) && ObjectUtil.isNotEmpty(pageDto.getKeyword())) {
companyName = companyName.replaceAll("<font color='red'>","");
companyName = companyName.replaceAll("</font>","");
}
companyMap.put("claimStatus", null);
// companyMap.put("bratingSubjectLevel", null);
for (CustomerStatusListVo vo : customerStatusListVos) {
if (companyName.equals(vo.getCompanyName())) {
companyMap.put("claimStatus", vo.getStatus());
}
}
// 去除重复的数据
// Set<UrbanInvestmentPlatformSubjectLevelDto> subjectLevelDtoSet = new HashSet<>();
// for (Map<String, Object> m : objArrayList) {
// UrbanInvestmentPlatformSubjectLevelDto dto = new UrbanInvestmentPlatformSubjectLevelDto();
// Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L);
// String rate = MapUtils.getString(m, "bratingSubjectLevel");
// dto.setCompanyId(companyIdCredit);
// dto.setBratingSubjectLevel(rate);
// subjectLevelDtoSet.add(dto);
// }
// for (UrbanInvestmentPlatformSubjectLevelDto dto : subjectLevelDtoSet) {
// if (dto.getCompanyId().equals(companyId)) {
// companyMap.put("bratingSubjectLevel", dto.getBratingSubjectLevel());
// }
// }
}
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult details(String id) {
Map<String, Object> bodyMap = new HashMap<>(1);
bodyMap.put("id", id);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/urbanInvestment/details", bodyMap);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult statistics(UrbanInvestmentPlatformDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/urbanInvestment/statistics", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
}
package com.dsk.jsk.util;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.Closeable;
import java.io.File;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
/**
* IP校验
*/
public class IpUtil {
public final static List<String> qihooSpider = Arrays.asList("180.153.232","180.153.234","180.153.236","180.163.220","42.236.101","42.236.102","42.236.103","42.236.10","42.236.12","42.236.13","42.236.14","42.236.15","42.236.16","42.236.17","42.236.46","42.236.48","42.236.49","42.236.50","42.236.51","42.236.52","42.236.53","42.236.54","42.236.55","42.236.99");
public final static List<String> YisouSpider = Arrays.asList("106.11.152","106.11.153","106.11.154","106.11.155","106.11.156","106.11.157","106.11.158","106.11.159","42.120.160","42.120.161","42.156.136","42.156.137","42.156.138","42.156.139","42.156.254");
public final static List<String> ByteSpider = Arrays.asList("110.249.201","110.249.202","111.225.147","111.225.148","111.225.149","220.243.135","220.243.136","60.8.165","60.8.9");
/**获取访问用户的客户端IP(适用于公网与局域网)*/
public static final String getIpAddr(final HttpServletRequest request){
try{
if (request == null) return null;
String ipString = request.getHeader("ali-cdn-real-ip");
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getHeader("x-forwarded-for");
}
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getHeader("Proxy-Client-IP");
}
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getHeader("X-Forwarded-For");
}
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getHeader("WL-Proxy-Client-IP");
}
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getHeader("X-Real-IP");
}
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getRemoteAddr();
}
// 多个路由时,取第一个非unknown的ip
final String[] arr = ipString.split(",");
for (final String str : arr) {
if (!"unknown".equalsIgnoreCase(str)) {
ipString = str;
break;
}
}
return ipString;
}catch(Exception e){
return null;
}
}
/**
* write specfield bytes to a byte array start from offset
*
* @param b
* @param offset
* @param v
* @param bytes
*/
public static void write( byte[] b, int offset, long v, int bytes) {
for ( int i = 0; i < bytes; i++ ) {
b[offset++] = (byte)((v >>> (8 * i)) & 0xFF);
}
}
/**
* write a int to a byte array
*
* @param b
* @param offset
* @param v
*/
public static void writeIntLong( byte[] b, int offset, long v ) {
b[offset++] = (byte)((v >> 0) & 0xFF);
b[offset++] = (byte)((v >> 8) & 0xFF);
b[offset++] = (byte)((v >> 16) & 0xFF);
b[offset ] = (byte)((v >> 24) & 0xFF);
}
/**
* get a int from a byte array start from the specifiled offset
*
* @param b
* @param offset
*/
public static long getIntLong( byte[] b, int offset ) {
return (
((b[offset++] & 0x000000FFL)) |
((b[offset++] << 8) & 0x0000FF00L) |
((b[offset++] << 16) & 0x00FF0000L) |
((b[offset ] << 24) & 0xFF000000L)
);
}
/**
* get a int from a byte array start from the specifield offset
*
* @param b
* @param offset
*/
public static int getInt3( byte[] b, int offset ) {
return (
(b[offset++] & 0x000000FF) |
(b[offset++] & 0x0000FF00) |
(b[offset ] & 0x00FF0000)
);
}
public static int getInt2( byte[] b, int offset ) {
return (
(b[offset++] & 0x000000FF) |
(b[offset ] & 0x0000FF00)
);
}
public static int getInt1( byte[] b, int offset ) {
return (
(b[offset] & 0x000000FF)
);
}
/**
* string ip to long ip
*
* @param ip
* @return long
*/
public static long ip2long( String ip ) {
String[] p = ip.split("\\.");
if ( p.length != 4 ) return 0;
int p1 = ((Integer.valueOf(p[0]) << 24) & 0xFF000000);
int p2 = ((Integer.valueOf(p[1]) << 16) & 0x00FF0000);
int p3 = ((Integer.valueOf(p[2]) << 8) & 0x0000FF00);
int p4 = ((Integer.valueOf(p[3]) << 0) & 0x000000FF);
return ((p1 | p2 | p3 | p4) & 0xFFFFFFFFL);
}
/**
* int to ip string
*
* @param ip
* @return string
*/
public static String long2ip( long ip ) {
StringBuilder sb = new StringBuilder();
sb
.append((ip >> 24) & 0xFF).append('.')
.append((ip >> 16) & 0xFF).append('.')
.append((ip >> 8) & 0xFF).append('.')
.append((ip >> 0) & 0xFF);
return sb.toString();
}
/**
* check the validate of the specifeld ip address
*
* @param ip
* @return boolean
*/
public static boolean isIpAddress( String ip ) {
String[] p = ip.split("\\.");
if ( p.length != 4 ) return false;
for ( String pp : p ) {
if ( pp.length() > 3 ) return false;
int val = Integer.valueOf(pp);
if ( val > 255 ) return false;
}
return true;
}
public static String execHostCmd(String ip) throws Exception {
return execCmd("host "+ip, null);
}
public static String isSpider(String ip) throws Exception {
String result = execCmd("host "+ip, null);
if(StringUtils.isNotBlank(ip)&&!isSpiderUa(result)){
for (String s : qihooSpider) {
if(ip.startsWith(s)){
return "so.com";
}
}
for (String s : YisouSpider) {
if(ip.startsWith(s)){
return "sm.cn";
}
}
for (String s : ByteSpider) {
if(ip.startsWith(s)){
return "bytedance.com";
}
}
}
return result;
}
/**
* 执行系统命令, 返回执行结果
*
* @param cmd 需要执行的命令
* @param dir 执行命令的子进程的工作目录, null 表示和当前主进程工作目录相同
*/
private static String execCmd(String cmd, File dir) throws Exception {
StringBuilder result = new StringBuilder();
Process process = null;
BufferedReader bufrIn = null;
BufferedReader bufrError = null;
try {
// 执行命令, 返回一个子进程对象(命令在子进程中执行)
process = Runtime.getRuntime().exec(cmd, null, dir);
// 方法阻塞, 等待命令执行完成(成功会返回0)
process.waitFor();
// 获取命令执行结果, 有两个结果: 正常的输出 和 错误的输出(PS: 子进程的输出就是主进程的输入)
bufrIn = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8"));
bufrError = new BufferedReader(new InputStreamReader(process.getErrorStream(), "UTF-8"));
// 读取输出
String line = null;
while ((line = bufrIn.readLine()) != null) {
result.append(line).append('n');
}
while ((line = bufrError.readLine()) != null) {
result.append(line).append('n');
}
} finally {
closeStream(bufrIn);
closeStream(bufrError);
// 销毁子进程
if (process != null) {
process.destroy();
}
}
// 返回执行结果
return result.toString();
}
private static void closeStream(Closeable stream) {
if (stream != null) {
try {
stream.close();
} catch (Exception e) {
// nothing
}
}
}
private static boolean isSpiderUa(String hostname){
List<String> spiders = BizConstant.SPIDER;
for (String spider : spiders) {
if (hostname.toLowerCase().contains(spider)){
return true;
}
}
return false;
}
}
package com.dsk.jsk.util;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.BoundSetOperations;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;
/**
* spring redis 工具类
*
* @author dsk
**/
@SuppressWarnings(value = { "unchecked", "rawtypes" })
@Component
public class RedisCache
{
@Autowired
public RedisTemplate redisTemplate;
/**
* 缓存基本的对象,Integer、String、实体类等
*
* @param key 缓存的键值
* @param value 缓存的值
*/
public <T> void setCacheObject(final String key, final T value)
{
redisTemplate.opsForValue().set(key, value);
}
/**
* 缓存基本的对象,Integer、String、实体类等
*
* @param key 缓存的键值
* @param value 缓存的值
* @param timeout 时间
* @param timeUnit 时间颗粒度
*/
public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit)
{
redisTemplate.opsForValue().set(key, value, timeout, timeUnit);
}
/**
* 设置有效时间
*
* @param key Redis键
* @param timeout 超时时间
* @return true=设置成功;false=设置失败
*/
public boolean expire(final String key, final long timeout)
{
return expire(key, timeout, TimeUnit.SECONDS);
}
/**
* 设置有效时间
*
* @param key Redis键
* @param timeout 超时时间
* @param unit 时间单位
* @return true=设置成功;false=设置失败
*/
public boolean expire(final String key, final long timeout, final TimeUnit unit)
{
return redisTemplate.expire(key, timeout, unit);
}
/**
* 获取有效时间
*
* @param key Redis键
* @return 有效时间
*/
public long getExpire(final String key)
{
return redisTemplate.getExpire(key);
}
/**
* 判断 key是否存在
*
* @param key 键
* @return true 存在 false不存在
*/
public Boolean hasKey(String key)
{
return redisTemplate.hasKey(key);
}
/**
* 获得缓存的基本对象。
*
* @param key 缓存键值
* @return 缓存键值对应的数据
*/
public <T> T getCacheObject(final String key)
{
ValueOperations<String, T> operation = redisTemplate.opsForValue();
return operation.get(key);
}
/**
* 删除单个对象
*
* @param key
*/
public boolean deleteObject(final String key)
{
return redisTemplate.delete(key);
}
/**
* 删除集合对象
*
* @param collection 多个对象
* @return
*/
public boolean deleteObject(final Collection collection)
{
return redisTemplate.delete(collection) > 0;
}
/**
* 缓存List数据
*
* @param key 缓存的键值
* @param dataList 待缓存的List数据
* @return 缓存的对象
*/
public <T> long setCacheList(final String key, final List<T> dataList)
{
Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
return count == null ? 0 : count;
}
/**
* 获得缓存的list对象
*
* @param key 缓存的键值
* @return 缓存键值对应的数据
*/
public <T> List<T> getCacheList(final String key)
{
return redisTemplate.opsForList().range(key, 0, -1);
}
/**
* 缓存Set
*
* @param key 缓存键值
* @param dataSet 缓存的数据
* @return 缓存数据的对象
*/
public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet)
{
BoundSetOperations<String, T> setOperation = redisTemplate.boundSetOps(key);
Iterator<T> it = dataSet.iterator();
while (it.hasNext())
{
setOperation.add(it.next());
}
return setOperation;
}
/**
* 获得缓存的set
*
* @param key
* @return
*/
public <T> Set<T> getCacheSet(final String key)
{
return redisTemplate.opsForSet().members(key);
}
/**
* 缓存Map
*
* @param key
* @param dataMap
*/
public <T> void setCacheMap(final String key, final Map<String, T> dataMap)
{
if (dataMap != null) {
redisTemplate.opsForHash().putAll(key, dataMap);
}
}
/**
* 获得缓存的Map
*
* @param key
* @return
*/
public <T> Map<String, T> getCacheMap(final String key)
{
return redisTemplate.opsForHash().entries(key);
}
/**
* 往Hash中存入数据
*
* @param key Redis键
* @param hKey Hash键
* @param value 值
*/
public <T> void setCacheMapValue(final String key, final String hKey, final T value)
{
redisTemplate.opsForHash().put(key, hKey, value);
}
/**
* 获取Hash中的数据
*
* @param key Redis键
* @param hKey Hash键
* @return Hash中的对象
*/
public <T> T getCacheMapValue(final String key, final String hKey)
{
HashOperations<String, String, T> opsForHash = redisTemplate.opsForHash();
return opsForHash.get(key, hKey);
}
/**
* 获取多个Hash中的数据
*
* @param key Redis键
* @param hKeys Hash键集合
* @return Hash对象集合
*/
public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys)
{
return redisTemplate.opsForHash().multiGet(key, hKeys);
}
/**
* 删除Hash中的某条数据
*
* @param key Redis键
* @param hKey Hash键
* @return 是否成功
*/
public boolean deleteCacheMapValue(final String key, final String hKey)
{
return redisTemplate.opsForHash().delete(key, hKey) > 0;
}
/**
* 获得缓存的基本对象列表
*
* @param pattern 字符串前缀
* @return 对象列表
*/
public Collection<String> keys(final String pattern)
{
return redisTemplate.keys(pattern);
}
}
package com.dsk.search.controller;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.search.service.BusinessOpportunityRadarService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 商机雷达 查询接口
* @author Administrator
*
*/
@RequestMapping("/radar")
@RestController
public class BusinessOpportunityRadarController {
@Resource
private BusinessOpportunityRadarService opportunityRadarService;
/*
* 公招标讯
*/
@RequestMapping("/jskBidPage")
public AjaxResult jskBidPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.jskBidPage(object);
}
/*
* 土地交易
*/
@RequestMapping("/landMarketPage")
public AjaxResult landMarketPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.landMarketPage(object);
}
/*
* 拟建项目
*/
@RequestMapping("/establishmentPage")
public AjaxResult establishmentPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.establishmentPage(object);
}
/*
* 开标记录
*/
@RequestMapping("/jskBidTenderPage")
public AjaxResult jskBidTenderPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.jskBidTenderPage(object);
}
/*
* 标讯pro
*/
@RequestMapping("/jskBidNewsPage")
public AjaxResult jskBidNewsPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.jskBidNewsPage(object);
}
/*
* 标讯pro 商机项目关联查询
*/
@RequestMapping("/jskBidNewsPage/findByName")
public AjaxResult findByName(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.findByName(object);
}
/*
* 专项债查询
*/
@RequestMapping("/bondProjectPage")
public AjaxResult bondProjectPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.bondProjectPage(object);
}
/*
* 投标计划查询
*/
@RequestMapping("/jskBidPlanPage")
public AjaxResult jskBidPlanPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.jskBidPlanPage(object);
}
/*
* 投标计划查询
*/
@RequestMapping("/jskBidPlan/getCapitalSourceSelect")
public AjaxResult getCapitalSourceSelect() {
return opportunityRadarService.getCapitalSourceSelect();
}
/*
* 推荐关键词
*/
@RequestMapping("/keywordList")
public AjaxResult keywordList() {
return opportunityRadarService.keywordList();
}
/*
* 招标来源网站
*/
@RequestMapping("/bidSourceList")
public AjaxResult bidSourceList(@RequestBody JSONObject object) {
return opportunityRadarService.bidSourceList(object);
}
/*
* 重点项目清单
*/
@RequestMapping("/importantPage")
public AjaxResult importantPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.importantPage(object);
}
}
package com.dsk.search.controller;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.search.service.BusinessOpportunityRadarService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 查企业
* @author Administrator
*
*/
@RequestMapping("/enterprise")
@RestController
public class CompanySearchController {
@Resource
private BusinessOpportunityRadarService opportunityRadarService;
/*
* 模糊查询企业名称
*/
@RequestMapping("/index")
public AjaxResult landMarketPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.enterpriseIndex(object);
}
/*
* 完全匹配企业名称
*/
@GetMapping("/findByName/{keyword}")
public AjaxResult findByName(@PathVariable String keyword) {
return opportunityRadarService.enterpriseByName(keyword);
}
/*
* 完全匹配企业名称
*/
@PostMapping("/page")
public AjaxResult page(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.enterprisePage(object);
}
}
package com.dsk.search.controller;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.constant.HttpStatus;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.search.service.MarketAnalysisService;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
/**
* 央企市场分析-统计
* @author Administrator
*
*/
@RequestMapping("/marketAnalysis")
@RestController
public class MarketAnalysisController extends BaseController {
@Resource
private MarketAnalysisService marketAnalysisService;
/*
* 各省份备案企业数量
*/
@RequestMapping("/areaGroupByProvince")
public AjaxResult areaGroupByProvince() {
return marketAnalysisService.areaGroupByProvince();
}
/*
* 资质等级按照行业、等级类型分组
*/
@RequestMapping("/certGroupByMajorAndLevel")
public AjaxResult certGroupByMajorAndLevel() {
return marketAnalysisService.certGroupByMajorAndLevel();
}
/*
* 资质等级按照大类、省份、等级类型分组
*/
@RequestMapping("/certGroupByMajorProvinceLevel")
public AjaxResult certGroupByMajorProvinceLevel() {
return marketAnalysisService.certGroupByMajorProvinceLevel();
}
/*
* 产业结构-按年份选择 各个项目类型项目总数
*/
@RequestMapping("/bidGroupCountByProjectType")
public AjaxResult bidGroupCountByProjectType(@RequestBody JSONObject object) {
return marketAnalysisService.bidGroupCountByProjectType(object);
}
/*
* 产业结构-近两年各个项目类型项目总数及金额占比
*/
@RequestMapping("/bidMoneyGroupByProjectType")
public AjaxResult bidMoneyGroupByProjectType(@RequestBody JSONObject object) {
return marketAnalysisService.bidMoneyGroupByProjectType(object);
}
//-----------------------------------中标----------------------------------
//全攻中标项目统计
@RequestMapping("/countBidByType")
public AjaxResult countBidByType(@RequestBody JSONObject object) {
return marketAnalysisService.countBidByType( object);
}
/*
* 全国各地区中标统计TOP10
*/
@RequestMapping("/countBidGroupByProvince")
public AjaxResult countBidGroupByProvince(@RequestBody JSONObject object) {
return marketAnalysisService.countBidGroupByProvince(object);
}
//全国中标金额分析
@RequestMapping("/rangeBidMoney")
public AjaxResult rangeBidMoney(@RequestBody JSONObject object) {
return marketAnalysisService.rangeBidMoney( object);
}
//全国中标趋势分析
@RequestMapping("/rangeBidFiveYears")
public AjaxResult rangeBidFiveYears() {
return marketAnalysisService.rangeBidFiveYears();
}
//全国中标下浮率分析
@RequestMapping("/lowerRateByYear")
public AjaxResult lowerRateByYear(@RequestBody JSONObject object) {
return marketAnalysisService.lowerRateByYear( object);
}
//全国中标业绩项目类型下浮率
@RequestMapping("/lowerRangeTenderType")
public AjaxResult lowerRangeTenderType(@RequestBody JSONObject object) {
return marketAnalysisService.lowerRangeTenderType( object);
}
//-----------------------------------土地----------------------------------
//央企数字化经营系统 土地交易
@RequestMapping("/countLandMarketByType")
public AjaxResult countLandMarketByType(@RequestBody JSONObject object){
return marketAnalysisService.countLandMarketByType(object);
}
//央企数字化经营系统 全国土地交易项目地区
@RequestMapping("/countLandMarketByProvince")
public AjaxResult countLandMarketByProvince(@RequestBody JSONObject object){
return marketAnalysisService.countLandMarketByProvince(object);
}
//央企数字化经营系统 全国土地交易项目地区
@RequestMapping("/countLandMarketByYear")
public AjaxResult countLandMarketByYear(){
return marketAnalysisService.countLandMarketByYear();
}
//-----------------------------------招标----------------------------------
//央企数字化经营系统 全国公招项目统计
@RequestMapping("/countNewsBidByYear")
public AjaxResult countNewsBidByYear(){
return marketAnalysisService.countNewsBidByYear();
}
//央企数字化经营系统 招标公告 全国各地区项目统计TOP10
@RequestMapping("/countNewsBidByProvince")
public AjaxResult countNewsBidByProvince(@RequestBody JSONObject object){
return marketAnalysisService.countNewsBidByProvince(object);
}
//央企数字化经营系统 招标公告 月度统计
@RequestMapping("/countNewsBidByMonth")
public AjaxResult countNewsBidByMonth(@RequestBody JSONObject object){
return marketAnalysisService.countNewsBidByMonth(object);
}
/*
* 招标数量按省份分组
*/
@RequestMapping("/countGroupByProvince")
public AjaxResult countGroupByProvince(@RequestBody JSONObject object) {
return marketAnalysisService.countGroupByProvince(object);
}
@RequestMapping("/getYear")
public TableDataInfo getYear(){
List<Integer> list = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
int nowYear = calendar.get(Calendar.YEAR);
list.add(nowYear);
for (int i = 1; i < 5; i++) {
list.add(nowYear-i);
}
return getDataTable(list);
}
/*
* 中标数量按月份分组
*/
@RequestMapping("/countGroupByMonth")
public AjaxResult countGroupByMonth(@RequestBody JSONObject object) {
return marketAnalysisService.countGroupByMonth(object);
}
/**
* 响应请求分页数据
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
protected TableDataInfo getDataTable(List<?> list) {
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(new PageInfo(list).getTotal());
return rspData;
}
}
package com.dsk.search.controller;
import com.dsk.jsk.domain.bo.Page;
/**
* @author lc
* @date 2023/6/20 17:48
*/
public class PageQueryLimit {
public static boolean pageLimit(Page page){
if (null == page) {
return true;
}
if (null==page.getLimit()||null==page.getPage()){
return true;
}
if ( page.getPage()*page.getLimit()>10000){
return true;
}
return false;
}
}
//package com.dsk.search.domain;
//
//import lombok.Data;
//
//import java.util.Date;
//import java.util.List;
//
///**
// * 组合查询参数
// * @author Administrator
// *
// */
//@Data
//public class AchievementQueryDto {
//
// /**
// * 业绩所需参数
// */
//// //中标面积
//// Double tenderArea;
//// //许可面积
//// Double licenceArea;
//// //竣工面积
//// Double completionArea;
// //招投标面积
// Double startTenderArea;
// Double endTenderArea;
// //施工许可面积
// Double startLicenceArea;
// Double endLicenceArea;
// //竣工验收面积
// Double startCheckArea;
// Double endCheckArea;
// //竣工验收备案面积
// Double startCompletionArea;
// Double endCompletionArea;
// //总面积
// Double startTotalArea;
// Double endTotalArea;
// //面积体现节点
// String areaStr;
// //项目面积同时具备、任意均可 and/or
// String areaQueryType;
// //许可金额
// Double licenceMoney;
// //中标金额
// Double startTenderMoney;
// Double endTenderMoney;
// //合同金额
// Double startContractMoney;
// Double endContractMoney;
// //施工许可金额
// Double startLicenceMoney;
// Double endLicenceMoney;
// //竣工验收实际造价
// Double startCompletionMoney;
// Double endCompletionMoney;
// //竣工备案实际造价
// Double startCheckMoney;
// Double endCheckMoney;
// //总投资
// Double startInvest;
// Double endInvest;
// //项目金额同时具备、任意均可
// String moneyQueryType;
// //金额和面积同时具备、任意均可
// String moneyAndAreaQueryType;
// //业绩时间同时具备、任意均可
// String timeQueryType;
//
// String eid;
//
// String buildCorpName;
//
// String personName;
//
// String ename;
// // 项目来源 0=本地 1=四库一平台
// Integer source;
//
// Double startMoney;
//
// Double endMoney;
// //金额体现节点
// String moneyStr;
// // 关键词(包含)
// List<KeywordDto> keywords;
// // 关键词(不包含)
// String keywordNot;
// // 关键词(不包含)查询类型 project项目名称 scale建设规模 projectOrScale项目名称或建设规模
// String keywordNotType;
// // 业绩类型
// String achievementType;
//
// //单项查询 关键词包含
// String singleKeywordIn;
// //单项查询 关键词不包含
// String singleKeywordOut;
// //单项查询 关键词包含体现节点
// String singleKeywordInNode;
// //单项查询 关键词不包含体现节点
// String singleKeywordOutNode;
// //是否截图体现公司和规模 yes no
// Boolean isSingleReflect;
//
// //建设性质
// String nature;
// // 项目属地
// String divisionStr;
// //项目所在城市
// String cityStr;
//
// String province;
// Integer provinceId;
// String city;
// Integer cityId;
// String county;
// Integer countyId;
//
// Double startArea;
//
// Double endArea;
// //项目类别
// String projectType;
// // 工程用途
// String purposeStr;
// // 中标开始时间
// Date startTenderTime;
// // 中标结束时间
// Date endTenderTime;
// // 实际竣工开始日期
// Date startCheckDate;
// // 实际竣工结束日期
// Date endCheckDate;
// //竣工备案时间未公示
// String hasCheckDate;
// //实际开工开始日期
// Date startWorkDate;
// //实际开工结束日期
// Date endWorkDate;
// //合同日期开始
// Date startContractDate;
// //合同日期结束
// Date endContractDate;
// //施工许可开始日期
// Date startLicenceDate;
// //施工许可结束日期
// Date endLicenceDate;
// //施工图审开始日期
// Date startCensorDate;
// //施工图审结束日期
// Date endCensorDate;
// //竣工验收开始日期
// Date startCheckCheckDate;
// //竣工验收结束日期
// Date endCheckCheckDate;
// //竣工验收时间未公示
// String hasCheckCheckDate;
// // 业绩属性
// String attributeStr;
// // 业绩属性
// String attributeQueryType;
// // 项目经理
// String pmStr;
// // 项目经理同时具备、任意均可
// String pmQueryType;
// // 结构体系
// String structure;
// // 数据等级
// String dataLevel;
// //招投标数据等级
// String tenderDataLevel;
// //合同登记
// String contractDataLevel;
// //施工许可
// String licenceDataLevel;
// //竣工验收备案
// String completionDataLevel;
// //项目主体
// String projectDataLevel;
// //施工图审
// String censorDataLevel;
// //竣工验收
// String checkDataLevel;
// // 数据等级查询节点
// String dataLevelStr;
// // 数据等级查询方式 同时具备 任意均可
// String dataLevelQueryType;
// // 资金来源
// String fundSource;
//
// Double startLength;
//
// Double endLength;
// //施工许可
// Double startLicenceLength;
// Double endLicenceLength;
// //竣工验收
// Double startCheckCompletionLength;
// Double endCheckCompletionLength;
// //竣工验收备案
// Double startCompletionLength;
// Double endCompletionLength;
// //长度体现节点
// String lengthNode;
// //长度筛选类型 or/and
// String lengthType;
//
// Double startSpan;
//
// Double endSpan;
// //施工许可
// Double startLicenceSpan;
// Double endLicenceSpan;
// //竣工验收
// Double startCheckCompletionSpan;
// Double endCheckCompletionSpan;
// //竣工验收备案
// Double startCompletionSpan;
// Double endCompletionSpan;
// //跨度体现节点
// String spanNode;
// //跨度筛选类型 or/and
// String spanType;
//
// Integer achievementCount;
//
// String type;
//
// String tenderWay;
//
// String md5Company;
// // 企业业绩关键词
// String keyword;
// // 企业项目详情的中标开始时间 时间戳
// Long startTenderDetailTime;
// // 企业项目详情的中标结束时间 时间戳
// Long endTenderDetailTime;
//
// List<SkyProjectIndexDto> indexDtos;
//
// //指标筛选类型 or/and
// String indexQueryType;
// //指标体现节点
// String indexPoint;
//}
package com.dsk.search.service;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DskOpenApiUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* @Author liujie
* @ClassName MarketAnalysisServiceImpl
* @Date 2023/5/15 16:40
**/
@Service
public class BusinessOpportunityRadarService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
public AjaxResult jskBidNewsPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult findByName(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/findByName", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult jskBidTenderPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidTender/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult establishmentPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/establishment/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult jskBidPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult landMarketPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/landMarket/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult enterpriseIndex(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult enterprisePage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult enterpriseByName(String keyword) {
Map<String, Object> params = new HashMap<>();
params.put("keyword", keyword);
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/findByName", params);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bondProjectPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/bondProject/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult jskBidPlanPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult getCapitalSourceSelect() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/getCapitalSourceSelect", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult keywordList() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/keywordList", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bidSourceList(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/source", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult importantPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/bondProject/importantPage", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
package com.dsk.search.service;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DskOpenApiUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* @Author liujie
* @ClassName MarketAnalysisServiceImpl
* @Date 2023/5/15 16:40
**/
@Service
public class MarketAnalysisService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
public AjaxResult areaGroupByProvince() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/areaGroupByProvince", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult certGroupByMajorAndLevel() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/certGroupByMajorAndLevel", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult certGroupByMajorProvinceLevel() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/certGroupByMajorProvinceLevel", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bidMoneyGroupByProjectType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidMoneyGroupByProjectType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bidGroupCountByProjectType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidGroupCountByProjectType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countGroupByProvince(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countGroupByProvince", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countGroupByMonth(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countGroupByMonth", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countNewsBidByMonth(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countNewsBidByMonth", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countNewsBidByProvince(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countNewsBidByProvince", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countNewsBidByYear() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countNewsBidByYear", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countLandMarketByYear() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countLandMarketByYear", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countLandMarketByProvince(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countLandMarketByProvince", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countLandMarketByType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countLandMarketByType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countBidGroupByProvince(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countBidGroupByProvince", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countBidByType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countBidByType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult rangeBidMoney(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/rangeBidMoney", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult rangeBidFiveYears() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/rangeBidFiveYears", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult lowerRateByYear(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/lowerRateByYear", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult lowerRangeTenderType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/lowerRangeTenderType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
......@@ -36,8 +36,8 @@ module.exports = {
[process.env.VUE_APP_BASE_API]: {
// target: `http://47.104.91.229:9099/prod-api`,
// target: `http://192.168.0.165:9098`,//施
// target: `http://192.168.60.6:9098`,//谭
target: `http://139.9.157.49:9099/prod-api`,//测试
target: `http://192.168.60.6:9098`,//谭
// target: `http://139.9.157.49:9099`,//测试
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
......
package com.dsk.system.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.dsk.common.annotation.ExcelDictFormat;
import com.dsk.common.convert.ExcelDictConvert;
import com.dsk.system.domain.SysTenant;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @author sxk
* @date 2023.08.22
* @description:
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = SysTenant.class)
public class SysEnterpriseVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 企业编号
*/
@ExcelProperty(value = "企业编号")
private String enterpriseId;
/**
* 企业名称
*/
@ExcelProperty(value = "企业名称")
private String companyName;
/**
* 开始时间
*/
@ExcelProperty(value = "开始时间")
private Date startTime;
/**
* 过期时间
*/
@ExcelProperty(value = "过期时间")
private Date expireTime;
/**
* 企业方案编号
*/
@ExcelProperty(value = "企业方案编号")
private Long programId;
/**
* 用户名称
*/
@ExcelProperty(value = "用户名称")
private String username;
/**
* 手机号码
*/
@ExcelProperty(value = "手机号码")
private String phone;
/**
* 企业规模
*/
@ExcelProperty(value = "企业规模")
private String enterpriseScale;
/**
* 企业状态(0已过期|1续约)
*/
@ExcelProperty(value = "企业状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0=已过期,1=续约")
private String status;
}
//package com.dsk.system.domain.vo;
//
//import com.dsk.common.annotation.Sensitive;
//import com.dsk.common.annotation.Translation;
//import com.dsk.common.constant.TransConstant;
//import com.dsk.common.enums.SensitiveStrategy;
//import com.fasterxml.jackson.annotation.JsonIgnore;
//import com.fasterxml.jackson.annotation.JsonProperty;
//import io.github.linpeilie.annotations.AutoMapper;
//import lombok.Data;
//import org.dromara.common.sensitive.annotation.Sensitive;
//import org.dromara.common.sensitive.core.SensitiveStrategy;
//import org.dromara.common.translation.annotation.Translation;
//import org.dromara.common.translation.constant.TransConstant;
//import org.dromara.system.domain.SysUser;
//
//import java.io.Serializable;
//import java.util.Date;
//import java.util.List;
//
//
///**
// * 用户信息视图对象 sys_user
// *
// * @author Michelle.Chung
// */
//@Data
////@AutoMapper(target = SysUser.class)
//public class SysUserVo implements Serializable {
//
// //@Serial
// private static final long serialVersionUID = 1L;
//
// /**
// * 用户ID
// */
// private Long userId;
//
// /**
// * 租户ID
// */
// private String tenantId;
//
// /**
// * 部门ID
// */
// private Long deptId;
//
// /**
// * 用户账号
// */
// private String userName;
//
// /**
// * 用户昵称
// */
// private String nickName;
//
// /**
// * 用户类型(sys_user系统用户)
// */
// private String userType;
//
// /**
// * 用户邮箱
// */
// @Sensitive(strategy = SensitiveStrategy.EMAIL)
// private String email;
//
// /**
// * 手机号码
// */
// @Sensitive(strategy = SensitiveStrategy.PHONE)
// private String phonenumber;
//
// /**
// * 用户性别(0男 1女 2未知)
// */
// private String sex;
//
// /**
// * 头像地址
// */
//// @Translation(type = TransConstant.OSS_ID_TO_URL)
// private String avatar;
//
// /**
// * 密码
// */
// @JsonIgnore
// @JsonProperty
// private String password;
//
// /**
// * 帐号状态(0正常 1停用)
// */
// private String status;
//
// /**
// * 最后登录IP
// */
// private String loginIp;
//
// /**
// * 最后登录时间
// */
// private Date loginDate;
//
// /**
// * 备注
// */
// private String remark;
//
// /**
// * 创建时间
// */
// private Date createTime;
//
// /**
// * 部门对象
// */
// private SysDeptVo dept;
//
// /**
// * 角色对象
// */
// private List<SysRoleVo> roles;
//
// /**
// * 角色组
// */
// private Long[] roleIds;
//
// /**
// * 岗位组
// */
// private Long[] postIds;
//
// /**
// * 数据权限 当前角色ID
// */
// private Long roleId;
//
//}
package com.dsk.system.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.dsk.common.annotation.Sensitive;
import com.dsk.common.enums.SensitiveStrategy;
import com.dsk.common.tenant.core.TenantEntity;
import com.dsk.system.domain.SysDept;
import com.dsk.system.domain.SysRole;
import com.dsk.system.domain.SysUser;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* 用户对象 sys_user
*
* @author Lion Li
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = SysUser.class)
@NoArgsConstructor
public class SysUserVo extends TenantEntity {
/**
* 用户ID
*/
private Long userId;
/**
* 部门ID
*/
private Long deptId;
/**
* 用户账号
*/
private String userName;
/**
* 用户昵称
*/
private String nickName;
/**
* 用户类型(sys_user系统用户)
*/
private String userType;
/**
* 用户邮箱
*/
@Sensitive(strategy = SensitiveStrategy.EMAIL)
private String email;
/**
* 手机号码
*/
private String phonenumber;
/**
* 用户性别
*/
private String sex;
/**
* 用户头像
*/
private String avatar;
/**
* 帐号状态(0正常 1停用)
*/
private String status;
/**
* 删除标志(0代表存在 2代表删除)
*/
private String delFlag;
/**
* 最后登录IP
*/
private String loginIp;
/**
* 最后登录时间
*/
private Date loginDate;
/**
* 备注
*/
private String remark;
/**
* 部门对象
*/
private SysDept dept;
/**
* 角色对象
*/
private List<SysRole> roles;
/**
* 角色组
*/
private Long[] roleIds;
/**
* 岗位组
*/
private Long[] postIds;
/**
* 数据权限 当前角色ID
*/
private Long roleId;
}
package com.dsk.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -13,11 +12,11 @@ import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.StreamUtils;
import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.TreeBuildUtils;
import com.dsk.system.domain.*;
import com.dsk.system.domain.SysMenu;
import com.dsk.system.domain.SysRole;
import com.dsk.system.domain.SysRoleMenu;
import com.dsk.system.domain.vo.MetaVo;
import com.dsk.system.domain.vo.RouterVo;
import com.dsk.system.domain.vo.SysTenantPackageVo;
import com.dsk.system.domain.vo.SysTenantVo;
import com.dsk.system.mapper.*;
import com.dsk.system.service.ISysMenuService;
import lombok.RequiredArgsConstructor;
......@@ -154,13 +153,15 @@ public class SysMenuServiceImpl implements ISysMenuService {
if (LoginHelper.isSuperAdmin(userId)) {
//Sass超管
menus = baseMapper.selectMenuTreeAll();
} else if (LoginHelper.isTenantAdmin()) {
// 租户管理员
SysTenantVo sysTenantVo = tenantMapper.selectVoOne(new LambdaQueryWrapper<SysTenant>().eq(SysTenant::getTenantId, LoginHelper.getTenantId()));
SysTenantPackageVo sysTenantPackageVo = tenantPackageMapper.selectVoOne(new LambdaQueryWrapper<SysTenantPackage>().eq(SysTenantPackage::getPackageId, sysTenantVo.getPackageId()));
List<Long> menuIds = StringUtils.splitTo(sysTenantPackageVo.getMenuIds(), Convert::toLong);
menus = baseMapper.selectBatchIds(menuIds);
} else {
}
// else if (LoginHelper.isTenantAdmin()) {
// //租户管理员
// SysTenantVo sysTenantVo = tenantMapper.selectVoOne(new LambdaQueryWrapper<SysTenant>().eq(SysTenant::getTenantId, LoginHelper.getTenantId()));
// SysTenantPackageVo sysTenantPackageVo = tenantPackageMapper.selectVoOne(new LambdaQueryWrapper<SysTenantPackage>().eq(SysTenantPackage::getPackageId, sysTenantVo.getPackageId()));
// List<Long> menuIds = StringUtils.splitTo(sysTenantPackageVo.getMenuIds(), Convert::toLong);
// menus = baseMapper.selectBatchIds(menuIds);
// }
else {
//租户下的员工
menus = baseMapper.selectMenuTreeByUserId(userId);
}
......
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