Selaa lähdekoodia

用户注册时给他绑定地址

skyfffire 1 kuukausi sitten
vanhempi
commit
5fe629022e

+ 13 - 0
src/main/java/common/model/base/BaseUser.java

@@ -164,6 +164,19 @@ public abstract class BaseUser<M extends BaseUser<M>> extends Model<M> implement
 	public java.lang.String getHygSignRst() {
 		return getStr("hyg_sign_rst");
 	}
+	/**
+	 * 用户绑定的地址
+	 */
+	public void setBsnAccountAddress(java.lang.String bsnAccountAddress) {
+		set("bsn_account_address", bsnAccountAddress);
+	}
+	
+	/**
+	 * 用户绑定的地址
+	 */
+	public java.lang.String getBsnAccountAddress() {
+		return getStr("bsn_account_address");
+	}
 	public void setCreateTime(java.lang.Long createTime) {
 		set("create_time", createTime);
 	}

+ 3 - 2
src/main/java/common/utils/bsn/BsnSDK.java

@@ -93,9 +93,10 @@ public class BsnSDK {
     
     public static void main(String[] args) {
         try {
-            // System.out.println(HygSDK.findWorkerDetails(""));
             // System.out.println(accountInfo());
-            // System.out.println(createChainAccount("DLTBH_10001"));
+            // {"code":-1,"errorLogCode":"ERR:SL-ST_OAI1b264496b3b6477c99e3dc083b02f5bd52_1758076191510_ED","message":"MSG_10051035"}
+            // {"code":0,"data":{"privateKey":"xxx","opbChainClientAddress":"0xcf6203a04a418d765141d285a9956c8046f1a343","publicKey":"xxx","opbChainClientName":"DLTBH_10002"},"errorLogMessage":"","message":"MSG_00000"}
+            // System.out.println(createChainAccount("DLTBH_10002"));
             
             // System.out.println(createNft("nft", "http://117.72.208.239/uploads/20250910/2e9f839835224bb68726743caaa1a6b2.png", 100, "DLTBH_NFT_1"));
             // {"code":0,"data":{"txHash":"79444b6937494ed1c5fa605fc439653dfff8074696a84c70cbaf6127a3cbcb2a","status":0},"errorLogMessage":"","message":"MSG_00000"}

+ 2 - 1
src/main/java/modules/user/UserController.java

@@ -270,7 +270,8 @@ public class UserController extends MyController {
     // 慧用工充值回调地址
     public void hygDeposited() {
         JSONObject requestBodyJson = MyController.getJsonModelByRequestAndType(getRequest(), JSONObject.class);
-        System.out.println(getAttrNames());
+        System.out.println("有人调用Deposited," + requestBodyJson);
+        // {"payerAccount":"21321321","payeeName":"九江慧用工科技有限公司","payerRemark":"测试数据","orderNo":"1417574334783819776","cooperatorId":"C1415369626593792000","rechargeStatus":"20","payerName":"123213213","completeTime":"20250916181418","payeeAccount":"qiandaibao05","cooperatorName":"特别火(嵌入板)O","paymentAmount":"99900"}
         String businessBodyEncryptedHex = requestBodyJson.getString("businessBody");
 
         try {

+ 28 - 1
src/main/java/modules/user/UserService.java

@@ -1,8 +1,10 @@
 package modules.user;
 
+import com.alibaba.fastjson.JSONObject;
 import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.activerecord.Db;
 import common.model.User;
+import common.utils.bsn.BsnSDK;
 import common.utils.http.MyRet;
 
 import java.util.List;
@@ -22,7 +24,32 @@ public class UserService {
             return MyRet.fail("注册失败,请联系客服。");
         }
 
-        return MyRet.ok("注册成功。");
+        // 生成Bsn地址
+        try {
+            JSONObject response = BsnSDK.createChainAccount("DLTBH_" + user.getId() + "_" + user.getCreateTime());
+            
+            if (response.getInteger("code") == -1) {
+                throw new RuntimeException("地址创建失败:" + response);
+            }
+            
+            JSONObject data = response.getJSONObject("data");
+            String address = data.getString("opbChainClientAddress");
+            
+            if (StrKit.isBlank(address)) {
+                throw new RuntimeException("地址创建成功,但获取失败:" + data);
+            }
+            
+            user.setBsnAccountAddress(address);
+            
+            if (user.update()) {
+                return MyRet.ok("注册成功。");
+            } else {
+                throw new RuntimeException("地址生成获取成功,但更新给用户失败");
+            }
+        } catch (Exception e) {
+            String msg = "注册成功,但是BSN地址生成失败:" + e.getMessage() + ", 请联系客服处理。";
+            return MyRet.fail(msg);
+        }
     }
     
     public MyRet login(String mobileNumber, String pwdMd5Md5) {

+ 6 - 6
src/test/rest/UserControllerTest.http

@@ -9,9 +9,9 @@ POST {{ baseUrl }}/user/hello
 #  "token": "-604525842767378248"
 #}
 
-### 慧用工签约回调地址
-POST {{ baseUrl }}/user/hygSign
-Content-Type: application/json
+#### 慧用工签约回调地址
+#POST {{ baseUrl }}/user/hygSign
+#Content-Type: application/json
 
 
 ### 登录,可以选择传入pwd_md5(密码登录)或verify_code(验证码登录)。如果两者都传入了,后台会优先使用pwd_md5
@@ -36,7 +36,7 @@ POST {{ baseUrl }}/user/sendVerifyCode
 Content-Type: application/json
 
 {
-  "mobile_number": "17781855864"
+  "mobile_number": "17760515340"
 }
 
 ### 注册
@@ -44,10 +44,10 @@ POST {{ baseUrl }}/user/register
 Content-Type: application/json
 
 {
-  "mobile_number": "17781855864",
+  "mobile_number": "17760515340",
   "pwd_md5": "e10adc3949ba59abbe56e057f20f883e",
   "repeat_pwd_md5": "e10adc3949ba59abbe56e057f20f883e",
-  "verify_code": "2756"
+  "verify_code": "6962"
 }
 
 ### 登出