Bläddra i källkod

文促会项目迁移

master
liugw 3 år sedan
förälder
incheckning
e729858ca4
64 ändrade filer med 2857 tillägg och 34 borttagningar
  1. 29
    2
      pom.xml
  2. 32
    0
      src/main/java/com/xdf/creative/base/params/InfoContentHtmlEntity.java
  3. 44
    0
      src/main/java/com/xdf/creative/base/params/creative/InfoContentKeywordQueryParam.java
  4. 2
    0
      src/main/java/com/xdf/creative/base/params/creative/InfoContentQueryParam.java
  5. 55
    0
      src/main/java/com/xdf/creative/base/params/creative/InfoKeywordAddParam.java
  6. 53
    0
      src/main/java/com/xdf/creative/base/params/creative/InfoKeywordQueryParam.java
  7. 34
    0
      src/main/java/com/xdf/creative/base/params/creative/InfoKeywordSaveCheckParam.java
  8. 5
    0
      src/main/java/com/xdf/creative/base/params/creative/WebInitiationApplyQueryParam.java
  9. 56
    0
      src/main/java/com/xdf/creative/base/params/creative/WxGroupQueryParam.java
  10. 37
    0
      src/main/java/com/xdf/creative/base/vo/creative/InfoContentKeywordQueryVo.java
  11. 2
    0
      src/main/java/com/xdf/creative/base/vo/creative/InfoContentQueryVo.java
  12. 18
    0
      src/main/java/com/xdf/creative/base/vo/creative/InfoContentWebAllQueryVo.java
  13. 41
    0
      src/main/java/com/xdf/creative/base/vo/creative/InfoKeywordCheckListVo.java
  14. 46
    0
      src/main/java/com/xdf/creative/base/vo/creative/InfoKeywordQueryVo.java
  15. 110
    0
      src/main/java/com/xdf/creative/base/vo/creative/WebInitiationApplyExportVo.java
  16. 9
    0
      src/main/java/com/xdf/creative/base/vo/creative/WebInitiationApplyQueryVo.java
  17. 47
    0
      src/main/java/com/xdf/creative/base/vo/creative/WxGroupQueryVo.java
  18. 1
    1
      src/main/java/com/xdf/creative/config/CorsFilterUser.java
  19. 54
    0
      src/main/java/com/xdf/creative/config/redis/RedisConfig.java
  20. 2
    0
      src/main/java/com/xdf/creative/config/xss/SQLFilter.java
  21. 1
    1
      src/main/java/com/xdf/creative/config/xss/XssHttpServletRequestWrapper.java
  22. 18
    0
      src/main/java/com/xdf/creative/constant/CommonConstant.java
  23. 2
    0
      src/main/java/com/xdf/creative/enums/ServiceFileDirEnum.java
  24. 48
    3
      src/main/java/com/xdf/creative/module/controller/CodeController.java
  25. 15
    3
      src/main/java/com/xdf/creative/module/controller/FileUploadController.java
  26. 36
    0
      src/main/java/com/xdf/creative/module/controller/InfoContentController.java
  27. 141
    0
      src/main/java/com/xdf/creative/module/controller/InfoKeywordController.java
  28. 7
    0
      src/main/java/com/xdf/creative/module/controller/WebInitiationApplyController.java
  29. 117
    0
      src/main/java/com/xdf/creative/module/controller/WxGroupController.java
  30. 43
    0
      src/main/java/com/xdf/creative/module/entity/InfoContentKeyword.java
  31. 52
    0
      src/main/java/com/xdf/creative/module/entity/InfoKeyword.java
  32. 8
    0
      src/main/java/com/xdf/creative/module/entity/WebInitiationApply.java
  33. 56
    0
      src/main/java/com/xdf/creative/module/entity/WxGroup.java
  34. 10
    0
      src/main/java/com/xdf/creative/module/listener/InfoContentHtmlListenEven.java
  35. 57
    0
      src/main/java/com/xdf/creative/module/listener/InfoContentHtmlListener.java
  36. 42
    0
      src/main/java/com/xdf/creative/module/mapper/InfoContentKeywordMapper.java
  37. 8
    0
      src/main/java/com/xdf/creative/module/mapper/InfoContentMapper.java
  38. 61
    0
      src/main/java/com/xdf/creative/module/mapper/InfoKeywordMapper.java
  39. 5
    0
      src/main/java/com/xdf/creative/module/mapper/WebInitiationApplyMapper.java
  40. 42
    0
      src/main/java/com/xdf/creative/module/mapper/WxGroupMapper.java
  41. 37
    0
      src/main/java/com/xdf/creative/module/service/InfoContentKeywordService.java
  42. 20
    0
      src/main/java/com/xdf/creative/module/service/InfoContentService.java
  43. 87
    0
      src/main/java/com/xdf/creative/module/service/InfoKeywordService.java
  44. 8
    0
      src/main/java/com/xdf/creative/module/service/WebInitiationApplyService.java
  45. 45
    0
      src/main/java/com/xdf/creative/module/service/WxGroupService.java
  46. 48
    0
      src/main/java/com/xdf/creative/module/service/impl/InfoContentKeywordServiceImpl.java
  47. 154
    0
      src/main/java/com/xdf/creative/module/service/impl/InfoContentServiceImpl.java
  48. 202
    0
      src/main/java/com/xdf/creative/module/service/impl/InfoKeywordServiceImpl.java
  49. 20
    3
      src/main/java/com/xdf/creative/module/service/impl/SysUserServiceImpl.java
  50. 51
    2
      src/main/java/com/xdf/creative/module/service/impl/WebInitiationApplyServiceImpl.java
  51. 66
    0
      src/main/java/com/xdf/creative/module/service/impl/WxGroupServiceImpl.java
  52. 11
    9
      src/main/java/com/xdf/creative/shiro/filter/ConfigPathInterceptor.java
  53. 2
    0
      src/main/java/com/xdf/creative/support/auth/LoginParam.java
  54. 12
    4
      src/main/java/com/xdf/creative/util/excel/ExcelUtil.java
  55. 195
    0
      src/main/java/com/xdf/creative/util/excel/ExportExcel.java
  56. 6
    1
      src/main/java/com/xdf/creative/util/file/ServerUploadDirUtil.java
  57. 154
    0
      src/main/java/com/xdf/creative/util/image/HtmlUtils.java
  58. 8
    1
      src/main/resources/application.properties
  59. 24
    3
      src/main/resources/application.yml
  60. 46
    0
      src/main/resources/mapper/InfoContentKeywordMapper.xml
  61. 56
    0
      src/main/resources/mapper/InfoContentMapper.xml
  62. 67
    0
      src/main/resources/mapper/InfoKeywordMapper.xml
  63. 36
    1
      src/main/resources/mapper/WebInitiationApplyMapper.xml
  64. 56
    0
      src/main/resources/mapper/WxGroupMapper.xml

+ 29
- 2
pom.xml Visa fil

@@ -211,11 +211,11 @@
</dependency>


<dependency>
<!-- <dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>RELEASE</version>
</dependency>
</dependency>-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
@@ -250,6 +250,33 @@
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

<!--mongodb -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>


</dependencies>

+ 32
- 0
src/main/java/com/xdf/creative/base/params/InfoContentHtmlEntity.java Visa fil

@@ -0,0 +1,32 @@
package com.xdf.creative.base.params;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(collection = "xdfWenChuHuiContent")
public class InfoContentHtmlEntity {

@Id
private String s_id;

private String infoContId;

/**
* 标题
*/
private String title;
/**
*内容文本
*/
private String contentText;


private String content;

}

+ 44
- 0
src/main/java/com/xdf/creative/base/params/creative/InfoContentKeywordQueryParam.java Visa fil

@@ -0,0 +1,44 @@
package com.xdf.creative.base.params.creative;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.xdf.creative.base.params.QueryParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
* <p>
* 信息和关键字关联表 查询参数对象
* </p>
*
* @author lgw
* @date 2020-11-27
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "InfContentKeywordQueryParam对象", description = "信息和关键字关联表查询参数")
public class InfoContentKeywordQueryParam extends QueryParam {
private static final long serialVersionUID = 1L;


@ApiModelProperty(value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;

@ApiModelProperty(value = "信息id")
private Long contentId;

@ApiModelProperty(value = "关键词id")
private Long keywordId;

@ApiModelProperty(value = "创建时间")
private Date createTime;


}

+ 2
- 0
src/main/java/com/xdf/creative/base/params/creative/InfoContentQueryParam.java Visa fil

@@ -90,4 +90,6 @@ public class InfoContentQueryParam extends QueryParam {
@ApiModelProperty(value = "逻辑删除,0:未删除,1:已删除(收入回收站)")
private Integer deleted;

private String typeId;

}

+ 55
- 0
src/main/java/com/xdf/creative/base/params/creative/InfoKeywordAddParam.java Visa fil

@@ -0,0 +1,55 @@
package com.xdf.creative.base.params.creative;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.xdf.creative.base.params.QueryParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
* <p>
* 信息关键字 查询参数对象
* </p>
*
* @author lgw
* @date 2020-11-27
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "InfoKeywordQueryParam对象", description = "信息关键字查询参数")
public class InfoKeywordAddParam extends QueryParam {
private static final long serialVersionUID = 1L;


@ApiModelProperty(value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;

@ApiModelProperty(value = "关键词")
@NotBlank(message = "关键词不能为空!")
private String keyword;

@ApiModelProperty(value = "是否通用 0 否 1是")
private Integer isUse;

@ApiModelProperty(value = "描述")
private String detail;

@ApiModelProperty(value = "状态 0 不可用 1可用")
private Integer state;

@ApiModelProperty(value = "创建用户")
private Long createUser;

@ApiModelProperty(value = "创建时间")
private Date createTime;


}

+ 53
- 0
src/main/java/com/xdf/creative/base/params/creative/InfoKeywordQueryParam.java Visa fil

@@ -0,0 +1,53 @@
package com.xdf.creative.base.params.creative;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.xdf.creative.base.params.QueryParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
* <p>
* 信息关键字 查询参数对象
* </p>
*
* @author lgw
* @date 2020-11-27
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "InfoKeywordQueryParam对象", description = "信息关键字查询参数")
public class InfoKeywordQueryParam extends QueryParam {
private static final long serialVersionUID = 1L;


@ApiModelProperty(value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;

@ApiModelProperty(value = "关键词")
private String keyword;

@ApiModelProperty(value = "是否通用 0 否 1是")
private Integer isUse;

@ApiModelProperty(value = "描述")
private String detail;

@ApiModelProperty(value = "状态 0 不可用 1可用")
private Integer state;

@ApiModelProperty(value = "创建用户")
private Long createUser;

@ApiModelProperty(value = "创建时间")
private Date createTime;


}

+ 34
- 0
src/main/java/com/xdf/creative/base/params/creative/InfoKeywordSaveCheckParam.java Visa fil

@@ -0,0 +1,34 @@
package com.xdf.creative.base.params.creative;

import com.xdf.creative.base.params.QueryParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.List;

/**
* <p>
* 信息关键字 查询参数对象
* </p>
*
* @author lgw
* @date 2020-11-27
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "InfoKeywordQueryParam对象", description = "信息关键字查询参数")
public class InfoKeywordSaveCheckParam extends QueryParam {
private static final long serialVersionUID = 1L;


@ApiModelProperty(value = "主键id")
private long contentId;

@ApiModelProperty(value = "关键词id数组")
private List<Long> keyIds;

}

+ 5
- 0
src/main/java/com/xdf/creative/base/params/creative/WebInitiationApplyQueryParam.java Visa fil

@@ -35,6 +35,11 @@ public class WebInitiationApplyQueryParam extends QueryParam {
@ApiModelProperty(value = "单位名称")
private String name;


@ApiModelProperty(value = "统一社会信用代码")
private String creditCode;


@ApiModelProperty(value = "单位logo")
private String logo;


+ 56
- 0
src/main/java/com/xdf/creative/base/params/creative/WxGroupQueryParam.java Visa fil

@@ -0,0 +1,56 @@
package com.xdf.creative.base.params.creative;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.xdf.creative.base.params.QueryParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
* <p>
* 微信群二维码 查询参数对象
* </p>
*
* @author lgw
* @date 2021-01-28
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "WxGroupQueryParam对象", description = "微信群二维码查询参数")
public class WxGroupQueryParam extends QueryParam {
private static final long serialVersionUID = 1L;


@ApiModelProperty(value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
@NotNull(message = "主键id不能为空")
private Long id;

@ApiModelProperty(value = "产业名")
private String name;

@ApiModelProperty(value = "微信二维码")
private String code;


@ApiModelProperty(value = "状态,0:禁用,1:启用,2:锁定")
private Integer state;

@ApiModelProperty(value = "创建时间")
private Date createTime;

@ApiModelProperty(value = "更新时间")
private Date updateTime;

@ApiModelProperty(value = "创建者id")
private Long createUserId;


}

+ 37
- 0
src/main/java/com/xdf/creative/base/vo/creative/InfoContentKeywordQueryVo.java Visa fil

@@ -0,0 +1,37 @@
package com.xdf.creative.base.vo.creative;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
* <p>
* 信息和关键字关联表 查询结果对象
* </p>
*
* @author lgw
* @date 2020-11-27
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "InfContentKeywordQueryVo对象", description = "信息和关键字关联表查询参数")
public class InfoContentKeywordQueryVo implements Serializable {
private static final long serialVersionUID = 1L;

@ApiModelProperty(value = "主键id")
private Long id;

@ApiModelProperty(value = "信息id")
private Long contentId;

@ApiModelProperty(value = "关键词id")
private Long keywordId;

@ApiModelProperty(value = "创建时间")
private Date createTime;

}

+ 2
- 0
src/main/java/com/xdf/creative/base/vo/creative/InfoContentQueryVo.java Visa fil

@@ -83,4 +83,6 @@ public class InfoContentQueryVo implements Serializable {
@ApiModelProperty(value = "逻辑删除,0:未删除,1:已删除")
private Integer deleted;

private String hyperlink;

}

+ 18
- 0
src/main/java/com/xdf/creative/base/vo/creative/InfoContentWebAllQueryVo.java Visa fil

@@ -91,4 +91,22 @@ public class InfoContentWebAllQueryVo extends QueryParam {
* url列表
*/
private List<InfoUrl> urlList;

private String keyWord;

private String upTitle;

private Long upInfoId;

private String upImageUrl;

private String upHyperlink;

private String downTitle;

private Long downInfoId;

private String downImageUrl;

private String downHyperlink;
}

