diff --git a/Dockerfile-uat b/Dockerfile-uat
index c441d3f..380716f 100644
--- a/Dockerfile-uat
+++ b/Dockerfile-uat
@@ -1,7 +1,7 @@
FROM harbor.dcos.guangzhou.unicom.local/eshop/jdk8_springboot_agent:v1.6
-ENV LC_ALL=zh_CN.utf8
-ENV LANG=zh_CN.utf8
-ENV LANGUAGE=zh_CN.utf8
-RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
+#ENV LC_ALL=zh_CN.utf8
+#ENV LANG=zh_CN.utf8
+#ENV LANGUAGE=zh_CN.utf8
+#RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ADD /target/biz_service_ebtp_extend-0.0.1.jar /biz_service_ebtp_extend-0.0.1.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-javaagent:/skywalking/agent/skywalking-agent.jar","-jar", "/biz_service_ebtp_extend-0.0.1.jar"]
diff --git a/deployment-dev.yaml b/deployment-dev.yaml
index 797b04c..0871a9f 100644
--- a/deployment-dev.yaml
+++ b/deployment-dev.yaml
@@ -35,10 +35,24 @@ spec:
# 定义容器模板,该模板可以包含多个容器
spec:
+ volumes:
+ - name: log
+ hostPath:
+ path: /var/lib/docker/log/349553515466-test/default-group/all #开发环境
+ - name: storage
+ persistentVolumeClaim:
+ claimName: file-pvc
+ readOnly: false
# 必选,Pod中容器列表
containers:
- name: biz-service-ebtp-extend
image: harbor.dcos.guangzhou.unicom.local/eshop/biz-service-ebtp-extend:latest
+ # 在容器中挂载日志存储区
+ volumeMounts:
+ - name: log
+ mountPath: /log
+ - name: storage
+ mountPath: /storage
# 需要暴露的端口库号列表
ports:
- containerPort: 18018
diff --git a/deployment-master.yaml b/deployment-master.yaml
index 04c5d8d..8bd9734 100644
--- a/deployment-master.yaml
+++ b/deployment-master.yaml
@@ -39,6 +39,10 @@ spec:
- name: log
hostPath:
path: /var/lib/docker/log/349553515466-prod/default-group/30days
+ - name: storage
+ persistentVolumeClaim:
+ claimName: file-pvc
+ readOnly: false
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
@@ -57,6 +61,8 @@ spec:
volumeMounts:
- name: log
mountPath: /log
+ - name: storage
+ mountPath: /storage
ports:
- containerPort: 18018
livenessProbe:
diff --git a/deployment-sim.yaml b/deployment-sim.yaml
index 50a52d0..7e5c941 100644
--- a/deployment-sim.yaml
+++ b/deployment-sim.yaml
@@ -37,8 +37,11 @@ spec:
spec:
volumes:
- name: log
+ hostPath:
+ path: /var/lib/docker/log/349553515466-preprod/default-group/all #开发环境
+ - name: storage
persistentVolumeClaim:
- claimName: log-pvc
+ claimName: file-pvc
readOnly: false
affinity:
podAntiAffinity:
@@ -58,6 +61,8 @@ spec:
volumeMounts:
- name: log
mountPath: /log
+ - name: storage
+ mountPath: /storage
ports:
- containerPort: 18018
resources:
diff --git a/deployment-uat.yaml b/deployment-uat.yaml
index 3d2e32d..c75f587 100644
--- a/deployment-uat.yaml
+++ b/deployment-uat.yaml
@@ -38,10 +38,12 @@ spec:
# 挂载日志存储
volumes:
- name: log
+ hostPath:
+ path: /var/lib/docker/log/349553515466-uat/default-group/all #开发环境
+ - name: storage
persistentVolumeClaim:
- claimName: log-pvc
+ claimName: file-pvc
readOnly: false
-
# 必选,Pod中容器列表
containers:
- name: biz-service-ebtp-extend
@@ -50,6 +52,8 @@ spec:
volumeMounts:
- name: log
mountPath: /log
+ - name: storage
+ mountPath: /storage
# 需要暴露的端口库号列表
ports:
- containerPort: 18018
diff --git a/lib/access_token1.1.jar b/lib/access_token1.1.jar
new file mode 100644
index 0000000..ca28bb3
Binary files /dev/null and b/lib/access_token1.1.jar differ
diff --git a/lib/aspose-words-16.8.0-javadoc.jar b/lib/aspose-words-16.8.0-javadoc.jar
new file mode 100644
index 0000000..075f5dd
Binary files /dev/null and b/lib/aspose-words-16.8.0-javadoc.jar differ
diff --git a/lib/aspose-words-16.8.0-jdk16.jar b/lib/aspose-words-16.8.0-jdk16.jar
new file mode 100644
index 0000000..8433d9e
Binary files /dev/null and b/lib/aspose-words-16.8.0-jdk16.jar differ
diff --git a/pom.xml b/pom.xml
index 96569cb..d9e5db1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,13 +54,13 @@
poi
4.1.2
-
+
org.apache.poi
poi-ooxml
4.1.2
-
+
org.apache.poi
poi-ooxml-schemas
@@ -71,6 +71,7 @@
commons-httpclient
3.1
+
jit.vstk
jit-vstk
@@ -78,6 +79,35 @@
system
${basedir}/lib/jit-vstk-jdk15-2.0.50-20150603.060911-1.jar
+
+ aspose.javadoc
+ aspose.javadoc
+ 16.8.0
+ system
+ ${basedir}/lib/aspose-words-16.8.0-javadoc.jar
+
+
+ aspose.jdk16
+ aspose.jdk16
+ 16.8.0
+ system
+ ${basedir}/lib/aspose-words-16.8.0-jdk16.jar
+
+
+
+
+ cryp.access
+ accessToken
+ 1.0
+ system
+ ${basedir}/lib/access_token1.1.jar
+
+
+
+ cn.chinaunicom.sdsi
+ mall-xxljob-core
+ 0.0.1
+
org.apache.velocity
velocity-tools
@@ -89,6 +119,11 @@
+
+ e-iceblue
+ spire.doc.free
+ 3.9.0
+
@@ -104,6 +139,15 @@
always
+
+
+ com.e-iceblue
+ http://repo.e-iceblue.cn/repository/maven-public/
+
+
+ maven-virtual
+ http://ccp.tianti.tg.unicom.local/artifactory/maven-virtual
+
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java
index 1187fe0..05651ce 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java
@@ -3,6 +3,7 @@ package com.chinaunicom.mall.ebtp.extend;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
+import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import io.micrometer.core.instrument.MeterRegistry;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Value;
@@ -15,12 +16,15 @@ import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
+import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class})
@EnableFeignClients
@EnableEurekaClient
@MapperScan({"com.chinaunicom.mall.ebtp.extend.**.dao"})
@ComponentScan("com.chinaunicom.mall.ebtp.*")
+@EnableApolloConfig
+@EnableAsync
public class BizServiceEbtpExtendApplication {
public static void main(String[] args) {
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/controller/BizBidSharedRecordController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/controller/BizBidSharedRecordController.java
index 62c7126..a715cb2 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/controller/BizBidSharedRecordController.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/controller/BizBidSharedRecordController.java
@@ -57,6 +57,8 @@ public class BizBidSharedRecordController {
BizBidSharedRecord bizBidSharedRecord = new BizBidSharedRecord();
bizBidSharedRecord.setId(PropertyUtils.getSnowflakeId());
bizBidSharedRecord.setRecordId(bizBidShared.getId());
+ bizBidSharedRecord.setRecordOrgId(cacheUser.getDeptId());
+ bizBidSharedRecord.setRecordOrgName(cacheUser.getDeptName());
bizBidSharedRecord.setRecordAccount(cacheUser.getLoginName());
bizBidSharedRecord.setRecordName(cacheUser.getFullName());
bizBidSharedRecord.setRecordRole(cacheUser.getCurrentRoleCode());
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.java
index b3c1e1e..177b762 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.java
@@ -52,10 +52,22 @@ public class BizBidSharedRecord extends BaseEntity implements Serializable {
private String recordRole;
+ /**
+ *
+ */
+ @ApiModelProperty(value = "机构Id")
+ private String recordOrgId;
+
/**
*
*/
@ApiModelProperty(value = "机构名称")
+ private String recordOrgName;
+
+ /**
+ *
+ */
+ @ApiModelProperty(value = "下载人名称")
private String recordName;
/**
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecordVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecordVO.java
index 32b0c95..e9ca77c 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecordVO.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecordVO.java
@@ -53,10 +53,22 @@ public class BizBidSharedRecordVO extends BasePageRequest implements Serializabl
private String recordRole;
+ /**
+ *
+ */
+ @ApiModelProperty(value = "机构Id")
+ private String recordOrgId;
+
/**
*
*/
@ApiModelProperty(value = "机构名称")
+ private String recordOrgName;
+
+ /**
+ *
+ */
+ @ApiModelProperty(value = "下载人名称")
private String recordName;
/**
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageConsumerController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageConsumerController.java
index 62c4f66..86ec5fa 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageConsumerController.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageConsumerController.java
@@ -1,6 +1,8 @@
package com.chinaunicom.mall.ebtp.extend.bizmessage.controller;
import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.PageDTO;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageVo;
import com.chinaunicom.mall.ebtp.extend.bizmessage.mybatis.IBizMessagePage;
import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageConsumerService;
import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.DescribeSiteMsgDetailVO;
@@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
import java.util.Optional;
/**
@@ -34,7 +37,7 @@ public class BizMessageConsumerController {
* @return
*/
@ApiOperation("消息概要清单.")
- @GetMapping("describeSiteMsg")
+ @PostMapping("describeSiteMsg")
@ResponseStatus(code = HttpStatus.OK)
public IBizMessagePage describeSiteMsg(
@ApiParam(value = "分页参数", required = false) @RequestBody(required = false) PageDTO page) {
@@ -56,9 +59,39 @@ public class BizMessageConsumerController {
DescribeSiteMsgDetailVO vo = new DescribeSiteMsgDetailVO();
vo.setMsgId(source.getId());
BeanUtils.copyProperties(source, vo);
-
+ BizMessageAuthorize authorize = new BizMessageAuthorize();
+ authorize.setMessageId(source.getId());
+ authorize = this.service.getAuthorize(authorize);
+ vo.setAuthorizestate(authorize.getState());
+ vo.setServicecode(source.getServicecode());
return vo;
}).orElseGet(DescribeSiteMsgDetailVO::new);
}
+ /**
+ * 信息类别查询
+ *
+ * @return
+ */
+ @ApiOperation("信息类别查询")
+ @PostMapping("selectMsgListByType")
+ @ResponseStatus(code = HttpStatus.OK)
+ public List selectMsgListByType(@RequestBody(required = false) BizMessageVo vo) {
+
+ return service.selectMsgListByType(vo);
+ }
+
+ /**
+ * 信息已阅
+ *
+ * @return
+ */
+ @ApiOperation("信息已阅")
+ @GetMapping("selectMsgRead/{id}")
+ @ResponseStatus(code = HttpStatus.OK)
+ public Boolean selectMsgRead( @ApiParam(value = "待查询的消息id", required = true) @PathVariable("id") String id) {
+ //已读
+ this.service.updateState(id);
+ return true;
+ }
}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageAuthorizeMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageAuthorizeMapper.java
index 0084b9f..0230f84 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageAuthorizeMapper.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageAuthorizeMapper.java
@@ -5,4 +5,5 @@ import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize;
public interface BizMessageAuthorizeMapper extends BaseMapper {
+
}
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 bb6325d..f3e4724 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
@@ -3,10 +3,22 @@ package com.chinaunicom.mall.ebtp.extend.bizmessage.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageVo;
import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
public interface BizMessageMapper extends BaseMapper {
IPage findMessage(@Param("param") IPage page, @Param("userId") String userId);
+ IPage findMessageVo(@Param("param") IPage page, @Param("userId") String userId);
+
+ Boolean updateState(@Param("userId") String userId,@Param("messageId") String messageId);
+
+ List findMessageVoList(BizMessageVo vo);
+
+ List findAuthorizeList(BizMessageAuthorize vo);
+
}
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 40fec46..9858806 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
@@ -3,19 +3,81 @@
+
+
+
+ update biz_message_authorize set state = 1
+ where message_id=#{messageId}
+ and user_id =#{userId}
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageRawDTO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageRawDTO.java
index f5867bc..f293b55 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageRawDTO.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageRawDTO.java
@@ -41,4 +41,8 @@ public class BizMessageRawDTO {
@ApiModelProperty(required = true, value = "授权用户列表")
private List users;
+ @ApiModelProperty(required = true, value = "业务参数json")
+ @NotNull(message = "业务参数json")
+ private Map servicecode;
+
}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessage.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessage.java
index d539b07..102ee6e 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessage.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessage.java
@@ -1,5 +1,6 @@
package com.chinaunicom.mall.ebtp.extend.bizmessage.entity;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@@ -16,6 +17,8 @@ public class BizMessage {
private String url;
private String params;
private Timestamp createtime;
+ private String servicecode;
+ private String templatecode;
/* 该值为1则标识开启授权控制,只有授权列表( biz_message_authorize )内的用户可见 */
private Integer authorize;
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageAuthorize.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageAuthorize.java
index 56f543b..25facf2 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageAuthorize.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageAuthorize.java
@@ -11,5 +11,6 @@ public class BizMessageAuthorize {
private String userId;
private String messageId;
+ private String state;
}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageVo.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageVo.java
new file mode 100644
index 0000000..b15db1b
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageVo.java
@@ -0,0 +1,14 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.entity;
+
+import lombok.Data;
+
+@Data
+public class BizMessageVo extends BizMessage{
+
+ private String authorizestate;
+ private String templatetype;
+ private String userId;
+ private Long datanum;
+ private Integer size;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java
index 087bc0e..40fab11 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java
@@ -2,13 +2,27 @@ package com.chinaunicom.mall.ebtp.extend.bizmessage.service;
import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.PageDTO;
import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageVo;
import com.chinaunicom.mall.ebtp.extend.bizmessage.mybatis.IBizMessagePage;
import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.DescribeSiteMsgVO;
+import java.util.List;
+
public interface BizMessageConsumerService {
IBizMessagePage listOutline(PageDTO page);
BizMessage getDetailById(String id);
+ Boolean updateState(String id);
+
+ List selectMsgListByType(BizMessageVo vo);
+
+ /**
+ * 查询读取状态
+ * @param authorize
+ * @return
+ */
+ BizMessageAuthorize getAuthorize(BizMessageAuthorize authorize);
}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java
index 46bf4b8..7028181 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java
@@ -6,6 +6,8 @@ import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService;
import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageMapper;
import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.PageDTO;
import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageVo;
import com.chinaunicom.mall.ebtp.extend.bizmessage.mybatis.BizMessagePage;
import com.chinaunicom.mall.ebtp.extend.bizmessage.mybatis.IBizMessagePage;
import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageConsumerService;
@@ -14,6 +16,8 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -39,7 +43,7 @@ public class BizMessageConsumerServiceImpl implements BizMessageConsumerService
public IBizMessagePage listOutline(PageDTO page) {
page = createPageCondition(page);
- IPage pageEntity = mapper.findMessage(new Page(page.getPageNo(), page.getPageSize()),
+ IPage pageEntity = mapper.findMessageVo(new Page(page.getPageNo(), page.getPageSize()),
service.getCacheUser().getUserId());
// DAT -> VO 转换
@@ -48,8 +52,10 @@ public class BizMessageConsumerServiceImpl implements BizMessageConsumerService
result.setRecords(pageEntity.getRecords().stream().map(source -> {
DescribeSiteMsgVO vo = new DescribeSiteMsgVO();
vo.setMsgId(source.getId());
+ vo.setServicecode(source.getServicecode());
+ vo.setAuthorizestate(source.getAuthorizestate());
+ vo.setTemplatetype(source.getTemplatetype());
BeanUtils.copyProperties(source, vo);
-
return vo;
}).collect(Collectors.toList()));
@@ -64,7 +70,20 @@ public class BizMessageConsumerServiceImpl implements BizMessageConsumerService
*/
@Override
public BizMessage getDetailById(String id) {
- return mapper.selectById(id);
+ BizMessage message = mapper.selectById(id);
+ return message;
+ }
+
+ /**
+ * 消息详情 已读修改
+ *
+ * @param messageId
+ * @return
+ */
+ @Override
+ public Boolean updateState(String messageId){
+ String userId = service.getCacheUser().getUserId();
+ return mapper.updateState(userId,messageId);
}
/**
@@ -81,4 +100,45 @@ public class BizMessageConsumerServiceImpl implements BizMessageConsumerService
}).orElseGet(PageDTO::new);
}
+ /**
+ * 消息概要列表
+ *
+ * @return
+ */
+ @Override
+ public List selectMsgListByType(BizMessageVo vo) {
+ vo.setSize(vo.getSize()!=null?vo.getSize():5);
+ vo.setUserId(service.getCacheUser().getUserId());
+ if(vo.getAuthorizestate()==null||"".equals(vo.getAuthorizestate())){
+ vo.setAuthorizestate("0");
+ }
+
+ List list = mapper.findMessageVoList(vo);
+
+ List rList = new ArrayList<>();
+
+ for(int i = 0 ; i < list.size();i++){
+ if(i authorizes = this.mapper.findAuthorizeList(authorize);
+ return authorizes!=null&&authorizes.size()>0?authorizes.get(0):new BizMessageAuthorize();
+ }
}
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 f797bf5..89226a0 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
@@ -85,13 +85,15 @@ public class BizMessageProducerServiceImpl implements BizMessageProducerService
bizmessage.setContent(fill(dao.getBody(), messageRaw.getBody()));
bizmessage.setUrl(fill(dao.getRouter(), messageRaw.getExtra()));
bizmessage.setParams(toJson(messageRaw.getExtra()));
+ bizmessage.setServicecode(toJson(messageRaw.getServicecode()));
+ bizmessage.setTemplatecode(dao.getCode());
Optional.ofNullable(messageRaw.getUsers()).ifPresent(users -> {
log.debug("if user list {} is not emtpy, then grant current message to them.", users);
bizmessage.setAuthorize(Math.min(1, users.size()));
log.debug("grant message [{}] to users", messageId);
- users.forEach(userid -> authorizeMapper.insert(new BizMessageAuthorize(userid, messageId)));
+ users.forEach(userid -> authorizeMapper.insert(new BizMessageAuthorize(userid, messageId,"0")));
});
return bizmessage;
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgDetailVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgDetailVO.java
index 5b9d27e..585ac74 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgDetailVO.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgDetailVO.java
@@ -26,4 +26,6 @@ public class DescribeSiteMsgDetailVO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createtime;
+ private String authorizestate;
+ private String servicecode;
}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgVO.java
index 913c68b..7fe5699 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgVO.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgVO.java
@@ -16,6 +16,9 @@ public class DescribeSiteMsgVO {
private String msgId;
private String title;
private String category;
+ private String servicecode;
+ private String authorizestate;
+ private String templatetype;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createtime;
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/controller/BlockChainLogController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/controller/BlockChainLogController.java
new file mode 100644
index 0000000..815bc73
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/controller/BlockChainLogController.java
@@ -0,0 +1,58 @@
+package com.chinaunicom.mall.ebtp.extend.blockchain.controller;
+
+
+import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
+import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
+import com.chinaunicom.mall.ebtp.extend.blockchain.entity.BlockChainLog;
+import com.chinaunicom.mall.ebtp.extend.blockchain.service.IBlockChainLogService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+@RestController
+@Api(tags = "供应链+区块链接口调用日志")
+@RequestMapping("/v1/blockchainlog")
+public class BlockChainLogController {
+
+ @Resource
+ private IBlockChainLogService iBlockChainLogService;
+
+ /**
+ * 插入新数据
+ *
+ * @param blockChainLog
+ *
+ * @return
+ */
+ @ApiOperation("插入新数据")
+ @PostMapping("")
+ public BaseResponse insert(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid BlockChainLog blockChainLog){
+ blockChainLog.setId(PropertyUtils.getSnowflakeId());
+ boolean save = iBlockChainLogService.save(blockChainLog);
+ return BaseResponse.success(save);
+ }
+
+
+
+ /**
+ * 查询数据
+ *
+ * @param id
+ *
+ * @return
+ */
+ @ApiOperation("查询数据")
+ @GetMapping("/{id}")
+ public BaseResponse get(@ApiParam(value = "主键id", required = true) @PathVariable String id){
+
+ BlockChainLog blockChainLog = iBlockChainLogService.getById(id);
+
+ return BaseResponse.success(blockChainLog);
+ }
+
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/dao/BlockChainLogMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/dao/BlockChainLogMapper.java
new file mode 100644
index 0000000..22c42f1
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/dao/BlockChainLogMapper.java
@@ -0,0 +1,13 @@
+package com.chinaunicom.mall.ebtp.extend.blockchain.dao;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chinaunicom.mall.ebtp.extend.blockchain.entity.BlockChainLog;
+
+/**
+* @auto.generated
+ */
+public interface BlockChainLogMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/dao/mapper/BlockChainLogMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/dao/mapper/BlockChainLogMapper.xml
new file mode 100644
index 0000000..6b0433a
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/dao/mapper/BlockChainLogMapper.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ update supply_block_chain_log
+ set
+ delete_flag="deleted"
+ where ID=#{id,jdbcType=BIGINT}
+
+
\ No newline at end of file
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLog.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLog.java
new file mode 100644
index 0000000..c099bbd
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/entity/BlockChainLog.java
@@ -0,0 +1,93 @@
+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.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 实体类 BlockChainLog
+ *
+ * @auto.generated
+ */
+@Data
+@Accessors(chain = true)
+@ApiModel
+@EqualsAndHashCode(callSuper = false)
+@TableName(value = "block_chain_log", autoResultMap = true)
+public class BlockChainLog 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;
+ /**
+ *
+ */
+ @ApiModelProperty(value = "调用接口的地址")
+ private String interfaceUrl;
+
+ /**
+ * 传参
+ */
+ @ApiModelProperty(value = "传参")
+ private String param;
+
+ /**
+ * 返回的结果或异常
+ */
+ @ApiModelProperty(value = "返回的结果或异常")
+ private String result;
+
+ /**
+ * 0-成功 1-失败
+ */
+ @ApiModelProperty(value = "0-成功 1-失败")
+ private Integer status;
+ @TableField(fill = FieldFill.INSERT,typeHandler = CustomLocalDateTimeTypeHandler.class)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createDate;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/service/IBlockChainLogService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/service/IBlockChainLogService.java
new file mode 100644
index 0000000..286128f
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/service/IBlockChainLogService.java
@@ -0,0 +1,16 @@
+package com.chinaunicom.mall.ebtp.extend.blockchain.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chinaunicom.mall.ebtp.extend.blockchain.entity.BlockChainLog;
+
+/**
+ * 对数据表 supply_block_chain_log 操作的 service
+ * @author Auto create
+ *
+ */
+public interface IBlockChainLogService extends IService {
+
+
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/service/impl/BlockChainLogServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/service/impl/BlockChainLogServiceImpl.java
new file mode 100644
index 0000000..d990d97
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/blockchain/service/impl/BlockChainLogServiceImpl.java
@@ -0,0 +1,17 @@
+package com.chinaunicom.mall.ebtp.extend.blockchain.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chinaunicom.mall.ebtp.extend.blockchain.dao.BlockChainLogMapper;
+import com.chinaunicom.mall.ebtp.extend.blockchain.entity.BlockChainLog;
+import com.chinaunicom.mall.ebtp.extend.blockchain.service.IBlockChainLogService;
+import org.springframework.stereotype.Service;
+/**
+ * 对数据表 supply_block_chain_log 操作的 serviceImpl
+ * blockchain
+ *
+ */
+@Service
+public class BlockChainLogServiceImpl extends ServiceImpl implements IBlockChainLogService {
+
+
+}
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
new file mode 100644
index 0000000..35e5449
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/controller/CrypConfigureController.java
@@ -0,0 +1,161 @@
+package com.chinaunicom.mall.ebtp.extend.crypconfigure.controller;
+
+
+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.crypconfigure.entity.CrypBean;
+import com.chinaunicom.mall.ebtp.extend.crypconfigure.entity.CrypConfigure;
+import com.chinaunicom.mall.ebtp.extend.crypconfigure.service.ICrypConfigureService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+
+@RestController
+@Api(value = "区块链参数配置表")
+@RequestMapping("/v1/crypconfigure")
+public class CrypConfigureController{
+
+ @Resource
+ private ICrypConfigureService iCrypConfigureService;
+
+// /**
+// * 插入新数据
+// *
+// * @param crypConfigure
+// *
+// * @return
+// */
+// @ApiOperation("插入新数据")
+// @PostMapping
+// public BaseResponse insert(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid CrypConfigure crypConfigure){
+//
+// int i = iCrypConfigureService.insert(crypConfigure);
+//
+// return BaseResponse.success(i);
+// }
+//
+// /**
+// * 修改数据
+// *
+// * @param crypConfigure
+// *
+// * @return
+// */
+// @ApiOperation("修改数据")
+// @PutMapping
+// public BaseResponse update(@ApiParam(value = "对象数据", required = true) @RequestBody CrypConfigure crypConfigure){
+//
+// Boolean i = iCrypConfigureService.updateCrypConfigureById(crypConfigure);
+//
+// return BaseResponse.success(i);
+// }
+//
+// /**
+// * 查询数据
+// *
+// * @param id
+// *
+// * @return
+// */
+// @ApiOperation("根据id查询数据")
+// @GetMapping("/{id}")
+// public BaseResponse get(@ApiParam(value = "主键id", required = true) @PathVariable String id){
+//
+// CrypConfigure crypConfigure = iCrypConfigureService.getById(id);
+//
+// return BaseResponse.success(crypConfigure);
+// }
+//
+// /**
+// * 删除数据
+// * @param id 主键id
+// * @return BaseResponse
+// * @author dino
+// * @date 2020/10/21 14:56
+// */
+// @ApiOperation(value = "delete",notes = "删除数据")
+// @DeleteMapping("/{id}")
+// public BaseResponse delete(@ApiParam(value = "主键id", required = true) @PathVariable Long id) {
+// int i = iCrypConfigureService.deleteById(id);
+// return BaseResponse.success(i);
+// }
+
+ /**
+ * 查询数据
+ *
+ * @param param
+ * @return
+ */
+ @ApiOperation("查询列表数据")
+ @GetMapping("/list")
+ public BaseResponse> list(@ApiParam(value = "查询对象数据", required = false) CrypConfigure param) {
+ //查询
+ LambdaQueryWrapper query = Wrappers.lambdaQuery(param);
+ List list = iCrypConfigureService.list(query);
+ //异常处理
+ //RespsExceptionEnum.FRAME_EXCEPTION_DEMO_NOT_FIND.customValid(list.isEmpty());
+ return BaseResponse.success(list);
+ }
+
+ /**
+ * 调用天擎接口
+ *
+ * @param bean
+ * @return
+ */
+ @ApiOperation("调用天擎接口")
+ @PostMapping("/callUniInterface")
+ public BaseResponse callUniInterface(@RequestBody CrypBean bean) {
+
+ return BaseResponse.success(this.iCrypConfigureService.callUniInterface(bean));
+ }
+
+ /**
+ * 区块链数据加密
+ *
+ * @param object
+ * @return
+ */
+ @ApiOperation("区块链数据加密")
+ @PostMapping("/signObject")
+ public BaseResponse signObject(@RequestBody Object object) {
+
+ return BaseResponse.success(this.iCrypConfigureService.signObject(object));
+ }
+
+ /**
+ * 区块链数据解密
+ *
+ * @param bean
+ * @return
+ */
+ @ApiOperation("区块链数据解密")
+ @PostMapping("/verifyObject")
+ public BaseResponse verifyObject(@RequestBody CrypBean bean) {
+
+ return BaseResponse.success(this.iCrypConfigureService.verifyObject(bean));
+ }
+
+ /**
+ * accessToken获取
+ *
+ * @param
+ * @return
+ */
+ @ApiOperation("accessToken获取")
+ @GetMapping("/getAccessToken")
+ public BaseResponse getAccessToken() {
+
+ return BaseResponse.success( AccessToken.tokenCreate("bidding"));
+ }
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/dao/CrypConfigureMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/dao/CrypConfigureMapper.java
new file mode 100644
index 0000000..16f76f1
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/dao/CrypConfigureMapper.java
@@ -0,0 +1,10 @@
+package com.chinaunicom.mall.ebtp.extend.crypconfigure.dao;
+
+
+import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper;
+import com.chinaunicom.mall.ebtp.extend.crypconfigure.entity.CrypConfigure;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface CrypConfigureMapper extends IBaseMapper {
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/dao/mapper/CrypConfigureMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/dao/mapper/CrypConfigureMapper.xml
new file mode 100644
index 0000000..605fa81
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/dao/mapper/CrypConfigureMapper.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ update biz_bid_cryp_configure
+ set
+ delete_flag="1"
+ where ID=#{id }
+
+
\ No newline at end of file
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/entity/CrypBean.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/entity/CrypBean.java
new file mode 100644
index 0000000..10a6833
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/entity/CrypBean.java
@@ -0,0 +1,35 @@
+package com.chinaunicom.mall.ebtp.extend.crypconfigure.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* 实体类 CrypConfigure-区块链参数配置表
+*
+* @author yss
+*/
+@Data
+public class CrypBean {
+ /**
+ * 能力req名称
+ * BIDDING_PUBLISH_REQ 发标
+ */
+ @ApiModelProperty(value = "能力req名称")
+ public String reqName;
+ /**
+ * 签名
+ */
+ @ApiModelProperty(value = "签名")
+ public String sign;
+ /**
+ * 待签名参数 Map
+ */
+ @ApiModelProperty(value = "待签名参数")
+ public Object object;
+ /**
+ * 天擎接口地址
+ */
+ @ApiModelProperty(value = "天擎接口地址")
+ public String url;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/entity/CrypConfigure.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/entity/CrypConfigure.java
new file mode 100644
index 0000000..bcb83cc
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/entity/CrypConfigure.java
@@ -0,0 +1,73 @@
+package com.chinaunicom.mall.ebtp.extend.crypconfigure.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+* 实体类 CrypConfigure-区块链参数配置表
+*
+* @author yss
+*/
+@Data
+@Accessors(chain = true)
+@TableName(value = "biz_bid_cryp_configure", autoResultMap = true)
+@ApiModel(value = "CrypConfigure对象", description = "区块链参数配置表")
+public class CrypConfigure extends BaseEntity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ @ApiModelProperty(value = "主键ID")
+ private String id;
+
+ @ApiModelProperty(value = "配置标识")
+ private String cCode;
+
+ @ApiModelProperty(value = "配置说明")
+ private String cShow;
+
+ @ApiModelProperty(value = "配置类型 1-区块链")
+ private Integer type;
+
+ @ApiModelProperty(value = "值")
+ private String cValue;
+
+ @ApiModelProperty(value = "备注")
+ private String remarks;
+
+ @ApiModelProperty(value = "状态 0-失效 1-生效")
+ private Integer state;
+
+
+
+
+
+ @ApiModelProperty(value = "租户ID")
+ private String tenantId;
+
+ @ApiModelProperty(value = "租户名称")
+ private String tenantName;
+
+ @ApiModelProperty(value = "删除标识")
+ private String deleteFlag;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "删除标识")
+ private LocalDateTime lastUpdateTime;
+
+ @ApiModelProperty(value = "割接状态;0-割接数据,1-新数据")
+ private Integer cutoverStatus;
+
+
+}
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
new file mode 100644
index 0000000..865ffe8
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/ICrypConfigureService.java
@@ -0,0 +1,34 @@
+package com.chinaunicom.mall.ebtp.extend.crypconfigure.service;
+
+
+import com.chinaunicom.mall.ebtp.common.base.service.IBaseService;
+import com.chinaunicom.mall.ebtp.extend.crypconfigure.entity.CrypBean;
+import com.chinaunicom.mall.ebtp.extend.crypconfigure.entity.CrypConfigure;
+
+/**
+ * 对数据表 biz_bid_cryp_configure 操作的 service
+ * @author yss
+ *
+ */
+public interface ICrypConfigureService extends IBaseService {
+ /**
+ * 调用天擎接口
+ * @param bean
+ * @return
+ */
+ Boolean callUniInterface(CrypBean bean);
+
+ /**
+ * 加密
+ * @param object
+ * @return
+ */
+ CrypBean signObject(Object object);
+
+ /**
+ * 解密
+ * @param bean
+ * @return
+ */
+ Boolean verifyObject(CrypBean bean);
+}
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
new file mode 100644
index 0000000..ba1d66b
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/crypconfigure/service/impl/CrypConfigureServiceImpl.java
@@ -0,0 +1,301 @@
+package com.chinaunicom.mall.ebtp.extend.crypconfigure.service.impl;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+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.service.IBaseCacheUserService;
+import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl;
+import com.chinaunicom.mall.ebtp.common.constant.CommonConstants;
+import com.chinaunicom.mall.ebtp.common.crypto.service.CrypServiceImpl;
+import com.chinaunicom.mall.ebtp.common.crypto.tenderfee.test;
+import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum;
+import com.chinaunicom.mall.ebtp.common.uniBss.constant.UniBssConstant;
+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.service.IBlockChainLogService;
+import com.chinaunicom.mall.ebtp.extend.crypconfigure.dao.CrypConfigureMapper;
+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;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.IOUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import static com.chinaunicom.mall.ebtp.common.uniBss.service.UniBssServiceImpl.MD5min;
+
+/**
+ * 对数据表 biz_bid_cryp_configure 操作的 serviceImpl
+ * @author yss
+ *
+ */
+@Slf4j
+@Service
+public class CrypConfigureServiceImpl extends BaseServiceImpl implements ICrypConfigureService {
+
+ @Autowired
+ private IBlockChainLogService iBlockChainLogService;
+
+ private @Autowired
+ IBaseCacheUserService service;
+
+ // 私钥文件路径 - 加密
+ private static String PEM_PATH = "admin_certPrivateNew.pem";
+
+ // 证书文件路径 - 解密
+ private static String CRT_PATH = "adminNew.crt";
+
+ @Value("${mconfig.bss.app-id}")
+ private String app_id;
+ @Value("${mconfig.bss.app-secret}")
+ private String app_secret;
+
+ /**
+ * 调用天擎接口
+ * @param bean
+ * @return
+ */
+ @Override
+ @Async
+ public Boolean callUniInterface(CrypBean bean){
+ log.info("区块链------callUniInterface:---入参-----"+JSON.toJSONString(bean));
+ BlockChainLog blockChainLog = new BlockChainLog();
+ blockChainLog.setId(PropertyUtils.getSnowflakeId());
+ //天擎地址
+ blockChainLog.setInterfaceUrl(bean.getUrl());
+
+ try {
+ Map map = JSONArray.parseObject(JSONArray.toJSONString(bean.getObject()), Map.class);
+
+ //传入数据解密
+ String sign = getSignValue(map);
+
+ map.put("SIGN", sign);
+
+ String json = getUniBss(bean.getReqName(),map);
+
+ blockChainLog.setParam(json);//请求参数
+ String str = UniBssServiceImpl.uniBssHttpPost(bean.getUrl(), 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.save(blockChainLog);
+ return true;
+ }else{
+ blockChainLog.setStatus(1);//失败
+ }
+ } else {
+ blockChainLog.setStatus(1);//失败
+ CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.assertStringNotNullByKey("天擎接口调用错误," +
+ "RESP_CODE:" + uniBssRsp.getUniBssHead().getRespCode() + "" +
+ "(" + UniBssConstant.getRESP_CODE_Map(uniBssRsp.getUniBssHead().getRespCode()) + ")。" +
+ "RESP_DESC:" + uniBssRsp.getUniBssHead().getRespDesc(), bean);
+ }
+ }catch (Exception e){
+ blockChainLog.setStatus(1);
+ blockChainLog.setResult(e.getMessage());
+ }
+
+ this.iBlockChainLogService.save(blockChainLog);
+
+ return false;
+ }
+ /**
+ * 加密
+ * @param object
+ * @return
+ */
+ @Override
+ public CrypBean signObject(Object object){
+ CrypBean bean = new CrypBean();
+ try{
+ bean.setObject(object);
+
+ String signValue = getSignValue(bean.getObject());
+
+ bean.setSign(signValue);
+
+ return bean;
+ }catch (Exception e){
+ log.error("加密异常:"+e);
+ }
+
+ return bean;
+ }
+
+ /**
+ * 获取加密签名
+ * @param object
+ * @return
+ */
+ private String getSignValue(Object object){
+ String signValue = "";
+ try{
+
+ log.info("加密参数1:"+object);
+ String json = JSONArray.toJSONString(object);
+ Map jsonMap = JSONArray.parseObject(json,Map.class);
+ Object signObject = new Object();
+
+ if(jsonMap.get("BODY_LIST")!=null){
+ List jsonList = (List)jsonMap.get("BODY_LIST");
+ log.info("加密参数2:"+jsonList);
+ InputStream is = CrypConfigureServiceImpl.class.getClassLoader().getResourceAsStream(PEM_PATH);
+ signValue = CrypServiceImpl.signObject2(jsonList,IOUtils.toString(is));
+ }else{
+ log.info("加密参数2:"+jsonMap);
+ InputStream is = CrypConfigureServiceImpl.class.getClassLoader().getResourceAsStream(PEM_PATH);
+ signValue = CrypServiceImpl.signObject2(jsonMap,IOUtils.toString(is));
+ }
+
+
+ log.info("加密结果:"+signValue);
+ }catch (Exception e){
+ log.info("---------加密异常-"+e.getMessage());
+ }
+ return signValue;
+ }
+
+ /**
+ * 获取加密签名
+ * @param map
+ * @return
+ */
+ private String getUniBss(String reqName, Map map){
+ //获取token
+ Date date = new Date();
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
+ SimpleDateFormat format2 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ String TIMESTAMP = format.format(date);
+ String TRANS_ID = format2.format(date) + (int) ((Math.random() * 9 + 1) * 100000);
+ String s = "APP_ID" + app_id + "TIMESTAMP" + TIMESTAMP + "TRANS_ID" + TRANS_ID + app_secret;
+ String token = MD5min(s);
+ UniBss uniBss = new UniBss();
+ uniBss.setUniBssAttached(new UniBssAttached().setMediaInf(""));
+ //天擎部分head
+ UniBssHead head = new UniBssHead();
+ head.setAppId(app_id);
+ head.setTimeStamp(TIMESTAMP);
+ head.setTransId(TRANS_ID);
+ head.setToken(token);
+ uniBss.setUniBssHead(head);
+
+ UniReqHead reqhead = new UniReqHead();
+
+ reqhead.setSystemId("990001");
+ reqhead.setSystemName("bidding");
+ reqhead.setUserId(service.getCacheUser().getUserId()!=null?service.getCacheUser().getUserId():"dzztb");
+ reqhead.setUserName(service.getCacheUser().getUserId()!=null?service.getCacheUser().getUserId():"dzztb");
+ //测试写死
+ String accessToken = "MQjkzVoYoSHe6r/3uZm0MV/TLx+n8PS9ivfPhgY4bWmh+8DVxj7vTC15xbBkuV8oujD3XBZPP7PhcWag9UU5IzsUBT7PSwPhqi/fUqa+iAWhCWpvyihG/23BAY3rJyaoa3OdMNSnIh8woPDCJQTzCTpNtg0toKwdWnuc2mig7vI0Lm9lePvrx3XxFLSaFr+jB5C3qnAX4uUBioZzithSjtra1QUK6S1cb9DCmpj6NRI=";
+ //String accessToken = AccessToken.tokenCreate("bidding");
+ reqhead.setAccessToken(accessToken);
+
+
+ log.info("业务参数封装前:"+map);
+ UniCrpyReq req = new UniCrpyReq();
+ req.setBody(map);
+ req.setHead(reqhead);
+ log.info("业务参数封装中:"+req);;
+ Map reqMap = new HashMap();
+ reqMap.put(reqName,req);
+ uniBss.setUniBssBodyMap(reqMap);
+ log.info("业务参数封装后:"+reqMap);;
+
+
+ return JSON.toJSONString(uniBss);
+ }
+ /**
+ * 解密
+ * @param bean
+ * @return
+ */
+ @Override
+ public Boolean verifyObject(CrypBean bean){
+
+ try{
+ log.info("解密参数1:" + bean);
+ String json = JSONArray.toJSONString(bean.getObject());
+ Map jsonMap = JSONArray.parseObject(json, Map.class);
+ if(jsonMap.get("BODY_LIST")!=null){
+ List jsonList = (List)jsonMap.get("BODY_LIST");
+ log.info("解密参数2:"+jsonList);
+ InputStream is = CrypConfigureServiceImpl.class.getClassLoader().getResourceAsStream(CRT_PATH);
+ Boolean b = CrypServiceImpl.verifyValue(bean.getSign(), jsonList, IOUtils.toString(is));
+
+ return b;
+ }else {
+ log.info("解密参数2:" + bean);
+ InputStream is = CrypConfigureServiceImpl.class.getClassLoader().getResourceAsStream(CRT_PATH);
+ Boolean b = CrypServiceImpl.verifyValue(bean.getSign(), jsonMap, IOUtils.toString(is));
+ return b;
+ }
+
+ }catch (Exception e){
+ log.info("-----------解密失败"+e.getMessage());
+ }
+
+ return false;
+ }
+
+
+ public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, UnsupportedEncodingException {
+// String token = AccessToken.tokenCreate("123");
+// System.out.println(token);
+ // example of HashMap entity, treeMap can also work out,
+ // but LinkedHashMap is NOT supported
+// Map mapb= new HashMap<>();
+//
+// Map map = new HashMap<>(1);
+// map.put("TENDERER_ID","8533");
+// map.put("SHOPPINGCART_ID","L3307");
+// map.put("AMOUNT","1000");
+// map.put("TP_ID","L3307A");
+// map.put("SECTION_ID","1111");
+
+// List list = new ArrayList();
+// list.add(map);
+ //mapb.put("BODY_LIST",list);
+ String json = "{\"BODY_LIST\":[{\"AMOUNT\":\"0\",\"SHOPPINGCART_ID\":\"1434792850257195008\",\"TENDERER_ID\":\"100002372\",\"TP_ID\":\"1433613698540576768\",\"SECTION_ID\":\"1433613698543464448\"}]}";
+ Map jsonMap = JSONArray.parseObject(json,Map.class);
+
+
+
+ CrypConfigureServiceImpl crypService = new CrypConfigureServiceImpl();
+
+ CrypBean bean = new CrypBean();
+
+ bean = crypService.signObject(jsonMap);
+ //bean.setObject(jsonMap);
+ //bean.setSign("MEUCIQCqbcS4d8je+XvTwlSJ1/5IEgiZBYgJlQ+nU/oi2ZeLAgIgd+SZ72Hk8xdKhcVnxwrFsIL6gHMKOFDIbo4nLzmYroM=");
+ System.out.println(bean);
+ //System.out.println("signature of Map: "+bean.getSign());
+ //System.out.println("signature object of Map: "+bean.getObject());
+ //byte[] b = JSON.toJSONBytes(bean.getObject(), new SerializerFeature[]{SerializerFeature.MapSortField, SerializerFeature.SortField});
+ //System.out.println("signature object2 of Map: "+new String(b));
+ boolean isOk = crypService.verifyObject(bean);
+ System.out.println("verify result of Map: "+ isOk);
+
+
+
+ }
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/executor/config/XxlJobConfig.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/executor/config/XxlJobConfig.java
new file mode 100644
index 0000000..e60bca6
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/executor/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.chinaunicom.mall.ebtp.extend.executor.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * xxl-job config
+ *
+ * @author xuxueli 2017-04-28
+ */
+@Slf4j
+@Configuration
+public class XxlJobConfig {
+
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+ @Value("${xxl.job.executor.address}")
+ private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+ xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/executor/jobhandler/SampleXxlJob.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/executor/jobhandler/SampleXxlJob.java
new file mode 100644
index 0000000..99b3227
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/executor/jobhandler/SampleXxlJob.java
@@ -0,0 +1,239 @@
+package com.chinaunicom.mall.ebtp.extend.executor.jobhandler;
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobContext;
+import com.xxl.job.core.handler.IJobHandler;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.xxl.job.core.log.XxlJobLogger;
+import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、在Spring Bean实例中,开发Job方法,方式格式要求为 "public ReturnT execute(String param)"
+ * 2、为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
+ *
+ * @author xuxueli 2019-12-11 21:52:51
+ */
+@Slf4j
+@Component
+public class SampleXxlJob {
+
+ /**
+ * 1、简单任务示例(Bean模式)
+ */
+ @XxlJob("extendJobHandler")
+ public ReturnT extendJobHandler(String param) throws Exception {
+ XxlJobLogger.log("XXL-JOB, Hello World.");
+ log.info("本地日志输出 XXL-JOB, Hello World.");
+ for (int i = 0; i < 5; i++) {
+ XxlJobLogger.log("beat at:" + i);
+ TimeUnit.SECONDS.sleep(2);
+ }
+ return ReturnT.SUCCESS;
+ }
+
+
+// /**
+// * 2、分片广播任务
+// */
+// @XxlJob("shardingJobHandler")
+// public ReturnT shardingJobHandler(String param) throws Exception {
+//
+// // 分片参数
+// int shardIndex = XxlJobContext.getXxlJobContext().getShardIndex();
+// int shardTotal = XxlJobContext.getXxlJobContext().getShardTotal();
+//
+// XxlJobLogger.log("分片参数:当前分片序号 = {}, 总分片数 = {}", shardIndex, shardTotal);
+//
+// // 业务逻辑
+// for (int i = 0; i < shardTotal; i++) {
+// if (i == shardIndex) {
+// XxlJobLogger.log("第 {} 片, 命中分片开始处理", i);
+// } else {
+// XxlJobLogger.log("第 {} 片, 忽略", i);
+// }
+// }
+//
+// return ReturnT.SUCCESS;
+// }
+//
+//
+// /**
+// * 3、命令行任务
+// */
+// @XxlJob("commandJobHandler")
+// public ReturnT commandJobHandler(String param) throws Exception {
+// String command = param;
+// int exitValue = -1;
+//
+// BufferedReader bufferedReader = null;
+// try {
+// // command process
+// Process process = Runtime.getRuntime().exec(command);
+// BufferedInputStream bufferedInputStream = new BufferedInputStream(process.getInputStream());
+// bufferedReader = new BufferedReader(new InputStreamReader(bufferedInputStream));
+//
+// // command log
+// String line;
+// while ((line = bufferedReader.readLine()) != null) {
+// XxlJobLogger.log(line);
+// }
+//
+// // command exit
+// process.waitFor();
+// exitValue = process.exitValue();
+// } catch (Exception e) {
+// XxlJobLogger.log(e);
+// } finally {
+// if (bufferedReader != null) {
+// bufferedReader.close();
+// }
+// }
+//
+// if (exitValue == 0) {
+// return IJobHandler.SUCCESS;
+// } else {
+// return new ReturnT(IJobHandler.FAIL.getCode(), "command exit value("+exitValue+") is failed");
+// }
+// }
+//
+//
+// /**
+// * 4、跨平台Http任务
+// * 参数示例:
+// * "url: http://www.baidu.com\n" +
+// * "method: get\n" +
+// * "data: content\n";
+// */
+// @XxlJob("httpJobHandler")
+// public ReturnT httpJobHandler(String param) throws Exception {
+//
+// // param parse
+// if (param==null || param.trim().length()==0) {
+// XxlJobLogger.log("param["+ param +"] invalid.");
+// return ReturnT.FAIL;
+// }
+// String[] httpParams = param.split("\n");
+// String url = null;
+// String method = null;
+// String data = null;
+// for (String httpParam: httpParams) {
+// if (httpParam.startsWith("url:")) {
+// url = httpParam.substring(httpParam.indexOf("url:") + 4).trim();
+// }
+// if (httpParam.startsWith("method:")) {
+// method = httpParam.substring(httpParam.indexOf("method:") + 7).trim().toUpperCase();
+// }
+// if (httpParam.startsWith("data:")) {
+// data = httpParam.substring(httpParam.indexOf("data:") + 5).trim();
+// }
+// }
+//
+// // param valid
+// if (url==null || url.trim().length()==0) {
+// XxlJobLogger.log("url["+ url +"] invalid.");
+// return ReturnT.FAIL;
+// }
+// if (method==null || !Arrays.asList("GET", "POST").contains(method)) {
+// XxlJobLogger.log("method["+ method +"] invalid.");
+// return ReturnT.FAIL;
+// }
+// boolean isPostMethod = method.equals("POST");
+//
+// // request
+// HttpURLConnection connection = null;
+// BufferedReader bufferedReader = null;
+// try {
+// // connection
+// URL realUrl = new URL(url);
+// connection = (HttpURLConnection) realUrl.openConnection();
+//
+// // connection setting
+// connection.setRequestMethod(method);
+// connection.setDoOutput(isPostMethod);
+// connection.setDoInput(true);
+// connection.setUseCaches(false);
+// connection.setReadTimeout(5 * 1000);
+// connection.setConnectTimeout(3 * 1000);
+// connection.setRequestProperty("connection", "Keep-Alive");
+// connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+// connection.setRequestProperty("Accept-Charset", "application/json;charset=UTF-8");
+//
+// // do connection
+// connection.connect();
+//
+// // data
+// if (isPostMethod && data!=null && data.trim().length()>0) {
+// DataOutputStream dataOutputStream = new DataOutputStream(connection.getOutputStream());
+// dataOutputStream.write(data.getBytes("UTF-8"));
+// dataOutputStream.flush();
+// dataOutputStream.close();
+// }
+//
+// // valid StatusCode
+// int statusCode = connection.getResponseCode();
+// if (statusCode != 200) {
+// throw new RuntimeException("Http Request StatusCode(" + statusCode + ") Invalid.");
+// }
+//
+// // result
+// bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
+// StringBuilder result = new StringBuilder();
+// String line;
+// while ((line = bufferedReader.readLine()) != null) {
+// result.append(line);
+// }
+// String responseMsg = result.toString();
+//
+// XxlJobLogger.log(responseMsg);
+// return ReturnT.SUCCESS;
+// } catch (Exception e) {
+// XxlJobLogger.log(e);
+// return ReturnT.FAIL;
+// } finally {
+// try {
+// if (bufferedReader != null) {
+// bufferedReader.close();
+// }
+// if (connection != null) {
+// connection.disconnect();
+// }
+// } catch (Exception e2) {
+// XxlJobLogger.log(e2);
+// }
+// }
+//
+// }
+//
+// /**
+// * 5、生命周期任务示例:任务初始化与销毁时,支持自定义相关逻辑;
+// */
+// @XxlJob(value = "demoJobHandler2", init = "init", destroy = "destroy")
+// public ReturnT demoJobHandler2(String param) throws Exception {
+// XxlJobLogger.log("XXL-JOB, Hello World.");
+// return ReturnT.SUCCESS;
+// }
+// public void init(){
+// logger.info("init");
+// }
+// public void destroy(){
+// logger.info("destory");
+// }
+
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/BidOpenRecordImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/BidOpenRecordImpl.java
index e340337..75bda2e 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/BidOpenRecordImpl.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/BidOpenRecordImpl.java
@@ -29,6 +29,7 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -71,7 +72,7 @@ public class BidOpenRecordImpl implements ExportService {
OpenRecordExportData data = new OpenRecordExportData();
data.setProjName(proj.getProjectName())
- .setProjNum(proj.getProjectBizNum())
+ .setProjNum(Optional.ofNullable(proj.getAgencyCompanyProjectNum()).orElse(proj.getEbpProjectNumber()))
.setBidNum(section.getBidSectBizNum());
ExportTableData tableData = new ExportTableData();
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/CbpsExportServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/CbpsExportServiceImpl.java
index 1d64dc2..57f7d3f 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/CbpsExportServiceImpl.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/CbpsExportServiceImpl.java
@@ -4,6 +4,7 @@ import com.chinaunicom.mall.ebtp.common.poiExport.constant.ExportConstant;
import com.chinaunicom.mall.ebtp.common.poiExport.entity.ExcelTable;
import com.chinaunicom.mall.ebtp.common.poiExport.entity.ExcelTd;
import com.chinaunicom.mall.ebtp.common.poiExport.entity.ExcelTr;
+import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
import com.chinaunicom.mall.ebtp.extend.export.bean.CbpsExportData;
import com.chinaunicom.mall.ebtp.extend.export.bean.ExportParam;
import com.chinaunicom.mall.ebtp.extend.export.service.ExportService;
@@ -15,6 +16,7 @@ import com.chinaunicom.mall.ebtp.extend.feign.entity.rsms.BidEvalEarlyJudgesSumm
import com.chinaunicom.mall.ebtp.extend.feign.entity.rsms.ReviewConfigCategoryDTO;
import com.chinaunicom.mall.ebtp.extend.feign.entity.rsms.ReviewConfigDetailDTO;
import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -23,6 +25,7 @@ import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
/**
@@ -31,6 +34,7 @@ import java.util.Map;
* @author fqj
*/
@Service("cbps")
+@Slf4j
public class CbpsExportServiceImpl implements ExportService {
@Autowired
@@ -47,21 +51,22 @@ public class CbpsExportServiceImpl implements ExportService {
@SneakyThrows
@Override
public void doExport(ExportParam param, HttpServletRequest request, HttpServletResponse response) {
+ log.info("初步评审表,ExportParam = {}", JsonUtils.objectToJson(param));
//导出的表格名称
String dictName = commonFeignService.exportDictName(param.getId(), "初步评审表");
//查询包
ProjectSectionVO section = commonFeignService.projectGetSectionById(param.getSectionId());
-
+ log.info("初步评审表 {},查询包信息 {}", param.getAssessRoomId(), JsonUtils.objectToJson(section));
//查询项目
ProjectRecordVO proj = commonFeignService.projectGetProjById(section.getProjectId());
-
+ log.info("初步评审表 {},查询项目信息 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(proj));
//供应商信息
List suppliers = commonFeignService.tenderGetSupplierRegisterByRoomId(param.getAssessRoomId());
-
+ log.info("初步评审表 {},查询供应商信息 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(suppliers));
//初审评分信息
List earlySummary = commonFeignService.rsmsFindScoreEarlySummary(param);
-
+ log.info("初步评审表 {},查询评分信息 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(earlySummary));
ExcelTable table = new ExcelTable(dictName);
table.setFileName(dictName);
@@ -74,7 +79,7 @@ public class CbpsExportServiceImpl implements ExportService {
table.add(new ExcelTr().setExcelTdList(list));
list = new ArrayList<>();
- list.add(new ExcelTd().setTdValue("招标编号:" + proj.getProjectBizNum()).setCellStyleKey("noBorderLeft12").setIsRowMerge(true).setRowMergeNum(suppliers.size() + 3));
+ list.add(new ExcelTd().setTdValue("招标编号:" + Optional.ofNullable(proj.getAgencyCompanyProjectNum()).orElse(proj.getEbpProjectNumber())).setCellStyleKey("noBorderLeft12").setIsRowMerge(true).setRowMergeNum(suppliers.size() + 3));
table.add(new ExcelTr().setExcelTdList(list));
list = new ArrayList<>();
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/DfhzExportServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/DfhzExportServiceImpl.java
index 662886c..50639d4 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/DfhzExportServiceImpl.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/DfhzExportServiceImpl.java
@@ -1,5 +1,6 @@
package com.chinaunicom.mall.ebtp.extend.export.service.impl;
+import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
import com.chinaunicom.mall.ebtp.extend.export.bean.ExportParam;
import com.chinaunicom.mall.ebtp.extend.export.service.ExportService;
import com.chinaunicom.mall.ebtp.extend.export.service.common.ExportCommonFeignService;
@@ -10,6 +11,7 @@ import com.chinaunicom.mall.ebtp.extend.feign.entity.rsms.BidEvalDetailJudgesSum
import com.chinaunicom.mall.ebtp.extend.feign.entity.rsms.BidEvalDetailSummaryVO;
import com.chinaunicom.mall.ebtp.extend.feign.entity.rsms.JuryPrintVO;
import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFCell;
@@ -24,16 +26,14 @@ import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* 打分汇总
*/
@Service("dfhz")
+@Slf4j
public class DfhzExportServiceImpl implements ExportService {
@@ -50,24 +50,25 @@ public class DfhzExportServiceImpl implements ExportService {
@SneakyThrows
@Override
public void doExport(ExportParam param, HttpServletRequest request, HttpServletResponse response) {
+ log.info("打分汇总表,ExportParam = {}", JsonUtils.objectToJson(param));
//导出的表格名称
String dictName = commonFeignService.exportDictName(param.getId(), "打分汇总表");
//查询包
ProjectSectionVO section = commonFeignService.projectGetSectionById(param.getSectionId());
-
+ log.info("打分汇总表 {},查询包信息 {}", param.getAssessRoomId(), JsonUtils.objectToJson(section));
//查询项目
ProjectRecordVO proj = commonFeignService.projectGetProjById(section.getProjectId());
-
+ log.info("打分汇总表 {},查询项目信息 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(proj));
//供应商信息
List suppliers = commonFeignService.tenderGetSupplierRegisterByRoomId(param.getAssessRoomId());
-
+ log.info("打分汇总表 {},查询供应商信息 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(suppliers));
//评委
List memberAll = commonFeignService.rsmsQueryReportPrintByRoomId(param.getAssessRoomId());
-
+ log.info("打分汇总表 {},查询评委信息 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(memberAll));
//所有类型打分数据源
Map> detailList = commonFeignService.exportScoreSummary(param);
-
+ log.info("打分汇总表 {},查询所有类型打分数据源 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(detailList));
// 创建工作簿
SXSSFWorkbook wb = new SXSSFWorkbook();
//表格样式
@@ -110,7 +111,7 @@ public class DfhzExportServiceImpl implements ExportService {
SXSSFCell projectNumCell0 = projectNumRow.createCell(0);
projectNumCell0.setCellValue("项目编号:");
SXSSFCell projectNumCell1 = projectNumRow.createCell(1);
- projectNumCell1.setCellValue(proj.getProjectBizNum());
+ projectNumCell1.setCellValue(Optional.ofNullable(proj.getAgencyCompanyProjectNum()).orElse(proj.getEbpProjectNumber()));
//列头
List titles0 = new ArrayList<>();
titles0.add("投标人名称");
@@ -170,11 +171,16 @@ public class DfhzExportServiceImpl implements ExportService {
this.createCell(row, cellIndex, cellStyle, "-");
} else {
- BidEvalDetailSummaryVO detailSummary = detailScore.stream().filter(f -> f.getSupplierRegisterId().equals(vo.getCompanyName())).findFirst().orElseGet(BidEvalDetailSummaryVO::new);
+ BidEvalDetailSummaryVO detailSummary = detailScore.stream().filter(f -> f.getSupplierRegisterId().equals(vo.getId())).findFirst().orElseGet(BidEvalDetailSummaryVO::new);
Map memberScoreMap = detailSummary.getScoreMap();
for (JuryPrintVO memberVO : memberAll) {
- BigDecimal score = memberScoreMap.get(memberVO.getUserId()).getScore();
- this.createCell(row, cellIndex++, cellStyle, score == null ? "" : String.valueOf(score));
+ if (memberScoreMap != null && memberScoreMap.containsKey(memberVO.getUserId())) {
+ BigDecimal score = memberScoreMap.get(memberVO.getUserId()).getScore();
+ this.createCell(row, cellIndex++, cellStyle, score == null ? "" : String.valueOf(score));
+ } else {
+ this.createCell(row, cellIndex++, cellStyle, "");
+ }
+
}
this.createCell(row, cellIndex, cellStyle, detailSummary.getFinalScore() == null ? "" : String.valueOf(detailSummary.getFinalScore()));
}
@@ -264,8 +270,8 @@ public class DfhzExportServiceImpl implements ExportService {
row = this.createRow(sheet, rowIndex);
c = row.createCell(titles0.size() - 3);
c.setCellValue("日期:");
- c = row.createCell(titles0.size() - 2);
- c.setCellValue(new SimpleDateFormat("yyyy年MM月dd日").format(new Date()));
+// c = row.createCell(titles0.size() - 2);
+// c.setCellValue(new SimpleDateFormat("yyyy年MM月dd日").format(new Date()));
//合并表头
CellRangeAddress region = new CellRangeAddress(0, 0, 0, titles0.size() - 1);
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/JgdfExportServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/JgdfExportServiceImpl.java
index 85a008c..16279ba 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/JgdfExportServiceImpl.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/JgdfExportServiceImpl.java
@@ -4,6 +4,7 @@ import com.chinaunicom.mall.ebtp.common.poiExport.constant.ExportConstant;
import com.chinaunicom.mall.ebtp.common.poiExport.entity.ExcelTable;
import com.chinaunicom.mall.ebtp.common.poiExport.entity.ExcelTd;
import com.chinaunicom.mall.ebtp.common.poiExport.entity.ExcelTr;
+import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
import com.chinaunicom.mall.ebtp.extend.export.bean.ExportParam;
import com.chinaunicom.mall.ebtp.extend.export.bean.JgdfExportData;
import com.chinaunicom.mall.ebtp.extend.export.service.ExportService;
@@ -14,16 +15,14 @@ import com.chinaunicom.mall.ebtp.extend.feign.entity.ProjectSectionVO;
import com.chinaunicom.mall.ebtp.extend.feign.entity.TfileContentData;
import com.chinaunicom.mall.ebtp.extend.feign.entity.rsms.SupplierRegisterPriceScoreVO;
import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -32,6 +31,7 @@ import java.util.stream.Collectors;
* 价格打分
*/
@Service("jgdf")
+@Slf4j
public class JgdfExportServiceImpl implements ExportService {
@@ -49,24 +49,27 @@ public class JgdfExportServiceImpl implements ExportService {
@SneakyThrows
@Override
public void doExport(ExportParam param, HttpServletRequest request, HttpServletResponse response) {
+ log.info("价格打分表,ExportParam = {}", JsonUtils.objectToJson(param));
//导出的表格名称
String dictName = commonFeignService.exportDictName(param.getId(), "价格打分表");
//查询包
ProjectSectionVO section = commonFeignService.projectGetSectionById(param.getSectionId());
-
+ log.info("价格打分表 {},查询包信息 {}", param.getAssessRoomId(), JsonUtils.objectToJson(section));
//查询项目
ProjectRecordVO proj = commonFeignService.projectGetProjById(section.getProjectId());
-
+ log.info("价格打分表 {},查询项目信息 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(proj));
//供应商信息
List suppliers = commonFeignService.tenderGetSupplierRegisterByRoomId(param.getAssessRoomId());
-
+ log.info("价格打分表 {},查询供应商信息 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(suppliers));
//查询报价信息
List prices = commonFeignService.respsGetQuoteByRoomIdAndTurnSort(param);
+ log.info("价格打分表 {},查询报价信息 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(prices));
Map priceMap = prices.stream().collect(Collectors.toMap(TfileContentData::getTendererId, Function.identity(), (o1, o2) -> o1));
//报价评分
List priceScores = commonFeignService.exportPrice(param);
+ log.info("价格打分表 {},查询报价评分 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(priceScores));
Map priceScoreMap = priceScores.stream().collect(Collectors.toMap(SupplierRegisterPriceScoreVO::getSupplierRegisterId, Function.identity(), (o1, o2) -> o1));
ExcelTable table = new ExcelTable(dictName);
@@ -81,7 +84,7 @@ public class JgdfExportServiceImpl implements ExportService {
table.add(new ExcelTr().setExcelTdList(list));
list = new ArrayList<>();
- list.add(new ExcelTd().setTdValue("招标编号:" + proj.getProjectBizNum()).setCellStyleKey("noBorderLeft12").setIsRowMerge(true).setRowMergeNum(7));
+ list.add(new ExcelTd().setTdValue("招标编号:" + Optional.ofNullable(proj.getAgencyCompanyProjectNum()).orElse(proj.getEbpProjectNumber())).setCellStyleKey("noBorderLeft12").setIsRowMerge(true).setRowMergeNum(7));
table.add(new ExcelTr().setExcelTdList(list));
list = new ArrayList<>();
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/JudgesSignImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/JudgesSignImpl.java
index c4423d3..375ca98 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/JudgesSignImpl.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/service/impl/JudgesSignImpl.java
@@ -1,5 +1,6 @@
package com.chinaunicom.mall.ebtp.extend.export.service.impl;
+import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
import com.chinaunicom.mall.ebtp.extend.export.bean.ExportParam;
import com.chinaunicom.mall.ebtp.extend.export.service.ExportService;
import com.chinaunicom.mall.ebtp.extend.export.service.common.ExportCommonFeignService;
@@ -9,6 +10,7 @@ import com.chinaunicom.mall.ebtp.extend.feign.entity.rsms.JuryPrintVO;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -26,6 +28,7 @@ import java.util.Map;
* 评标委员会签字表
*/
@Service("judgesSign")
+@Slf4j
public class JudgesSignImpl implements ExportService {
@Autowired
@@ -44,11 +47,13 @@ public class JudgesSignImpl implements ExportService {
*/
@Override
public void doExport(ExportParam param, HttpServletRequest request, HttpServletResponse response) {
-
+ log.info("评标委员会签字表,ExportParam = {}", JsonUtils.objectToJson(param));
//项目和招标名称数据
ProjectSectionVO section = commonFeignService.projectGetSectionById(param.getSectionId());
+ log.info("评标委员会签字表 {},查询项目信息 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(section));
//专家人员数据
List list = commonFeignService.rsmsQueryReportPrintByRoomId(param.getAssessRoomId());
+ log.info("评标委员会签字表 {},查询专家人员数据 = {}", param.getAssessRoomId(), JsonUtils.objectToJson(list));
ArrayList