| | |
| | | */ |
| | | 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; |
| | |
| | | * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释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; |
| | |
| | | |
| | | @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(); |
| | |
| | | } |
| | | |
| | | 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) { |
| | |
| | | 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); |