+ 41
- 0
src/main/java/com/xdf/creative/base/vo/creative/InfoKeywordCheckListVo.java Visa fil

@@ -0,0 +1,41 @@
package com.xdf.creative.base.vo.creative;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
* <p>
* 信息关键字 查询结果对象
* </p>
*
* @author lgw
* @date 2020-11-27
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "InfoKeywordQueryVo对象", description = "信息关键字查询参数")
public class InfoKeywordCheckListVo implements Serializable {
private static final long serialVersionUID = 1L;

@ApiModelProperty(value = "主键id")
private Long id;

@ApiModelProperty(value = "关键词")
private String keyword;

@ApiModelProperty(value = "是否通用 0 否 1是")
private Integer isUse;

@ApiModelProperty(value = "描述")
private String detail;

@ApiModelProperty(value = "状态 0 不可用 1可用")
private Integer state;

private String checked;

}

+ 46
- 0
src/main/java/com/xdf/creative/base/vo/creative/InfoKeywordQueryVo.java Visa fil

@@ -0,0 +1,46 @@
package com.xdf.creative.base.vo.creative;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
* <p>
* 信息关键字 查询结果对象
* </p>
*
* @author lgw
* @date 2020-11-27
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "InfoKeywordQueryVo对象", description = "信息关键字查询参数")
public class InfoKeywordQueryVo implements Serializable {
private static final long serialVersionUID = 1L;

@ApiModelProperty(value = "主键id")
private Long id;

@ApiModelProperty(value = "关键词")
private String keyword;

@ApiModelProperty(value = "是否通用 0 否 1是")
private Integer isUse;

@ApiModelProperty(value = "描述")
private String detail;

@ApiModelProperty(value = "状态 0 不可用 1可用")
private Integer state;

@ApiModelProperty(value = "创建用户")
private Long createUser;

@ApiModelProperty(value = "创建时间")
private Date createTime;

}

+ 110
- 0
src/main/java/com/xdf/creative/base/vo/creative/WebInitiationApplyExportVo.java Visa fil

@@ -0,0 +1,110 @@
package com.xdf.creative.base.vo.creative;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
* <p>
* 文促会入会申请表 查询结果对象
* </p>
*
* @author DeanYe
* @date 2019-10-30
*/
@Data
@ApiModel(value = "WebInitiationApplyQueryVo对象", description = "文促会入会申请表查询参数")
public class WebInitiationApplyExportVo {

@ApiModelProperty(value = "单位名称")
private String name;

@ApiModelProperty(value = "统一社会信用代码")
private String creditCode;

@ApiModelProperty(value = "机关类型 1、国营企业 2、事业单位 3、民营企业 4、社会组织")
private String unitTypeStr;

@ApiModelProperty(value = "注册地址省")
private String provinceStr;

@ApiModelProperty(value = "注册地址市")
private String cityStr;

@ApiModelProperty(value = "注册地址区")
private String countyStr;

@ApiModelProperty(value = "主要办公地址")
private String contactAddress;

@ApiModelProperty(value = "邮编")
private String post;

@ApiModelProperty(value = "公司网址")
private String website;

@ApiModelProperty(value = "法人姓名")
private String legalPerson;

@ApiModelProperty(value = "法人职务")
private String legalDuty;

@ApiModelProperty(value = "固定电话")
private String legalPhone;

@ApiModelProperty(value = "手机号")
private String legalMobile;

@ApiModelProperty(value = "日常联系人姓名")
private String linkMan;

@ApiModelProperty(value = "日常联系人职务")
private String linkDuty;

@ApiModelProperty(value = "日常联系人固定电话")
private String linkPhone;

@ApiModelProperty(value = "日常联系人手机号")
private String linkMobile;


@ApiModelProperty(value = "法人简介")
private String legalIntroduction;

@ApiModelProperty(value = "单位简介")
private String introduction;

@ApiModelProperty(value = "专列与荣誉")
private String honner;

@ApiModelProperty(value = "金融服务 1、股权 2、债权 3、担保 4、融资租赁 5、其他")
private String financeServiceStr;

@ApiModelProperty(value = "产业合作 1、对接上下游企业资源 2、展会参展 3、园区入驻")
private String industryStr;

@ApiModelProperty(value = "企业服务 1、扶持资金 2、信用评级 3、知识与版权交易 4、财务与法律资讯 5、投融资对接")
private String companyServiceStr;

@ApiModelProperty(value = "其他")
private String otherService;

@ApiModelProperty(value = "申报产业类别:1、媒体业 2、艺术业 3、工业设计 4、建筑设计业 5、时尚设计业 6、互联网相关服务业 7、软件与信息技术服务业8、咨询服务业9、广告及会展服务业 10、休闲娱乐业 11、文化装备制造业12、文化创意投资运营13、文化创意用品生产")
private String declareCategoryStr;

@ApiModelProperty(value = "希望成为哪一级会员 1、普通会员 2、理事会员 3、常务理事会员")
private String vipLevelStr;

private String logo;

private String attachment;


@ApiModelProperty(value = "申请附件")
private String applyAttachment;

}

+ 9
- 0
src/main/java/com/xdf/creative/base/vo/creative/WebInitiationApplyQueryVo.java Visa fil

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;

@@ -28,6 +29,9 @@ public class WebInitiationApplyQueryVo implements Serializable {
@ApiModelProperty(value = "单位名称")
private String name;

@ApiModelProperty(value = "统一社会信用代码")
private String creditCode;

@ApiModelProperty(value = "单位logo")
private String logo;

@@ -160,4 +164,9 @@ public class WebInitiationApplyQueryVo implements Serializable {
private String nickname;


@ApiModelProperty(value = "申请附件")
private String applyAttachment;



}

+ 47
- 0
src/main/java/com/xdf/creative/base/vo/creative/WxGroupQueryVo.java Visa fil

@@ -0,0 +1,47 @@
package com.xdf.creative.base.vo.creative;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

import java.util.Date;

/**
* <p>
* 微信群二维码 查询结果对象
* </p>
*
* @author lgw
* @date 2021-01-28
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "WxGroupQueryVo对象", description = "微信群二维码查询参数")
public class WxGroupQueryVo implements Serializable {
private static final long serialVersionUID = 1L;

@ApiModelProperty(value = "主键id")
private Long id;

@ApiModelProperty(value = "产业名")
private String name;

@ApiModelProperty(value = "微信二维码")
private String code;

@ApiModelProperty(value = "创建时间")
private Date createTime;

@ApiModelProperty(value = "更新时间")
private Date updateTime;

@ApiModelProperty(value = "创建者id")
private Long createUserId;


@ApiModelProperty(value = "状态,0:禁用,1:启用,2:锁定")
private Integer state;

}

+ 1
- 1
src/main/java/com/xdf/creative/config/CorsFilterUser.java Visa fil

@@ -53,7 +53,7 @@ public class CorsFilterUser implements Filter {

private final static Logger log = LoggerFactory.getLogger(CorsFilterUser.class);

private final static List<String> heardSList = Arrays.asList("Accept","Origin","X-Requested-With","Content-Type", "Last-Modified","*");
private final static List<String> heardSList = Arrays.asList("School-Teacher-Token", "school-teacher-token", "x-access-token", "Referer", "Accept", "Origin", "X-Requested-With", "Content-Type", "Last-Modified", "token", "Authorization");
private final CorsConfigurationSource configSource;
private CorsProcessor processor = new DefaultCorsProcessor();


+ 54
- 0
src/main/java/com/xdf/creative/config/redis/RedisConfig.java Visa fil

@@ -0,0 +1,54 @@
package com.xdf.creative.config.redis;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
* redis配置类
*
* @author ZENG.XIAO.YAN
* @date 2018年6月6日
*/

@Configuration
public class RedisConfig {

@Bean
@SuppressWarnings("all")
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);

// 使用Jackson2JsonRedisSerialize 替换默认序列化
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

// 设置value的序列化规则和 key的序列化规则
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.setKeySerializer(new StringRedisSerializer());

redisTemplate.setHashKeySerializer(jackson2JsonRedisSerializer);
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);

redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
redisTemplate.setEnableDefaultSerializer(true);
redisTemplate.afterPropertiesSet();
return redisTemplate;

}



}

+ 2
- 0
src/main/java/com/xdf/creative/config/xss/SQLFilter.java Visa fil

@@ -37,6 +37,8 @@ public class SQLFilter {
throw new InfoFormException(StatusCode.FORM_INFO_CONTENT_FORDATE_VERIFY);
}
}

str = str.replaceAll("%(?![0-9a-fA-F]{2})", "%25");
return str;
}
}

+ 1
- 1
src/main/java/com/xdf/creative/config/xss/XssHttpServletRequestWrapper.java Visa fil

@@ -31,7 +31,7 @@ import java.util.Map;
*
* @author Mark sunlightcs@gmail.com
*/
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
private static final Logger logger = LoggerFactory.getLogger(XssHttpServletRequestWrapper.class);
//没被包装过的HttpServletRequest(特殊场景,需要自己过滤)
HttpServletRequest orgRequest;

+ 18
- 0
src/main/java/com/xdf/creative/constant/CommonConstant.java Visa fil

@@ -16,6 +16,9 @@ public interface CommonConstant {
*/
Integer DEFAULT_PAGE_SIZE = 10;


Integer KEY_WORD_MAX_SIZE = 4;

/**
* 默认降序排序
*/
@@ -28,6 +31,14 @@ public interface CommonConstant {

String REGION_ROOT_CODE="310000";

String XDF_CULTURE_PARK_INFO_CONTENT_RECOMMEND_KEY = "parkContentInfoRecommend";
String XDF_CULTURE_PARK_INFO_CONTENT_RECOMMEND = "xdf:wch:park:content:recommend:%s";

String XDF_CULTURE_INFO_DETAIL_PARK_RECOMMEND_KEY = "contentInfoParkRecommend";
String XDF_CULTURE_INFO_DETAIL_PARK_RECOMMEND = "xdf:wch:detail:park:recommend:%s";

String XDF_CULTURE_INFO_DETAIL_RENT_RECOMMEND_KEY = "contentInfoRentRecommend";
String XDF_CULTURE_INFO_DETAIL_RENT_RECOMMEND = "xdf:wch:detail:rent:recommend:%s";

/**
* JWT用户名
@@ -107,4 +118,11 @@ public interface CommonConstant {
* base64前缀
*/
String BASE64_PREFIX = "data:image/png;base64,";

String VERIFY_CODE_KEY ="f80b2eed0110a7ea5a3428b74862cceb697f8";

/**
* 图片验证码
*/
String VERIFY_CODE_GET = "xdf_wch:verify.code:%s:%s";
}

+ 2
- 0
src/main/java/com/xdf/creative/enums/ServiceFileDirEnum.java Visa fil

@@ -15,6 +15,8 @@ public enum ServiceFileDirEnum {
SERVICE_FILE_DIR_PUBLIC_TRADE_DYNAMIC(106, "tradeDynamic"),
SERVICE_FILE_DIR_PUBLIC_POLICY(108, "policy"),
SERVICE_FILE_DIR_PUBLIC_ACTIVITY(109, "activity"),
SERVICE_FILE_DIR_PUBLIC_QR(110, "wxqr"),
SERVICE_FILE_DIR_PUBLIC_APPLY(113, "apply"),
//其他
SERVICE_FILE_DIR_OTHER(999, "other");


+ 48
- 3
src/main/java/com/xdf/creative/module/controller/CodeController.java Visa fil

@@ -4,12 +4,15 @@ import com.xdf.creative.base.params.VerifyCode;
import com.xdf.creative.constant.CommonConstant;
import com.xdf.creative.module.service.IVerifyCodeGen;
import com.xdf.creative.module.service.impl.SimpleCharVerifyCodeGenImpl;
import com.xdf.creative.util.PasswordUtil;
import com.xdf.creative.util.page.ApiResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@@ -19,6 +22,7 @@ import java.io.IOException;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

/**
* @author : lgw
@@ -30,11 +34,12 @@ import java.util.Map;
@RequestMapping("/auth")
@Api("验证吗 API")
public class CodeController {

@Autowired
private RedisTemplate redisTemplate;

private Logger logger = LoggerFactory.getLogger(CodeController.class);

@ApiOperation(value = "验证码")
/*@ApiOperation(value = "验证码")
@RequestMapping("/code")
public ApiResult verifyCode(HttpServletRequest request, HttpServletResponse response) {
IVerifyCodeGen iVerifyCodeGen = new SimpleCharVerifyCodeGenImpl();
@@ -48,7 +53,7 @@ public class CodeController {
String code = verifyCode.getCode();
logger.info(code);
//将VerifyCode绑定session
request.getSession().setAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY, code);
// request.getSession().setAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY, code);
//设置响应头
response.setHeader("Pragma", "no-cache");
//设置响应头
@@ -64,5 +69,45 @@ public class CodeController {
map.put(CommonConstant.IMAGE, CommonConstant.BASE64_PREFIX + base64);
return ApiResult.ok(map);

}
*/

@ApiOperation(value = "验证码")
@RequestMapping("/code")
public ApiResult verifyCode(HttpServletRequest request, HttpServletResponse response,String userName, Integer type) {
IVerifyCodeGen iVerifyCodeGen = new SimpleCharVerifyCodeGenImpl();
//设置长宽
VerifyCode verifyCode = null;
try {
verifyCode = iVerifyCodeGen.generate(100, 50);
} catch (IOException e) {
e.printStackTrace();
}
String code = verifyCode.getCode();
logger.info(code);


String encrypt = PasswordUtil.encrypt(userName+type, CommonConstant.VERIFY_CODE_KEY);
//将VerifyCode绑定session
//request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, code);
redisTemplate.opsForValue().set(String.format(CommonConstant.VERIFY_CODE_GET, userName, encrypt), code, 300, TimeUnit.SECONDS);

//将VerifyCode绑定session
// request.getSession().setAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY, code);
//设置响应头
response.setHeader("Pragma", "no-cache");
//设置响应头
response.setHeader("Cache-Control", "no-cache");
//在代理服务器端防止缓冲
response.setDateHeader("Expires", 0);
//设置响应内容类型
response.setContentType("image/jpeg");
// response.getOutputStream().write(verifyCode.getImgBytes());

String base64 = Base64.getEncoder().encodeToString(verifyCode.getImgBytes());
Map<String, Object> map = new HashMap<>(2);
map.put(CommonConstant.IMAGE, CommonConstant.BASE64_PREFIX + base64);
return ApiResult.ok(map);

}
}

+ 15
- 3
src/main/java/com/xdf/creative/module/controller/FileUploadController.java Visa fil

@@ -8,7 +8,6 @@ import com.xdf.creative.module.entity.FileUploadQuery;
import com.xdf.creative.module.service.FileClientService;
import com.xdf.creative.util.StringUtil;
import com.xdf.creative.util.UUIDUtil;
import com.xdf.creative.util.excel.ExcelUtil;
import com.xdf.creative.util.file.ServerUploadDirUtil;
import com.xdf.creative.util.file.UploadUtil;
import com.xdf.creative.util.image.FileToBase64;
@@ -52,7 +51,20 @@ public class FileUploadController {
}
}

