guomengjiao 5 kuukautta sitten
vanhempi
commit
bf454543f1

+ 11 - 0
modules/bjflapi/src/main/java/com/jeesite/modules/bjflapi/report/ResearchBriefReportControllerApi.java

@@ -83,4 +83,15 @@ public class ResearchBriefReportControllerApi {
     public List<ResearchBriefReport> hotReports() {
         return researchBriefReportService.hotReports(6);
     }
+
+    /**
+     * 精选简报
+     *
+     * @return
+     */
+    @GetMapping(value = "/choicenessReports")
+    @ApiOperation(value = "简报智库列表", notes = "精选简报,查询最新2个")
+    public List<ResearchBriefReport> choicenessReports() {
+        return researchBriefReportService.choicenessReports();
+    }
 }

+ 60 - 0
modules/bjflapi/src/main/java/com/jeesite/modules/bjflapi/report/WebsiteUserOrderControllerApi.java

@@ -0,0 +1,60 @@
+package com.jeesite.modules.bjflapi.report;
+
+import com.jeesite.common.constant.Constants;
+import com.jeesite.common.lang.StringUtils;
+import com.jeesite.modules.report.entity.WebsiteUserOrder;
+import com.jeesite.modules.report.entity.WebsiteUserOrderDown;
+import com.jeesite.modules.report.service.WebsiteUserOrderDownService;
+import com.jeesite.modules.report.service.WebsiteUserOrderService;
+import com.jeesite.modules.sys.utils.RedisUtil;
+import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping(value = "${adminPath}/api/report/websiteUserOrder")
+@Api(value = "WebsiteUserOrderControllerApi", tags = "网站用户订单接口")
+public class WebsiteUserOrderControllerApi {
+    @Resource
+    private WebsiteUserOrderService websiteUserOrderService;
+    @Resource
+    private WebsiteUserOrderDownService websiteUserOrderDownService;
+    @Resource
+    private RedisUtil redisUtil;
+
+    @PostMapping(value = "downNum")
+    public void downNum(HttpServletRequest request, WebsiteUserOrder websiteUserOrder) {
+        String reportId = websiteUserOrder.getResearchBriefReportId();
+        if (StringUtils.isEmpty(reportId)) {
+            return;
+        }
+        String fileName = websiteUserOrder.getFileName();
+        if (StringUtils.isEmpty(fileName)) {
+            return;
+        }
+        String token = request.getHeader(Constants.WEBSITE_TOKEN);//header方式
+        if (StringUtils.isEmpty(token)) {
+            return;
+        }
+        String uid = (String) redisUtil.get(Constants.PREFIX_USER_TOKEN + token);
+        if (StringUtils.isEmpty(uid)) {
+            return;
+        }
+        WebsiteUserOrder orderWhere = new WebsiteUserOrder();
+        orderWhere.setWebsiteUserId(uid);
+        orderWhere.setResearchBriefReportId(reportId);
+        WebsiteUserOrder oldOrder = websiteUserOrderService.get(orderWhere);
+        if (oldOrder == null) {
+            return;
+        }
+        WebsiteUserOrderDown downWhere = new WebsiteUserOrderDown();
+        downWhere.setWebsiteUserId(uid);
+        downWhere.setWebsiteUserOrderId(oldOrder.getId());
+        downWhere.setFileName(fileName);
+        websiteUserOrderDownService.save(downWhere);
+    }
+}

+ 15 - 0
modules/report/src/main/java/com/jeesite/modules/report/dao/WebsiteUserOrderDownDao.java

@@ -0,0 +1,15 @@
+package com.jeesite.modules.report.dao;
+
+import com.jeesite.common.dao.CrudDao;
+import com.jeesite.common.mybatis.annotation.MyBatisDao;
+import com.jeesite.modules.report.entity.WebsiteUserOrderDown;
+
+/**
+ * 网站订单文件下载信息DAO接口
+ * @author gg
+ * @version 2024-12-24
+ */
+@MyBatisDao
+public interface WebsiteUserOrderDownDao extends CrudDao<WebsiteUserOrderDown> {
+	
+}

