Commit 4850fbf3 authored by zhouxudong's avatar zhouxudong

更新代码

parent 5a3ca830
...@@ -92,6 +92,21 @@ ...@@ -92,6 +92,21 @@
<artifactId>orika-core</artifactId> <artifactId>orika-core</artifactId>
<version>1.5.4</version> <version>1.5.4</version>
</dependency> </dependency>
<!-- SpringBoot 拦截器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.9.3</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.postcard.service.config.anno;
import com.postcard.service.enums.CacheType;
import java.lang.annotation.*;
@Documented
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Cache {
/**
* 缓存的键
*/
String cacheKey() default "";
boolean cacheKeyAppendArgs() default true;
/**
* 缓存过期时间, 单位秒
*/
int expireSecond() default 3600;
/**
* 缓存实现类型
*/
CacheType type() default CacheType.REDIS;
/**
* 分用户缓存.
* 若为 true, 会把用户的 id 拼接到缓存的 key 上.
* @return
*/
boolean cacheByUser() default true;
}
package com.postcard.service.config.aop;
import com.postcard.service.config.anno.Cache;
import com.postcard.service.constant.Constants;
import com.postcard.service.enums.CacheType;
import com.postcard.service.util.*;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.annotation.Order;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.concurrent.TimeUnit;
@Order(30)
@Aspect
@Component
public class CacheAnnotationAspect {
public static final String USE_CACHE_KEY = "use-cache";
@Value("${local:false}")
private boolean local;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Pointcut("@annotation(com.postcard.service.config.anno.Cache)")
public void define() {
}
@Value("${spring.application.name}")
private String applicationName;
@Value("${spring.profiles.active}")
private String active;
@Around("define()")
public Object execute(ProceedingJoinPoint joinPoint) throws Throwable {
// 本地启动服务不使用缓存
if (local) {
ThreadCommunication.set(USE_CACHE_KEY, "false");
return joinPoint.proceed();
}
Class controllerClass = joinPoint.getTarget().getClass();
String methodName = joinPoint.getSignature().getName();
Object[] args = joinPoint.getArgs();
Method method = MethodUtils.getMethod(controllerClass, methodName);
Cache cacheAnnotation = method.getAnnotation(Cache.class);
CacheType cacheType = cacheAnnotation.type();
String cacheKey = cacheAnnotation.cacheKey();
int expireSecond = cacheAnnotation.expireSecond();
boolean cacheKeyAppendArgs = cacheAnnotation.cacheKeyAppendArgs();
boolean cacheByUser = cacheAnnotation.cacheByUser();
String userToken = ServletUtils.getRequest().getHeader(Constants.TOKEN_HEADER);
StringBuilder keysb = new StringBuilder(applicationName+":"+active+":");
if (cacheKey != null && !"".equals(cacheKey)) {
keysb.append(cacheKey).append(":");
}
keysb.append(cacheByUser ? userToken : "").append("-");
keysb.append((controllerClass + "-" + methodName + "-"));
if (cacheKeyAppendArgs && !ObjectUtils.isEmpty(args)) {
for (Object arg : args) {
keysb.append(JsonUtils.toJsonStr(arg)).append("-");
}
}
String key = keysb.toString();
// ThreadCommunication.set(USE_CACHE_KEY, null);
if (cacheType == CacheType.REDIS) {
String val = stringRedisTemplate.opsForValue().get(key);
if (!ObjectUtils.isEmpty(val)) {
Type type = method.getGenericReturnType();
Object o = JsonUtils.toObject(val, type);
ThreadCommunication.set(USE_CACHE_KEY, "redis");
return o;
} else {
Object o = joinPoint.proceed();
val = JsonUtils.toJsonStr(o);
stringRedisTemplate.opsForValue().set(key, val);
stringRedisTemplate.expire(key, expireSecond, TimeUnit.SECONDS);
ThreadCommunication.set(USE_CACHE_KEY, "false");
return o;
}
} else if (cacheType == CacheType.LOCAL) {
ThreadCommunication.set(USE_CACHE_KEY, "local");
LocalCache.Builder builder = new LocalCache.Builder().type(cacheType.name() + expireSecond).expire(expireSecond, TimeUnit.SECONDS);
LocalCache localCache = builder.build();
Object val = localCache.get(key);
if (ObjectUtils.isEmpty(val)) {
val = joinPoint.proceed();
localCache.put(key, val);
ThreadCommunication.set(USE_CACHE_KEY, "false");
}
return val;
} else {
throw new IllegalArgumentException("can not resolve cacheType " + cacheType);
}
}
}
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.EnableTransactionManagement;
...@@ -11,6 +12,8 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; ...@@ -11,6 +12,8 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration @Configuration
@EnableTransactionManagement @EnableTransactionManagement
@Slf4j @Slf4j
// 指定要扫描的Mapper类的包的路径
@MapperScan("com.postcard.service.moudle.**.mapper")
public class MyBatisPlusConfig { public class MyBatisPlusConfig {
/** /**
* @description: * @description:
......
package com.postcard.service.config.other;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.apache.commons.lang3.ObjectUtils;
import java.io.IOException;
import java.math.BigDecimal;
/**
* @Author:zhouxudong
*
* @version: 1.0 @Date: 2023/12/15 17:21 @Description:
*/
public class BigDecimal2String extends JsonSerializer<BigDecimal> {
@Override
public void serialize(
BigDecimal bigDecimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
throws IOException {
if (ObjectUtils.isEmpty(bigDecimal) || bigDecimal.stripTrailingZeros().toString().equals("0")) {
jsonGenerator.writeString("");
}else{
jsonGenerator.writeNumber(bigDecimal);
}
}
}
package com.postcard.service.config.other;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
/**
* @Author:zhouxudong
*
* @version: 1.0 @Date: 2023/12/15 17:21 @Description:
*/
public class String2String extends JsonSerializer<String> {
@Override
public void serialize(
String str, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
throws IOException {
if (StringUtils.isNotBlank(str) && isDouble(str) && Double.valueOf(str).equals(0.0)) {
jsonGenerator.writeString("");
}else{
jsonGenerator.writeString(str);
}
}
public static boolean isDouble(String str){
try{
Double.parseDouble(str);
return true;
}catch (NumberFormatException e){
return false;
}
}
public static void main(String[] args){
String str="0.67";
if ( StringUtils.isNotBlank(str) && isDouble(str) && Double.valueOf(str).equals(0.0) ) {
System.out.println("111111");
}
}
}
package com.postcard.service.constant; package com.postcard.service.constant;
/** /**
* @Author:zhouxudong * 通用常量信息
* * @author yaobaizheng
* @version: 1.0 @Date: 2023/12/14 17:01 @Description: */
*/
public class Constants { public class Constants {
public static final String TOKEN_HEADER = "Authorization"; /**
* UTF-8 字符集
*/
public static final String UTF8 = "UTF-8";
/**
* GBK 字符集
*/
public static final String GBK = "GBK";
/**
* http请求
*/
public static final String HTTP = "http://";
/**
* https请求
*/
public static final String HTTPS = "https://";
/**
* 通用成功标识
*/
public static final String SUCCESS = "0";
/**
* 通用失败标识
*/
public static final String FAIL = "1";
/**
* 登录成功
*/
public static final String LOGIN_SUCCESS = "Success";
/**
* 注销
*/
public static final String LOGOUT = "Logout";
/**
* 注册
*/
public static final String REGISTER = "Register";
/**
* 登录失败
*/
public static final String LOGIN_FAIL = "Error";
/**
* 系统用户授权缓存
*/
public static final String SYS_AUTH_CACHE = "sys-authCache";
/**
* 参数管理 cache name
*/
public static final String SYS_CONFIG_CACHE = "sys-config";
/**
* 参数管理 cache key
*/
public static final String SYS_CONFIG_KEY = "sys_config:";
/**
* 字典管理 cache name
*/
public static final String SYS_DICT_CACHE = "sys-dict";
/**
* 字典管理 cache key
*/
public static final String SYS_DICT_KEY = "sys_dict:";
/**
* 资源映射路径 前缀
*/
public static final String RESOURCE_PREFIX = "/profile";
/**
* RMI 远程方法调用
*/
public static final String LOOKUP_RMI = "rmi:";
/**
* LDAP 远程方法调用
*/
public static final String LOOKUP_LDAP = "ldap:";
/**
* LDAPS 远程方法调用
*/
public static final String LOOKUP_LDAPS = "ldaps:";
/**
* 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加)
*/
public static final String[] JOB_WHITELIST_STR = { "com.ruoyi" };
/**
* 定时任务违规的字符
*/
public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
"org.springframework", "org.apache", "com.ruoyi.common.utils.file", "com.ruoyi.common.config" };
public static final String TOKEN_HEADER = "Authorization";
//token 过期时间
public static Long expireTime = 86400L;
//7天免登录
public static Long sevenTime = 604800L;
//token 续期时间 12小时
public static Long addTime = 43200L;
//--------------请求头签名--------------------------
public static final String sign = "sign";
public static final String timer = "timer";
public static final String secretKey = "secretKey";
} }
...@@ -9,4 +9,16 @@ package com.postcard.service.constant; ...@@ -9,4 +9,16 @@ package com.postcard.service.constant;
public class RedisConstants { public class RedisConstants {
public static final String ACCESS_TOKEN = "wx:access_token:"; public static final String ACCESS_TOKEN = "wx:access_token:";
// ----------------------------redis key start----------------------------------------
// token信息
public static final String token = "Token:";
// 是否是经营人员
public static final String IS_OPERATION = "is_operation:";
// 用户 数据详情查看 剩余额度 map存储: 格式: key phone + ":" + type value
public static final String LIMIT_NUM = "limit_num";
// 字典表数据 key
public static final String DICT_DATA = "dict_data";
// ------------------------------end-------------------------------------------------
} }
package com.postcard.service.domain;
public enum Direction {
ASC, DESC;
}
package com.postcard.service.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Accessors(chain = true)
public class ParamEntity<T> {
/**
* 当前页码
*/
@ApiModelProperty("当前页码")
private Integer current;
/**
* 每页显示数量
*/
@ApiModelProperty("每页显示数量")
private Integer size;
/**
* 排序
*/
@ApiModelProperty("排序")
private List<Sort> sorts;
/**
* 查询条件
*/
private T condition;
}
package com.postcard.service.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
//@JsonDeserialize(using = SortJsonComponent.SortDeserializer.class)
public class Sort {
@ApiModelProperty("排序方式: DESC ASC")
private Direction direction;
@ApiModelProperty("排序字段")
private String property;
}
package com.postcard.service.enums;
import lombok.Getter;
@Getter
public enum BusinessTypeEnum {
DEVELOPMENT(1,"开发区",0),
PARK(2,"园区",20),
LAND(3,"土地",0),
CARRIER(4,"载体",30),;
private final Integer code;
private final String name;
//详情页面访问次数 默认次数 减去当前次数1(减去1 原因是 点击解锁触发保存次数,当前次数需要减去1)
private final Integer number;
BusinessTypeEnum(Integer typeId, String name,Integer number) {
this.code = typeId;
this.name = name;
this.number=number;
}
public static Integer getNum(Integer code){
for (BusinessTypeEnum bt: values()){
if (bt.code.equals(code)){
return bt.number;
}
}
return null;
}
public static String getName(Integer code){
for (BusinessTypeEnum bt: values()){
if (bt.code.equals(code)){
return bt.name;
}
}
return null;
}
}
package com.postcard.service.enums;
/**
* 缓存类型
*/
public enum CacheType {
REDIS,
LOCAL;
}
package com.postcard.service.enums;
import lombok.Getter;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/24 14:53
* @description: 轮播图枚举
*/
@Getter
public enum CarouselTypeEnum {
DUSHIQUAN(0, "都市圈"),
KAIFAQU(1, "开发区"),
YUANQU(2, "园区"),
LAND(4, "土地轮播图"),
CARRIER(5, "载体轮播图"),
SHOUYE(3, "园区字典首页"),
LYYSHOUYE(6, "立业云首页");
private final Integer type;
private final String typeName;
CarouselTypeEnum(Integer typeId, String typeName) {
this.type = typeId;
this.typeName = typeName;
}
public Integer getType() {
return type;
}
}
package com.postcard.service.enums;
public enum DevelopmentInfoEnum {
IS_COLLECTION_0(0,"未收藏"),
IS_COLLECTION_1(1,"收藏"),
IS_SUPER(1,"星级开发区"),
SAVE_IMGURL(999,"http://img-t.knowingindustry.com/lyy/img/carousel/lQLPJwz7JGOoWOTNAWjNAWiwofHnrecS-2oFQ9FO0ydkAA_360_360.png")
;
private Integer code;
private String name;
DevelopmentInfoEnum(Integer typeId, String name) {
this.code = typeId;
this.name = name;
}
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
}
package com.postcard.service.enums;
import lombok.Getter;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/24 15:59
* @description: 开发区状态信息
*/
@Getter
public enum DevelopmentStatusEnum {
STATUS_WRZ(1,"草稿"),
STATUS_RZZ(2,"认证中"),
STATUS_YRZ(3,"已认证"),
STATUS_YJJ(4,"未通过"),
STATUS_DRZ(5,"待认证"),
STATUS_ZF(9,"未通过");
private Integer code;
private String name;
DevelopmentStatusEnum(Integer typeId, String name) {
this.code = typeId;
this.name = name;
}
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
public static String getName(Integer code){
for (DevelopmentStatusEnum bt: values()){
if (bt.code.equals(code)){
return bt.name;
}
}
return null;
}
}
package com.postcard.service.enums;
import lombok.Getter;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/22 17:15
* @description: 字典code类型
*/
@Getter
public enum DictCodeEnum {
LAND_DIRECTION("land_direction", "土地招商方向"),
CARRIER_DIRECTION("carrier_direction", "载体招商方向"),
PARK_LEVEL("park_level", "园区级别"),
CARRIER_TYPE("carrier_type", "载体类型 映射"),
DEVELOPMENT_LEVEL("development_level", "开发区级别 映射"),
CAROUSEL_TYPE("carousel_type", "轮播图 映射"),
DEVELOPMENT_TYPE("development_type", "开发区类型 映射");
private final String code;
private final String name;
DictCodeEnum(String code, String name) {
this.code = code;
this.name = name;
}
}
package com.postcard.service.enums;
import lombok.Getter;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/22 10:12
* @description: 配套设施
*/
@Getter
public enum FacilityEnum {
RESTAURANT("餐厅"),
APARTMENT("公寓"),
CONVENIENCE("便利店"),
TRANSIT("公共交通"),
PARKINGSPACE("车位"),
CHARGING("充电桩"),
PUBLICSPACE("公共空间"),
GUILDMEETING("公共会议室"),
LECTUREHALL("报告厅");
//
private final String name;
FacilityEnum(String name) {
this.name = name;
}
public static String getName(boolean isHave, FacilityEnum facilityEnum) {
if (isHave) {
return facilityEnum.getName();
}
return null;
}
}
package com.postcard.service.enums;
public enum FileSourceObjectTypeEnum {
PARK(1,"产业园-政策文件"),
DEVELOPMENT(2,"开发区-政策文件"),
PARK_PROHIBITED(3,"产业园-禁限目录文件"),
DEVELOPMENT_PROHIBITED(4,"开发区-禁限目录文件");
FileSourceObjectTypeEnum(Integer code,String name) {
this.code = code;
this.name = name;
}
private Integer code;
private String name;
public Integer getCode() {
return code;
}
}
package com.postcard.service.enums;
public enum FilterCategoryEnum {
LEVEL("级别"),
INDUSTRY("行业"),
AREA("面积"),
TYPE("类型");
FilterCategoryEnum(String owner) {
this.category = owner;
}
private String category;
public String getCategory() {
return category;
}
}
package com.postcard.service.enums;
public enum IsSystemEnum {
IS_SYSTEM_0(0,"录入"),
IS_SYSTEM_1(1,"完善");
private Integer code;
private String name;
IsSystemEnum(Integer typeId, String name) {
this.code = typeId;
this.name = name;
}
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
public static String getName(Integer code){
for (IsSystemEnum bt: values()){
if (bt.code.equals(code)){
return bt.name;
}
}
return null;
}
}
package com.postcard.service.enums;
import lombok.Getter;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/24 16:02
* @description: 园区审核状态枚举
*/
@Getter
public enum ParkStatusEnum {
STATUS_WRZ(1,"草稿"),
STATUS_RZZ(2,"认证中"),
STATUS_YRZ(3,"已认证"),
STATUS_YJJ(4,"未通过"),
STATUS_DRZ(5,"待认证"),
STATUS_ZF(9,"未通过");
private final Integer code;
private final String name;
ParkStatusEnum(Integer code, String name){
this.code = code;
this.name = name;
}
public static String getName(Integer code){
for (ParkStatusEnum bt: values()){
if (bt.code.equals(code)){
return bt.name;
}
}
return null;
}
}
package com.postcard.service.enums;
import lombok.Getter;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/24 16:02
* @description: 园区审核状态枚举
*/
@Getter
public enum PersonStatusEnum {
STATUS_WRZ(1,"草稿"),
STATUS_RZZ(2,"待审核"),
STATUS_YRZ(3,"审批通过"),
STATUS_YJJ(4,"审批拒绝"),
STATUS_DRZ(5,"待认证"),
STATUS_ZF(9,"审批拒绝");
private final Integer code;
private final String name;
PersonStatusEnum(Integer code, String name){
this.code = code;
this.name = name;
}
public static String getName(Integer code){
for (PersonStatusEnum bt: values()){
if (bt.code.equals(code)){
return bt.name;
}
}
return null;
}
}
package com.postcard.service.enums;
import lombok.Getter;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/24 14:53
* @description: 园区详情中 污水处理场类型
*/
@Getter
public enum SewageTypeEnum {
SANITARY_SEWAGE(1, "生活污水处理厂"),
INDUSTRIAL_SEWAGE(2, "工业污水处理厂");
private final Integer code;
private final String name;
SewageTypeEnum(Integer code, String name) {
this.code = code;
this.name = name;
}
}
package com.postcard.service.enums;
public enum StatusEnum {
DISABLE(0,"禁用"),
ENABLE(1,"可用");
private Integer code;
private String name;
StatusEnum(Integer typeId, String name) {
this.code = typeId;
this.name = name;
}
public Integer getCode() {
return code;
}
}
package com.postcard.service.enums;
public enum UrlTypeEnum {
PIC(1, "图片"),
VIDEO(2, "视频"),
VR(3, "VR"),
OTHER(9, "其它");
private Integer code;
private String name;
UrlTypeEnum(Integer code, String name) {
this.code = code;
this.name = name;
}
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
public static String getName(Integer code) {
for (UrlTypeEnum bt : values()) {
if (bt.code.equals(code)) {
return bt.name;
}
}
return null;
}
}
package com.postcard.service.enums;
public enum YesOrNoEnum {
NO(0,"否"),
YES(1,"是");
private Integer code;
private String name;
YesOrNoEnum(Integer typeId, String name) {
this.code = typeId;
this.name = name;
}
public Integer getCode() {
return code;
}
}
package com.postcard.service.moudle.carrier.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.postcard.service.constant.Constants;
import com.postcard.service.domain.ParamEntity;
import com.postcard.service.moudle.carrier.dto.CarrierPageDto;
import com.postcard.service.moudle.carrier.service.CarrierInfoService;
import com.postcard.service.moudle.carrier.vo.CarrierDetailVo;
import com.postcard.service.moudle.carrier.vo.CarrierPageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/11/23 13:46
* @Description: 载体
*/
@RestController
@RequestMapping("/api/carrier/v1.0")
@Api(tags = "载体信息")
@RequiredArgsConstructor
public class CarrierController {
private final CarrierInfoService carrierInfoService;
@PostMapping("/page")
@ApiOperation(value = "分页获取载体信息")
public Page<CarrierPageVo> page(@RequestBody ParamEntity<CarrierPageDto> carrierPageDto){
return this.carrierInfoService.pageList(carrierPageDto);
}
@GetMapping("/detail/{id}")
@ApiOperation(value = "详情")
@ApiImplicitParam(name = "id", value = "载体信息id", type = "Integer")
public CarrierDetailVo detail(@PathVariable("id") Integer id, HttpServletRequest request){
String token = request.getHeader(Constants.TOKEN_HEADER);
return this.carrierInfoService.detail(id,token);
}
}
package com.postcard.service.moudle.carrier.controller;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/12/14 19:29
* @Description:
*/
public class test {
}
package com.postcard.service.moudle.carrier.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import java.util.List;
/**
* @Author:zhouxudong
*
* @version: 1.0 @Date: 2023/11/23 14:11 @Description: 分页查询条件
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ToString
@ApiModel(value = "分页查询条件", description = "分页查询条件")
public class CarrierPageDto {
@ApiModelProperty(value = "所属开发区id")
private Integer developmentId;
@ApiModelProperty(value = "所属产业园id")
private Integer parkId;
@ApiModelProperty(value = "招商方向/产业分类")
private String investmentDirection;
@ApiModelProperty(value = "载体名称")
private String name;
/** 省份code */
@ApiModelProperty(value = "省份code")
private String provinceCode;
/** 省份 */
@ApiModelProperty(value = "省份")
private String provinceName;
/** 城市code */
@ApiModelProperty(value = "城市code")
private String cityCode;
/** 城市 */
@ApiModelProperty(value = "城市")
private String cityName;
/** 区/县code */
@ApiModelProperty(value = "区/县code")
private String regionCode;
/** 区/县 */
@ApiModelProperty(value = "区/县")
private String regionName;
@ApiModelProperty(value = "载体面积")
private String carrierArea;
@ApiModelProperty(value = "载体类型")
private String typeInfo;
@ApiModelProperty(value = "建筑结构")
private String carrierConstruction;
@ApiModelProperty(value = "标准层高")
private String floorHeight;
@ApiModelProperty(value = "标准承重")
private String loadBearing;
@ApiModelProperty(value = "柱距")
private String pillarDistance;
@ApiModelProperty(hidden = true)
private Double lowCarrierArea;
@ApiModelProperty(hidden = true)
private Double highCarrierArea;
@ApiModelProperty(hidden = true)
private Double lowFloorHeight;
@ApiModelProperty(hidden = true)
private Double highFloorHeight;
@ApiModelProperty(hidden = true)
private Double lowLoadBearing;
@ApiModelProperty(hidden = true)
private Double highLoadBearing;
@ApiModelProperty(hidden = true)
private Double lowPillarDistance;
@ApiModelProperty(hidden = true)
private Double highPillarDistance;
//数据库映射字段
@ApiModelProperty(hidden = true)
private List<String> carrierType;
}
package com.postcard.service.moudle.carrier.dto;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/12/14 19:29
* @Description:
*/
public class test {
}
package com.postcard.service.moudle.carrier.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName carrier_elevator_info
*/
@TableName(value ="carrier_elevator_info")
@Data
@ApiModel(value = "电梯参数信息", description = "电梯参数信息")
public class CarrierElevatorInfo implements Serializable {
/**
* 主键id
*/
@ApiModelProperty(value = "主键id")
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 所属载体id
*/
@ApiModelProperty(value = "所属载体id")
private Integer carrierId;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 电梯类型
*/
@ApiModelProperty(value = "电梯类型")
private String electType;
/**
* 电梯载重(单位:kg)
*/
@ApiModelProperty(value = "电梯载重(单位:kg)")
private BigDecimal weight;
/**
* 电梯尺寸
*/
@ApiModelProperty(value = "电梯尺寸")
private String size;
/**
* 电梯数量(单位:个)
*/
@ApiModelProperty(value = "电梯数量(单位:个)")
private Integer number;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.carrier.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/** @TableName carrier_floor_info */
@TableName(value = "carrier_floor_info")
@Data
@ApiModel(value = "载体基本参数信息", description = "载体基本参数信息")
public class CarrierFloorInfo implements Serializable {
/**
* 主键id
*/
@ApiModelProperty(value = "主键id")
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 所属载体id
*/
@ApiModelProperty(value = "所属载体id")
private Integer carrierId;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 层数
*/
@ApiModelProperty(value = "层数")
private String floorNumber;
/**
* 层高(单位:m)
*/
@ApiModelProperty(value = "层高(单位:m)")
private BigDecimal height;
/**
* 面积(单位:㎡)
*/
@ApiModelProperty(value = "面积(单位:㎡)")
private BigDecimal area;
/**
* 承重(单位:kg/㎡)
*/
@ApiModelProperty(value = "承重(单位:kg/㎡)")
private BigDecimal weight;
/**
* 柱距(单位:m)
*/
@ApiModelProperty(value = "柱距(单位:m)")
private String columnSpacing;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.carrier.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/** @TableName carrier_info 载体主表*/
@TableName(value = "carrier_info")
@Data
public class CarrierInfo implements Serializable {
/** */
@TableId(type = IdType.AUTO)
@ApiModelProperty(hidden = true)
private Integer id;
/** 创建时间 */
@ApiModelProperty(hidden = true)
private Date createTime;
/** 更新时间 */
@ApiModelProperty(hidden = true)
private Date updateTime;
/** 所属集团id */
@ApiModelProperty(hidden = true)
private Integer groupId;
/** 所属集团 */
@ApiModelProperty(hidden = true)
private String groupName;
/** 所属片区 */
@ApiModelProperty(hidden = true)
private Integer zoneId;
/** 所属片区 */
@ApiModelProperty(hidden = true)
private String zoneName;
/** 所属园区名称 */
@ApiModelProperty(hidden = true)
private String parkName;
/** 所属园区id */
@ApiModelProperty(hidden = true)
private Integer parkId;
/** 楼号 */
@ApiModelProperty(value = "楼号")
private String buildingNumber;
/** 结构形式 */
@ApiModelProperty(value = "结构形式")
private String structure;
/** 产品类型 */
@ApiModelProperty(value = "产品类型")
private String type;
/** 面积 */
@ApiModelProperty(value = "面积")
private BigDecimal area;
/** 消防等级 */
@ApiModelProperty(value = "消防等级")
private String fireProtectionLevel;
/** 是否安装天车(0-未安装 1-已安装) */
@ApiModelProperty(hidden = true)
private Integer hasCrownBlock;
/** 供水参数 */
@ApiModelProperty(hidden = true)
private String water;
/** 供电参数 */
@ApiModelProperty(hidden = true)
private String electricity;
/** 供气参数(0-无 1-有) */
@ApiModelProperty(hidden = true)
private Integer gas;
/** 供暖参数(0-无 1-有) */
@ApiModelProperty(hidden = true)
private Integer heating;
@ApiModelProperty(value = "层数")
private Integer floorNumber;
@ApiModelProperty(value = "层高(m)")
private BigDecimal floorHigh;
@ApiModelProperty(value = "单层面积(㎡)")
private BigDecimal singleArea;
@ApiModelProperty(value = "柱距(m)")
private BigDecimal distance;
@ApiModelProperty(value = "电梯类型")
private String elevatorType;
@ApiModelProperty(value = "耐火等级")
private String fireResistant;
@ApiModelProperty(value = "图片")
private String imgUrl;
@ApiModelProperty(value = "承重")
private String weight;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.carrier.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.postcard.service.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/24 14:09
* @description: 载体招商方向表-》作废
*/
@ApiModel(value = "载体招商方向表")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName("carrier_investment_direction")
public class CarrierInvestmentEntity extends BaseEntity {
/** 载体id */
@ApiModelProperty(name = "载体id", notes = "")
private Integer carrierId;
/** 招商方向类型 */
@ApiModelProperty(name = "招商方向类型", notes = "")
private Integer code;
/** 详情 */
@ApiModelProperty(name = "详情", notes = "")
private String details;
}
package com.postcard.service.moudle.carrier.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName carrier_operate_info
*/
@TableName(value ="carrier_operate_info")
@Data
@ApiModel(value = "载体经营信息", description = "载体经营信息")
public class CarrierOperateInfo implements Serializable {
/**
* 主键id
*/
@ApiModelProperty(value = "主键id")
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 所属载体id
*/
@ApiModelProperty(value = "所属载体id")
private Integer carrierId;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 楼宇编号
*/
@ApiModelProperty(value = "楼宇编号")
private String buildingNumber;
/**
* 楼层
*/
@ApiModelProperty(value = "楼层")
private Integer floorNumber;
/**
* 房间号
*/
@ApiModelProperty(value = "房间号")
private String roomNumber;
/**
* 状态
*/
@ApiModelProperty(value = "状态")
private String status;
/**
* 标签
*/
@ApiModelProperty(value = "标签")
private String label;
/**
* 工位数量(单位:个)
*/
@ApiModelProperty(value = "工位数量(单位:个)")
private Integer workerCount;
/**
* 租赁面积(单位:㎡)
*/
@ApiModelProperty(value = "租赁面积(单位:㎡)")
private BigDecimal rentArea;
/**
* 使用面积(单位:㎡)
*/
@ApiModelProperty(value = "使用面积(单位:㎡)")
private BigDecimal useArea;
/**
* 租金低价(单位:元/㎡/月)
*/
@ApiModelProperty(value = "租金低价(单位:元/㎡/月)")
private String rentLowPrice;
/**
* 租金表价(单位:元/㎡/月)
*/
@ApiModelProperty(value = "租金表价(单位:元/㎡/月)")
private String rentGeneralPrice;
/**
* 售价底价(单位:元/㎡)
*/
@ApiModelProperty(value = "售价底价(单位:元/㎡)")
private BigDecimal lowPrice;
/**
* 售价表价(单位:元/㎡)
*/
@ApiModelProperty(value = "售价表价(单位:元/㎡)")
private BigDecimal generalPrice;
/**
* 物业服务费价格(单位:元/㎡/月)
*/
@ApiModelProperty(value = "物业服务费价格(单位:元/㎡/月)")
private BigDecimal servicePrice;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.carrier.entity;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/12/14 19:29
* @Description:
*/
public class test {
}
package com.postcard.service.moudle.carrier.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.postcard.service.moudle.carrier.entity.CarrierElevatorInfo;
/**
* @author 26996
* @description 针对表【carrier_elevator_info】的数据库操作Mapper
* @createDate 2023-09-17 17:25:25
* @Entity com.lyy.admin.domain.carrierinfo.CarrierElevatorInfo
*/
public interface CarrierElevatorInfoMapper extends BaseMapper<CarrierElevatorInfo> {
}
package com.postcard.service.moudle.carrier.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.postcard.service.moudle.carrier.entity.CarrierFloorInfo;
/**
* @author 26996
* @description 针对表【carrier_floor_info】的数据库操作Mapper
* @createDate 2023-09-17 17:25:25
* @Entity com.lyy.admin.domain.carrierinfo.CarrierFloorInfo
*/
public interface CarrierFloorInfoMapper extends BaseMapper<CarrierFloorInfo> {
}
package com.postcard.service.moudle.carrier.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.postcard.service.moudle.carrier.dto.CarrierPageDto;
import com.postcard.service.moudle.carrier.entity.CarrierInfo;
import com.postcard.service.moudle.carrier.vo.CarrierPageVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/23 13:50
* @description: 载体实现
*/
@Mapper
public interface CarrierInfoMapper extends BaseMapper<CarrierInfo> {
Page<CarrierPageVo> pageList(Page page, @Param("param") CarrierPageDto carrierPageDto);
}
package com.postcard.service.moudle.carrier.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.postcard.service.moudle.carrier.entity.CarrierInvestmentEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/24 14:11
* @description: v
*/
@Mapper
public interface CarrierInvestmentMapper extends BaseMapper<CarrierInvestmentEntity>{
}
package com.postcard.service.moudle.carrier.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.postcard.service.moudle.carrier.entity.CarrierOperateInfo;
/**
* @author 26996
* @description 针对表【carrier_operate_info】的数据库操作Mapper
* @createDate 2023-09-17 17:25:25
* @Entity com.lyy.admin.domain.carrierinfo.CarrierOperateInfo
*/
public interface CarrierOperateInfoMapper extends BaseMapper<CarrierOperateInfo> {
}
package com.postcard.service.moudle.carrier.mapper;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/12/14 19:29
* @Description:
*/
public class test {
}
package com.postcard.service.moudle.carrier.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.postcard.service.moudle.carrier.entity.CarrierElevatorInfo;
/**
* @author 26996
* @description 针对表【carrier_elevator_info】的数据库操作Service
* @createDate 2023-09-17 17:25:25
*/
public interface CarrierElevatorInfoService extends IService<CarrierElevatorInfo> {
}
package com.postcard.service.moudle.carrier.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.postcard.service.moudle.carrier.entity.CarrierFloorInfo;
/**
* @author 26996
* @description 针对表【carrier_floor_info】的数据库操作Service
* @createDate 2023-09-17 17:25:25
*/
public interface CarrierFloorInfoService extends IService<CarrierFloorInfo> {
}
package com.postcard.service.moudle.carrier.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.postcard.service.domain.ParamEntity;
import com.postcard.service.moudle.carrier.dto.CarrierPageDto;
import com.postcard.service.moudle.carrier.entity.CarrierInfo;
import com.postcard.service.moudle.carrier.vo.CarrierDetailVo;
import com.postcard.service.moudle.carrier.vo.CarrierPageVo;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/23 13:49
* @description: 载体实现
*/
public interface CarrierInfoService extends IService<CarrierInfo> {
/**
* @description: 分页获取载体信息
* @date: 2023/11/23 17:58
* @param: [carrierPageDto]
* @return: com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.lyy.admin.moudle.carrier.vo.CarrierPageVo>
**/
Page<CarrierPageVo> pageList(ParamEntity<CarrierPageDto> carrierPageDto);
/**
* @description: 详情
* @date: 2023/11/23 17:58
* @param: [id]
* @return: com.lyy.admin.moudle.carrier.vo.CarrierDetailVo
**/
CarrierDetailVo detail(Integer id, String token);
}
package com.postcard.service.moudle.carrier.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.postcard.service.moudle.carrier.entity.CarrierInvestmentEntity;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/24 14:13
* @description: 载体招商方向表-》作废
*/
public interface CarrierInvestmentService extends IService<CarrierInvestmentEntity> {
}
package com.postcard.service.moudle.carrier.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.postcard.service.moudle.carrier.entity.CarrierOperateInfo;
/**
* @author 26996
* @description 针对表【carrier_operate_info】的数据库操作Service
* @createDate 2023-09-17 17:25:25
*/
public interface CarrierOperateInfoService extends IService<CarrierOperateInfo> {
}
package com.postcard.service.moudle.carrier.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.postcard.service.moudle.carrier.entity.CarrierElevatorInfo;
import com.postcard.service.moudle.carrier.mapper.CarrierElevatorInfoMapper;
import com.postcard.service.moudle.carrier.service.CarrierElevatorInfoService;
import org.springframework.stereotype.Service;
/**
* @author 26996
* @description 针对表【carrier_elevator_info】的数据库操作Service实现
* @createDate 2023-09-17 17:25:25
*/
@Service
public class CarrierElevatorInfoServiceImpl extends ServiceImpl<CarrierElevatorInfoMapper, CarrierElevatorInfo>
implements CarrierElevatorInfoService {
}
package com.postcard.service.moudle.carrier.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.postcard.service.moudle.carrier.entity.CarrierFloorInfo;
import com.postcard.service.moudle.carrier.mapper.CarrierFloorInfoMapper;
import com.postcard.service.moudle.carrier.service.CarrierFloorInfoService;
import org.springframework.stereotype.Service;
/**
* @author 26996
* @description 针对表【carrier_floor_info】的数据库操作Service实现
* @createDate 2023-09-17 17:25:25
*/
@Service
public class CarrierFloorInfoServiceImpl extends ServiceImpl<CarrierFloorInfoMapper, CarrierFloorInfo>
implements CarrierFloorInfoService {
}
package com.postcard.service.moudle.carrier.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.postcard.service.domain.ParamEntity;
import com.postcard.service.enums.CarouselTypeEnum;
import com.postcard.service.enums.DictCodeEnum;
import com.postcard.service.moudle.carrier.dto.CarrierPageDto;
import com.postcard.service.moudle.carrier.entity.CarrierInfo;
import com.postcard.service.moudle.carrier.mapper.CarrierInfoMapper;
import com.postcard.service.moudle.carrier.service.CarrierInfoService;
import com.postcard.service.moudle.carrier.vo.CarrierDetailVo;
import com.postcard.service.moudle.carrier.vo.CarrierInvestmentVo;
import com.postcard.service.moudle.carrier.vo.CarrierPageVo;
import com.postcard.service.moudle.carrier.vo.CarrierParkVo;
import com.postcard.service.moudle.park.entity.ParkInfo;
import com.postcard.service.moudle.park.service.ParkInfoService;
import com.postcard.service.moudle.system.entity.SysDictDataEntity;
import com.postcard.service.moudle.system.service.SysCarouselInfoService;
import com.postcard.service.moudle.system.service.SysDictDataService;
import com.postcard.service.moudle.system.vo.ResourceVo;
import com.postcard.service.util.CommonUtil;
import com.postcard.service.util.DataUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/23 13:49
* @description: 载体实现
*/
@Service
@Slf4j
public class CarrierInfoServiceImpl extends ServiceImpl<CarrierInfoMapper, CarrierInfo>
implements CarrierInfoService {
@Autowired private SysDictDataService sysDictDataService;
@Autowired private ParkInfoService parkInfoService;
// 轮播图
@Autowired private SysCarouselInfoService sysCarouselInfoService;
/**
* @description: 分页查询
* @date: 2023/11/23 14:47
* @param: [carrierPageDto]
* @return:
* com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.lyy.admin.moudle.carrier.vo.CarrierPageVo>
*/
@Override
public Page<CarrierPageVo> pageList(ParamEntity<CarrierPageDto> paramEntity) {
CarrierPageDto carrierPageDto = paramEntity.getCondition();
String carrierArea = carrierPageDto.getCarrierArea();
String floorHeight = carrierPageDto.getFloorHeight();
String loadBearing = carrierPageDto.getLoadBearing();
String pillarDistance = carrierPageDto.getPillarDistance();
if (StringUtils.isNotBlank(carrierArea)) {
String[] split = carrierArea.split("-");
carrierPageDto.setLowCarrierArea(Double.valueOf(split[0]));
if (split.length > 1) {
carrierPageDto.setHighCarrierArea(Double.valueOf(split[1]));
}
}
if (StringUtils.isNotBlank(floorHeight)) {
String[] split = floorHeight.split("-");
carrierPageDto.setLowFloorHeight(Double.valueOf(split[0]));
if (split.length > 1) {
carrierPageDto.setHighFloorHeight(Double.valueOf(split[1]));
}
}
if (StringUtils.isNotBlank(loadBearing)) {
String[] split = loadBearing.split("-");
carrierPageDto.setLowLoadBearing(Double.valueOf(split[0]));
if (split.length > 1) {
carrierPageDto.setHighLoadBearing(Double.valueOf(split[1]));
}
}
if (StringUtils.isNotBlank(pillarDistance)) {
String[] split = pillarDistance.split("-");
carrierPageDto.setLowPillarDistance(Double.valueOf(split[0]));
if (split.length > 1) {
carrierPageDto.setHighPillarDistance(Double.valueOf(split[1]));
}
}
// 映射字段
String carrierType = carrierPageDto.getTypeInfo();
if (StringUtils.isNotBlank(carrierType)) {
Map<String, SysDictDataEntity> dictDataEntityMap =
this.sysDictDataService.listByCode(DictCodeEnum.CARRIER_TYPE.getCode());
SysDictDataEntity sysDictDataEntity = dictDataEntityMap.get(carrierType);
if (ObjectUtils.isNotEmpty(sysDictDataEntity)) {
String detail = sysDictDataEntity.getDetail();
carrierPageDto.setCarrierType(Arrays.asList(detail.split(",")));
}
}
Page page = CommonUtil.getPageFromEntity(paramEntity);
Page<CarrierPageVo> carrierPageVoPage = this.baseMapper.pageList(page, carrierPageDto);
List<CarrierPageVo> records = carrierPageVoPage.getRecords();
if (!CollectionUtils.isEmpty(records)) {
records.forEach(
data -> {
StringJoiner sj = new StringJoiner("");
String provinceName = data.getProvinceName();
String cityName = data.getCityName();
Double area = data.getArea();
String name =
sj.add(DataUtil.dealProvince(provinceName, cityName))
.add(data.getRegionName())
.add(data.getParkName())
.add(ObjectUtils.isEmpty(area) ? "" : NumberUtil.roundStr(area, 0) + "㎡")
.add(data.getType())
.toString();
data.setName(name);
});
}
return carrierPageVoPage;
}
/**
* @description: 详情
* @date: 2023/11/23 17:58
* @param: [id]
* @return: com.lyy.admin.moudle.carrier.vo.CarrierDetailVo
*/
@Override
public CarrierDetailVo detail(Integer id, String token) {
CarrierInfo carrierInfo = this.getById(id);
CarrierDetailVo carrierDetailVo = BeanUtil.copyProperties(carrierInfo, CarrierDetailVo.class);
// 招商方向
List<CarrierInvestmentVo> investmentVos = new ArrayList<>();
Integer parkId = carrierInfo.getParkId();
if (ObjectUtils.isNotEmpty(parkId)) {
investmentVos = parkInfoService.listInvestDetail(carrierInfo.getParkId());
}
carrierDetailVo.setInvestmentDetails(investmentVos);
// 入住要求
if (ObjectUtils.isNotEmpty(parkId)) {
ParkInfo parkInfo = parkInfoService.getById(parkId);
Optional.ofNullable(parkInfo)
.ifPresent(
data -> {
// ---产业园信息--
CarrierParkVo carrierParkVo = BeanUtil.copyProperties(data, CarrierParkVo.class);
List<String> list = this.parkInfoService.investmentDirection(data.getId());
carrierParkVo.setInvestmentDetails(list);
carrierDetailVo.setCarrierParkVo(carrierParkVo);
});
}
// 轮播图
ResourceVo allResource = sysCarouselInfoService.getAllResource(CarouselTypeEnum.CARRIER.getType(), id);
// 轮播图
carrierDetailVo.setImgUrls(allResource.getImgUrlList());
// 视频
carrierDetailVo.setVideoUrlList(allResource.getVideoVoList());
// VR
carrierDetailVo.setVrUrlList(allResource.getVrVoList());
if (carrierDetailVo.getCarrierParkVo() != null) {
StringJoiner sj = new StringJoiner("");
String provinceName = carrierDetailVo.getCarrierParkVo().getProvinceName();
String cityName = carrierDetailVo.getCarrierParkVo().getCityName();
Double area = carrierDetailVo.getArea();
String name =
sj.add(DataUtil.dealProvince(provinceName, cityName))
.add(carrierDetailVo.getCarrierParkVo().getRegionName())
.add(carrierDetailVo.getCarrierParkVo().getName())
.add(ObjectUtils.isEmpty(area) ? "" : NumberUtil.roundStr(area, 0) + "㎡")
.add(carrierDetailVo.getType())
.toString();
carrierDetailVo.setName(name);
}
return carrierDetailVo;
}
}
package com.postcard.service.moudle.carrier.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.postcard.service.moudle.carrier.entity.CarrierInvestmentEntity;
import com.postcard.service.moudle.carrier.mapper.CarrierInvestmentMapper;
import com.postcard.service.moudle.carrier.service.CarrierInvestmentService;
import org.springframework.stereotype.Service;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/24 14:11
* @description: 载体招商方向
*/
@Service
public class CarrierInvestmentServiceImpl extends ServiceImpl<CarrierInvestmentMapper, CarrierInvestmentEntity> implements CarrierInvestmentService {
}
package com.postcard.service.moudle.carrier.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.postcard.service.moudle.carrier.entity.CarrierOperateInfo;
import com.postcard.service.moudle.carrier.mapper.CarrierOperateInfoMapper;
import com.postcard.service.moudle.carrier.service.CarrierOperateInfoService;
import org.springframework.stereotype.Service;
/**
* @author 26996
* @description 针对表【carrier_operate_info】的数据库操作Service实现
* @createDate 2023-09-17 17:25:25
*/
@Service
public class CarrierOperateInfoServiceImpl extends ServiceImpl<CarrierOperateInfoMapper, CarrierOperateInfo>
implements CarrierOperateInfoService {
}
package com.postcard.service.moudle.carrier.service;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/12/14 19:29
* @Description:
*/
public class test {
}
package com.postcard.service.moudle.carrier.vo;
import com.postcard.service.moudle.system.vo.VideoVo;
import com.postcard.service.moudle.system.vo.VrVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author:zhouxudong
*
* @version: 1.0 @Date: 2023/11/23 14:49 @Description: 载体详情
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@ApiModel(value = "载体详情")
public class CarrierDetailVo {
@ApiModelProperty(value = "主键id")
private Integer id;
//-------需要拼接----------
@ApiModelProperty(value = "载体名称")
private String name;
@ApiModelProperty(value = "类型")
private String type;
@ApiModelProperty(value = "建筑面积")
private Double area;
@ApiModelProperty(value = "建筑结构")
private String structure;
// ------------park表取数据 start---------
@ApiModelProperty(value = "招商信息 /")
private List<CarrierInvestmentVo> investmentDetails;
// ------------park表取数据 end---------
// -------------载体详情-------------------
@ApiModelProperty(value = "层数")
private Integer floorNumber;
@ApiModelProperty(value = "层高(m)")
private BigDecimal floorHigh;
@ApiModelProperty(value = "单层面积(㎡)")
private BigDecimal singleArea;
/** 承重(单位:kg/㎡) */
@ApiModelProperty(value = "承重(单位:kg/㎡)")
private BigDecimal weight;
@ApiModelProperty(value = "柱距(m)")
private BigDecimal distance;
@ApiModelProperty(value = "电梯类型")
private String elevatorType;
/** 消防等级 */
@ApiModelProperty(value = "消防等级")
private String fireProtectionLevel;
@ApiModelProperty(value = "耐火等级")
private String fireResistant;
// ----------------所属产业园-----入住要求------》park 园区表中数据-----------------------
@ApiModelProperty(value = "产业园信息 / 入住要求")
private CarrierParkVo carrierParkVo;
//----------轮播图-------------------
@ApiModelProperty(value = "轮播图")
private List<String> imgUrls;
@ApiModelProperty(value = "轮播视频")
private List<VideoVo> videoUrlList;
@ApiModelProperty(value = "VR")
private List<VrVo> vrUrlList;
@ApiModelProperty(value = "用户解锁额度剩余次数")
private Integer limitNum;
//---------是否可以查看 ---------
@ApiModelProperty(value = "是否可以查看")
private Boolean isView;
@ApiModelProperty(value = "载体详情是否有数据")
private Boolean seeDetails;
}
package com.postcard.service.moudle.carrier.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName carrier_info
*/
@Data
@ApiModel(value = "载体列表信息", description = "载体列表信息")
public class CarrierInfoListVO implements Serializable {
/**
*
*/
@ApiModelProperty(value = "主键id")
private Integer id;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 所属集团id
*/
@ApiModelProperty(value = "所属集团id")
private Integer groupId;
/**
* 所属集团
*/
@ApiModelProperty(value = "所属集团")
private String groupName;
/**
* 所属片区
*/
@ApiModelProperty(value = "所属片区id")
private Integer zoneId;
/**
* 所属片区
*/
@ApiModelProperty(value = "所属片区")
private String zoneName;
/**
* 所属园区名称
*/
@ApiModelProperty(value = "所属园区名称")
private String parkName;
/**
* 所属园区id
*/
@ApiModelProperty(value = "所属园区id")
private Integer parkId;
/**
* 楼号
*/
@ApiModelProperty(value = "楼号")
private String buildingNumber;
/**
* 结构形式
*/
@ApiModelProperty(value = "结构形式")
private String structure;
/**
* 产品类型
*/
@ApiModelProperty(value = "产品类型")
private String type;
/**
* 面积
*/
@ApiModelProperty(value = "面积")
private BigDecimal area;
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.carrier.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName carrier_info
*/
@TableName(value ="carrier_info")
@Data
@ApiModel(value = "载体信息", description = "载体信息")
public class CarrierInfoVO implements Serializable {
/**
*
*/
@ApiModelProperty(value = "主键id")
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 所属集团id
*/
@ApiModelProperty(value = "所属集团id")
private Integer groupId;
/**
* 所属集团
*/
@ApiModelProperty(value = "所属集团")
private String groupName;
/**
* 所属片区id
*/
@ApiModelProperty(value = "所属片区id")
private Integer zoneId;
/**
* 所属片区
*/
@ApiModelProperty(value = "所属片区")
private String zoneName;
/**
* 所属园区名称
*/
@ApiModelProperty(value = "所属园区名称")
private String parkName;
/**
* 所属园区id
*/
@ApiModelProperty(value = "所属园区id")
private Integer parkId;
/**
* 楼号
*/
@ApiModelProperty(value = "楼号")
private String buildingNumber;
/**
* 结构形式
*/
@ApiModelProperty(value = "结构形式")
private String structure;
/**
* 产品类型
*/
@ApiModelProperty(value = "产品类型")
private String type;
/**
* 面积
*/
@ApiModelProperty(value = "面积")
private BigDecimal area;
/**
* 消防等级
*/
@ApiModelProperty(value = "消防等级")
private String fireProtectionLevel;
/**
* 是否安装天车(0-未安装 1-已安装)
*/
@ApiModelProperty(value = "是否安装天车(0-未安装 1-已安装)")
private Integer hasCrownBlock;
/**
* 供水参数
*/
@ApiModelProperty(value = "供水参数")
private String water;
/**
* 供电参数
*/
@ApiModelProperty(value = "供电参数")
private String electricity;
/**
* 供气参数(0-无 1-有)
*/
@ApiModelProperty(value = "供气参数(0-无 1-有)")
private Integer gas;
/**
* 供暖参数(0-无 1-有)
*/
@ApiModelProperty(value = "供暖参数(0-无 1-有)")
private Integer heating;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.carrier.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/11/24 14:15
* @Description: 招商信息 返回数据
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@ApiModel(value = "招商信息 返回数据")
public class CarrierInvestmentVo {
@ApiModelProperty(value = "招商类型")
private Integer code;
@ApiModelProperty(value = "招商类型名称")
private String codeName;
@ApiModelProperty(value = "招商详情")
private String details;
}
package com.postcard.service.moudle.carrier.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/11/23 14:32
* @Description: 载体分页返回数据
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@ApiModel(value = "载体分页返回数据")
public class CarrierPageVo {
@ApiModelProperty(value = "主键id")
private Integer id;
@ApiModelProperty(value = "载体名称")
private String name;
//园区名称
@ApiModelProperty(hidden=true)
private String parkName;
/** 省份code */
@ApiModelProperty(value = "省份code")
private String provinceCode;
/** 省份 */
@ApiModelProperty(value = "省份")
private String provinceName;
/** 城市code */
@ApiModelProperty(value = "城市code")
private String cityCode;
/** 城市 */
@ApiModelProperty(value = "城市")
private String cityName;
/** 区/县code */
@ApiModelProperty(value = "区/县code")
private String regionCode;
/** 区/县 */
@ApiModelProperty(value = "区/县")
private String regionName;
@ApiModelProperty(value = "建筑面积")
private Double area;
@ApiModelProperty(value = "载体类型")
private String type;
@ApiModelProperty(value = "图片")
private String imgUrl;
}
package com.postcard.service.moudle.carrier.vo;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/11/23 15:23
* @Description:
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@ApiModel(value = "载体详情中的产业园")
public class CarrierParkVo {
@TableId
@ApiModelProperty(value = "主键id")
private Integer id;
@ApiModelProperty(value = "产业园名称")
private String name;
/** 省份code */
@ApiModelProperty(value = "省份code")
private String provinceCode;
/** 省份 */
@ApiModelProperty(value = "省份")
private String provinceName;
/** 城市code */
@ApiModelProperty(value = "城市code")
private String cityCode;
/** 城市 */
@ApiModelProperty(value = "城市")
private String cityName;
/** 区/县code */
@ApiModelProperty(value = "区/县code")
private String regionCode;
/** 区/县 */
@ApiModelProperty(value = "区/县")
private String regionName;
@ApiModelProperty(value = "经度(坐标系gcj02)")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度(坐标系gcj02)")
private BigDecimal latitude;
/**
* 占地面积(单位:亩)
*/
@ApiModelProperty(value = "占地面积(单位:亩)")
private Double coverArea;
/**
* 园区级别名称
*/
@ApiModelProperty(value = "园区级别名称")
private String levelName;
@ApiModelProperty(value = "招商方向")
private List<String> investmentDetails;
@ApiModelProperty(value = "图片")
private String imgUrl;
//-------------入驻要求-------------
@ApiModelProperty(value = "总投资额(亿元)")
private BigDecimal investmentAmountTotal;
/** 亩均产值(单位:万/亩) */
@ApiModelProperty(value = "亩均产值(单位:万/亩)")
private String averageOutputValue;
/** 投资强度(单位:万/亩) */
@ApiModelProperty(value = "投资强度(单位:万/亩)")
private String investmentStrength;
/** 税收强度(单位:万/亩) */
@ApiModelProperty(value = "税收强度(单位:万/亩)")
private String taxationStrength;
@ApiModelProperty(value = "建设周期(月)")
private Integer buildingPeriod;
/** 单位工业增加值能耗(单位:tce/万元) */
@ApiModelProperty(value = "能评要求(单位:tce/万元)")
private String valueAddedEnergy;
@ApiModelProperty(value = "详细地址")
private String address;
@ApiModelProperty(value = "联系人")
private String contactPerson;
}
package com.postcard.service.moudle.carrier.vo;
/**
* @Author:zhouxudong
* @version: 1.0
* @Date: 2023/12/14 19:29
* @Description:
*/
public class test {
}
package com.postcard.service.moudle.development.controller;
import com.postcard.service.moudle.development.service.DevelopmentInfoService;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
@RestController
@RequestMapping("/api/developmentInfo/v1.0")
@Api(tags = "开发区信息")
@Slf4j
public class DevelopmentInfoController {
@Autowired
DevelopmentInfoService developmentInfoSerivce;
}
package com.postcard.service.moudle.development.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "开发区分页查询,排序字段:1-is_super:星级标识 DESC; 2-status:认证状态 ASC;3-create_time:录入时间 DESC;", description = "")
public class DevelopmentPageDto implements Serializable {
@ApiModelProperty(hidden = true)
private String provinceCode;
@ApiModelProperty(value = "省份")
private String provinceName;
@ApiModelProperty(hidden = true)
private String cityCode;
@ApiModelProperty(value = "城市")
private String cityName;
@ApiModelProperty(hidden = true)
private String regionCode;
@ApiModelProperty(value = "区/县")
private String regionName;
@ApiModelProperty(value = "所属都市圈")
private Integer megalopolisId;
@ApiModelProperty(value = "开发区名称(模糊搜索)")
private String name;
@ApiModelProperty(value = "开发区级别(市级;省级;国家级;其他)")
private String levelName;
@ApiModelProperty(value = "开发区类型")
private String type;
@ApiModelProperty(value = "区域面积(规划面积)(单位:㎡)")
private String planArea;
// @ApiModelProperty(value = "面积上限(单位:㎡)")
@ApiModelProperty(hidden = true)
private Double planAreaUp;
// @ApiModelProperty(value = "面积下限(单位:㎡)")
@ApiModelProperty(hidden = true)
private Double planAreaUnder;
@ApiModelProperty(value = "招商方向")
private String investmentDirection;
@ApiModelProperty(value = "产业政策")
private List<String> industryPolicyList;
// @ApiModelProperty(value = "认证状态(1-未认证;2-认证中;3-已认证;4-未通过;5-待认证;9-已作废)")
// private String status;
@ApiModelProperty(hidden = true)
private List<Integer> statusList;
}
package com.postcard.service.moudle.development.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class DevelopmentPagePersonDto implements Serializable {
@ApiModelProperty(value = "来源方式(lyy_info_source)")
private Integer isSystem;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "录入起始时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private String startCreateTime;
@ApiModelProperty(value = "录入结束时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private String endCreateTime;
@ApiModelProperty(value = "审批状态(lyy_developmentinfo_status)")
private Integer status;
@ApiModelProperty(hidden = true)
private List<Integer> statusList;
@ApiModelProperty(hidden = true)
private Integer userId;
}
package com.postcard.service.moudle.development.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
*
* @TableName development_industry_fund_info
*/
@TableName(value ="development_industry_fund_info")
@Data
@ApiModel(value = "开发区产业基金信息", description = "开发区产业基金信息")
public class DevelopmentIndustryFundInfo implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "主键id")
private Integer id;
/**
* 所属片区id
*/
@ApiModelProperty(hidden = true)
private Integer developmentId;
/**
* 基金名称
*/
@ApiModelProperty(value = "基金名称")
private String name;
/**
* 基金规模(亿元)
*/
@ApiModelProperty(value = "基金规模(亿元)")
private String scale;
/**
* 投资方向
*/
@ApiModelProperty(value = "投资方向")
private String investmentDirection;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.development.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
*
* @TableName development_industry_policy_info
*/
@TableName(value ="development_industry_policy_info")
@Data
@ApiModel(value = "开发区产业政策信息", description = "开发区产业政策信息")
public class DevelopmentIndustryPolicyInfo implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "主键id")
private Integer id;
/**
* 所属片区
*/
@ApiModelProperty(value = "所属片区")
private Integer developmentId;
/**
* 政策分类
*/
@ApiModelProperty(value = "政策分类")
private String type;
/**
* 政策名称
*/
@ApiModelProperty(value = "政策名称")
private String name;
/**
* 政策内容
*/
@ApiModelProperty(value = "政策内容")
private String content;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.development.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName development_info
*/
@TableName(value ="development_info")
@Data
@ApiModel(value = "开发区主表基本信息", description = "开发区主表基本信息")
public class DevelopmentInfo implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 片区名称
*/
private String name;
/**
* 所属集团id
*/
private Integer groupId;
/**
* 所属集团
*/
private String groupName;
/**
* 片区级别
*/
private String levelCode;
/**
* 片区级别
*/
private String levelName;
/**
* 片区级别-其他
*/
private String levelOther;
/**
* 请选择省份城市与地区
*/
private String location;
/**
* 规划面积(平方公里)
*/
private BigDecimal planArea;
/**
* 核心区面积(平方公里)
*/
private BigDecimal coreArea;
/**
* 已开发面积(平方公里)
*/
private BigDecimal developedArea;
/**
* 所属城市、区县简介(城市与区县的定位、面积、人口信息、GDP、规上工业增加值)
*/
private String ownerDescription;
/**
* 片区简介
*/
private String description;
/**
* 位置信息-东至
*/
private String locationEast;
/**
* 位置信息-西至
*/
private String locationWest;
/**
* 位置信息-南至
*/
private String locationSouth;
/**
* 位置信息-北至
*/
private String locationNorth;
/**
* 域内通行铁路名称
*/
private String intraRailway;
/**
* 域内通行高速名称
*/
private String intraHighway;
/**
* 片区区位信息-其他补充信息
*/
private String locationOther;
/**
* 整体定位
*/
private String overallPositioning;
/**
* 所属区县人口信息—常住人口(万人)
*/
private BigDecimal permanentPopulation;
/**
* 户籍人口(万人)
*/
private BigDecimal registerPopulation;
/**
* 流动人口(万人)
*/
private BigDecimal floatingPopulation;
/**
* 常住人口增长率(‰)
*/
private String permanentRatio;
/**
* 户籍人口增长率(‰)
*/
private String registerRatio;
/**
* 流动人口增长率(‰)
*/
private String floatingRatio;
/**
* 所属区县经济信息(2022年)—区县GDP(亿元)
*/
private BigDecimal gdp;
/**
* 规上工业增加值(亿元)
*/
private BigDecimal addValue;
/**
* 一般公共预算收入(亿元)
*/
private BigDecimal budgetIncome;
/**
* 增值税地方留存比例(%)
*/
private BigDecimal addValueTax;
/**
* 所得税地方留存比例(%)
*/
private BigDecimal incomeTax;
/**
* 综合留存比例(%)
*/
private BigDecimal comprehensive;
/**
* 片区产业-产业空间规划
*/
private String industrySpacePlan;
/**
* 产规图像1
*/
private String industryPlan1;
/**
* 产规图像2
*/
private String industryPlan2;
/**
* 产规图像3
*/
private String industryPlan3;
/**
* 产规图像4
*/
private String industryPlan4;
/**
* 产规图像5
*/
private String industryPlan5;
/**
* 片区主导产业
*/
private String primaryIndustry;
/**
* 产业基础
*/
private String industryBase;
/**
* 重点产业方向
*/
private String keyIndustryDirection;
/**
* 投资量级(亿元)
*/
private String investmentLevel;
/**
* 业态
*/
private String industryForms;
/**
* 其他诉求
*/
private String otherAppeal;
/**
* 禁限目录
*/
private String prohibitedDirectory;
/**
* 禁限目录文件
*/
private String prohibitedUrl;
/**
* 投资强度(单位:万/亩)
*/
private String investmentStrength;
/**
* 税收强度(单位:万/亩)
*/
private String taxationStrength;
/**
* 亩均产值(单位:万/亩)
*/
private String averageOutputValue;
/**
* 环评要求
*/
private String environmentalEquirements;
/**
* 单位工业增加值能耗(单位:tce/万元)
*/
private String valueAddedEnergy;
/**
* 单位工业总产值能耗(单位:tce/万元)
*/
private String totalValueEnergy;
/**
* 其他
*/
private String accessOther;
/**
* 政策文件附件1
*/
private String policyFileUrl1;
/**
* 政策文件附件2
*/
private String policyFileUrl2;
/**
* 政策文件附件3
*/
private String policyFileUrl3;
/**
* 政策文件附件4
*/
private String policyFileUrl4;
/**
* 政策文件附件5
*/
private String policyFileUrl5;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 问卷星id
*/
private Integer wenjuanxingid;
/**
* 省code
*/
private String provinceCode;
/**
* 省
*/
private String provinceName;
/**
* 市code
*/
private String cityCode;
/**
* 市
*/
private String cityName;
/**
* 区/县code
*/
private String regionCode;
/**
* 区/县
*/
private String regionName;
/**
* 详细地址
*/
private String address;
/**
* 企业数量
*/
private Integer companyNumber;
/**
* 子园区数量
*/
private Integer sonParkNumber;
/**
* 认证状态(1-未认证;2-认证中;3-已认证;4-已拒绝;9-已回退)
*/
private Integer status;
/**
* 成立时间
*/
private String establishTime;
/**
* 省级
*/
private String provinceLevel;
/**
* 国家级
*/
private String countryLevel;
//图片链接
private String imgUrl;
//类型
private String type;
//所属都市圈id
private Integer megalopolisId;
//招商对接人
private String contactPerson;
//联系电话
private String contactPhone;
//总投资额(亿元)
private BigDecimal investmentAmountTotal;
//投资周期(月)
private Integer buildingPeriod;
//工业用电(元/度)
private String industrialElectricity;
//供电类型
private String powerSupplyType;
//变电站级别
private String substationLevel;
//人力成本(元/月)
private BigDecimal laborCost;
//土地成本(万元/亩)
private BigDecimal landCost;
//工业用水单价(元/吨)
private String industrialWaterPrice;
//是否有供暖(0-无;1-有)
private Integer isHeating;
//是否有蒸汽(0-无;1-有)
private Integer isSteam;
//是否有天然气(0-无;1-有)
private Integer isNaturalGas;
//是否有其他要求(0-无;1-有)
private Integer isOtherRequirements;
//供暖单价(元/m³)
private String heatingPrice;
//蒸汽价格(元/m³)
private String steamPrice;
//天然气单价(元/m³)
private String naturalGasPrice;
//是否有产业基金(0-无;1-有)
private Integer isIndustryFund;
//用户id
private Integer userId;
//用户名称
private String userName;
//是否为系统提前预录入(0-否;1-是)
private Integer isSystem;
//系统预录入数据id
private Integer mirrorId;
//污水处理类别
private String sewageWaterType;
//污水处理价格(元/吨)
private BigDecimal sewageWaterPrice;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date submitTime;
private String organization;
private String reason;
private BigDecimal longitude;
private BigDecimal latitude;
private Integer isSuper;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.development.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
*
* @TableName development_investment_direction_info
*/
@TableName(value ="development_investment_direction_info")
@Data
@ApiModel(value = "开发区招商方向信息", description = "开发区招商方向信息")
public class DevelopmentInvestmentDirectionInfo implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "主键id")
private Integer id;
/**
* 所属片区
*/
@ApiModelProperty(hidden = true)
private Integer developmentId;
/**
* 产业方向
*/
@ApiModelProperty(value = "产业方向")
private String industryDirection;
/**
* 细分赛道
*/
@ApiModelProperty(value = "细分赛道")
private String track;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.development.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
*
* @TableName development_primary_enterprise_info
*/
@TableName(value ="development_primary_enterprise_info")
@Data
@ApiModel(value = "企业代表信息", description = "企业代表信息")
public class DevelopmentPrimaryEnterpriseInfo implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "主键id")
private Integer id;
/**
* 所属片区
*/
@ApiModelProperty(hidden = true)
private Integer developmentId;
/**
* 片区龙头/链主企业代表—1(产业方向)
*/
@ApiModelProperty(value = "产业方向")
private String industryDirection;
/**
* 企业名称
*/
@ApiModelProperty(value = "企业名称")
private String enterpriseName;
/**
* 所属赛道
*/
@ApiModelProperty(value = "所属赛道")
private String track;
/**
* 投资规模
*/
@ApiModelProperty(hidden = true)
private String investmentScale;
/**
* 当前进展
*/
@ApiModelProperty(hidden = true)
private String currentProgress;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
package com.postcard.service.moudle.development.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.postcard.service.moudle.development.entity.DevelopmentIndustryFundInfo;
/**
* @author 26996
* @description 针对表【development_industry_fund_info】的数据库操作Mapper
* @createDate 2023-09-19 17:24:27
* @Entity com.lyy.admin.domain.developmentinfo.DevelopmentIndustryFundInfo
*/
public interface DevelopmentIndustryFundInfoMapper extends BaseMapper<DevelopmentIndustryFundInfo> {
}
package com.postcard.service.moudle.development.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.postcard.service.moudle.development.entity.DevelopmentIndustryPolicyInfo;
/**
* @author 26996
* @description 针对表【development_industry_policy_info】的数据库操作Mapper
* @createDate 2023-09-19 17:24:27
* @Entity com.lyy.admin.domain.developmentinfo.DevelopmentIndustryPolicyInfo
*/
public interface DevelopmentIndustryPolicyInfoMapper extends BaseMapper<DevelopmentIndustryPolicyInfo> {
}
package com.postcard.service.moudle.development.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.postcard.service.moudle.development.dto.DevelopmentPageDto;
import com.postcard.service.moudle.development.dto.DevelopmentPagePersonDto;
import com.postcard.service.moudle.development.entity.DevelopmentInfo;
import com.postcard.service.moudle.development.vo.DevelopmentCountVo;
import com.postcard.service.moudle.development.vo.DevelopmentPagePersonVo;
import com.postcard.service.moudle.development.vo.DevelopmentPageVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author 26996
* @description 针对表【development_info】的数据库操作Mapper
* @createDate 2023-09-19 17:24:27
* @Entity com.lyy.admin.domain.developmentinfo.DevelopmentInfo
*/
@Mapper
public interface DevelopmentInfoMapper extends BaseMapper<DevelopmentInfo> {
/**
* @description: 分页查询开发区列表(只返回已认证和待认证的数据)
* @date: 2023/11/23 9:51
* @param: paramEntity
**/
Page<DevelopmentPageVo> pageList(Page pageFromEntity, @Param("param") DevelopmentPageDto developmentInfoDto);
/**
* @description: 个人中心分页查询开发区列表
* @date: 2023/11/23 9:51
* @param: paramEntity
**/
Page<DevelopmentPagePersonVo> pagePersonList(Page pageFromEntity, @Param("param") DevelopmentPagePersonDto developmentInfoDto);
/**
* 开发区 载体数量 产业园数量 土地数量
* @param id
* @return
*/
DevelopmentCountVo countById(Integer id);
/**
* @description: 该开发区的载体数目
* @date: 2023/12/12 19:31
* @param: [id]
* @return: int
**/
int carrierNum(Integer id);
}
package com.postcard.service.moudle.development.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.postcard.service.moudle.development.entity.DevelopmentInvestmentDirectionInfo;
/**
* @author 26996
* @description 针对表【development_investment_direction_info】的数据库操作Mapper
* @createDate 2023-09-19 17:24:27
* @Entity com.lyy.admin.domain.developmentinfo.DevelopmentInvestmentDirectionInfo
*/
public interface DevelopmentInvestmentDirectionInfoMapper extends BaseMapper<DevelopmentInvestmentDirectionInfo> {
}
package com.postcard.service.moudle.development.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.postcard.service.moudle.development.entity.DevelopmentPrimaryEnterpriseInfo;
/**
* @author 26996
* @description 针对表【development_primary_enterprise_info】的数据库操作Mapper
* @createDate 2023-09-19 17:24:27
* @Entity com.lyy.admin.domain.developmentinfo.DevelopmentPrimaryEnterpriseInfo
*/
public interface DevelopmentPrimaryEnterpriseInfoMapper extends BaseMapper<DevelopmentPrimaryEnterpriseInfo> {
}
package com.postcard.service.moudle.development.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.postcard.service.moudle.development.entity.DevelopmentIndustryFundInfo;
/**
* @author 26996
* @description 针对表【development_industry_fund_info】的数据库操作Service
* @createDate 2023-09-19 17:24:27
*/
public interface DevelopmentIndustryFundInfoService extends IService<DevelopmentIndustryFundInfo> {
}
package com.postcard.service.moudle.development.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.postcard.service.moudle.development.entity.DevelopmentIndustryPolicyInfo;
/**
* @author 26996
* @description 针对表【development_industry_policy_info】的数据库操作Service
* @createDate 2023-09-19 17:24:27
*/
public interface DevelopmentIndustryPolicyInfoService extends IService<DevelopmentIndustryPolicyInfo> {
}
package com.postcard.service.moudle.development.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.postcard.service.domain.ParamEntity;
import com.postcard.service.moudle.carrier.vo.CarrierInvestmentVo;
import com.postcard.service.moudle.development.dto.DevelopmentPageDto;
import com.postcard.service.moudle.development.dto.DevelopmentPagePersonDto;
import com.postcard.service.moudle.development.entity.DevelopmentInfo;
import com.postcard.service.moudle.development.vo.DevelopmentDetailPersonVo;
import com.postcard.service.moudle.development.vo.DevelopmentDetailVo;
import com.postcard.service.moudle.development.vo.DevelopmentPagePersonVo;
import com.postcard.service.moudle.development.vo.DevelopmentPageVo;
import java.util.List;
/**
* @author 26996
* @description 针对表【development_info】的数据库操作Service
* @createDate 2023-09-19 17:24:27
*/
public interface DevelopmentInfoService extends IService<DevelopmentInfo> {
/**
* @description: 获取招商方向
* @date: 2023/11/23 9:51
* @param: id 开发区id
**/
public List<CarrierInvestmentVo> getInvestment(Integer developmentId);
/**
* @description: 查询开发区的一级招商方向
* @date: 2023/11/28 11:23
* @param: [parkId]
* @return: java.util.List<java.lang.String>
**/
List<String> investmentDirection(Integer developmentId);
}
package com.postcard.service.moudle.development.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.postcard.service.moudle.development.entity.DevelopmentInvestmentDirectionInfo;
/**
* @author 26996
* @description 针对表【development_investment_direction_info】的数据库操作Service
* @createDate 2023-09-19 17:24:27
*/
public interface DevelopmentInvestmentDirectionInfoService extends IService<DevelopmentInvestmentDirectionInfo> {
}
package com.postcard.service.moudle.development.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.postcard.service.moudle.development.entity.DevelopmentPrimaryEnterpriseInfo;
/**
* @author 26996
* @description 针对表【development_primary_enterprise_info】的数据库操作Service
* @createDate 2023-09-19 17:24:27
*/
public interface DevelopmentPrimaryEnterpriseInfoService extends IService<DevelopmentPrimaryEnterpriseInfo> {
}
package com.postcard.service.moudle.development.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.postcard.service.moudle.development.entity.DevelopmentIndustryFundInfo;
import com.postcard.service.moudle.development.mapper.DevelopmentIndustryFundInfoMapper;
import com.postcard.service.moudle.development.service.DevelopmentIndustryFundInfoService;
import org.springframework.stereotype.Service;
/**
* @author 26996
* @description 针对表【development_industry_fund_info】的数据库操作Service实现
* @createDate 2023-09-19 17:24:27
*/
@Service
public class DevelopmentIndustryFundInfoServiceImpl extends ServiceImpl<DevelopmentIndustryFundInfoMapper, DevelopmentIndustryFundInfo>
implements DevelopmentIndustryFundInfoService {
}
package com.postcard.service.moudle.development.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.postcard.service.moudle.development.entity.DevelopmentIndustryPolicyInfo;
import com.postcard.service.moudle.development.mapper.DevelopmentIndustryPolicyInfoMapper;
import com.postcard.service.moudle.development.service.DevelopmentIndustryPolicyInfoService;
import org.springframework.stereotype.Service;
/**
* @author 26996
* @description 针对表【development_industry_policy_info】的数据库操作Service实现
* @createDate 2023-09-19 17:24:27
*/
@Service
public class DevelopmentIndustryPolicyInfoServiceImpl extends ServiceImpl<DevelopmentIndustryPolicyInfoMapper, DevelopmentIndustryPolicyInfo>
implements DevelopmentIndustryPolicyInfoService {
}
package com.postcard.service.moudle.development.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.postcard.service.domain.ParamEntity;
import com.postcard.service.enums.DevelopmentInfoEnum;
import com.postcard.service.enums.DevelopmentStatusEnum;
import com.postcard.service.enums.DictCodeEnum;
import com.postcard.service.moudle.carrier.vo.CarrierInvestmentVo;
import com.postcard.service.moudle.development.dto.DevelopmentPageDto;
import com.postcard.service.moudle.development.entity.DevelopmentInfo;
import com.postcard.service.moudle.development.entity.DevelopmentInvestmentDirectionInfo;
import com.postcard.service.moudle.development.entity.DevelopmentPrimaryEnterpriseInfo;
import com.postcard.service.moudle.development.mapper.DevelopmentInfoMapper;
import com.postcard.service.moudle.development.service.*;
import com.postcard.service.moudle.development.vo.DevelopmentDetailVo;
import com.postcard.service.moudle.development.vo.DevelopmentEnterpriseVo;
import com.postcard.service.moudle.development.vo.DevelopmentPageVo;
import com.postcard.service.moudle.land.service.LandInfoService;
import com.postcard.service.moudle.park.service.ParkInfoService;
import com.postcard.service.moudle.system.entity.SysDictDataEntity;
import com.postcard.service.moudle.system.service.SysCarouselInfoService;
import com.postcard.service.moudle.system.service.SysDictDataService;
import com.postcard.service.util.CommonUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author 26996
* @description 针对表【development_info】的数据库操作Service实现
* @createDate 2023-09-19 17:24:27
*/
@Service
@Slf4j
public class DevelopmentInfoServiceImpl extends ServiceImpl<DevelopmentInfoMapper, DevelopmentInfo>
implements DevelopmentInfoService {
@Autowired
ParkInfoService parkInfoService;
@Autowired
DevelopmentPrimaryEnterpriseInfoService developmentPrimaryEnterpriseInfoService;
@Autowired
DevelopmentIndustryPolicyInfoService developmentIndustryPolicyInfoService;
@Autowired
DevelopmentInvestmentDirectionInfoService developmentInvestmentDirectionInfoService;
@Autowired
DevelopmentIndustryFundInfoService developmentIndustryFundInfoService;
@Autowired
LandInfoService landInfoService;
@Autowired
SysCarouselInfoService sysCarouselInfoService;
@Autowired
SysDictDataService sysDictDataService;
/**
* @description: 查询开发区的一级招商方向
* @date: 2023/11/28 11:23
* @param: [parkId]
* @return: java.util.List<java.lang.String>
*/
@Override
public List<String> investmentDirection(Integer developmentId) {
List<String> result = new ArrayList<>();
LambdaQueryWrapper<DevelopmentInvestmentDirectionInfo> lambdaQueryWrapper =
new LambdaQueryWrapper<>();
lambdaQueryWrapper
.eq(DevelopmentInvestmentDirectionInfo::getDevelopmentId, developmentId)
.groupBy(DevelopmentInvestmentDirectionInfo::getIndustryDirection);
List<DevelopmentInvestmentDirectionInfo> directionList =
this.developmentInvestmentDirectionInfoService.list(lambdaQueryWrapper);
if (!CollectionUtils.isEmpty(directionList)) {
result =
directionList.stream()
.map(DevelopmentInvestmentDirectionInfo::getIndustryDirection)
.distinct()
.collect(Collectors.toList());
}
return result;
}
@Override
public List<CarrierInvestmentVo> getInvestment(Integer developmentId) {
LambdaQueryWrapper<DevelopmentInvestmentDirectionInfo> investQuery = new LambdaQueryWrapper<>();
investQuery
.eq(DevelopmentInvestmentDirectionInfo::getDevelopmentId, developmentId);
List<DevelopmentInvestmentDirectionInfo> investmentEntityList =
developmentInvestmentDirectionInfoService.list(investQuery);
List<CarrierInvestmentVo> invests =
investmentEntityList.stream()
.map(
e -> {
CarrierInvestmentVo carrierInvestmentVo = new CarrierInvestmentVo();
carrierInvestmentVo.setCodeName(e.getIndustryDirection());
carrierInvestmentVo.setDetails(e.getTrack());
return carrierInvestmentVo;
})
.collect(Collectors.toList());
return invests;
}
}
package com.postcard.service.moudle.development.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.postcard.service.moudle.development.entity.DevelopmentInvestmentDirectionInfo;
import com.postcard.service.moudle.development.mapper.DevelopmentInvestmentDirectionInfoMapper;
import com.postcard.service.moudle.development.service.DevelopmentInvestmentDirectionInfoService;
import org.springframework.stereotype.Service;
/**
* @author 26996
* @description 针对表【development_investment_direction_info】的数据库操作Service实现
* @createDate 2023-09-19 17:24:27
*/
@Service
public class DevelopmentInvestmentDirectionInfoServiceImpl extends ServiceImpl<DevelopmentInvestmentDirectionInfoMapper, DevelopmentInvestmentDirectionInfo>
implements DevelopmentInvestmentDirectionInfoService {
}
package com.postcard.service.moudle.development.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.postcard.service.moudle.development.entity.DevelopmentPrimaryEnterpriseInfo;
import com.postcard.service.moudle.development.mapper.DevelopmentPrimaryEnterpriseInfoMapper;
import com.postcard.service.moudle.development.service.DevelopmentPrimaryEnterpriseInfoService;
import org.springframework.stereotype.Service;
/**
* @author 26996
* @description 针对表【development_primary_enterprise_info】的数据库操作Service实现
* @createDate 2023-09-19 17:24:27
*/
@Service
public class DevelopmentPrimaryEnterpriseInfoServiceImpl extends ServiceImpl<DevelopmentPrimaryEnterpriseInfoMapper, DevelopmentPrimaryEnterpriseInfo>
implements DevelopmentPrimaryEnterpriseInfoService {
}
package com.postcard.service.moudle.development.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "开发区内园区、载体、土地数量计算")
public class DevelopmentCountVo {
@ApiModelProperty(value = "园区数量")
private Long parkCount;
@ApiModelProperty(value = "载体数量")
private Long carrierCount;
@ApiModelProperty(value = "土地数量")
private Long landCount;
}
package com.postcard.service.moudle.development.vo;
import cn.hutool.json.JSONArray;
import com.postcard.service.moudle.carrier.vo.CarrierInvestmentVo;
import com.postcard.service.moudle.land.entity.LandInfoEntity;
import com.postcard.service.moudle.system.vo.VideoVo;
import com.postcard.service.moudle.system.vo.VrVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Author:yaobaizheng
* @version: 1.0 @Date: 2023/11/22 17:51 @Description: 个人中心开发区详情
*/
@Data
@ApiModel(value = "个人中心开发区详情", description = "个人中心开发区详情")
public class DevelopmentDetailPersonVo implements Serializable {
// -------------------头部信息-----------------------------
@ApiModelProperty(value = "主键id")
private Integer id;
@ApiModelProperty(value = "开发区名称")
private String name;
@ApiModelProperty(value = "发布时间")
private Date createTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "开发区级别")
private String levelCode;
@ApiModelProperty(value = "开发区级别名称")
private String levelName;
@ApiModelProperty(value = "开发区类型")
private String type;
@ApiModelProperty(value = "规划面积(平方公里)")
private BigDecimal planArea;
@ApiModelProperty(value = "省code")
private String provinceCode;
@ApiModelProperty(value = "省")
private String provinceName;
@ApiModelProperty(value = "市code")
private String cityCode;
@ApiModelProperty(value = "市")
private String cityName;
@ApiModelProperty(value = "区/县code")
private String regionCode;
@ApiModelProperty(value = "区/县")
private String regionName;
@ApiModelProperty(value = "详细地址")
private String address;
//------------园区对接人------------------------------------------------
@ApiModelProperty(value = "招商对接人")
private String contactPerson;
@ApiModelProperty(value = "联系电话")
private String contactPhone;
@ApiModelProperty(value = "组织机构")
private String organization;
//------------开发区简介------------------------------------------------
@ApiModelProperty(value = "开发区简介")
private String description;
//------------产业基础------------------------------------------------
@ApiModelProperty(value = "主导产业")
private String primaryIndustry;
@ApiModelProperty(value = "招商方向")
private List<CarrierInvestmentVo> investmentDetails;
//------------要素成本------------------------------------------------
@ApiModelProperty(value = "人力成本(元/月)")
private BigDecimal laborCost;
@ApiModelProperty(value = "土地成本(万元/亩)")
private BigDecimal landCost;
@ApiModelProperty(value = "工业用电(元/㎡/天)")
private String industrialElectricity;
@ApiModelProperty(value = "变电站级别")
private String[] substationLevel;
@ApiModelProperty(value = "供电类型")
private String powerSupplyType;
@ApiModelProperty(value = "工业用水单价(元/吨)")
private String industrialWaterPrice;
@ApiModelProperty(value = "污水处理类别")
private String sewageWaterType;
@ApiModelProperty(value = "污水处理价格(元/吨)")
private BigDecimal sewageWaterPrice;
@ApiModelProperty(value = "供暖单价(元/m³)")
private String heatingPrice;
@ApiModelProperty(value = "蒸汽价格(元/m³)")
private String steamPrice;
@ApiModelProperty(value = "天然气单价(元/m³)")
private String naturalGasPrice;
//------------------重点企业---------------------------------------------
@ApiModelProperty(value = "重点企业详情")
private JSONArray enterpriseList;
//------------------产业政策---------------------------------------------
@ApiModelProperty(value = "产业政策详情")
private JSONArray policyList;
//------------------产业基金---------------------------------------------
@ApiModelProperty(value = "产业基金")
private List<DevelopmentFundVo> fundList;
//------------------入驻要求---------------------------------------------
@ApiModelProperty(value = "总投资额(亿元)")
private BigDecimal investmentAmountTotal;
@ApiModelProperty(value = "亩均投资强度(单位:万/亩)")
private String investmentStrength;
@ApiModelProperty(value = "亩均税收(单位:万/亩)")
private String taxationStrength;
@ApiModelProperty(value = "亩均年产值(单位:万/亩)")
private String averageOutputValue;
@ApiModelProperty(value = "投资周期(月)")
private Integer buildingPeriod;
@ApiModelProperty(value = "环评要求")
private String environmentalEquirements;
@ApiModelProperty(value = "能评要求(单位:tce/万元)")
private String valueAddedEnergy;
@ApiModelProperty(value = "禁限目录")
private String prohibitedDirectory;
@ApiModelProperty(value = "禁限目录文件")
private List<String> prohibitedDirectoryUrlList;
@ApiModelProperty(value = "其他入驻要求")
private String accessOther;
@ApiModelProperty(value = "政策文件")
private List<String> policyUrlList;
@ApiModelProperty(value = "轮播图")
private List<String> imgUrlList;
@ApiModelProperty(value = "视频")
private List<VideoVo> videoUrlList;
@ApiModelProperty(value = "视频")
private List<VrVo> vrUrlList;
//--------------------开发区内所属产业园列表--------------------------------
@ApiModelProperty(value = "开发区内土地列表")
private List<LandInfoEntity> LandinfoList;
@ApiModelProperty(value = "星级开发区附加信息")
private Map<String, List<StarObjectExtensionInfoVO>> starObjectExtensionInfoMap;
}
package com.postcard.service.moudle.development.vo;
import cn.hutool.json.JSONArray;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.postcard.service.config.other.BigDecimal2String;
import com.postcard.service.config.other.String2String;
import com.postcard.service.moudle.carrier.vo.CarrierInvestmentVo;
import com.postcard.service.moudle.land.vo.LandPageVo;
import com.postcard.service.moudle.park.vo.ParkPageVo;
import com.postcard.service.moudle.system.vo.VideoVo;
import com.postcard.service.moudle.system.vo.VrVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* @Author:yaobaizheng
* @version: 1.0 @Date: 2023/11/22 17:51 @Description: 开发区详情
*/
@Data
@ApiModel(value = "开发区详情", description = "开发区详情")
public class DevelopmentDetailVo implements Serializable {
// -------------------头部信息-----------------------------
@ApiModelProperty(value = "主键id")
private Integer id;
@ApiModelProperty(value = "开发区名称")
private String name;
@ApiModelProperty(value = "开发区级别")
private String levelCode;
@ApiModelProperty(value = "开发区级别名称")
private String levelName;
@ApiModelProperty(value = "开发区类型")
private String type;
@ApiModelProperty(value = "规划面积(平方公里)")
private BigDecimal planArea;
@ApiModelProperty(value = "主导产业")
private String primaryIndustry;
@ApiModelProperty(value = "招商方向")
private List<CarrierInvestmentVo> investmentDetails;
@ApiModelProperty(value = "省code")
private String provinceCode;
@ApiModelProperty(value = "省")
private String provinceName;
@ApiModelProperty(value = "市code")
private String cityCode;
@ApiModelProperty(value = "市")
private String cityName;
@ApiModelProperty(value = "区/县code")
private String regionCode;
@ApiModelProperty(value = "区/县")
private String regionName;
@ApiModelProperty(value = "详细地址")
private String address;
//------------园区对接人------------------------------------------------
@ApiModelProperty(value = "招商对接人")
private String contactPerson;
// @ApiModelProperty(value = "联系电话")
// private String contactPhone;
//------------开发区简介------------------------------------------------
@ApiModelProperty(value = "开发区简介")
private String description;
//------------要素成本------------------------------------------------
@ApiModelProperty(value = "人力成本(元/月)")
@JsonSerialize(using = BigDecimal2String.class)
private BigDecimal laborCost;
@ApiModelProperty(value = "土地成本(万元/亩)")
@JsonSerialize(using = BigDecimal2String.class)
private BigDecimal landCost;
@ApiModelProperty(value = "工业用电(元/㎡/天)")
@JsonSerialize(using = String2String.class)
private String industrialElectricity;
@ApiModelProperty(value = "供电类型")
private String powerSupplyType;
@ApiModelProperty(value = "变电站级别")
private String[] substationLevel;
@ApiModelProperty(value = "工业用水单价(元/吨)")
@JsonSerialize(using = String2String.class)
private String industrialWaterPrice;
@ApiModelProperty(value = "污水处理类别")
private String sewageWaterType;
@ApiModelProperty(value = "污水处理价格(元/吨)")
@JsonSerialize(using = BigDecimal2String.class)
private BigDecimal sewageWaterPrice;
@ApiModelProperty(value = "供暖单价(元/m³)")
@JsonSerialize(using = String2String.class)
private String heatingPrice;
@ApiModelProperty(value = "蒸汽价格(元/m³)")
@JsonSerialize(using = String2String.class)
private String steamPrice;
@ApiModelProperty(value = "天然气单价(元/m³)")
@JsonSerialize(using = String2String.class)
private String naturalGasPrice;
//------------------重点企业---------------------------------------------
@ApiModelProperty(value = "重点企业详情")
private JSONArray enterpriseList;
//------------------产业政策---------------------------------------------
@ApiModelProperty(value = "产业政策详情")
private JSONArray policyList;
//------------------产业基金---------------------------------------------
@ApiModelProperty(value = "产业基金")
private List<DevelopmentFundVo> fundList;
//------------------入驻要求---------------------------------------------
@ApiModelProperty(value = "总投资额(亿元)")
private BigDecimal investmentAmountTotal;
@ApiModelProperty(value = "亩均投资强度(单位:万/亩)")
private String investmentStrength;
@ApiModelProperty(value = "亩均税收(单位:万/亩)")
private String taxationStrength;
@ApiModelProperty(value = "亩均年产值(单位:万/亩)")
private String averageOutputValue;
@ApiModelProperty(value = "投资周期(月)")
private Integer buildingPeriod;
@ApiModelProperty(value = "环评要求")
private String environmentalEquirements;
@ApiModelProperty(value = "能评要求(单位:tce/万元)")
private String valueAddedEnergy;
@ApiModelProperty(value = "禁限目录")
private String prohibitedDirectory;
@ApiModelProperty(value = "经度(坐标系gcj02)")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度(坐标系gcj02)")
private BigDecimal latitude;
//--------------------开发区内所属产业园列表--------------------------------
@ApiModelProperty(value = "开发区内产业园列表")
private List<ParkPageVo> parkPageList;
//--------------------开发区内土地列表--------------------------------
@ApiModelProperty(value = "开发区内土地列表")
private List<LandPageVo> LandPageList;
@ApiModelProperty(value = "轮播图")
private List<String> imgUrlList;
@ApiModelProperty(value = "轮播视频")
private List<VideoVo> videoUrlList;
@ApiModelProperty(value = "VR")
private List<VrVo> vrUrlList;
@ApiModelProperty(value = "星级开发区附加信息")
private Map<String, List<StarObjectExtensionInfoVO>> starObjectExtensionInfoMap;
@ApiModelProperty(value = "开发区内园区、载体、土地数量计算")
private DevelopmentCountVo developmentCountVo;
@ApiModelProperty(value = "载体数目")
private Integer carrierNum;
}
package com.postcard.service.moudle.development.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "开发区重点企业信息", description = "开发区重点企业信息")
public class DevelopmentEnterpriseVo{
@ApiModelProperty(value = "产业方向")
private String industryDirection;
@ApiModelProperty(value = "企业名称")
private String enterpriseName;
@ApiModelProperty(value = "所属赛道")
private String track;
}
package com.postcard.service.moudle.development.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "开发区产业基金信息")
public class DevelopmentFundVo {
@ApiModelProperty(value = "基金名称")
private String name;
@ApiModelProperty(value = "基金规模(亿元)")
private String scale;
@ApiModelProperty(value = "投资方向")
private String investmentDirection;
}
package com.postcard.service.moudle.development.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@ApiModel(value = "个人中心开发区分页列表", description = "个人中心开发区分页列表")
public class DevelopmentPagePersonVo implements Serializable {
@ApiModelProperty(value = "主键id")
private Integer id;
@ApiModelProperty(value = "开发区名称")
private String name;
@ApiModelProperty(value = "来源方式(lyy_info_source)")
private Integer isSystem;
@ApiModelProperty(value = "来源方式")
private String isSystemName;
@ApiModelProperty(value = "录入时间")
private Date createTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(hidden = true)
private Integer status;
@ApiModelProperty(value = "审核状态")
private String statusName;
}
package com.postcard.service.moudle.development.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel(value = "开发区信息分页列表", description = "开发区信息分页列表")
public class DevelopmentPageVo implements Serializable {
@ApiModelProperty(value = "主键id")
private Integer id;
@ApiModelProperty(value = "开发区名称")
private String name;
@ApiModelProperty(value = "省份code")
private String provinceCode;
@ApiModelProperty(value = "省份")
private String provinceName;
@ApiModelProperty(value = "城市code")
private String cityCode;
@ApiModelProperty(value = "城市")
private String cityName;
@ApiModelProperty(value = "区/县code")
private String regionCode;
@ApiModelProperty(value = "区/县")
private String regionName;
@ApiModelProperty(value = "区域面积(规划面积)(单位:㎡)")
private BigDecimal planArea;
@ApiModelProperty(value = "开发区级别")
private String levelCode;
@ApiModelProperty(value = "开发区级别名称")
private String levelName;
@ApiModelProperty(value = "开发区类型")
private String type;
@ApiModelProperty(value = "图片链接")
private String imgUrl;
@ApiModelProperty(value = "认证状态(1-未认证;2-认证中;3-已认证;4-已拒绝;5-待认证 9-已回退)")
private Integer status;
@ApiModelProperty(value = "认证状态(1-未认证;2-认证中;3-已认证;4-已拒绝;5-待认证 9-已回退)")
private String statusName;
@ApiModelProperty(value = "招商方向")
private List<String> investmentDirection;
@ApiModelProperty(value = "星级开发区标识: 1-是")
private Integer isSuper;
@ApiModelProperty(value = "星级开发区标识: 1-是")
private String isSuperName;
}
package com.postcard.service.moudle.development.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "开发区产业政策信息")
public class DevelopmentPolicyVo {
@ApiModelProperty(value = "政策类型")
private String type;
@ApiModelProperty(value = "政策名称")
private String name;
@ApiModelProperty(value = "政策类型")
private String content;
}
package com.postcard.service.moudle.development.vo;
import lombok.Data;
import java.io.Serializable;
/**
*
* @TableName star_object_extension_info
*/
@Data
public class StarObjectExtensionInfoVO implements Serializable {
/**
*
*/
private String title;
/**
*
*/
private String coverUrl;
/**
* 介绍
*/
private String titleIntroduce;
}
package com.postcard.service.moudle.land.controller;
import com.postcard.service.moudle.land.service.LandInfoService;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/24 15:35
* @description: 土地信息
*/
@RestController
@RequestMapping("/api/land/v1.0")
@Api(tags = "土地信息")
public class LandInfoController {
@Resource
LandInfoService landInfoService;
}
package com.postcard.service.moudle.land.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.postcard.service.moudle.land.dto.LandPageDto;
import com.postcard.service.moudle.land.entity.LandInfoEntity;
import com.postcard.service.moudle.land.vo.LandPageVo;
import org.apache.ibatis.annotations.Param;
/**
* @author 26996
* @description 针对表【development_industrial_land_info】的数据库操作Mapper
* @createDate 2023-09-19 17:24:27
* @Entity com.lyy.admin.domain.developmentinfo.DevelopmentIndustrialLandInfo
*/
public interface LandInfoMapper extends BaseMapper<LandInfoEntity> {
Page<LandPageVo> pageList(Page page, @Param("param") LandPageDto condition);
}
package com.postcard.service.moudle.land.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.postcard.service.moudle.land.entity.LandInvestmentEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* @author: zhouxudong
* @version: 1.0
* @createTime: 2023/11/22 14:20
* @description: 土地招商方向表
*/
@Mapper
public interface LandInvestmentMapper extends BaseMapper<LandInvestmentEntity> {}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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