@PostMapping("/doExcelFile")
@PostMapping("/doApplyFile")
@ApiOperation(value = "添加MultipartFile对象", notes = "添加文件上传", response = ApiResult.class)
public ApiResult<String> doApplyFile(MultipartFile file, @RequestParam Integer uploadPath) throws Exception {
String finalPath = ServerUploadDirUtil.getFileUploadDir(uploadPath);
ApiResult result = UploadUtil.upload(basePath + "/" + finalPath, file, ServiceFileUploadTypeEnum.SERVICE_FILE_UPLOAD_TYPE_FILE.getCode());
if (result.getCode() == ApiCode.SUCCESS.getCode()) {
String saveName = result.getData().toString();
return result.ok(finalPath + "/" + saveName);
} else {
return result;
}
}

/* @PostMapping("/doExcelFile")
@ApiOperation(value = "添加MultipartFile对象", notes = "添加文件上传", response = ApiResult.class)
public ApiResult<String> doExcelFile(MultipartFile file, @RequestParam Integer uploadPath) throws Exception {

@@ -70,7 +82,7 @@ public class FileUploadController {
} else {
return result;
}
}
}*/

/**
* 上传图片文件

+ 36
- 0
src/main/java/com/xdf/creative/module/controller/InfoContentController.java Visa fil

@@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

/**
* <p>
@@ -242,6 +243,18 @@ public class InfoContentController extends BaseController {
return ApiResult.ok(pageList);
}


@GetMapping("/getSearchParkRecommendWebInfo")
@ApiOperation(value = "获取InfoContentWeb分页列表", notes = "信息内容分页列表", response = InfoContentWebSearchQueryVo.class)
public ApiResult<List<InfoContentWebSearchQueryVo>> getSearchParkRecommendWebInfo() throws Exception {
InfoContentWebSearchQueryParam infoContentWebSearchQueryParam = new InfoContentWebSearchQueryParam();
infoContentWebSearchQueryParam.setTitle("文化");
return ApiResult.ok(infoContentService.getSearchParkRecommendWebInfo(infoContentWebSearchQueryParam));
}




@PostMapping("/getSearchWebsInfo")
@ApiOperation(value = "获取InfoContentWeb分页列表", notes = "信息内容分页列表", response = InfoContentWebSearchQueryVo.class)
public ApiResult<PageTool<InfoContentWebSearchQueryVo>> getSearchWebsInfo(@Valid @RequestBody InfoContentWebSearchListParam infoContentWebSearchListParam) throws Exception {
@@ -311,6 +324,29 @@ public class InfoContentController extends BaseController {
return ApiResult.result(flag);
}



@PostMapping("/getInfoHtml")
@ApiOperation(value = "删除InfoContent对象", notes = "删除信息内容", response = ApiResult.class)
public ApiResult getInfoHtml(@RequestBody IdParam idParam) throws Exception {
return infoContentService.getInfoHtml(idParam.getValue());
}

/**
* @description: 初始化超链接新闻爬取
* @param:
* @return: com.xdf.creative.util.page.ApiResult
* @author 一路心飞扬 lgw
* @date: 2020/12/25 14:08
*/
@GetMapping("/getHtmlByInfo")
@ApiOperation(value = "删除InfoContent对象", notes = "删除信息内容", response = ApiResult.class)
public ApiResult getHtmlByInfo() {
return infoContentService.getHtmlByInfo();
}



/**
* 信息内容分页列表
*/

+ 141
- 0
src/main/java/com/xdf/creative/module/controller/InfoKeywordController.java Visa fil

@@ -0,0 +1,141 @@
package com.xdf.creative.module.controller;

import com.xdf.creative.base.controller.BaseController;
import com.xdf.creative.base.params.IdParam;
import com.xdf.creative.base.params.creative.InfoKeywordAddParam;
import com.xdf.creative.base.params.creative.InfoKeywordQueryParam;
import com.xdf.creative.base.params.creative.InfoKeywordSaveCheckParam;
import com.xdf.creative.base.vo.creative.InfoKeywordQueryVo;
import com.xdf.creative.module.service.InfoKeywordService;
import com.xdf.creative.util.page.ApiResult;
import com.xdf.creative.util.page.PageTool;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

/**
* <p>
* 信息关键字 前端控制器
* </p>
*
* @author lgw
* @since 2020-11-27
*/
@Slf4j
@RestController
@RequestMapping("/infoKeyword")
@Api("信息关键字 API")
public class InfoKeywordController extends BaseController {

@Autowired
private InfoKeywordService infoKeywordService;

/**
* 添加信息关键字
*/
@PostMapping("/add")
@ApiOperation(value = "添加InfoKeyword对象", notes = "添加信息关键字", response = ApiResult.class)
public ApiResult addInfoKeyword(@Valid @RequestBody InfoKeywordAddParam infoKeywordAddParam) throws Exception {
return infoKeywordService.add(infoKeywordAddParam);
}

/**
* 删除信息
* @param idParam
* @return
* @throws Exception
*/
@PostMapping("/del")
@ApiOperation(value = "删除关键词", notes = "删除关键词", response = ApiResult.class)
public ApiResult del(@Valid @RequestBody IdParam idParam) throws Exception {
return infoKeywordService.del(idParam.getId());
}

/**
* 修改信息关键字
*/
@PostMapping("/edit")
@ApiOperation(value = "修改InfoKeyword对象", notes = "修改信息关键字", response = ApiResult.class)
public ApiResult edit(@Valid @RequestBody InfoKeywordAddParam infoKeywordAddParam) throws Exception {
return infoKeywordService.edit(infoKeywordAddParam);
}


/**
* 保存已选择的信息列表
* @param infoKeywordSaveCheckParam
* @return
* @throws Exception
*/
@PostMapping("/saveCheckList")
@ApiOperation(value = "修改InfoKeyword对象", notes = "修改信息关键字", response = ApiResult.class)
public ApiResult saveCheckList(@Valid @RequestBody InfoKeywordSaveCheckParam infoKeywordSaveCheckParam) throws Exception {
return infoKeywordService.saveCheckList(infoKeywordSaveCheckParam);
}


/**
* 启用停用关键字
* @param idParam
* @return
* @throws Exception
*/
@PostMapping("/enable")
@ApiOperation(value = "启用停用", notes = "删除信息关键字", response = ApiResult.class)
public ApiResult enable(@Valid @RequestBody IdParam idParam) throws Exception {
return infoKeywordService.enable(idParam.getId());
}

/**
* 获取已选择的关键字列表
* @param idParam
* @return
* @throws Exception
*/
@PostMapping("/getCheckList")
@ApiOperation(value = "启用停用", notes = "删除信息关键字", response = ApiResult.class)
public ApiResult getCheckList(@Valid @RequestBody IdParam idParam) throws Exception {
return infoKeywordService.getCheckList(idParam.getId());
}



/**
* 删除信息关键字
*/
@PostMapping("/delete")
@ApiOperation(value = "删除InfoKeyword对象", notes = "删除信息关键字", response = ApiResult.class)
public ApiResult<Boolean> deleteInfoKeyword(@Valid @RequestBody IdParam idParam) throws Exception {
boolean flag = infoKeywordService.removeById(idParam.getId());
return ApiResult.result(flag);
}

/**
* 获取信息关键字
*/
@PostMapping("/info")
@ApiOperation(value = "获取InfoKeyword对象详情", notes = "查看信息关键字", response = InfoKeywordQueryVo.class)
public ApiResult<InfoKeywordQueryVo> getInfoKeyword(@Valid @RequestBody IdParam idParam) throws Exception {
InfoKeywordQueryVo infoKeywordQueryVo = infoKeywordService.getInfoKeywordById(idParam.getId());
return ApiResult.ok(infoKeywordQueryVo);
}

/**
* 信息关键字分页列表
*/
@PostMapping("/getPageList")
@ApiOperation(value = "获取InfoKeyword分页列表", notes = "信息关键字分页列表", response = InfoKeywordQueryVo.class)
public ApiResult<PageTool<InfoKeywordQueryVo>> getInfoKeywordPageList(@Valid @RequestBody InfoKeywordQueryParam infoKeywordQueryParam) throws Exception {
PageTool<InfoKeywordQueryVo> pageList = infoKeywordService.getInfoKeywordPageList(infoKeywordQueryParam);
return ApiResult.ok(pageList);
}

}


+ 7
- 0
src/main/java/com/xdf/creative/module/controller/WebInitiationApplyController.java Visa fil

@@ -235,5 +235,12 @@ public class WebInitiationApplyController extends BaseController {
return ApiResult.ok(pageList);
}


@PostMapping("/getExportPageList")
@ApiOperation(value = "获取WebInitiationApply分页列表", notes = "文促会入会申请终审人员查询", response = WebInitiationApplyQueryVo.class)
public ApiResult getExportPageList(@RequestBody WebInitiationApplyQueryParam webInitiationApplyQueryParam) throws Exception {
return webInitiationApplyService.getExportPageList(webInitiationApplyQueryParam,getRequest());
}

}


+ 117
- 0
src/main/java/com/xdf/creative/module/controller/WxGroupController.java Visa fil

@@ -0,0 +1,117 @@
package com.xdf.creative.module.controller;

import com.xdf.creative.base.controller.BaseController;
import com.xdf.creative.base.params.IdParam;
import com.xdf.creative.base.params.creative.WxGroupQueryParam;
import com.xdf.creative.base.vo.creative.WxGroupQueryVo;
import com.xdf.creative.enums.StateEnum;
import com.xdf.creative.module.entity.WxGroup;
import com.xdf.creative.module.service.WxGroupService;
import com.xdf.creative.util.page.ApiResult;
import com.xdf.creative.util.page.PageTool;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import java.util.Date;

/**
* <p>
* 微信群二维码 前端控制器
* </p>
*
* @author lgw
* @since 2021-01-28
*/
@Slf4j
@RestController
@RequestMapping("/wxGroup")
@Api("微信群二维码 API")
public class WxGroupController extends BaseController {

@Autowired
private WxGroupService wxGroupService;

/**
* 添加微信群二维码
*/
@PostMapping("/add")
@ApiOperation(value = "添加WxGroup对象", notes = "添加微信群二维码", response = ApiResult.class)
public ApiResult<Boolean> addWxGroup(@Valid @RequestBody WxGroup wxGroup) throws Exception {
boolean flag = wxGroupService.save(wxGroup);
return ApiResult.result(flag);
}

/**
* 修改微信群二维码
*/
@PostMapping("/update")
@ApiOperation(value = "修改WxGroup对象", notes = "修改微信群二维码", response = ApiResult.class)
public ApiResult<Boolean> updateWxGroup(@Valid @RequestBody WxGroup wxGroup) throws Exception {
wxGroup.setUpdateTime(new Date());
boolean flag = wxGroupService.updateById(wxGroup);
return ApiResult.result(flag);
}

/**
* 删除微信群二维码
*/
@PostMapping("/delete")
@ApiOperation(value = "删除WxGroup对象", notes = "删除微信群二维码", response = ApiResult.class)
public ApiResult<Boolean> deleteWxGroup(@Valid @RequestBody IdParam idParam) throws Exception {
boolean flag = wxGroupService.removeById(idParam.getId());
return ApiResult.result(flag);
}

/**
* 获取微信群二维码
*/
@PostMapping("/info")
@ApiOperation(value = "获取WxGroup对象详情", notes = "查看微信群二维码", response = WxGroupQueryVo.class)
public ApiResult<WxGroupQueryVo> getWxGroup(@Valid @RequestBody IdParam idParam) throws Exception {
WxGroupQueryVo wxGroupQueryVo = wxGroupService.getWxGroupById(idParam.getId());
return ApiResult.ok(wxGroupQueryVo);
}

/**
* 微信群二维码分页列表
*/
@PostMapping("/getPageList")
@ApiOperation(value = "获取WxGroup分页列表", notes = "微信群二维码分页列表", response = WxGroupQueryVo.class)
public ApiResult<PageTool<WxGroupQueryVo>> getWxGroupPageList(@RequestBody WxGroupQueryParam wxGroupQueryParam) throws Exception {
PageTool<WxGroupQueryVo> pageList = wxGroupService.getWxGroupPageList(wxGroupQueryParam);
return ApiResult.ok(pageList);
}

@PostMapping("/getWebList")
@ApiOperation(value = "获取WxGroup分页列表", notes = "微信群二维码分页列表", response = WxGroupQueryVo.class)
public ApiResult<PageTool<WxGroupQueryVo>> getWebList() throws Exception {
WxGroupQueryParam wxGroupQueryParam =new WxGroupQueryParam();
wxGroupQueryParam.setState(StateEnum.ENABLE.getKey());
wxGroupQueryParam.setPageNum(1);
wxGroupQueryParam.setPageSize(30);
PageTool<WxGroupQueryVo> pageList = wxGroupService.getWxGroupPageList(wxGroupQueryParam);
return ApiResult.ok(pageList);
}


/**
* 启用停用关键字
* @param idParam
* @return
* @throws Exception
*/
@PostMapping("/enable")
@ApiOperation(value = "启用停用", notes = "删除信息关键字", response = ApiResult.class)
public ApiResult enable(@Valid @RequestBody IdParam idParam) throws Exception {
return wxGroupService.enable(idParam.getId());
}

}


+ 43
- 0
src/main/java/com/xdf/creative/module/entity/InfoContentKeyword.java Visa fil

