From b8e7bb1791ff41be5ee8150cc46af082d7444a65 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期三, 31 五月 2023 01:02:29 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-report/src/main/java/com/java110/report/cmd/reportCustomComponent/ListReportCustomComponentDataCmd.java |   35 +++++++++++++++++++++++++++++------
 1 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/service-report/src/main/java/com/java110/report/cmd/reportCustomComponent/ListReportCustomComponentDataCmd.java b/service-report/src/main/java/com/java110/report/cmd/reportCustomComponent/ListReportCustomComponentDataCmd.java
index 4ad020f..dbb1b14 100644
--- a/service-report/src/main/java/com/java110/report/cmd/reportCustomComponent/ListReportCustomComponentDataCmd.java
+++ b/service-report/src/main/java/com/java110/report/cmd/reportCustomComponent/ListReportCustomComponentDataCmd.java
@@ -15,20 +15,22 @@
  */
 package com.java110.report.cmd.reportCustomComponent;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.context.ICmdDataFlowContext;
-import com.java110.core.event.cmd.AbstractServiceCmdListener;
+import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.log.LoggerFactory;
 import com.java110.dto.PageDto;
-import com.java110.dto.reportCustomComponent.ReportCustomComponentDto;
+import com.java110.dto.reportCustom.ReportCustomComponentDto;
 import com.java110.intf.report.IReportCustomComponentV1InnerServiceSMO;
 import com.java110.service.smo.IQueryServiceSMO;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -47,11 +49,13 @@
  * // modify by 寮犱笁 at 2021-09-12 绗�10琛屽湪鏌愮鍦烘櫙涓嬪瓨鍦ㄦ煇绉峛ug 闇�瑕佷慨澶嶏紝娉ㄩ噴10鑷�20琛� 鍔犲叆 20琛岃嚦30琛�
  */
 @Java110Cmd(serviceCode = "reportCustomComponent.listReportCustomComponentData")
-public class ListReportCustomComponentDataCmd extends AbstractServiceCmdListener {
+public class ListReportCustomComponentDataCmd extends Cmd {
 
     private static Logger logger = LoggerFactory.getLogger(ListReportCustomComponentDataCmd.class);
+
     @Autowired
     private IReportCustomComponentV1InnerServiceSMO reportCustomComponentV1InnerServiceSMOImpl;
+
 
     @Autowired
     private IQueryServiceSMO queryServiceSMOImpl;
@@ -64,6 +68,9 @@
 
     @Override
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+
+        String storeId = cmdDataFlowContext.getReqHeaders().get("store-id");
+        reqJson.put("storeId", storeId);
 
         //鏌ヨ缁勪欢鏄惁瀛樺湪
         ReportCustomComponentDto reportCustomComponentDto = new ReportCustomComponentDto();
@@ -83,8 +90,17 @@
     }
 
     private void doDealJava(JSONObject reqJson, ReportCustomComponentDto reportCustomComponentDto, ICmdDataFlowContext cmdDataFlowContext) {
-
-
+        //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
+        String javaScript = reportCustomComponentDto.getJavaScript();
+        int page = reqJson.getInteger("page");
+        if (page != PageDto.DEFAULT_PAGE) {
+            reqJson.put("page", (page - 1) * reqJson.getIntValue("row"));
+        }
+        JSONObject data = queryServiceSMOImpl.execJava(reqJson, javaScript);
+        long total = data.getLong("total");
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) total / (double) reqJson.getInteger("row")), total, data);
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+        cmdDataFlowContext.setResponseEntity(responseEntity);
     }
 
     private void doDealSql(JSONObject reqJson, ReportCustomComponentDto reportCustomComponentDto, ICmdDataFlowContext cmdDataFlowContext) {
@@ -109,6 +125,13 @@
             reqJson.put("page", (page - 1) * reqJson.getIntValue("row"));
         }
         JSONObject data = queryServiceSMOImpl.execQuerySql(reqJson, sql);
+        if (!sql.trim().contains("test=\"count")) {
+            total = JSONArray.parseArray(data.getString("td")).size();
+        }
+        if (!StringUtil.isEmpty(sql) && !sql.contains("limit #page#,#row#")) {
+            sql = sql + " limit #page#,#row#";
+            data = queryServiceSMOImpl.execQuerySql(reqJson, sql);
+        }
         ResultVo resultVo = new ResultVo((int) Math.ceil((double) total / (double) reqJson.getInteger("row")), total, data);
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
         cmdDataFlowContext.setResponseEntity(responseEntity);

--
Gitblit v1.8.0