From 863e3678e484253f3cdde1eaaf1594a71d7aae4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=98=E5=BA=86=E5=90=89?= <51312040@qq.com> Date: Thu, 13 Jan 2022 09:33:41 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E3=80=90=E7=94=9F=E4=BA=A7=E3=80=91?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=89=93=E5=8D=B0-=E8=AF=84=E5=AE=A1?= =?UTF-8?q?=E6=8A=A5=E5=91=8A=E4=B8=AD=E8=AF=84=E5=AE=A1=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E9=97=AE=E9=A2=98=E3=80=81=E6=8A=A5=E4=BB=B7?= =?UTF-8?q?=E7=AD=89=E5=AD=97=E6=AE=B5=E5=8E=BB=E6=8E=89=E5=B0=8F=E6=95=B0?= =?UTF-8?q?=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../export/service/impl/ReviewReportImpl.java | 14 +++++++------- src/main/resources/model/评标报告.docx | Bin 22706 -> 17126 bytes 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java index f483e3c..3b8d14c 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java @@ -23,10 +23,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.math.BigDecimal; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -154,8 +151,8 @@ public class ReviewReportImpl implements ExportService { //表五 价格评审数据 投标人,投标价,评审价格,价格得分 - map.put("bj", detail.getPrice() == null ? BigDecimal.ZERO : detail.getPrice()); - map.put("psjg", detail.getPriceReview() == null ? BigDecimal.ZERO : detail.getPriceReview()); + map.put("bj", detail.getPrice() == null ? BigDecimal.ZERO : detail.getPrice().stripTrailingZeros().toString()); + map.put("psjg", detail.getPriceReview() == null ? BigDecimal.ZERO : detail.getPriceReview().stripTrailingZeros().toString()); map.put("jgdf", StrUtil.isNotBlank(detail.getPriceScore()) ? detail.getPriceScore() : ""); @@ -167,10 +164,13 @@ public class ReviewReportImpl implements ExportService { String finalZbfs = zbfs; String finalPbwyhzz = pbwyhzz; + List> sortList3 = list3.stream().sorted(Comparator.comparing(m -> String.valueOf(m.get("bj")))).collect(Collectors.toList()); + List> list4 = list3.stream().sorted(Comparator.comparing(m -> String.valueOf(m.get("psjg")))).collect(Collectors.toList()); Map all = new HashMap() {{ put("table1", list1); put("table2", list2); - put("table3", list3); + put("table3", sortList3); + put("table4", list4); put("zbdljg", project.getTenderAgencyName()); put("zbbh", project.getEbpProjectNumber()); put("zbfs", finalZbfs); diff --git a/src/main/resources/model/评标报告.docx b/src/main/resources/model/评标报告.docx index 4013c2bd21ee00061c8cc004c8657b8ba202ffef..acaae67b274a10dc83beef0d4124f8d4851295f8 100644 GIT binary patch literal 17126 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 literal 22706 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 EFGbov4FCWD From d828afee128b9d6899055d1f75207d0100fef4bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=98=E5=BA=86=E5=90=89?= <51312040@qq.com> Date: Thu, 13 Jan 2022 10:04:28 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E6=8A=A5=E4=BB=B7=E7=AD=89=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=8E=BB=E6=8E=89=E5=B0=8F=E6=95=B0=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ebtp/extend/export/service/impl/ReviewReportImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java index 3b8d14c..dd38730 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java @@ -151,8 +151,8 @@ public class ReviewReportImpl implements ExportService { //表五 价格评审数据 投标人,投标价,评审价格,价格得分 - map.put("bj", detail.getPrice() == null ? BigDecimal.ZERO : detail.getPrice().stripTrailingZeros().toString()); - map.put("psjg", detail.getPriceReview() == null ? BigDecimal.ZERO : detail.getPriceReview().stripTrailingZeros().toString()); + map.put("bj", detail.getPrice() == null ? BigDecimal.ZERO : detail.getPrice().stripTrailingZeros().toPlainString()); + map.put("psjg", detail.getPriceReview() == null ? BigDecimal.ZERO : detail.getPriceReview().stripTrailingZeros().toPlainString()); map.put("jgdf", StrUtil.isNotBlank(detail.getPriceScore()) ? detail.getPriceScore() : ""); @@ -184,6 +184,7 @@ public class ReviewReportImpl implements ExportService { .bind("table1", policy) .bind("table2", policy) .bind("table3", policy) + .bind("table4", policy) .build(); From d84011f5a1054efc2ad3b682bc8322a9e030f0cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=98=E5=BA=86=E5=90=89?= <51312040@qq.com> Date: Thu, 13 Jan 2022 10:15:48 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/ebtp/extend/export/service/impl/ReviewReportImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java index dd38730..4c0f342 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java @@ -165,7 +165,7 @@ public class ReviewReportImpl implements ExportService { String finalZbfs = zbfs; String finalPbwyhzz = pbwyhzz; List> sortList3 = list3.stream().sorted(Comparator.comparing(m -> String.valueOf(m.get("bj")))).collect(Collectors.toList()); - List> list4 = list3.stream().sorted(Comparator.comparing(m -> String.valueOf(m.get("psjg")))).collect(Collectors.toList()); + List> list4 = list3.stream().sorted(Comparator.comparing(m -> String.valueOf(m.get("zhdf")))).collect(Collectors.toList()); Map all = new HashMap() {{ put("table1", list1); put("table2", list2); From 6ae13e443369feb7bf321a804f74c49e29d78551 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=98=E5=BA=86=E5=90=89?= <51312040@qq.com> Date: Thu, 13 Jan 2022 11:10:04 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../export/service/impl/ReviewReportImpl.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java index 4c0f342..770e5d0 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java @@ -122,9 +122,7 @@ public class ReviewReportImpl implements ExportService { for (int i = 0; i < registerList.size(); i++) { Map map = new HashMap<>(16); - int num = i + 1; BizSupplierRegister register = registerList.get(i); - map.put("num", num); map.put("id", register.getCompanyId()); map.put("tbr", register.getCompanyName()); list3.add(map); @@ -165,7 +163,18 @@ public class ReviewReportImpl implements ExportService { String finalZbfs = zbfs; String finalPbwyhzz = pbwyhzz; List> sortList3 = list3.stream().sorted(Comparator.comparing(m -> String.valueOf(m.get("bj")))).collect(Collectors.toList()); - List> list4 = list3.stream().sorted(Comparator.comparing(m -> String.valueOf(m.get("zhdf")))).collect(Collectors.toList()); + for (int i = 0; i < sortList3.size(); i++) { + int num = i + 1; + sortList3.get(i).put("num", num); + } + List> list4 = list3.stream().sorted(Comparator.comparing(m -> { + Map m1 = (Map) m; + return String.valueOf(m1.get("zhdf")); + }).reversed()).collect(Collectors.toList()); + for (int i = 0; i < list4.size(); i++) { + int num = i + 1; + list4.get(i).put("num", num); + } Map all = new HashMap() {{ put("table1", list1); put("table2", list2); From 64fc286e33eec55733944cb9ae901d5982b902a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=98=E5=BA=86=E5=90=89?= <51312040@qq.com> Date: Thu, 13 Jan 2022 19:09:57 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=99=A8=EF=BC=9Aseata=E8=A7=A3=E7=BB=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extend/config/SeataInterceptorConfig.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/config/SeataInterceptorConfig.java diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/config/SeataInterceptorConfig.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/config/SeataInterceptorConfig.java new file mode 100644 index 0000000..1243f01 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/config/SeataInterceptorConfig.java @@ -0,0 +1,36 @@ +package com.chinaunicom.mall.ebtp.extend.config; + +import io.seata.core.context.RootContext; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.config.annotation.InterceptorRegistration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +/** + * seata拦截器配置类 解除seata绑定 + * + * @author fqj + * @date 2022-01-13 + */ +@Configuration +public class SeataInterceptorConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + InterceptorRegistration interceptor = registry.addInterceptor(new HandlerInterceptor() { + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + if (!Objects.isNull(RootContext.getXID())) { + RootContext.unbind(); + } + return true; + } + }); + interceptor.addPathPatterns("/**"); + } +} From aead83c5f764c97733f440ab943b617e19a29cc4 Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Fri, 14 Jan 2022 12:06:33 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crypconfigure/service/impl/CrypConfigureServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/impl/CrypConfigureServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/impl/CrypConfigureServiceImpl.java index bd794c0..de6ab0a 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/impl/CrypConfigureServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/impl/CrypConfigureServiceImpl.java @@ -24,6 +24,7 @@ import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.stereotype.Service; import java.io.InputStream; @@ -39,6 +40,7 @@ import static com.chinaunicom.mall.ebtp.common.uniBss.service.UniBssServiceImpl. * */ @Slf4j +@EnableAsync @Service public class CrypConfigureServiceImpl extends BaseServiceImpl implements ICrypConfigureService { From f85e25fba988942f7f3428d6fabcfbf5785a3513 Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Fri, 14 Jan 2022 15:12:05 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=86=8D=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blockchain/entity/BlockChainLogVo.java | 72 ++++++++++++++++ .../controller/CrypConfigureController.java | 13 +++ .../service/ICrypConfigureService.java | 8 +- .../impl/CrypConfigureServiceImpl.java | 82 ++++++++++++++++++- 4 files changed, 173 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLogVo.java diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLogVo.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLogVo.java new file mode 100644 index 0000000..58f6bc2 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLogVo.java @@ -0,0 +1,72 @@ +package com.chinaunicom.mall.ebtp.extend.blockchain.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.config.CustomLocalDateTimeTypeHandler; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 实体类 BlockChainLog + * + * @auto.generated + */ +@Data +@Accessors(chain = true) +@ApiModel +@EqualsAndHashCode(callSuper = false) +public class BlockChainLogVo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ApiModelProperty(value = "") + private String id; + + /** + * + */ + @ApiModelProperty(value = "") + private String tpId; + + /** + * + */ + @ApiModelProperty(value = "") + private String sectionId; + + /** + * + */ + @ApiModelProperty(value = "") + private String assessRoomId; + + /** + * + */ + @ApiModelProperty(value = "") + private String turnId; + + /** + * 0-成功 1-失败 + */ + @ApiModelProperty(value = "0-成功 1-失败") + private Integer status; + + @ApiModelProperty("开始时间") + private String startTime; + + @ApiModelProperty("结束时间") + private String endTime; +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/controller/CrypConfigureController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/controller/CrypConfigureController.java index 35e5449..6554c26 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/controller/CrypConfigureController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/controller/CrypConfigureController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.chinaunicom.baas.util.AccessToken; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.extend.blockchain.entity.BlockChainLogVo; import com.chinaunicom.mall.ebtp.extend.crypconfigure.entity.CrypBean; import com.chinaunicom.mall.ebtp.extend.crypconfigure.entity.CrypConfigure; import com.chinaunicom.mall.ebtp.extend.crypconfigure.service.ICrypConfigureService; @@ -120,6 +121,18 @@ public class CrypConfigureController{ return BaseResponse.success(this.iCrypConfigureService.callUniInterface(bean)); } + /** + * 加载失败日志再发送 + * + * @param vo + * @return + */ + @ApiOperation("加载失败日志再发送") + @PostMapping("/errorLogsGoToCryp") + public BaseResponse errorLogsGoToCryp(@RequestBody BlockChainLogVo vo) { + + return BaseResponse.success(this.iCrypConfigureService.errorLogsGoToCryp(vo)); + } /** * 区块链数据加密 * diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/ICrypConfigureService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/ICrypConfigureService.java index 865ffe8..2ee9e7c 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/ICrypConfigureService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/ICrypConfigureService.java @@ -2,6 +2,7 @@ package com.chinaunicom.mall.ebtp.extend.crypconfigure.service; import com.chinaunicom.mall.ebtp.common.base.service.IBaseService; +import com.chinaunicom.mall.ebtp.extend.blockchain.entity.BlockChainLogVo; import com.chinaunicom.mall.ebtp.extend.crypconfigure.entity.CrypBean; import com.chinaunicom.mall.ebtp.extend.crypconfigure.entity.CrypConfigure; @@ -17,7 +18,12 @@ public interface ICrypConfigureService extends IBaseService { * @return */ Boolean callUniInterface(CrypBean bean); - + /** + * 加载失败日志再发送 + * @param + * @return + */ + Boolean errorLogsGoToCryp(BlockChainLogVo vo); /** * 加密 * @param object diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/impl/CrypConfigureServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/impl/CrypConfigureServiceImpl.java index de6ab0a..8a9c4ea 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/impl/CrypConfigureServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/impl/CrypConfigureServiceImpl.java @@ -1,8 +1,12 @@ package com.chinaunicom.mall.ebtp.extend.crypconfigure.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.chinaunicom.baas.util.AccessToken; import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService; import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; @@ -14,6 +18,7 @@ import com.chinaunicom.mall.ebtp.common.uniBss.entity.*; import com.chinaunicom.mall.ebtp.common.uniBss.service.UniBssServiceImpl; import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; import com.chinaunicom.mall.ebtp.extend.blockchain.entity.BlockChainLog; +import com.chinaunicom.mall.ebtp.extend.blockchain.entity.BlockChainLogVo; import com.chinaunicom.mall.ebtp.extend.blockchain.service.IBlockChainLogService; import com.chinaunicom.mall.ebtp.extend.crypconfigure.dao.CrypConfigureMapper; import com.chinaunicom.mall.ebtp.extend.crypconfigure.entity.CrypBean; @@ -40,7 +45,6 @@ import static com.chinaunicom.mall.ebtp.common.uniBss.service.UniBssServiceImpl. * */ @Slf4j -@EnableAsync @Service public class CrypConfigureServiceImpl extends BaseServiceImpl implements ICrypConfigureService { @@ -134,6 +138,82 @@ public class CrypConfigureServiceImpl extends BaseServiceImpl query = Wrappers.lambdaQuery(blog); + //状态 + if(vo.getStatus()!=null&&!"".equals(vo.getStatus())){ + query.eq(BlockChainLog::getStatus,vo.getStatus()); + } + //时间 + if(vo.getStartTime()!=null&&!"".equals(vo.getStartTime())){ + query.ge(BlockChainLog::getCreateDate,vo.getStartTime()); + } + if(vo.getEndTime()!=null&&!"".equals(vo.getEndTime())){ + query.le(BlockChainLog::getCreateDate,vo.getEndTime()); + } + + List logList = this.iBlockChainLogService.list(query); + + logList.forEach(blockChainLog->{ + log.info("请求路径:"+blockChainLog.getInterfaceUrl()); + + try { + + String json = blockChainLog.getParam(); + + //blockChainLog.setParam(json);//请求参数 + String str = UniBssServiceImpl.uniBssHttpPost(blockChainLog.getInterfaceUrl(), json); + blockChainLog.setResult(str);//返回参数 + UniBss uniBssRsp = JSONArray.parseObject(str, UniBss.class); + if (uniBssRsp != null && UniBssConstant.RESP_CODE_00000.equals(uniBssRsp.getUniBssHead().getRespCode())) { + System.out.println("返回接口:"+uniBssRsp); + + if(str!=null&&!"".equals(str)&&str.indexOf("_RSP\":{\"Code\":200,")>=0){ + blockChainLog.setStatus(0);//成功 + this.iBlockChainLogService.saveOrUpdate(blockChainLog); + + }else{ + blockChainLog.setStatus(1);//失败 + } + } else { + blockChainLog.setStatus(1);//失败 + log.error("天擎接口调用错误," + + "RESP_CODE:" + uniBssRsp.getUniBssHead().getRespCode() + "" + + "(" + UniBssConstant.getRESP_CODE_Map(uniBssRsp.getUniBssHead().getRespCode()) + ")。" + + "RESP_DESC:" + uniBssRsp.getUniBssHead().getRespDesc()); + } + }catch (Exception e){ + blockChainLog.setStatus(1); + blockChainLog.setResult(e.getMessage()); + } + + this.iBlockChainLogService.saveOrUpdate(blockChainLog); + }); + return true; + } + /** * 加密 * @param object From a07e79eb7e224b2c6bc9e0bf7ef5f457d1ad228a Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Fri, 14 Jan 2022 16:02:33 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=86=8D=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/ebtp/extend/blockchain/entity/BlockChainLogVo.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLogVo.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLogVo.java index 58f6bc2..2825a44 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLogVo.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLogVo.java @@ -22,8 +22,6 @@ import java.time.LocalDateTime; */ @Data @Accessors(chain = true) -@ApiModel -@EqualsAndHashCode(callSuper = false) public class BlockChainLogVo implements Serializable { private static final long serialVersionUID = 1L; From 26f9c60f5bdd36696e96ff35c276ef34346dc7ff Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Fri, 14 Jan 2022 16:14:25 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=86=8D=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crypconfigure/controller/CrypConfigureController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/controller/CrypConfigureController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/controller/CrypConfigureController.java index 6554c26..2c3fd84 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/controller/CrypConfigureController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/controller/CrypConfigureController.java @@ -129,7 +129,7 @@ public class CrypConfigureController{ */ @ApiOperation("加载失败日志再发送") @PostMapping("/errorLogsGoToCryp") - public BaseResponse errorLogsGoToCryp(@RequestBody BlockChainLogVo vo) { + public BaseResponse errorLogsGoToCryp(@RequestBody(required = false) BlockChainLogVo vo) { return BaseResponse.success(this.iCrypConfigureService.errorLogsGoToCryp(vo)); } From 08d2e10e1c26eb7f9ce9a71cf0e038373ea73450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=98=E5=BA=86=E5=90=89?= <51312040@qq.com> Date: Wed, 19 Jan 2022 18:20:35 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=89=93=E5=8D=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ebtp/extend/export/service/impl/ReviewReportImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java index 770e5d0..855a980 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/ReviewReportImpl.java @@ -162,7 +162,10 @@ public class ReviewReportImpl implements ExportService { String finalZbfs = zbfs; String finalPbwyhzz = pbwyhzz; - List> sortList3 = list3.stream().sorted(Comparator.comparing(m -> String.valueOf(m.get("bj")))).collect(Collectors.toList()); + List> sortList3 = list3.stream().sorted(Comparator.comparing(m -> { + Map m1 = (Map) m; + return String.valueOf(m1.get("jgdf")); + }).reversed()).collect(Collectors.toList()); for (int i = 0; i < sortList3.size(); i++) { int num = i + 1; sortList3.get(i).put("num", num); From 7dbb4381129baa1e3d7bc66d898461311eb2915c Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Thu, 20 Jan 2022 09:03:22 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BizMessageProducerController.java | 10 ++++++++ .../bizmessage/dao/BizMessageMapper.java | 5 ++++ .../dao/mapper/BizMessageMapper.xml | 19 ++++++++++++++ .../service/BizMessageProducerService.java | 2 ++ .../impl/BizMessageProducerServiceImpl.java | 25 +++++++++++++++++++ 5 files changed, 61 insertions(+) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java index 964013a..2db2cb8 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java @@ -6,6 +6,7 @@ import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.DescribeSiteMsgDetailVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -13,6 +14,8 @@ import org.springframework.http.HttpStatus; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.Map; + @Slf4j @Api(value = "创建消息", description = "创建消息") @RestController @@ -37,4 +40,11 @@ public class BizMessageProducerController { }).orElseGet(DescribeSiteMsgDetailVO::new); } + @ApiOperation("删除信息.") + @DeleteMapping + @ResponseStatus(code = HttpStatus.OK) + public Map deleteMessageByCode(@ApiParam(value = "消息内容", required = true)String code) { + + return service.deleteMessageByCode(code); + } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageMapper.java index f3e4724..d7e5463 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageMapper.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageMapper.java @@ -21,4 +21,9 @@ public interface BizMessageMapper extends BaseMapper { List findAuthorizeList(BizMessageAuthorize vo); + List findMessageByLikeCode(String code); + + Integer deleteMessageByServicecdoe(List magIds); + + Integer deleteAuthorizeByServicecdoe(List magIds); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/mapper/BizMessageMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/mapper/BizMessageMapper.xml index 9858806..a7f556b 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/mapper/BizMessageMapper.xml +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/mapper/BizMessageMapper.xml @@ -80,4 +80,23 @@ and state = #{state} + + + + + delete from biz_message where id in + + #{id} + + + + + delete from biz_message_authorize + where message_id in + + #{id} + + \ No newline at end of file diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageProducerService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageProducerService.java index 0efd5de..da43a30 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageProducerService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageProducerService.java @@ -3,10 +3,12 @@ package com.chinaunicom.mall.ebtp.extend.bizmessage.service; import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.BizMessageRawDTO; import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage; +import java.util.Map; import java.util.Optional; public interface BizMessageProducerService { Optional produce(BizMessageRawDTO messageRaw); + Map deleteMessageByCode(String questId); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageProducerServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageProducerServiceImpl.java index 89226a0..d127831 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageProducerServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageProducerServiceImpl.java @@ -1,6 +1,7 @@ package com.chinaunicom.mall.ebtp.extend.bizmessage.service.impl; import cn.hutool.core.lang.Snowflake; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageAuthorizeMapper; import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageCategoryMapper; @@ -25,8 +26,11 @@ import org.springframework.util.Assert; import java.io.IOException; import java.io.StringWriter; +import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; /** * 消息生产服务 @@ -159,4 +163,25 @@ public class BizMessageProducerServiceImpl implements BizMessageProducerService return StringUtils.EMPTY; } + /** + * @param questId + * @return + */ + @Override + public Map deleteMessageByCode(String questId) { + List messageList = messageMapper.findMessageByLikeCode(questId); + log.info(" 删除查询结果 messageList: "+messageList); + List magIds = messageList.stream().map(BizMessage::getId).distinct().collect(Collectors.toList()); + Map map = new HashMap<>(); + Integer m = new Integer(0); + Integer a = new Integer(0); + if(magIds!=null&&magIds.size()>0) { + m = messageMapper.deleteMessageByServicecdoe(magIds); + a = messageMapper.deleteAuthorizeByServicecdoe(magIds); + } + map.put("deleteMessage", m); + map.put("deleteAuthorize", a); + return map; + } + } From 2ef3b290f07dcc83503a9fbf7bcacc339fd2ebf5 Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Thu, 20 Jan 2022 09:28:07 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bizmessage/controller/BizMessageProducerController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java index 2db2cb8..da537a8 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java @@ -43,7 +43,7 @@ public class BizMessageProducerController { @ApiOperation("删除信息.") @DeleteMapping @ResponseStatus(code = HttpStatus.OK) - public Map deleteMessageByCode(@ApiParam(value = "消息内容", required = true)String code) { + public Map deleteMessageByCode(@ApiParam(value = "消息内容", required = true)@RequestParam("code") String code) { return service.deleteMessageByCode(code); } From 0b6f8f257d43d1ae0ad0bd2148b7107d9d8601ed Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Thu, 20 Jan 2022 09:38:35 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bizmessage/controller/BizMessageProducerController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java index da537a8..f66a177 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java @@ -1,5 +1,6 @@ package com.chinaunicom.mall.ebtp.extend.bizmessage.controller; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.BizMessageRawDTO; import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageProducerService; import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.DescribeSiteMsgDetailVO; @@ -43,8 +44,8 @@ public class BizMessageProducerController { @ApiOperation("删除信息.") @DeleteMapping @ResponseStatus(code = HttpStatus.OK) - public Map deleteMessageByCode(@ApiParam(value = "消息内容", required = true)@RequestParam("code") String code) { + public BaseResponse> deleteMessageByCode(@ApiParam(value = "消息内容", required = true)@RequestParam("code") String code) { - return service.deleteMessageByCode(code); + return BaseResponse.success(service.deleteMessageByCode(code)); } }