@@ -0,0 +1,43 @@
package com.xdf.creative.module.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.xdf.creative.base.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
* <p>
* 信息和关键字关联表
* </p>
*
* @author lgw
* @since 2020-11-27
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "InfContentKeyword对象", description = "信息和关键字关联表")
public class InfoContentKeyword extends BaseEntity {

private static final long serialVersionUID = 1L;

@ApiModelProperty(value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;

@ApiModelProperty(value = "信息id")
private Long contentId;

@ApiModelProperty(value = "关键词id")
private Long keywordId;

@ApiModelProperty(value = "创建时间")
private Date createTime;

}

+ 52
- 0
src/main/java/com/xdf/creative/module/entity/InfoKeyword.java Visa fil

@@ -0,0 +1,52 @@
package com.xdf.creative.module.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.xdf.creative.base.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
* <p>
* 信息关键字
* </p>
*
* @author lgw
* @since 2020-11-27
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "InfoKeyword对象", description = "信息关键字")
public class InfoKeyword extends BaseEntity {

private static final long serialVersionUID = 1L;

@ApiModelProperty(value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;

@ApiModelProperty(value = "关键词")
private String keyword;

@ApiModelProperty(value = "是否通用 0 否 1是")
private Integer isUse;

@ApiModelProperty(value = "描述")
private String detail;

@ApiModelProperty(value = "状态 0 不可用 1可用")
private Integer state;

@ApiModelProperty(value = "创建用户")
private Long createUser;

@ApiModelProperty(value = "创建时间")
private Date createTime;

}

+ 8
- 0
src/main/java/com/xdf/creative/module/entity/WebInitiationApply.java Visa fil

@@ -39,6 +39,11 @@ public class WebInitiationApply extends BaseEntity {
@NotBlank(message = "单位名称不能为空")
private String name;

@ApiModelProperty(value = "统一社会信用代码")
@NotBlank(message = "统一社会信用代码不能为空")
private String creditCode;


@ApiModelProperty(value = "单位logo")
private String logo;

@@ -174,6 +179,9 @@ public class WebInitiationApply extends BaseEntity {
@ApiModelProperty(value = "其他")
private String otherService;

@ApiModelProperty(value = "申请附件")
private String applyAttachment;

@TableField(exist = false)
@ApiModelProperty(value = "审核类型 1 初审 2 二审 ")
protected Integer auditType;

+ 56
- 0
src/main/java/com/xdf/creative/module/entity/WxGroup.java Visa fil

@@ -0,0 +1,56 @@
package com.xdf.creative.module.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.xdf.creative.base.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
* <p>
* 微信群二维码
* </p>
*
* @author lgw
* @since 2021-01-28
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "WxGroup对象", description = "微信群二维码")
public class WxGroup extends BaseEntity {

private static final long serialVersionUID = 1L;

@ApiModelProperty(value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;

@ApiModelProperty(value = "产业名")
@NotBlank(message = "产业名不能为空")
private String name;


@ApiModelProperty(value = "状态,0:禁用,1:启用,2:锁定")
private Integer state;

@ApiModelProperty(value = "微信二维码")
@NotBlank(message = "二维码不能为空")
private String code;

@ApiModelProperty(value = "创建时间")
private Date createTime;

@ApiModelProperty(value = "更新时间")
private Date updateTime;

@ApiModelProperty(value = "创建者id")
private Long createUserId;

}

+ 10
- 0
src/main/java/com/xdf/creative/module/listener/InfoContentHtmlListenEven.java Visa fil

@@ -0,0 +1,10 @@
package com.xdf.creative.module.listener;

import com.xdf.creative.module.entity.InfoContent;
import org.springframework.context.ApplicationEvent;

public class InfoContentHtmlListenEven extends ApplicationEvent {
public InfoContentHtmlListenEven(InfoContent infoContent) {
super(infoContent);
}
}

+ 57
- 0
src/main/java/com/xdf/creative/module/listener/InfoContentHtmlListener.java Visa fil

@@ -0,0 +1,57 @@
package com.xdf.creative.module.listener;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.xdf.creative.base.params.InfoContentHtmlEntity;
import com.xdf.creative.module.entity.InfoContent;
import com.xdf.creative.module.entity.InfoDetail;
import com.xdf.creative.module.service.InfoDetailService;
import com.xdf.creative.util.StringUtil;
import com.xdf.creative.util.image.HtmlUtils;
import org.jsoup.nodes.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;


@Component
public class InfoContentHtmlListener implements ApplicationListener<InfoContentHtmlListenEven> {
@Autowired
private InfoDetailService infoDetailService;

@Autowired
private MongoTemplate mongoTemplate;

/**
* 异步抓取html
*
* @param infoContentHtmlListenEven
*/
@Async
public void onApplicationEvent(InfoContentHtmlListenEven infoContentHtmlListenEven) {
Object source = infoContentHtmlListenEven.getSource();
if (source instanceof InfoContent) {
//取出超链接
InfoDetail infoDetail = infoDetailService.getOne(new QueryWrapper<InfoDetail>().eq("foreign_id",((InfoContent) source).getForeignId()));
if(null!=infoDetail){
String html = HtmlUtils.sendGetTwo(infoDetail.getHyperlink());
if(!StringUtil.isEmpty(html)){
Document document = HtmlUtils.getDocument(html);
if(document.hasText()){
InfoContentHtmlEntity infoContentHtmlEntity = new InfoContentHtmlEntity();
String content =document.html();
infoContentHtmlEntity.setContent(content.replaceAll("data-src=\"","src=\"http://img01.sogoucdn.com/net/a/04/link?appid=100520033&url=").replaceFirst("<head>","<head><meta name=\"referrer\" content=\"no-referrer\" />"));
// infoContentHtmlEntity.setContent(content);
infoContentHtmlEntity.setContentText(document.text());
infoContentHtmlEntity.setInfoContId(((InfoContent) source).getId().toString());
infoContentHtmlEntity.setTitle(((InfoContent) source).getTitle());
mongoTemplate.save(infoContentHtmlEntity);
}
}

}
}

}
}

+ 42
- 0
src/main/java/com/xdf/creative/module/mapper/InfoContentKeywordMapper.java Visa fil

@@ -0,0 +1,42 @@
package com.xdf.creative.module.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdf.creative.base.params.creative.InfoContentKeywordQueryParam;
import com.xdf.creative.base.vo.creative.InfoContentKeywordQueryVo;
import com.xdf.creative.module.entity.InfoContentKeyword;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.io.Serializable;

/**
* <p>
* 信息和关键字关联表 Mapper 接口
* </p>
*
* @author lgw
* @since 2020-11-27
*/
@Repository
public interface InfoContentKeywordMapper extends BaseMapper<InfoContentKeyword> {

/**
* 根据ID获取查询对象
*
* @param id
* @return
*/
InfoContentKeywordQueryVo getInfoContentKeywordById(Serializable id);

/**
* 获取分页对象
*
* @param page
* @param infoContentKeywordQueryParam
* @return
*/
IPage<InfoContentKeywordQueryVo> getInfoContentKeywordPageList(@Param("page") Page page, @Param("param") InfoContentKeywordQueryParam infoContentKeywordQueryParam);

}

+ 8
- 0
src/main/java/com/xdf/creative/module/mapper/InfoContentMapper.java Visa fil

@@ -23,6 +23,10 @@ import java.util.List;
@Repository
public interface InfoContentMapper extends BaseMapper<InfoContent> {

InfoContentQueryVo getUpInfoContent(@Param("param") InfoContentQueryParam infoContentQueryParam);

InfoContentQueryVo getDownInfoContent(@Param("param") InfoContentQueryParam infoContentQueryParam);

/**
* 首页显示新闻
*
@@ -32,6 +36,10 @@ public interface InfoContentMapper extends BaseMapper<InfoContent> {
List<InfoContentHomePageQueryVo> getHomePageInfo(@Param("param") InfoContentHomePageQueryParam infoContentHomePageQueryParam);



List<InfoContentWebSearchQueryVo> getSearchParkRecommendWebInfo(@Param("param") InfoContentWebSearchQueryParam infoContentWebSearchQueryParam);


List<InfoContentHomePageQueryVo> getHomePagesInfo(InfoContentHomePageListParam infoContentHomePageListParam);



+ 61
- 0
src/main/java/com/xdf/creative/module/mapper/InfoKeywordMapper.java Visa fil

@@ -0,0 +1,61 @@
package com.xdf.creative.module.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdf.creative.base.params.creative.InfoKeywordQueryParam;
import com.xdf.creative.base.vo.creative.InfoKeywordCheckListVo;
import com.xdf.creative.base.vo.creative.InfoKeywordQueryVo;
import com.xdf.creative.module.entity.InfoKeyword;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.io.Serializable;
import java.util.List;

/**
* <p>
* 信息关键字 Mapper 接口
* </p>
*
* @author lgw
* @since 2020-11-27
*/
@Repository
public interface InfoKeywordMapper extends BaseMapper<InfoKeyword> {


/**
* 获取已经选择的关键词
* @param id 内容id
* @return
*/
List<InfoKeywordCheckListVo> getCheckList(Serializable id);


/**
* 根据内容id获取关键词列表
* @param id
* @return
*/
List<InfoKeywordCheckListVo> getKeywordListByContentId(Serializable id);


/**
* 根据ID获取查询对象
*
* @param id
* @return
*/
InfoKeywordQueryVo getInfoKeywordById(Serializable id);

/**
* 获取分页对象
*
* @param page
* @param infoKeywordQueryParam
* @return
*/
IPage<InfoKeywordQueryVo> getInfoKeywordPageList(@Param("page") Page page, @Param("param") InfoKeywordQueryParam infoKeywordQueryParam);

}

+ 5
- 0
src/main/java/com/xdf/creative/module/mapper/WebInitiationApplyMapper.java Visa fil

@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdf.creative.base.params.creative.WebInitiationApplyQueryParam;
import com.xdf.creative.base.vo.creative.WebInitiationApplyExportVo;
import com.xdf.creative.base.vo.creative.WebInitiationApplyQueryVo;
import com.xdf.creative.module.entity.WebInitiationApply;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.io.Serializable;
import java.util.List;

/**
* <p>
@@ -78,4 +80,7 @@ public interface WebInitiationApplyMapper extends BaseMapper<WebInitiationApply>
*/
IPage<WebInitiationApplyQueryVo> getPageListByFinalAudit(@Param("page") Page page, @Param("param") WebInitiationApplyQueryParam webInitiationApplyQueryParam);


List<WebInitiationApplyExportVo> getExportPageList(@Param("param") WebInitiationApplyQueryParam webInitiationApplyQueryParam);

}

+ 42
- 0
src/main/java/com/xdf/creative/module/mapper/WxGroupMapper.java Visa fil

@@ -0,0 +1,42 @@
package com.xdf.creative.module.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdf.creative.base.params.creative.WxGroupQueryParam;
import com.xdf.creative.base.vo.creative.WxGroupQueryVo;
import com.xdf.creative.module.entity.WxGroup;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.io.Serializable;

/**
* <p>
* 微信群二维码 Mapper 接口
* </p>
*
* @author lgw
* @since 2021-01-28
*/
@Repository
public interface WxGroupMapper extends BaseMapper<WxGroup> {

/**
* 根据ID获取查询对象
*
* @param id
* @return
*/
WxGroupQueryVo getWxGroupById(Serializable id);

/**
* 获取分页对象
*
* @param page
* @param wxGroupQueryParam
* @return
*/
IPage<WxGroupQueryVo> getWxGroupPageList(@Param("page") Page page, @Param("param") WxGroupQueryParam wxGroupQueryParam);

}

+ 37
- 0
src/main/java/com/xdf/creative/module/service/InfoContentKeywordService.java Visa fil

@@ -0,0 +1,37 @@
package com.xdf.creative.module.service;

import com.xdf.creative.base.params.creative.InfoContentKeywordQueryParam;
import com.xdf.creative.base.service.BaseService;
import com.xdf.creative.base.vo.creative.InfoContentKeywordQueryVo;
import com.xdf.creative.module.entity.InfoContentKeyword;
import com.xdf.creative.util.page.PageTool;

import java.io.Serializable;

/**
* <p>
* 信息和关键字关联表 服务类
* </p>
*
* @author lgw
* @since 2020-11-27
*/
public interface InfoContentKeywordService extends BaseService<InfoContentKeyword> {

/**
* 根据ID获取查询对象
*
* @param id
* @return
*/
InfoContentKeywordQueryVo getInfoContentKeywordById(Serializable id) throws Exception;

/**
* 获取分页对象
*
* @param infoContentKeywordQueryParam
* @return
*/
PageTool<InfoContentKeywordQueryVo> getInfoContentKeywordPageList(InfoContentKeywordQueryParam infoContentKeywordQueryParam) throws Exception;

}

+ 20
- 0
src/main/java/com/xdf/creative/module/service/InfoContentService.java Visa fil

@@ -116,6 +116,15 @@ public interface InfoContentService extends BaseService<InfoContent> {
PageTool<InfoContentWebSearchQueryVo> getSearchWebsInfo(InfoContentWebSearchListParam infoContentWebSearchListParam) throws Exception;


/**
* 园区推荐列表
* @param infoContentWebSearchQueryParam
* @return
* @throws Exception
*/
List<InfoContentWebSearchQueryVo> getSearchParkRecommendWebInfo(InfoContentWebSearchQueryParam infoContentWebSearchQueryParam) throws Exception;


/**
* 手机端搜索新闻
* @param infoContentWebSearchQueryParam
@@ -175,6 +184,9 @@ public interface InfoContentService extends BaseService<InfoContent> {
*/
InfoContentQueryVo getInfoContentById(Serializable id) throws Exception;




/**
* 获取分页对象
*
@@ -183,4 +195,12 @@ public interface InfoContentService extends BaseService<InfoContent> {
*/
PageTool<InfoContentQueryVo> getInfoContentPageList(InfoContentQueryParam infoContentQueryParam) throws Exception;



ApiResult getInfoHtml(String infoId);


ApiResult getHtmlByInfo();


}

+ 87
- 0
src/main/java/com/xdf/creative/module/service/InfoKeywordService.java Visa fil

@@ -0,0 +1,87 @@
package com.xdf.creative.module.service;

import com.xdf.creative.base.params.creative.InfoKeywordAddParam;
import com.xdf.creative.base.params.creative.InfoKeywordQueryParam;
import com.xdf.creative.base.params.creative.InfoKeywordSaveCheckParam;
import com.xdf.creative.base.service.BaseService;
import com.xdf.creative.base.vo.creative.InfoKeywordCheckListVo;
import com.xdf.creative.base.vo.creative.InfoKeywordQueryVo;
import com.xdf.creative.module.entity.InfoKeyword;
import com.xdf.creative.util.page.ApiResult;
import com.xdf.creative.util.page.PageTool;

import java.io.Serializable;
import java.util.List;

/**
* <p>
* 信息关键字 服务类
* </p>
*
* @author lgw
* @since 2020-11-27
*/
public interface InfoKeywordService extends BaseService<InfoKeyword> {
/**
* 增加关键词
* @param infoKeywordAddParam
* @return
*/
ApiResult add(InfoKeywordAddParam infoKeywordAddParam);

/**
* 编辑关键词
* @param infoKeywordAddParam
* @return
*/
ApiResult edit(InfoKeywordAddParam infoKeywordAddParam);

/**
* 启用停用
* @param id
* @return
*/
ApiResult enable(Serializable id);

/**
* 删除
* @param id
* @return
*/
ApiResult del(Serializable id);

/**
* 获取已购选的list
* @param contentId
* @return
*/
ApiResult getCheckList(Serializable contentId);

/***
* 获取保存的list
* @param infoKeywordSaveCheckParam
* @return
*/
ApiResult saveCheckList(InfoKeywordSaveCheckParam infoKeywordSaveCheckParam);


List<InfoKeywordCheckListVo> getKeywordListByContentId(Serializable contentId);


/**
* 根据ID获取查询对象
*
* @param id
* @return
*/
InfoKeywordQueryVo getInfoKeywordById(Serializable id) throws Exception;

/**
* 获取分页对象
*
* @param infoKeywordQueryParam
* @return
*/
PageTool<InfoKeywordQueryVo> getInfoKeywordPageList(InfoKeywordQueryParam infoKeywordQueryParam) throws Exception;

}

+ 8
- 0
src/main/java/com/xdf/creative/module/service/WebInitiationApplyService.java Visa fil

@@ -7,6 +7,7 @@ import com.xdf.creative.module.entity.WebInitiationApply;
import com.xdf.creative.util.page.ApiResult;
import com.xdf.creative.util.page.PageTool;

import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;

/**
@@ -81,4 +82,11 @@ public interface WebInitiationApplyService extends BaseService<WebInitiationAppl
*/
ApiResult<Boolean> sendAudit(WebInitiationApply webInitiationApply);

/**
* @description: 导出
* @param: []
* @return: com.xdf.creative.util.page.ApiResult
*/
ApiResult getExportPageList(WebInitiationApplyQueryParam webInitiationApplyQueryParam, HttpServletRequest request);

}

+ 45
- 0
src/main/java/com/xdf/creative/module/service/WxGroupService.java Visa fil

@@ -0,0 +1,45 @@
package com.xdf.creative.module.service;

import com.xdf.creative.base.params.creative.WxGroupQueryParam;
import com.xdf.creative.base.service.BaseService;
import com.xdf.creative.base.vo.creative.WxGroupQueryVo;
import com.xdf.creative.module.entity.WxGroup;
import com.xdf.creative.util.page.ApiResult;
import com.xdf.creative.util.page.PageTool;

import java.io.Serializable;

/**
* <p>
* 微信群二维码 服务类
* </p>
*
* @author lgw
* @since 2021-01-28
*/
public interface WxGroupService extends BaseService<WxGroup> {

/**
* 启用停用
* @param id
* @return
*/
ApiResult enable(Serializable id);

/**
* 根据ID获取查询对象
*
* @param id
* @return
*/
WxGroupQueryVo getWxGroupById(Serializable id) throws Exception;

/**
* 获取分页对象
*
* @param wxGroupQueryParam
* @return
*/
PageTool<WxGroupQueryVo> getWxGroupPageList(WxGroupQueryParam wxGroupQueryParam) throws Exception;

}

+ 48
- 0
src/main/java/com/xdf/creative/module/service/impl/InfoContentKeywordServiceImpl.java Visa fil

@@ -0,0 +1,48 @@
package com.xdf.creative.module.service.impl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdf.creative.base.params.creative.InfoContentKeywordQueryParam;
import com.xdf.creative.base.service.impl.BaseServiceImpl;
import com.xdf.creative.base.vo.creative.InfoContentKeywordQueryVo;
import com.xdf.creative.module.entity.InfoContentKeyword;
import com.xdf.creative.module.mapper.InfoContentKeywordMapper;
import com.xdf.creative.module.service.InfoContentKeywordService;
import com.xdf.creative.util.page.PageTool;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serializable;


/**
* <p>
* 信息和关键字关联表 服务实现类
* </p>
*
* @author lgw
* @since 2020-11-27
*/
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class InfoContentKeywordServiceImpl extends BaseServiceImpl<InfoContentKeywordMapper, InfoContentKeyword> implements InfoContentKeywordService {

@Autowired
private InfoContentKeywordMapper infoContentKeywordMapper;

@Override
public InfoContentKeywordQueryVo getInfoContentKeywordById(Serializable id) throws Exception {
return infoContentKeywordMapper.getInfoContentKeywordById(id);
}

@Override
public PageTool<InfoContentKeywordQueryVo> getInfoContentKeywordPageList(InfoContentKeywordQueryParam infoContentKeywordQueryParam) throws Exception {
Page page = setPageParam(infoContentKeywordQueryParam);
IPage<InfoContentKeywordQueryVo> iPage = infoContentKeywordMapper.getInfoContentKeywordPageList(page, infoContentKeywordQueryParam);
return new PageTool(iPage);
}

}

+ 154
- 0
src/main/java/com/xdf/creative/module/service/impl/InfoContentServiceImpl.java Visa fil

@@ -3,24 +3,35 @@ package com.xdf.creative.module.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdf.creative.base.params.InfoContentHtmlEntity;
import com.xdf.creative.base.params.creative.*;
import com.xdf.creative.base.service.impl.BaseServiceImpl;
import com.xdf.creative.base.vo.creative.*;
import com.xdf.creative.constant.CommonConstant;
import com.xdf.creative.enums.*;
import com.xdf.creative.module.entity.*;
import com.xdf.creative.module.listener.InfoContentHtmlListenEven;
import com.xdf.creative.module.mapper.InfoContentMapper;
import com.xdf.creative.module.service.*;
import com.xdf.creative.util.StringUtil;
import com.xdf.creative.util.UUIDUtil;
import com.xdf.creative.util.image.HtmlUtils;
import com.xdf.creative.util.page.ApiResult;
import com.xdf.creative.util.page.PageTool;
import lombok.extern.slf4j.Slf4j;
import org.jsoup.nodes.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serializable;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -55,6 +66,24 @@ public class InfoContentServiceImpl extends BaseServiceImpl<InfoContentMapper, I
@Autowired
private SysUserService sysUserService;


@Autowired
private InfoKeywordService infoKeywordService;
@Autowired
private InfoContentKeywordService infoContentKeywordService;


@Autowired
private MongoTemplate mongoTemplate;


@Autowired
private RedisTemplate redisTemplate;


@Autowired
private ApplicationContext applicationContext;

/**
* t添加信息内容
* @param infoContentAddQueryParam
@@ -209,6 +238,32 @@ public class InfoContentServiceImpl extends BaseServiceImpl<InfoContentMapper, I
infoContentWebAllQueryVo.setUrlList(infoUrlList);
}
}

//获取关键字
List<InfoKeywordCheckListVo> infoKeywordCheckListVoList = infoKeywordService.getKeywordListByContentId(id);
if(null!=infoKeywordCheckListVoList&&infoKeywordCheckListVoList.size()>0){
List<String> keyWords = infoKeywordCheckListVoList.stream().map(t->t.getKeyword()).distinct().collect(Collectors.toList());
if(null!=keyWords||keyWords.size()>0){

infoContentWebAllQueryVo.setKeyWord(keyWords.toString());
}
}

//上一篇下一篇
InfoContentQueryParam infoContentQueryParam =new InfoContentQueryParam();
infoContentQueryParam.setId(infoContent.getId()).setTypeId(infoType.getTypeId().substring(0,3));

InfoContentQueryVo infoContentQueryVoUp = baseMapper.getUpInfoContent(infoContentQueryParam);
if(null!=infoContentQueryVoUp){
infoContentWebAllQueryVo.setUpTitle(infoContentQueryVoUp.getTitle()).setUpInfoId(infoContentQueryVoUp.getId()).setUpImageUrl(infoContentQueryVoUp.getImageUrl()).setUpHyperlink(infoContentQueryVoUp.getHyperlink());
}

InfoContentQueryVo infoContentQueryVoDown = baseMapper.getDownInfoContent(infoContentQueryParam);
if(null!=infoContentQueryVoDown){
infoContentWebAllQueryVo.setDownTitle(infoContentQueryVoDown.getTitle()).setDownInfoId(infoContentQueryVoDown.getId()).setDownImageUrl(infoContentQueryVoDown.getImageUrl()).setDownHyperlink(infoContentQueryVoDown.getHyperlink());
}


return ApiResult.ok(infoContentWebAllQueryVo);
}

@@ -413,6 +468,27 @@ public class InfoContentServiceImpl extends BaseServiceImpl<InfoContentMapper, I
infoContent.setFinalAuditTime(new Date());
infoContent.setFinalAuditUser(getUserId());
this.saveOrUpdate(infoContent);


//添加关键词
List<InfoKeyword> infoKeywordList = infoKeywordService.list(new QueryWrapper<InfoKeyword>().eq("state",StateEnum.ENABLE.getKey()).eq("is_use",StateEnum.ENABLE.getKey()));
List<InfoContentKeyword> infoContentKeywordList = new ArrayList<>();
infoContentKeywordService.remove(new QueryWrapper<InfoContentKeyword>().eq("content_id",infoContent.getId()));
for (InfoKeyword infoKeyWord:infoKeywordList
) {
InfoContentKeyword infoContentKeyword = new InfoContentKeyword();
infoContentKeyword.setKeywordId(infoKeyWord.getId()).setContentId(infoContent.getId()).setCreateTime(new Date());
infoContentKeywordList.add(infoContentKeyword);
}
infoContentKeywordService.saveBatch(infoContentKeywordList);

if(InfoAuditTypeEnum.INFO_STATE_TYPE_AUDIT_PASS.getCode().equals(infoContentAuditQueryParam.getAuditState())){
if(StateEnum.ENABLE.getKey().equals(infoContent.getContentType())){
applicationContext.publishEvent(new InfoContentHtmlListenEven(infoContent));
}

}

return ApiResult.ok();
}

@@ -627,6 +703,21 @@ public class InfoContentServiceImpl extends BaseServiceImpl<InfoContentMapper, I
return new PageTool(iPage);
}

@Override
public List<InfoContentWebSearchQueryVo> getSearchParkRecommendWebInfo(InfoContentWebSearchQueryParam infoContentWebSearchQueryParam) throws Exception {

List<InfoContentWebSearchQueryVo> list = new ArrayList<>();
if(!redisTemplate.hasKey(String.format(CommonConstant.XDF_CULTURE_PARK_INFO_CONTENT_RECOMMEND, CommonConstant.XDF_CULTURE_PARK_INFO_CONTENT_RECOMMEND_KEY))){
list = infoContentMapper.getSearchParkRecommendWebInfo(infoContentWebSearchQueryParam);
redisTemplate.opsForValue().set(String.format(CommonConstant.XDF_CULTURE_PARK_INFO_CONTENT_RECOMMEND, CommonConstant.XDF_CULTURE_PARK_INFO_CONTENT_RECOMMEND_KEY),list, Duration.ofSeconds(72000));
}else{
Object o = redisTemplate.opsForValue().get(String.format(CommonConstant.XDF_CULTURE_PARK_INFO_CONTENT_RECOMMEND, CommonConstant.XDF_CULTURE_PARK_INFO_CONTENT_RECOMMEND_KEY));
list = (List<InfoContentWebSearchQueryVo>) o;
}
return list;
}


@Override
public PageTool<InfoContentWebSearchQueryVo> getSearchWebsInfo(InfoContentWebSearchListParam infoContentWebSearchListParam) throws Exception {
Page page = setPageParam(infoContentWebSearchListParam);
@@ -724,4 +815,67 @@ public class InfoContentServiceImpl extends BaseServiceImpl<InfoContentMapper, I
return new PageTool(iPage);
}



@Override
public ApiResult getInfoHtml(String infoId) {
if(StringUtil.isEmpty(infoId)){
return ApiResult.fail("新闻标识不能为空!");
}
Criteria criteria = new Criteria();
//组织名称

criteria.and("infoContId").is(infoId);
Query query = new Query();
query.addCriteria(criteria);
InfoContentHtmlEntity infoContentHtmlEntity = mongoTemplate.findOne(query, InfoContentHtmlEntity.class);
/* String content = infoContentHtmlEntity.getContent();
infoContentHtmlEntity.setContent(content.replaceAll("data-src=\"","src=\"http://img01.sogoucdn.com/net/a/04/link?appid=100520033&url=").replaceFirst("<head>","<head><meta name=\"referrer\" content=\"no-referrer\" />"));*/
return ApiResult.ok(infoContentHtmlEntity);
}

@Override
@Transactional
public ApiResult getHtmlByInfo() {
List<InfoContent> infoContentList = this.list(new QueryWrapper<InfoContent>().eq("content_type",StateEnum.ENABLE.getKey()).eq("online_type",InfoOnlineStateEnum.PUBLIC_INFO_STATE_ONLINE.getCode()).ge("id",423));
int count = infoContentList.size();
int successCount = 0;
for (InfoContent infoContent:infoContentList
) {
//取出超链接
Criteria criteria = new Criteria();
//组织名称
criteria.and("infoContId").is(infoContent.getId().toString());
Query query = new Query();
query.addCriteria(criteria);
InfoContentHtmlEntity infoContentHtmlEntity = mongoTemplate.findOne(query, InfoContentHtmlEntity.class);
if(null==infoContentHtmlEntity) {
InfoDetail infoDetail = infoDetailService.getOne(new QueryWrapper<InfoDetail>().eq("foreign_id", infoContent.getForeignId()));
if (null != infoDetail) {
try{
String html = HtmlUtils.sendGetTwo(infoDetail.getHyperlink());
if (!StringUtil.isEmpty(html)) {
Document document = HtmlUtils.getDocument(html);
if (document.hasText()) {
infoContentHtmlEntity = new InfoContentHtmlEntity();
String content =document.html();
infoContentHtmlEntity.setContent(content.replaceAll("data-src=\"","src=\"http://img01.sogoucdn.com/net/a/04/link?appid=100520033&url=").replaceFirst("<head>","<head><meta name=\"referrer\" content=\"no-referrer\" />"));
infoContentHtmlEntity.setContentText(document.text());
infoContentHtmlEntity.setInfoContId(infoContent.getId().toString());
infoContentHtmlEntity.setTitle(infoContent.getTitle());
mongoTemplate.save(infoContentHtmlEntity);
successCount++;
}
}
}catch (Exception e){
log.error("错误id"+infoContent.getId()+"错误信息:"+e.getMessage());
}

}
}

}
return ApiResult.ok("总计"+count+"条,爬取"+successCount+"条!");
}

}

