From b173d31976fc4731b7c247d4038de92134eba317 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 29 六月 2023 11:42:17 +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 |   37 ++++++++++++++++++++++++++++++-------
 1 files changed, 30 insertions(+), 7 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 0baf935..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) {
@@ -101,7 +117,7 @@
             }
             reqJsonCount.put("count", "1");
             JSONObject data = queryServiceSMOImpl.execQuerySql(reqJsonCount, sql);
-            total = data.getJSONArray("data").getJSONObject(0).getIntValue("total");
+            total = data.getJSONArray("td").getJSONObject(0).getIntValue("total");
         }
         reqJson.put("count", "0");
         int page = reqJson.getInteger("page");
@@ -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