+ 11 - 5
modules/report/src/main/java/com/jeesite/modules/report/entity/WebsiteUserOrder.java

@@ -26,8 +26,6 @@ import java.util.Date;
 		@Column(name="pay_method", attrName="payMethod", label="支付方式 1-微信 2-支付宝"),
 		@Column(name="pay_price", attrName="payPrice", label="支付单价"),
 		@Column(name="research_brief_report_id", attrName="researchBriefReportId", label="简报智库id"),
-		@Column(name="use_down", attrName="useDown", label="是否下载过 0否 1是"),
-		@Column(name="down_num", attrName="downNum", label="下载次数"),
 	}, orderBy="a.update_date DESC"
 )
 public class WebsiteUserOrder extends DataEntity<WebsiteUserOrder> {
@@ -43,6 +41,7 @@ public class WebsiteUserOrder extends DataEntity<WebsiteUserOrder> {
 	private String useDown;		// 是否下载过 0否 1是
 	private Integer downNum;		// 下载次数
 	private String researchBriefReportTitle;		// 简报智库标题
+	private String fileName;
 
 	public WebsiteUserOrder() {
 		this(null);
@@ -115,8 +114,7 @@ public class WebsiteUserOrder extends DataEntity<WebsiteUserOrder> {
 	public void setResearchBriefReportId(String researchBriefReportId) {
 		this.researchBriefReportId = researchBriefReportId;
 	}
-	
-	@Size(min=0, max=2, message="是否下载过 0否 1是长度不能超过 2 个字符")
+
 	public String getUseDown() {
 		return useDown;
 	}
@@ -124,7 +122,7 @@ public class WebsiteUserOrder extends DataEntity<WebsiteUserOrder> {
 	public void setUseDown(String useDown) {
 		this.useDown = useDown;
 	}
-	
+
 	public Integer getDownNum() {
 		return downNum;
 	}
@@ -140,4 +138,12 @@ public class WebsiteUserOrder extends DataEntity<WebsiteUserOrder> {
 	public void setResearchBriefReportTitle(String researchBriefReportTitle) {
 		this.researchBriefReportTitle = researchBriefReportTitle;
 	}
+
+	public String getFileName() {
+		return fileName;
+	}
+
+	public void setFileName(String fileName) {
+		this.fileName = fileName;
+	}
 }

+ 75 - 0
modules/report/src/main/java/com/jeesite/modules/report/entity/WebsiteUserOrderDown.java

@@ -0,0 +1,75 @@
+package com.jeesite.modules.report.entity;
+
+import javax.validation.constraints.Size;
+
+import com.jeesite.common.entity.DataEntity;
+import com.jeesite.common.mybatis.annotation.Column;
+import com.jeesite.common.mybatis.annotation.Table;
+import com.jeesite.common.mybatis.mapper.query.QueryType;
+
+/**
+ * 网站订单文件下载信息Entity
+ * @author gg
+ * @version 2024-12-24
+ */
+@Table(name="website_user_order_down", alias="a", label="网站订单文件下载信息信息", columns={
+		@Column(name="id", attrName="id", label="id", isPK=true),
+		@Column(includeEntity=DataEntity.class),
+		@Column(name="website_user_id", attrName="websiteUserId", label="网站用户id"),
+		@Column(name="website_user_order_id", attrName="websiteUserOrderId", label="网站用户订单id"),
+		@Column(name="file_name", attrName="fileName", label="文件名", queryType=QueryType.LIKE),
+		@Column(name="down_num", attrName="downNum", label="下载次数", isUpdateForce=true),
+	}, orderBy="a.update_date DESC"
+)
+public class WebsiteUserOrderDown extends DataEntity<WebsiteUserOrderDown> {
+	
+	private static final long serialVersionUID = 1L;
+	private String websiteUserId;		// 网站用户id
+	private String websiteUserOrderId;		// 网站用户订单id
+	private String fileName;		// 文件名
+	private Integer downNum;		// 下载次数
+
+	public WebsiteUserOrderDown() {
+		this(null);
+	}
+	
+	public WebsiteUserOrderDown(String id){
+		super(id);
+	}
+	
+	@Size(min=0, max=64, message="网站用户id长度不能超过 64 个字符")
+	public String getWebsiteUserId() {
+		return websiteUserId;
+	}
+
+	public void setWebsiteUserId(String websiteUserId) {
+		this.websiteUserId = websiteUserId;
+	}
+	
+	@Size(min=0, max=64, message="网站用户订单id长度不能超过 64 个字符")
+	public String getWebsiteUserOrderId() {
+		return websiteUserOrderId;
+	}
+
+	public void setWebsiteUserOrderId(String websiteUserOrderId) {
+		this.websiteUserOrderId = websiteUserOrderId;
+	}
+	
+	@Size(min=0, max=200, message="文件名长度不能超过 200 个字符")
+	public String getFileName() {
+		return fileName;
+	}
+
+	public void setFileName(String fileName) {
+		this.fileName = fileName;
+	}
+	
+	public Integer getDownNum() {
+		return downNum;
+	}
+
+	public void setDownNum(Integer downNum) {
+		this.downNum = downNum;
+	}
+	
+}

+ 14 - 1
modules/report/src/main/java/com/jeesite/modules/report/service/ResearchBriefReportService.java

@@ -51,7 +51,6 @@ public class ResearchBriefReportService extends CrudService<ResearchBriefReportD
 	/**
 	 * 查询分页数据
 	 * @param researchBriefReport 查询条件
-	 * @param researchBriefReport.page 分页对象
 	 * @return
 	 */
 	@Override
@@ -226,4 +225,18 @@ public class ResearchBriefReportService extends CrudService<ResearchBriefReportD
 		}
 		return null;
 	}
+
+	public long findResearchBriefReportCount(ResearchBriefReport researchBriefReport) {
+		return dao.findResearchBriefReportCount(researchBriefReport);
+	}
+
+	public List<ResearchBriefReport> choicenessReports() {
+		ResearchBriefReport where = new ResearchBriefReport();
+		where.setUseChoiceness(Constants.enableType.YES);
+		List<ResearchBriefReport> list = dao.findList(where);
+		return list.stream().map(r -> {
+			r.setImageFileName(convertFile(r.getId(), Constants.briefReport.BRIEFING_INFO_IMAGE));
+			return r;
+		}).collect(Collectors.toList());
+	}
 }

+ 87 - 0
modules/report/src/main/java/com/jeesite/modules/report/service/WebsiteUserOrderDownService.java

@@ -0,0 +1,87 @@
+package com.jeesite.modules.report.service;
+
+import com.jeesite.common.entity.Page;
+import com.jeesite.common.service.CrudService;
+import com.jeesite.modules.report.dao.WebsiteUserOrderDownDao;
+import com.jeesite.modules.report.entity.WebsiteUserOrderDown;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 网站订单文件下载信息Service
+ * @author gg
+ * @version 2024-12-24
+ */
+@Service
+public class WebsiteUserOrderDownService extends CrudService<WebsiteUserOrderDownDao, WebsiteUserOrderDown> {
+	
+	/**
+	 * 获取单条数据
+	 * @param websiteUserOrderDown
+	 * @return
+	 */
+	@Override
+	public WebsiteUserOrderDown get(WebsiteUserOrderDown websiteUserOrderDown) {
+		return super.get(websiteUserOrderDown);
+	}
+	
+	/**
+	 * 查询分页数据
+	 * @param websiteUserOrderDown 查询条件
+	 * @return
+	 */
+	@Override
+	public Page<WebsiteUserOrderDown> findPage(WebsiteUserOrderDown websiteUserOrderDown) {
+		return super.findPage(websiteUserOrderDown);
+	}
+	
+	/**
+	 * 查询列表数据
+	 * @param websiteUserOrderDown
+	 * @return
+	 */
+	@Override
+	public List<WebsiteUserOrderDown> findList(WebsiteUserOrderDown websiteUserOrderDown) {
+		return super.findList(websiteUserOrderDown);
+	}
+	
+	/**
+	 * 保存数据(插入或更新)
+	 * @param websiteUserOrderDown
+	 */
+	@Override
+	@Transactional
+	public void save(WebsiteUserOrderDown websiteUserOrderDown) {
+		WebsiteUserOrderDown oldDown = dao.get(websiteUserOrderDown);
+		if (oldDown == null) {
+			websiteUserOrderDown.setDownNum(1);
+			super.save(websiteUserOrderDown);
+		} else {
+			oldDown.setDownNum(oldDown.getDownNum() + 1);
+			super.save(oldDown);
+		}
+	}
+	
+	/**
+	 * 更新状态
+	 * @param websiteUserOrderDown
+	 */
+	@Override
+	@Transactional
+	public void updateStatus(WebsiteUserOrderDown websiteUserOrderDown) {
+		super.updateStatus(websiteUserOrderDown);
+	}
+	
+	/**
+	 * 删除数据
+	 * @param websiteUserOrderDown
+	 */
+	@Override
+	@Transactional
+	public void delete(WebsiteUserOrderDown websiteUserOrderDown) {
+		super.delete(websiteUserOrderDown);
+	}
+	
+}

+ 14 - 0
modules/report/src/main/java/com/jeesite/modules/report/service/WebsiteUserOrderService.java

@@ -1,12 +1,15 @@
 package com.jeesite.modules.report.service;
 
+import com.jeesite.common.constant.Constants;
 import com.jeesite.common.entity.Page;
 import com.jeesite.common.lang.StringUtils;
 import com.jeesite.common.service.CrudService;
 import com.jeesite.modules.report.dao.ResearchBriefReportDao;
 import com.jeesite.modules.report.dao.WebsiteUserOrderDao;
+import com.jeesite.modules.report.dao.WebsiteUserOrderDownDao;
 import com.jeesite.modules.report.entity.ResearchBriefReport;
 import com.jeesite.modules.report.entity.WebsiteUserOrder;
+import com.jeesite.modules.report.entity.WebsiteUserOrderDown;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -23,6 +26,8 @@ import java.util.stream.Collectors;
 public class WebsiteUserOrderService extends CrudService<WebsiteUserOrderDao, WebsiteUserOrder> {
 	@Resource
 	private ResearchBriefReportDao researchBriefReportDao;
+	@Resource
+	private WebsiteUserOrderDownDao websiteUserOrderDownDao;
 	/**
 	 * 获取单条数据
 	 * @param websiteUserOrder
@@ -54,6 +59,15 @@ public class WebsiteUserOrderService extends CrudService<WebsiteUserOrderDao, We
 		where.setId(r.getResearchBriefReportId());
 		ResearchBriefReport byEntity = researchBriefReportDao.getByEntity(where);
 		r.setResearchBriefReportTitle(byEntity.getTitle());
+		//下载
+		WebsiteUserOrderDown downWhere = new WebsiteUserOrderDown();
+		downWhere.setWebsiteUserOrderId(r.getId());
+		long count = websiteUserOrderDownDao.findCount(downWhere);
+		r.setUseDown(Constants.enableType.NO);
+		r.setDownNum((int) count);
+		if (count > 0) {
+			r.setUseDown(Constants.enableType.YES);
+		}
 		return r;
 	}
 

+ 11 - 0
modules/report/src/main/java/com/jeesite/modules/report/web/ResearchBriefReportController.java

@@ -1,6 +1,7 @@
 package com.jeesite.modules.report.web;
 
 import com.jeesite.common.config.Global;
+import com.jeesite.common.constant.Constants;
 import com.jeesite.common.entity.Page;
 import com.jeesite.common.lang.StringUtils;
 import com.jeesite.common.web.BaseController;
@@ -105,6 +106,16 @@ public class ResearchBriefReportController extends BaseController {
 		if (!researchBriefReportLabelTwo.getParentId().contains(researchBriefReportLabel.getId())) {
 			return renderResult(Global.FALSE, text("二级标签不属于一级标签下!"));
 		}
+		if (Constants.enableType.YES.equals(researchBriefReport.getUseChoiceness())) {
+			//判断是否超过两个精选
+			ResearchBriefReport where = new ResearchBriefReport();
+			where.setNotId(researchBriefReport.getId());
+			where.setUseChoiceness(Constants.enableType.YES);
+			long count = researchBriefReportService.findResearchBriefReportCount(where);
+			if (count >= 2) {
+				return renderResult(Global.FALSE, text("简报下已存在两个精选,保存失败!"));
+			}
+		}
 		researchBriefReportService.save(researchBriefReport);
 		return renderResult(Global.TRUE, text("保存简报智库成功!"));
 	}

+ 11 - 2
modules/report/src/main/java/com/jeesite/modules/report/web/ResearchBriefReportLabelController.java

@@ -72,16 +72,17 @@ public class ResearchBriefReportLabelController extends BaseController {
 	//	@RequiresPermissions("report:researchBriefReportLabel:view")
 	@RequestMapping(value = "treeData")
 	@ResponseBody
-	public List<Map<String, Object>> treeData(Integer levelNum, Integer type) {
+	public List<Map<String, Object>> treeData(Integer levelNum, Integer type, String parentId) {
 		//levelNum:1-1级 2-二级 ; type: 1-下级有数据的 2-下级有或无都出来
 		List<Map<String, Object>> mapList = ListUtils.newArrayList();
 		ResearchBriefReportLabel where = new ResearchBriefReportLabel();
 		where.setStatus(ResearchBriefReportLabel.STATUS_NORMAL);
 		where.setLevelNum(levelNum);
+		where.setParentId(parentId);
 		List<ResearchBriefReportLabel> list = researchBriefReportLabelService.findList(where);
 		for (int i = 0; i < list.size(); i++) {
 			ResearchBriefReportLabel e = list.get(i);
-			if (Integer.valueOf(1).equals(type) && researchBriefReportLabelService.findChildCount(e.getParentId()) <= 0) {
+			if (Integer.valueOf(1).equals(levelNum) && Integer.valueOf(1).equals(type) && researchBriefReportLabelService.findChildCount(e.getParentId()) <= 0) {
 				continue;
 			}
 			Map<String, Object> map = MapUtils.newHashMap();
@@ -114,6 +115,14 @@ public class ResearchBriefReportLabelController extends BaseController {
 	@PostMapping(value = "save")
 	@ResponseBody
 	public String save(@Validated ResearchBriefReportLabel researchBriefReportLabel) {
+		if (StringUtils.isEmpty(researchBriefReportLabel.getParentId())) {
+			researchBriefReportLabel.setParentId("0");
+		}
+		if (researchBriefReportLabel.getParentId().equals("0")) {
+			researchBriefReportLabel.setLevelNum(1);
+		} else {
+			researchBriefReportLabel.setLevelNum(2);
+		}
 		//判断名称是否重复
 		ResearchBriefReportLabel where = new ResearchBriefReportLabel();
 		where.setName(researchBriefReportLabel.getName());

+ 15 - 0
modules/report/src/main/resources/mappings/modules/report/WebsiteUserOrderDownDao.xml

@@ -0,0 +1,15 @@
+<?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.jeesite.modules.report.dao.WebsiteUserOrderDownDao">
+	
+	<!-- 查询数据
+	<select id="findList" resultType="WebsiteUserOrderDown">
+		SELECT ${sqlMap.column.toSql()}
+		FROM ${sqlMap.table.toSql()}
+		<where>
+			${sqlMap.where.toSql()}
+		</where>
+		ORDER BY ${sqlMap.order.toSql()}
+	</select> -->
+	
+</mapper>