+ 202
- 0
src/main/java/com/xdf/creative/module/service/impl/InfoKeywordServiceImpl.java Visa fil

@@ -0,0 +1,202 @@
package com.xdf.creative.module.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdf.creative.base.params.creative.InfoKeywordAddParam;
import com.xdf.creative.base.params.creative.InfoKeywordQueryParam;
import com.xdf.creative.base.params.creative.InfoKeywordSaveCheckParam;
import com.xdf.creative.base.service.impl.BaseServiceImpl;
import com.xdf.creative.base.vo.creative.InfoKeywordCheckListVo;
import com.xdf.creative.base.vo.creative.InfoKeywordQueryVo;
import com.xdf.creative.constant.CommonConstant;
import com.xdf.creative.enums.StateEnum;
import com.xdf.creative.enums.StatusCode;
import com.xdf.creative.module.entity.InfoContent;
import com.xdf.creative.module.entity.InfoContentKeyword;
import com.xdf.creative.module.entity.InfoKeyword;
import com.xdf.creative.module.mapper.InfoKeywordMapper;
import com.xdf.creative.module.service.InfoContentKeywordService;
import com.xdf.creative.module.service.InfoContentService;
import com.xdf.creative.module.service.InfoKeywordService;
import com.xdf.creative.util.page.ApiResult;
import com.xdf.creative.util.page.PageTool;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


