Veronique пре 11 месеци
родитељ
комит
4523810702

+ 2 - 0
conf/application-yjWebOne.xml

@@ -72,6 +72,7 @@
             </service>
             <service value="com.yinjie.heating.webcore.rest.ERPUpdateRest"/>
             <service value="com.yinjie.heating.webcore.rest.SystemRest"/>
+            <service value="com.yinjie.heating.webcore.rest.TestRest"/>
             <service value="com.yinjie.heating.webcore.rest.DocInfoRest">
                 <isUseScriptService value="true"/>
             </service>
@@ -95,6 +96,7 @@
             </service>
             <service value="com.yinjie.heating.webcore.rest.ERPUpdateRest"/>
             <service value="com.yinjie.heating.webcore.rest.SystemRest"/>
+            <service value="com.yinjie.heating.webcore.rest.TestRest"/>
             <service value="com.yinjie.heating.webcore.rest.DocInfoRest">
                 <isUseScriptService value="true"/>
             </service>

+ 2 - 2
conf/script/1000/init/Init_20_HeatingApp.groovy

@@ -25,10 +25,10 @@ static def createRunnable(RedisService redisService, NoSqlKeysService keysServic
             List<HeatingAppInvoker> invokerList = heatingDocDao.selectAllHeatingAppInvoker(params, dataSourceId, supplierCode)
 
             heatingApps.each {
-                it.invokerList.addAll(invokerList.findAll { x -> x.idApp == it.id })
+                it.invokerList.addAll(invokerList.findAll { x -> x.idHeatingApp == it.id })
             }
 
-            Map<String, String> heatingAppMap = heatingApps.collectEntries { [String.valueOf(it.getId()), jsonConvert.convertTo(it)] }
+            Map<String, String> heatingAppMap = heatingApps.collectEntries { [String.valueOf(it.getAppId()), jsonConvert.convertTo(it)] }
 
             if (!heatingAppMap.isEmpty()) {
                 redisService.hmset(keysService.getRedisKey(RedisKeys.KEY_HEATING_APP, supplierCode), heatingAppMap)

+ 1 - 1
conf/sqlroot/com/yinjie/heating/business/dao/HeatingDocDao.dql

@@ -37,7 +37,7 @@ where appId = #{appid};
 select * from $table$
 -- trim prefix=WHERE prefixOverrides=AND|OR
   -- isNotEmpty ids
-        and idApp in (/* in ids */)
+        and idHeatingApp in (/* in ids */)
   -- end
 -- end
 ;

+ 1 - 1
doc/热力服务商接口说明.md

@@ -41,7 +41,7 @@ RAS密钥可以使用支付宝提供的工具计算 [密钥生成工具](http://
 
 # 接口说明
 
-平台发起调用,商户收到调用信息并验证签名后返回对应的业务信息
+平台发起调用,商户收到调用信息并验证签名后返回对应的业务信息,商户在进件时需要提供对应接口的访问地址
 
 # 查询缴费单
 

+ 6 - 2
yjBusiness/src/main/java/com/yinjie/heating/business/service/heating/CallThirdAppServiceImpl.java

@@ -1,6 +1,9 @@
 package com.yinjie.heating.business.service.heating;
 
+import com.sweetfish.service.Local;
 import com.sweetfish.service.RetResult;
+import com.sweetfish.util.AutoLoad;
+import com.sweetfish.util.ResourceType;
 import com.yinjie.heating.common.api.heating.CallThirdAppService;
 import com.yinjie.heating.common.base.BaseService;
 import com.yinjie.heating.common.datas.ERPModule;
@@ -10,8 +13,9 @@ import com.yinjie.heating.common.entity.callthird.QueryFeeResponse;
 import com.yinjie.heating.common.entity.heating.HeatingApp;
 import org.rex.RMap;
 
-import java.util.Date;
-
+@AutoLoad(false)
+@Local
+@ResourceType(CallThirdAppService.class)
 public class CallThirdAppServiceImpl extends BaseService implements CallThirdAppService {
     @Override
     public RetResult<QueryFeeResponse> callQueryFee(String billKey, HeatingApp heatingApp, String dataSourceId, long supplierCode) {

+ 5 - 6
yjCommon/src/main/java/com/yinjie/heating/common/entity/callthird/BaseResponse.java

@@ -11,7 +11,7 @@ public class BaseResponse extends BaseEntity {
 
     private String respMsg;
 
-    private long timeStamp;
+    private String timeStamp;
 
     public BaseResponse() {
     }
@@ -53,15 +53,14 @@ public class BaseResponse extends BaseEntity {
         this.respMsg = respMsg;
     }
 
-    public long getTimeStamp() {
+    public String getTimeStamp() {
         return timeStamp;
     }
 
-    public void setTimeStamp(long timeStamp) {
+    public void setTimeStamp(String timeStamp) {
         this.timeStamp = timeStamp;
     }
 
-
     public static final class Builder {
         private long createBy;
         private Date createTime;
@@ -72,7 +71,7 @@ public class BaseResponse extends BaseEntity {
         private String appId;
         private String respCode;
         private String respMsg;
-        private long timeStamp;
+        private String timeStamp;
 
         public Builder() {
         }
@@ -122,7 +121,7 @@ public class BaseResponse extends BaseEntity {
             return this;
         }
 
-        public Builder timeStamp(long val) {
+        public Builder timeStamp(String val) {
             timeStamp = val;
             return this;
         }

+ 2 - 2
yjCommon/src/main/java/com/yinjie/heating/common/entity/callthird/QueryFeeResponse.java

@@ -74,7 +74,7 @@ public class QueryFeeResponse extends BaseResponse {
         private String appId;
         private String respCode;
         private String respMsg;
-        private long timeStamp;
+        private String timeStamp;
         private String billKey;
         private String customerName;
         private String balance;
@@ -128,7 +128,7 @@ public class QueryFeeResponse extends BaseResponse {
             return this;
         }
 
-        public Builder timeStamp(long val) {
+        public Builder timeStamp(String val) {
             timeStamp = val;
             return this;
         }

+ 2 - 1
yjCommon/src/main/java/com/yinjie/heating/common/entity/heating/HeatingApp.java

@@ -4,6 +4,7 @@ import com.sweetfish.util.Comment;
 import com.yinjie.heating.common.entity.base.BaseEntity;
 import org.rex.db.RColumn;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -58,7 +59,7 @@ public class HeatingApp extends BaseEntity {
   private String whiteIps;
 
   @Comment("已注册的接口")
-  private List<HeatingAppInvoker> invokerList;
+  private List<HeatingAppInvoker> invokerList = new ArrayList<HeatingAppInvoker>();
 
   public long getId() {
     return id;

+ 13 - 1
yjCommon/src/main/java/com/yinjie/heating/common/entity/heating/HeatingAppInvoker.java

@@ -9,12 +9,16 @@ public class HeatingAppInvoker extends BaseEntity {
     @Comment("")
     private long id;
 
+    @Comment("关联的主表id")
+    @RColumn("idheatingapp")
+    private long idHeatingApp;
+
     @RColumn("appid")
     @Comment("关联的appId")
     private String appId;
 
-    @Comment("appName")
     @RColumn("appname")
+    @Comment("appName")
     private String appName;
 
     @RColumn("invokername")
@@ -88,4 +92,12 @@ public class HeatingAppInvoker extends BaseEntity {
     public void setInvokerUrl(String invokerUrl) {
         this.invokerUrl = invokerUrl;
     }
+
+    public long getIdHeatingApp() {
+        return idHeatingApp;
+    }
+
+    public void setIdHeatingApp(long idHeatingApp) {
+        this.idHeatingApp = idHeatingApp;
+    }
 }

+ 82 - 0
yjWebCore/src/main/java/com/yinjie/heating/webcore/rest/TestRest.java

@@ -0,0 +1,82 @@
+package com.yinjie.heating.webcore.rest;
+
+import com.dySweetFishPlugin.sql.RMapUtils;
+import com.sweetfish.net.http.*;
+import com.sweetfish.service.Local;
+import com.sweetfish.service.RetResult;
+import com.sweetfish.util.AutoLoad;
+import com.yinjie.heating.common.api.ERPService;
+import com.yinjie.heating.common.api.heating.CallThirdAppService;
+import com.yinjie.heating.common.api.heating.HeatingDocService;
+import com.yinjie.heating.common.base.BaseService;
+import com.yinjie.heating.common.datas.ERPHeader;
+import com.yinjie.heating.common.datas.HttpCode;
+import com.yinjie.heating.common.entity.base.DataBaseMultiItemEx;
+import com.yinjie.heating.common.entity.callthird.BaseResponse;
+import com.yinjie.heating.common.entity.callthird.QueryFeeResponse;
+import com.yinjie.heating.common.entity.heating.HeatingApp;
+import com.yinjie.heating.common.entity.site.ERPTokenUser;
+import org.rex.RMap;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+
+/**
+ * Created by jlutt on 2020-07-29
+ * ERP平台基础服务
+ *
+ * @author jlutt
+ */
+@AutoLoad(false)
+@Local
+@RestService(name = "test", moduleid = 1, comment = "测试接口")
+@SuppressWarnings({"rawtypes", "unused"})
+public class TestRest extends BaseService {
+
+    @Resource
+    CallThirdAppService callThirdAppService;
+    @Resource
+    HeatingDocService heatingDocService;
+
+    @RestMapping(name = "callQueryFee", sort = 1, methods = {"GET", "POST"})
+    public CompletableFuture<RMap> callQueryFee(
+            @RestParam(name = "&", comment = "登录用户,无需传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    HeatingApp app = heatingDocService.getRedisHeatingApp("TEST000000", Long.parseLong(supplierCode));
+
+                    RetResult<QueryFeeResponse> result = callThirdAppService.callQueryFee("testUserBillKey", app, dataSourceId, Long.parseLong(supplierCode));
+                    if (result.isSuccess()) {
+                        return RMapUtils.successV2(result.getResult(), null, null);
+                    } else {
+                        return RMapUtils.error(HttpCode.BAD_REQUEST.value(), "测试失败");
+                    }
+
+                }, getExecutor()
+        );
+    }
+
+    @RestMapping(name = "callRequestPay", sort = 2, methods = {"GET", "POST"})
+    public CompletableFuture<RMap> callRequestPay(
+            @RestParam(name = "&", comment = "登录用户,无需传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    HeatingApp app = heatingDocService.getRedisHeatingApp("TEST000000", Long.parseLong(supplierCode));
+
+                    RetResult<BaseResponse> result = callThirdAppService.callRequestPay("testUserBillKey", "20250425", "bankNo000000000000000",
+                            "100", app, dataSourceId, Long.parseLong(supplierCode));
+                    if (result.isSuccess()) {
+                        return RMapUtils.successV2(result.getResult(), null, null);
+                    } else {
+                        return RMapUtils.error(HttpCode.BAD_REQUEST.value(), "测试失败");
+                    }
+
+                }, getExecutor()
+        );
+    }
+}