/**
* <p>
* 信息关键字 服务实现类
* </p>
*
* @author lgw
* @since 2020-11-27
*/
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class InfoKeywordServiceImpl extends BaseServiceImpl<InfoKeywordMapper, InfoKeyword> implements InfoKeywordService {

@Autowired
private InfoKeywordMapper infoKeywordMapper;
@Autowired
private InfoContentKeywordService infoContentKeywordService;
@Autowired
private InfoContentService infoContentService;


/**
* 添加关键词
* @param infoKeywordAddParam
* @return
*/
@Override
public ApiResult add(InfoKeywordAddParam infoKeywordAddParam) {
InfoKeyword infoKeyword = new InfoKeyword();
BeanUtils.copyProperties(infoKeywordAddParam, infoKeyword);
infoKeyword.setId(null);
infoKeyword.setCreateUser(getUserId());
infoKeyword.setState(StateEnum.ENABLE.getKey());
if (StateEnum.ENABLE.getKey().equals(infoKeyword.getIsUse())) {
if (this.count(new QueryWrapper<InfoKeyword>().eq("state", StateEnum.ENABLE.getKey()).eq("is_use", StateEnum.ENABLE.getKey())) >= CommonConstant.KEY_WORD_MAX_SIZE) {
return ApiResult.fail("常用关键字不能操作"+ CommonConstant.KEY_WORD_MAX_SIZE+"个");
}
}
this.saveOrUpdate(infoKeyword);
return ApiResult.ok();
}

/**
* 编辑关键词
* @param infoKeywordAddParam
* @return
*/
@Override
public ApiResult edit(InfoKeywordAddParam infoKeywordAddParam) {
InfoKeyword infoKeyword = this.getById(infoKeywordAddParam.getId());
if (null == infoKeyword) {
return ApiResult.error(StatusCode.FORM_SUBMIT_UPDATE_VERIFY);
}
if (StateEnum.ENABLE.getKey().equals(infoKeywordAddParam.getIsUse())) {
if (this.count(new QueryWrapper<InfoKeyword>().eq("state", StateEnum.ENABLE.getKey()).eq("is_use", StateEnum.ENABLE.getKey())) >= CommonConstant.KEY_WORD_MAX_SIZE) {
return ApiResult.fail("常用关键字不能操作"+ CommonConstant.KEY_WORD_MAX_SIZE+"个");
}
}
BeanUtils.copyProperties(infoKeywordAddParam, infoKeyword);
this.saveOrUpdate(infoKeyword);
return ApiResult.ok();
}

/**
* 启用停用关键词
* @param id
* @return
*/
@Override
public ApiResult enable(Serializable id) {
InfoKeyword infoKeyword = this.getById(id);
if (null == infoKeyword) {
return ApiResult.error(StatusCode.FORM_SUBMIT_UPDATE_VERIFY);
}
if (StateEnum.ENABLE.getKey().equals(infoKeyword.getState())) {
infoKeyword.setState(StateEnum.DISABLE.getKey());
} else {
infoKeyword.setState(StateEnum.ENABLE.getKey());
}
this.saveOrUpdate(infoKeyword);
return ApiResult.ok();
}

/**
* 删除关键字
* @param id
* @return
*/
@Override
public ApiResult del(Serializable id) {
InfoKeyword infoKeyword = this.getById(id);
if(null==infoKeyword){
return ApiResult.error(StatusCode.FORM_SUBMIT_UPDATE_VERIFY);
}
if(StateEnum.ENABLE.getKey().equals(infoKeyword.getState())){
return ApiResult.fail("只能删除已停用的关键词!");
}
if(infoContentKeywordService.count(new QueryWrapper<InfoContentKeyword>().eq("keyword_id",id))>0){
return ApiResult.fail("当前关键字已经被绑定,只能停用!");
}
this.removeById(infoKeyword);
return ApiResult.ok();
}

/**
* 获取已选择关键词列表
* @param contentId
* @return
*/
@Override
public ApiResult getCheckList(Serializable contentId) {
return ApiResult.ok(baseMapper.getCheckList(contentId));
}




/**
* 给新闻添加关键字
* @param infoKeywordSaveCheckParam
* @return
*/
@Override
@Transactional
public ApiResult saveCheckList(InfoKeywordSaveCheckParam infoKeywordSaveCheckParam) {
List<Long> keyIds =infoKeywordSaveCheckParam.getKeyIds();
if(null==keyIds||keyIds.size()<=0){
return ApiResult.fail("请选择关键词!");
}
InfoContent infoContent = infoContentService.getById(infoKeywordSaveCheckParam.getContentId());
if(null == infoContent){
return ApiResult.error(StatusCode.FORM_SUBMIT_UPDATE_VERIFY);
}
List<InfoContentKeyword> infoContentKeywordList = new ArrayList<>();
if(infoContentKeywordService.remove(new QueryWrapper<InfoContentKeyword>().eq("content_id",infoContent.getId()))){
for (Long keyId:keyIds
) {
InfoKeyword infoKeyword = this.getById(keyId);
if(null!=infoKeyword&& StateEnum.ENABLE.getKey().equals(infoKeyword.getState())){
InfoContentKeyword infoContentKeyword = new InfoContentKeyword();
infoContentKeyword.setContentId(infoContent.getId()).setKeywordId(infoKeyword.getId()).setCreateTime(new Date());
infoContentKeywordList.add(infoContentKeyword);
}
}
}
infoContentKeywordService.saveBatch(infoContentKeywordList);
return ApiResult.ok();
}

@Override
public List<InfoKeywordCheckListVo> getKeywordListByContentId(Serializable contentId) {
return baseMapper.getKeywordListByContentId(contentId);
}

@Override
public InfoKeywordQueryVo getInfoKeywordById(Serializable id) throws Exception {
return infoKeywordMapper.getInfoKeywordById(id);
}

@Override
public PageTool<InfoKeywordQueryVo> getInfoKeywordPageList(InfoKeywordQueryParam infoKeywordQueryParam) throws Exception {
Page page = setPageParam(infoKeywordQueryParam);
IPage<InfoKeywordQueryVo> iPage = infoKeywordMapper.getInfoKeywordPageList(page, infoKeywordQueryParam);
return new PageTool(iPage);
}

}

+ 20
- 3
src/main/java/com/xdf/creative/module/service/impl/SysUserServiceImpl.java Visa fil

@@ -11,6 +11,7 @@ import com.xdf.creative.base.params.creative.*;
import com.xdf.creative.base.service.impl.BaseServiceImpl;
import com.xdf.creative.base.vo.creative.*;
import com.xdf.creative.base.vo.tyrz.SysUserCurrentInfoVo;
import com.xdf.creative.constant.CommonConstant;
import com.xdf.creative.enums.*;
import com.xdf.creative.module.entity.*;
import com.xdf.creative.module.mapper.SysRegionMapper;
@@ -38,6 +39,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@@ -93,6 +95,10 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserMapper, SysUser>
@Autowired
private SysRegionMapper sysRegionMapper;


@Autowired
private RedisTemplate redisTemplate;

// @Value("${tyrz.app_id}")
private String appId;

@@ -121,9 +127,20 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserMapper, SysUser>
public ApiResult login(LoginParam loginParam, HttpServletRequest request) throws Exception {
// 校验验证码

// if (!CodeUtil.checkVerifyCode(request, loginParam.getVerifyCodeActual())) {
// return ApiResult.fail("验证码错误");
// }
if (StringUtil.isEmpty(loginParam.getVerifyCodeActual() )){
return ApiResult.fail("验证码不能为空!");
}

String encrypt = PasswordUtil.encrypt(loginParam.getUsername()+loginParam.getType(), CommonConstant.VERIFY_CODE_KEY);
String key = String.format(CommonConstant.VERIFY_CODE_GET, loginParam.getUsername(), encrypt);
String cacheVerifyCode = (String) redisTemplate.opsForValue().get(key);

if (!loginParam.getVerifyCodeActual().equalsIgnoreCase(cacheVerifyCode)) {
return ApiResult.fail("验证码错误!");
}



String userName = loginParam.getUsername();
SysUser sysUser = getSysUserByUserName(userName);
if (sysUser == null) {

+ 51
- 2
src/main/java/com/xdf/creative/module/service/impl/WebInitiationApplyServiceImpl.java Visa fil

@@ -2,9 +2,11 @@ package com.xdf.creative.module.service.impl;

import com.alibaba.druid.util.StringUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdf.creative.base.params.creative.WebInitiationApplyQueryParam;
import com.xdf.creative.base.service.impl.BaseServiceImpl;
import com.xdf.creative.base.vo.creative.WebInitiationApplyExportVo;
import com.xdf.creative.base.vo.creative.WebInitiationApplyQueryVo;
import com.xdf.creative.enums.InitiationApplryAduitStateEnum;
import com.xdf.creative.enums.InitiationApplryAduitTypeEnum;
@@ -12,15 +14,21 @@ import com.xdf.creative.enums.StatusCode;
import com.xdf.creative.module.entity.WebInitiationApply;
import com.xdf.creative.module.mapper.WebInitiationApplyMapper;
import com.xdf.creative.module.service.WebInitiationApplyService;
import com.xdf.creative.util.excel.ExportExcel;
import com.xdf.creative.util.page.ApiResult;
import com.xdf.creative.util.page.PageTool;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serializable;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
@@ -39,6 +47,9 @@ public class WebInitiationApplyServiceImpl extends BaseServiceImpl<WebInitiation
@Autowired
private WebInitiationApplyMapper webInitiationApplyMapper;

@Value("${upload_basePath}")
private String basePath;

@Override
public WebInitiationApplyQueryVo getWebInitiationApplyById(Serializable id) throws Exception {
return webInitiationApplyMapper.getWebInitiationApplyById(id);
@@ -180,6 +191,44 @@ public class WebInitiationApplyServiceImpl extends BaseServiceImpl<WebInitiation
}
}

;
/**
* @description: 导出excel
* @param: [webInitiationApplyQueryParam]
* @return: com.xdf.creative.util.page.ApiResult
* @author 一路心飞扬 lgw
* @date: 2021/3/1 14:57
*/
@Override
public ApiResult getExportPageList(WebInitiationApplyQueryParam webInitiationApplyQueryParam, HttpServletRequest request) {

List<WebInitiationApplyExportVo> list=baseMapper.getExportPageList(webInitiationApplyQueryParam);
String[] headers = {"单位名称", "统一社会信用代码 ", "单位类型","省","市","区","详细地址","邮编","网址","法人姓名","法人职务","法人固定电话","法人手机号", "日常联系人姓名", "日常联系人职务", "日常联系电话", "日常联系人手机号", "法人简介", "单位介绍", "专利与荣誉", "金融服务", "产业合作", "企业服务", "其他服务", "行业类别", "申请成为哪级会员","LOGO","执照","申请附件"};
String fileName = "入会申请列表";
String excelDirPath = basePath+"/excel/";
File fileDir = new File(excelDirPath);
if (!fileDir.isDirectory()) {
fileDir.mkdirs();
}
String excelPath = excelDirPath + fileName + ".xls";// UUIDGenerator.getUUID()
File file = new File(excelPath);
try {
OutputStream out = new FileOutputStream(file);
ExportExcel<WebInitiationApplyExportVo> excel = new ExportExcel<WebInitiationApplyExportVo>();
excel.exportExcel(fileName, headers, list, out);
out.close();
Map<String, String> mapResult = new HashMap<String, String>();
mapResult.put("path", "/excel/" + fileName + ".xls");
mapResult.put("fileName", fileName + ".xls");
return ApiResult.ok(mapResult);
} catch (FileNotFoundException e) {
e.printStackTrace();
return ApiResult.fail("当前记录导出失败,文件创建异常");
} catch (IOException e) {
e.printStackTrace();
return ApiResult.fail("当前记录导出失败,文件读写异常");

}

}

}

+ 66
- 0
src/main/java/com/xdf/creative/module/service/impl/WxGroupServiceImpl.java Visa fil

@@ -0,0 +1,66 @@
package com.xdf.creative.module.service.impl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdf.creative.base.params.creative.WxGroupQueryParam;
import com.xdf.creative.base.service.impl.BaseServiceImpl;
import com.xdf.creative.base.vo.creative.WxGroupQueryVo;
import com.xdf.creative.enums.StateEnum;
import com.xdf.creative.enums.StatusCode;
import com.xdf.creative.module.entity.WxGroup;
import com.xdf.creative.module.mapper.WxGroupMapper;
import com.xdf.creative.module.service.WxGroupService;
import com.xdf.creative.util.page.ApiResult;
import com.xdf.creative.util.page.PageTool;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serializable;


/**
* <p>
* 微信群二维码 服务实现类
* </p>
*
* @author lgw
* @since 2021-01-28
*/
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class WxGroupServiceImpl extends BaseServiceImpl<WxGroupMapper, WxGroup> implements WxGroupService {

@Autowired
private WxGroupMapper wxGroupMapper;

@Override
public ApiResult enable(Serializable id) {
WxGroup wxGroup = this.getById(id);
if (null == wxGroup) {
return ApiResult.error(StatusCode.FORM_SUBMIT_UPDATE_VERIFY);
}
if (StateEnum.ENABLE.getKey().equals(wxGroup.getState())) {
wxGroup.setState(StateEnum.DISABLE.getKey());
} else {
wxGroup.setState(StateEnum.ENABLE.getKey());
}
this.saveOrUpdate(wxGroup);
return ApiResult.ok();
}

@Override
public WxGroupQueryVo getWxGroupById(Serializable id) throws Exception {
return wxGroupMapper.getWxGroupById(id);
}

@Override
public PageTool<WxGroupQueryVo> getWxGroupPageList(WxGroupQueryParam wxGroupQueryParam) throws Exception {
Page page = setPageParam(wxGroupQueryParam);
IPage<WxGroupQueryVo> iPage = wxGroupMapper.getWxGroupPageList(page, wxGroupQueryParam);
return new PageTool(iPage);
}

}

+ 11
- 9
src/main/java/com/xdf/creative/shiro/filter/ConfigPathInterceptor.java Visa fil

@@ -87,7 +87,7 @@ public class ConfigPathInterceptor implements HandlerInterceptor {

/**
* 验证token
*
* 以前版本遗留问题,token处理方式不对 后期整改
* @param token
* @return
*/
@@ -96,9 +96,9 @@ public class ConfigPathInterceptor implements HandlerInterceptor {
String requestUrl = request.getRequestURI();
ApiResult result = new ApiResult();
//token失效 先检查是否存在 不存在则直接令牌过去重新登录
OauthTokenQueryVo oauthTokenQueryVo= oauthTokenService.getOauthTokenByToken(token);
if (JwtUtil.isExpired(token)) {
//先查token是否存在
OauthTokenQueryVo oauthTokenQueryVo =oauthTokenService.getOauthTokenByToken(token);
if(null==oauthTokenQueryVo){
log.error("令牌过期");
result.setCode(ApiCode.TOKEN_INVALID.getCode());
@@ -113,10 +113,10 @@ public class ConfigPathInterceptor implements HandlerInterceptor {
result.setMsg(ApiCode.TOKEN_INVALID.getMsg());
getResponseResult(response, result);
return false;
}else{
}/*else{
return true;

}
}*/

// setJwtPropertiesBean();
// String oldToken = oauthTokenQueryVo.getAccessToken();
@@ -152,7 +152,6 @@ public class ConfigPathInterceptor implements HandlerInterceptor {
return false;
}
//先查token是否存在
OauthTokenQueryVo oauthTokenQueryVo =oauthTokenService.getOauthTokenByToken(token);
if(null==oauthTokenQueryVo){
log.error("该token未登录,非法访问!");
result.setCode(ApiCode.TOKEN_INVALID.getCode());
@@ -161,10 +160,13 @@ public class ConfigPathInterceptor implements HandlerInterceptor {
return false;
}else{
//更新更新时间
OauthToken oauthToken = new OauthToken();
BeanUtils.copyProperties(oauthTokenQueryVo,oauthToken);
oauthToken.setUpdateTime(new Date());
oauthTokenService.saveOrUpdate(oauthToken);
if (new Date().getTime() - oauthTokenQueryVo.getUpdateTime().getTime() > jwtProperties.getRefreshTokenCountdown() * 1000) {
//更新更新时间
OauthToken oauthToken = new OauthToken();
BeanUtils.copyProperties(oauthTokenQueryVo, oauthToken);
oauthToken.setUpdateTime(new Date());
oauthTokenService.saveOrUpdate(oauthToken);
}
}
//根据用户名去数据库查询用户信息
SysUser user = null;

+ 2
- 0
src/main/java/com/xdf/creative/support/auth/LoginParam.java Visa fil

@@ -34,6 +34,8 @@ public class LoginParam {

private Long userId;

private Integer type;



}

+ 12
- 4
src/main/java/com/xdf/creative/util/excel/ExcelUtil.java Visa fil

@@ -1,3 +1,4 @@
/*
package com.xdf.creative.util.excel;

import com.xdf.creative.util.page.ApiResult;
@@ -13,10 +14,12 @@ import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.*;

*/
/**
* @author : lgw
* @date : 14:15 2020/5/7
*/
*//*

public class ExcelUtil {


@@ -199,7 +202,7 @@ public class ExcelUtil {
if (cell == null) {
return "";
}
switch (cell.getCellTypeEnum()) {
switch (cell.getCellType()) {
case STRING:
return cell.getStringCellValue();
case NUMERIC:
@@ -208,8 +211,12 @@ public class ExcelUtil {
Date date = HSSFDateUtil.getJavaDate(cell.getNumericCellValue());
return sdf.format(date);
} else {
/* return String.format("%.2f", cell.getNumericCellValue());*/
/**String.valueOf(cell.getNumericCellValue());*/
*/
/* return String.format("%.2f", cell.getNumericCellValue());*//*

*/
/**String.valueOf(cell.getNumericCellValue());*//*

return String.valueOf(cell.getNumericCellValue());
}
case BOOLEAN:
@@ -231,3 +238,4 @@ public class ExcelUtil {
}

}
*/

+ 195
- 0
src/main/java/com/xdf/creative/util/excel/ExportExcel.java Visa fil

@@ -0,0 +1,195 @@
package com.xdf.creative.util.excel;

import org.apache.poi.hssf.usermodel.*;

import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.regex.Matcher;
import org.apache.poi.hssf.util.Region;
import java.util.regex.Pattern;

public class ExportExcel<T> {


public void exportExcel(String title, String[] headers,
Collection<T> dataset, OutputStream out) {
doExportExcel(title, headers, dataset, out, "yyyy-MM-dd");
}

public void exportExcel(String title, String[] headers,
Collection<T> dataset, OutputStream out, String pattern) {
doExportExcel(title, headers, dataset, out, pattern);
}

/**
* 这是一个通用的方法,利用了JAVA的反射机制,可以将放置在JAVA集合中并且符号一定条件的数据以EXCEL 的形式输出到指定IO设备上
*
* @param title 表格标题名
* @param headers 表格属性列名数组
* @param dataset 需要显示的数据集合,集合中一定要放置符合javabean风格的类的对象。此方法支持的
* javabean属性的数据类型有基本数据类型及String,Date,byte[](图片数据)
* @param out 与输出设备关联的流对象,可以将EXCEL文档导出到本地文件或者网络中
* @param pattern 如果有时间数据,设定输出格式。默认为"yyy-MM-dd"
*/

@SuppressWarnings("unchecked")
public void doExportExcel(String title, String[] headers,
Collection<T> dataset, OutputStream out, String pattern) {
// 声明一个工作薄
HSSFWorkbook workbook = new HSSFWorkbook();
// 生成一个表格
HSSFSheet sheet = workbook.createSheet(title);

// 设置表格默认列宽度为15个字节
sheet.setDefaultColumnWidth((short) 15);

// 生成一个样式
HSSFCellStyle style = workbook.createCellStyle();
// 设置这些样式
// style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 生成一个字体
HSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short) 10);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 把字体应用到当前的样式
style.setFont(font);
// 生成并设置另一个样式
HSSFCellStyle style2 = workbook.createCellStyle();
// style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 生成另一个字体
HSSFFont font2 = workbook.createFont();
font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
// 把字体应用到当前的样式
style2.setFont(font2);
// 声明一个画图的顶级管理器
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
// 定义注释的大小和位置,详见文档
HSSFComment comment = patriarch.createComment(new HSSFClientAnchor(0,
0, 0, 0, (short) 4, 2, (short) 6, 5));
// 设置注释内容
comment.setString(new HSSFRichTextString("可以在POI中添加注释!"));
// 设置注释作者,当鼠标移动到单元格上是可以在状态栏中看到该内容.
comment.setAuthor("leno");
HSSFRow row1 = sheet.createRow(0);
row1.setHeight((short) 400);
HSSFCell cell1 = row1.createCell(0);
// 定义单元格为字符串类型
//cell1.setCellType(HSSFCell.ENCODING_UTF_16);
cell1.setCellValue(new HSSFRichTextString(title));
cell1.setCellStyle(style);
sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) (headers.length - 1)));
// 产生表格标题行
HSSFRow row = sheet.createRow(1);
for (short i = 0; i < headers.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellStyle(style);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
}
// 遍历集合数据,产生数据行
Iterator<T> it = dataset.iterator();
int index = 1;
while (it.hasNext()) {
index++;
row = sheet.createRow(index);
T t = (T) it.next();
// 利用反射,根据javabean属性的先后顺序,动态调用getXxx()方法得到属性值
Field[] fields = t.getClass().getDeclaredFields();
for (short i = 0; i < fields.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellStyle(style2);
Field field = fields[i];
String fieldName = field.getName();
String getMethodName = "get"
+ fieldName.substring(0, 1).toUpperCase()
+ fieldName.substring(1);
try {
Class tCls = t.getClass();
Method getMethod = tCls.getMethod(getMethodName,
new Class[]{});
Object value = getMethod.invoke(t, new Object[]{});
// 判断值的类型后进行强制类型转换
String textValue = null;
if (value instanceof Boolean) {
boolean bValue = (Boolean) value;
textValue = "男";
if (!bValue) {
textValue = "女";
}
} else if (value instanceof Date) {
Date date = (Date) value;
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
textValue = sdf.format(date);
} else if (value instanceof byte[]) {
row.setHeightInPoints(60);
// 设置图片所在列宽度为80px,注意这里单位的一个换算
sheet.setColumnWidth(i, (short) (35.7 * 80));
// sheet.autoSizeColumn(i);
byte[] bsValue = (byte[]) value;
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0,
1023, 255, (short) 6, index, (short) 6, index);
anchor.setAnchorType(2);
patriarch.createPicture(anchor, workbook.addPicture(
bsValue, HSSFWorkbook.PICTURE_TYPE_JPEG));
} else {
// 其它数据类型都当作字符串简单处理
if (null != value) {
textValue = value.toString();
} else {
textValue = "";
}
}
// 如果不是图片数据,就利用正则表达式判断textValue是否全部由数字组成
if (textValue != null) {
Pattern p = Pattern.compile("^//d+(//.//d+)?$");
Matcher matcher = p.matcher(textValue);
if (matcher.matches()) {
// 是数字当作double处理
cell.setCellValue(Double.parseDouble(textValue));
} else {
HSSFRichTextString richString = new HSSFRichTextString(
textValue);
cell.setCellValue(richString);
}
}

} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} finally {
// 清理资源
}
}
}
try {
workbook.write(out);
} catch (IOException e) {
e.printStackTrace();
}
}
}

+ 6
- 1
src/main/java/com/xdf/creative/util/file/ServerUploadDirUtil.java Visa fil

@@ -26,7 +26,12 @@ public class ServerUploadDirUtil {
case 109:
uploadDir = ServiceFileDirEnum.SERVICE_FILE_DIR_PUBLIC_ACTIVITY.getName();
break;

case 113:
uploadDir = ServiceFileDirEnum.SERVICE_FILE_DIR_PUBLIC_APPLY.getName();
break;
case 110:
uploadDir =ServiceFileDirEnum.SERVICE_FILE_DIR_PUBLIC_QR.getName();
break;
case 999:
uploadDir = ServiceFileDirEnum.SERVICE_FILE_DIR_OTHER.getName();
break;

+ 154
- 0
src/main/java/com/xdf/creative/util/image/HtmlUtils.java Visa fil

@@ -0,0 +1,154 @@
package com.xdf.creative.util.image;
/**
* @author : lgw
* @date : 15:23 2020/12/23
*/

import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.HttpClientUtils;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

/**
* @ClassName HtmlUtils
* @Date 2020/12/23 15:23
* @Version 1.0
**/

public class HtmlUtils {
private static Logger log = LoggerFactory.getLogger(HtmlUtils.class);
public static String sendGetOne(String url) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/5.0 (Windows NT 6.1) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.16 Safari/537.36");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream())); //这里如果出现乱码,请使用带编码的InputStreamReader构造方法,将需要的编码设置进去
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
log.error(url+"获取失败:"+e.getMessage());
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}


public static String sendGetTwo(String url) {
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
//2.创建get请求,相当于在浏览器地址栏输入 网址
HttpGet request = new HttpGet(url);
String html = "";
request.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.16 Safari/537.36");
try {
//3.执行get请求,相当于在输入地址栏后敲回车键
response = httpClient.execute(request);
//4.判断响应状态为200,进行处理
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
//5.获取响应内容
HttpEntity httpEntity = response.getEntity();
html = EntityUtils.toString(httpEntity, "utf-8");
} else {
//如果返回状态不是200,比如404(页面不存在)等,根据情况做处理,这里略
log.error(url+"获取失败返回状态不是200:"+EntityUtils.toString(response.getEntity(), "utf-8"));
html ="";
}
} catch (ClientProtocolException e) {
log.error(url+"获取失败:"+e.getMessage());
e.printStackTrace();
} catch (IOException e) {
log.error(url+"获取失败:"+e.getMessage());
e.printStackTrace();
} finally {
//6.关闭
HttpClientUtils.closeQuietly(response);
HttpClientUtils.closeQuietly(httpClient);
}
return html;
}


public static Document getDocument(String html) {
//获取的数据,存放在到Bid的对象中,自己可以重新建立一个对象存储
return Jsoup.parse(html);
}

public static String getData(String html) {
//获取的数据,存放在到Bid的对象中,自己可以重新建立一个对象存储
Document document = Jsoup.parse(html);
if (document.hasText()) {
return document.text();
} else {
return "";
}
}
/*
//像js一样,通过标签获取title
System.out.println(document.getElementsByTag("title").first());
//像js一样,通过id 获取文章列表元素对象
Element postList = document.getElementById("post_list");
Elements postItems = postList.getElementsByClass("post_item");
for (Element postItem : postItems) {
//像jquery选择器一样,获取文章标题元素
Elements titleEle = postItem.select(".post_item_body a[class='titlelnk']");
System.out.println("文章标题:" + titleEle.text());
;
System.out.println("文章地址:" + titleEle.attr("href"));
Elements footEle = postItem.select(".post_item_foot a[class='lightblue']");
System.out.println("文章作者:" + footEle.text());
;
System.out.println("作者主页:" + footEle.attr("href"));
System.out.println("*********************************");

}*/


public static void main(String args[]) {
String url = "https://mp.weixin.4b4591f203f&token=738234688&lang=zh_CN#rd";
String html = sendGetTwo(url);
System.out.println(getData(html));
}
}

+ 8
- 1
src/main/resources/application.properties Visa fil

@@ -6,6 +6,7 @@ auth_skip_urls=\
/upload/findRandomId,\
/upload/doPictureFile,\
/upload/uploadByDecoder,\
/upload/doApplyFile,\
/sysRegion/getRegionList,\
/user/login,\
/infoContent/getHomePageInfo,\
@@ -35,7 +36,13 @@ auth_skip_urls=\
/index,\
/loginHome,\
/webInitiationApply/add,\
/webInitiationApply/info
/webInitiationApply/info,\
/infoContent/getSearchParkRecommendWebInfo,\
/infoContent/getInfoHtml,\
/infoContent/getHtmlByInfo,\
/wxGroup/getWebList,\
/webInitiationApply/getExportPageList

upload_basePath:@upload_basePath@
wx_basePath=wx/


+ 24
- 3
src/main/resources/application.yml Visa fil

@@ -34,6 +34,13 @@ spring:
charset: UTF-8
location: classpath:banner.txt

data:
mongodb:
host: 47.101.71.64
port: 27018
database: companyInfo
username: dbSpider
password: f0fb3d94c2a1338d

datasource:
driver-class-name: com.mysql.jdbc.Driver
@@ -78,8 +85,8 @@ spring:
servlet:
multipart:
enabled: true
max-file-size: 5MB
max-request-size: 2MB
max-file-size: 6MB
max-request-size: 6MB

mail:
host: smtp.aliyun.com
@@ -99,6 +106,20 @@ spring:
fallback: false
port: 465

redis:
database: 0
host: @redis_host@
password: @redis_pass@
port: @redis_port@
timeout: 10s
lettuce:
pool:
max-active: 200
max-idle: 8
max-wait: 10s
min-idle: 2
shutdown-timeout: 3s

############################ JWT start #############################
spring-boot-plus:
jwt:
@@ -115,7 +136,7 @@ spring-boot-plus:
# 是否刷新token
refresh-token: true
# 刷新token的时间间隔,默认10分钟,单位:秒
refresh-token-countdown: 3600
refresh-token-countdown: 1200
# redis校验jwt token是否存在,可选
redis-check: true
# true: 同一个账号只能是最后一次登陆token有效,false:同一个账号可多次登陆

+ 46
- 0
src/main/resources/mapper/InfoContentKeywordMapper.xml Visa fil

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xdf.creative.module.mapper.InfoContentKeywordMapper">


<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, content_id, keyword_id, create_time
</sql>

<sql id="Base_If_Condition">
<where>
<if test="param.id !=null and param.id!=''">
and id=#{param.id}
</if>
<if test="param.contentId !=null and param.contentId!=''">
and content_id=#{param.contentId}
</if>
<if test="param.keywordId !=null and param.keywordId!=''">
and keyword_id=#{param.keywordId}
</if>
<if test="param.createTime !=null and param.createTime!=''">
and create_time=#{param.createTime}
</if>
</where>
</sql>


<!--根据ID查询-->
<select id="getInfoContentKeywordById" resultType="com.xdf.creative.base.vo.creative.InfoContentKeywordQueryVo">
select
<include refid="Base_Column_List"/>
from inf_content_keyword where id = #{id}
</select>

<!--分页查询-->
<select id="getInfoContentKeywordPageList"
resultType="com.xdf.creative.base.vo.creative.InfoContentKeywordQueryVo"
parameterType="com.xdf.creative.base.params.creative.InfoContentKeywordQueryParam">
select
<include refid="Base_Column_List"/>
from inf_content_keyword
<include refid="Base_If_Condition"/>
</select>

</mapper>

+ 56
- 0
src/main/resources/mapper/InfoContentMapper.xml Visa fil

@@ -156,6 +156,49 @@

</select>

<select id="getSearchParkRecommendWebInfo"
resultType="com.xdf.creative.base.vo.creative.InfoContentWebSearchQueryVo"
parameterType="com.xdf.creative.base.params.creative.InfoContentWebSearchQueryParam">
select
a.id,a.title,a.final_audit_time,a.image_url,a.sort,a.istop,a.istop_time,b.type_id,b.info_name,c.digest,c.hyperlink,a.content_type
from info_content a left join info_detail c on a.foreign_id = c.foreign_id left join info_type b on
a.info_type_id =b.id where
a.deleted=0 and a.online_type=1 and a.state = 3
<if test="param.typeId !=null and param.typeId!=''">
and b.type_id like CONCAT('',#{param.typeId},'%')
</if>
<if test="param.title !=null and param.title!=''">
and a.title like CONCAT('%',#{param.title},'%')
</if>
union select
a.id,a.title,a.final_audit_time,a.image_url,a.sort,a.istop,a.istop_time,b.type_id,b.info_name,c.digest,c.hyperlink,a.content_type
from info_content a left join info_detail c on a.foreign_id = c.foreign_id left join info_type b on
a.info_type_id =b.id where
a.deleted=0 and a.online_type=1 and a.state = 3
<if test="param.typeId !=null and param.typeId!=''">
and b.type_id like CONCAT('',#{param.typeId},'%')
</if>
<if test="param.title !=null and param.title!=''">
and c.digest like CONCAT('%',#{param.title},'%')
</if>

union select
a.id,a.title,a.final_audit_time,a.image_url,a.sort,a.istop,a.istop_time,b.type_id,b.info_name,c.digest,c.hyperlink,a.content_type
from info_content a left join info_detail c on a.foreign_id = c.foreign_id left join info_type b on
a.info_type_id =b.id where
a.deleted=0 and a.online_type=1 and a.state = 3
<if test="param.typeId !=null and param.typeId!=''">
and b.type_id like CONCAT('',#{param.typeId},'%')
</if>

<if test="param.title !=null and param.title!=''">
and c.content like CONCAT('%',#{param.title},'%')
</if>
ORDER BY id desc
limit 30
</select>





@@ -366,6 +409,19 @@
</select>


<!--上一篇-->
<select id="getUpInfoContent"
parameterType="com.xdf.creative.base.params.creative.InfoContentQueryParam"
resultType="com.xdf.creative.base.vo.creative.InfoContentQueryVo">
select a.id,a.title,a.image_url,c.hyperlink from info_content a left join info_type b on a.info_type_id = b.id left join info_detail c on a.foreign_id = c.foreign_id where a.id &lt; #{param.id} and b.type_id like CONCAT('',#{param.typeId},'%') and a.online_type=1 ORDER BY a.id desc limit 1

</select>

<select id="getDownInfoContent"
parameterType="com.xdf.creative.base.params.creative.InfoContentQueryParam"
resultType="com.xdf.creative.base.vo.creative.InfoContentQueryVo">
select a.id,a.title,a.image_url,c.hyperlink from info_content a left join info_type b on a.info_type_id = b.id left join info_detail c on a.foreign_id = c.foreign_id where a.id &gt; #{param.id} and b.type_id like CONCAT('',#{param.typeId},'%') and a.online_type=1 ORDER BY a.id limit 1
</select>




+ 67
- 0
src/main/resources/mapper/InfoKeywordMapper.xml Visa fil

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xdf.creative.module.mapper.InfoKeywordMapper">


<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, keyword, is_use, detail, state, create_user, create_time
</sql>

<sql id="Base_If_Condition">
<where>
<if test="param.id !=null and param.id!=''">
and id=#{param.id}
</if>
<if test="param.keyword !=null and param.keyword!=''">
and keyword=#{param.keyword}
</if>
<if test="param.isUse !=null and param.isUse!=''">
and is_use=#{param.isUse}
</if>
<if test="param.detail !=null and param.detail!=''">
and detail=#{param.detail}
</if>
<if test="param.state !=null and param.state!=''">
and state=#{param.state}
</if>
<if test="param.createUser !=null and param.createUser!=''">
and create_user=#{param.createUser}
</if>
<if test="param.createTime !=null and param.createTime!=''">
and create_time=#{param.createTime}
</if>
</where>
</sql>


<!--获取选择的词库-->
<select id="getCheckList" resultType="com.xdf.creative.base.vo.creative.InfoKeywordCheckListVo">
select a.id,a.keyword,a.is_use,a.state,case when b.content_id is null then 'false' else 'true' end as checked from info_keyword a left join (select * from info_content_keyword where content_id = #{id})b on a.id = b.keyword_id where a.state =1
</select>


<select id="getKeywordListByContentId" resultType="com.xdf.creative.base.vo.creative.InfoKeywordCheckListVo">
select a.id,a.keyword,a.is_use,a.state from info_keyword a left join info_content_keyword b on a.id = b.keyword_id where a.state =1 and b.content_id = #{id} order by a.create_time desc
</select>



<!--根据ID查询-->
<select id="getInfoKeywordById" resultType="com.xdf.creative.base.vo.creative.InfoKeywordQueryVo">
select
<include refid="Base_Column_List"/>
from info_keyword where id = #{id}
</select>

<!--分页查询-->
<select id="getInfoKeywordPageList"
resultType="com.xdf.creative.base.vo.creative.InfoKeywordQueryVo"
parameterType="com.xdf.creative.base.params.creative.InfoKeywordQueryParam">
select
<include refid="Base_Column_List"/>
from info_keyword
<include refid="Base_If_Condition"/>
</select>

</mapper>

+ 36
- 1
src/main/resources/mapper/WebInitiationApplyMapper.xml Visa fil

@@ -15,7 +15,7 @@
${alias}.credit_audit_cause,
${alias}.credit_audit_time, ${alias}.credit_audit_user_id, ${alias}.final_audit, ${alias}.final_audit_cause,
${alias}.final_audit_time, ${alias}.finance_service, ${alias}.industry, ${alias}.company_service, ${alias}.other_service,
${alias}.final_audit_user_id, ${alias}.create_time, ${alias}.update_time
${alias}.final_audit_user_id, ${alias}.create_time, ${alias}.update_time, ${alias}.credit_code,${alias}.apply_attachment
</sql>

<sql id="Base_Column_Sys_UserName">
@@ -280,4 +280,39 @@
order by credit_audit_time desc
</select>

<!--导出申请excel列表-->
<select id="getExportPageList"
resultType="com.xdf.creative.base.vo.creative.WebInitiationApplyExportVo"
parameterType="com.xdf.creative.base.params.creative.WebInitiationApplyQueryParam">
SELECT a.name,a.credit_code, case when a.unit_type =1 then '国营企业' when a.unit_type =2 then '事业单位' when a.unit_type =3 then '民营企业' when a.unit_type =4 then '社会组织' end as unit_type_str,b.region_name as province_str,c.region_name as city_str,d.region_name as county_str,a.contact_address,a.post,a.website,a.legal_person,a.legal_duty,a.legal_phone,a.legal_mobile,a.link_man,a.link_duty,a.link_phone,a.link_mobile,a.legal_introduction,a.introduction,a.honner,
case when a.finance_service =1 then '股权' when a.finance_service =2 then '债权' when a.finance_service =3 then '担保' when a.finance_service =4 then '其他' end as finance_service_str,case when a.industry=1 then '对接上下游企业资源' when a.industry=2 then '展会参展' when a.industry=3 then '园区入驻' end as industry_str,case when a.company_service=1 then '扶持资金' when a.company_service=2 then '信用评级' when a.company_service=3 then '知产与版权交易' when a.company_service=4 then '财务与法律咨询' when a.company_service=5 then '投融资对接' end as company_service_str,a.other_service, case when a.declare_category =1 then '媒体业' when a.declare_category =2 then '艺术业' when a.declare_category =3 then '工业设计业' when a.declare_category =4 then '建筑设计业'
when a.declare_category =5 then '时尚设计业' when a.declare_category =6 then '互联网和相关服务业' when a.declare_category =7 then '软件与信息技术服务业' when a.declare_category =8 then '咨询服务业'
when a.declare_category =9 then '广告及会展服务业' when a.declare_category =10 then '休闲娱乐服务业' when a.declare_category =11 then '文化装备制造业' when a.declare_category =12 then '文化创意投资运营'
when a.declare_category =13 then '文化创意用品生产' end as declare_category_str,
case when a.vip_level=1 then '普通会员' when a.vip_level=2 then '理事单位' when a.vip_level=3 then '副会长单位' end
as vip_level_str,CONCAT("http://xdfdata.com/static/image/dfzx_wch/",logo) as logo,CONCAT("http://xdfdata.com/static/image/dfzx_wch/",attachment) as attachment,CONCAT("http://xdfdata.com/static/image/dfzx_wch/",apply_attachment) as applyAttachment FROM `web_initiation_apply` a left join sys_region b on a.province = b.id left join sys_region c on a.city = c.id left join sys_region d on a.county = d.id
<where>
<if test="param.id !=null">
and a.id=#{param.id}
</if>
<if test="param.name !=null and param.name!=''">
and a.name like CONCAT('%',#{param.name},'%')
</if>

<if test="param.firstAudit !=null">
and a.first_audit=#{param.firstAudit}
</if>
<if test="param.startFirstAuditTime !=null and param.endFirstAuditTime !=null ">
and a.first_audit_time &gt;= #{param.startFirstAuditTime} and a.first_audit_time &lt;=
#{param.endFirstAuditTime}
</if>
<if test="param.startCreateTime !=null and param.endCreateTime !=null ">
and a.create_time &gt;= #{param.startCreateTime} and a.create_time &lt;=
#{param.endCreateTime}
</if>

</where>

</select>

</mapper>

+ 56
- 0
src/main/resources/mapper/WxGroupMapper.xml Visa fil

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xdf.creative.module.mapper.WxGroupMapper">


<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, name, code, create_time, update_time,state, create_user_id
</sql>

<sql id="Base_If_Condition">
<where>
<if test="param.id !=null and param.id!=''">
and id=#{param.id}
</if>
<if test="param.name !=null and param.name!=''">
and name like CONCAT('%',#{param.name},'%')
</if>
<if test="param.code !=null and param.code!=''">
and code=#{param.code}
</if>

<if test="param.state !=null">
and state=#{param.state}
</if>
<if test="param.createTime !=null and param.createTime!=''">
and create_time=#{param.createTime}
</if>
<if test="param.updateTime !=null and param.updateTime!=''">
and update_time=#{param.updateTime}
</if>
<if test="param.createUserId !=null and param.createUserId!=''">
and create_user_id=#{param.createUserId}
</if>
</where>
</sql>


<!--根据ID查询-->
<select id="getWxGroupById" resultType="com.xdf.creative.base.vo.creative.WxGroupQueryVo">
select
<include refid="Base_Column_List"/>
from wx_group where id = #{id}
</select>

<!--分页查询-->
<select id="getWxGroupPageList"
resultType="com.xdf.creative.base.vo.creative.WxGroupQueryVo"
parameterType="com.xdf.creative.base.params.creative.WxGroupQueryParam">
select
<include refid="Base_Column_List"/>
from wx_group
<include refid="Base_If_Condition"/>
</select>

</mapper>

Laddar…
Avbryt
Spara