|
@@ -315,6 +315,159 @@ func CurlEducateSceneTokenQuery(args md.CurlEducateSceneTokenReq, userIdentity * |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func CurlEducateSceneTokenQueryV2(args md.CurlEducateSceneTokenReq, userIdentity *model.UserIdentity, userToken, schoolName string) (err error, resp interface{}) { |
|
|
|
|
|
utils.FilePutContents("CurlEducateSceneTokenQuery", utils.SerializeStr(map[string]interface{}{ |
|
|
|
|
|
"args": args, |
|
|
|
|
|
})) |
|
|
|
|
|
|
|
|
|
|
|
if userToken == "" { |
|
|
|
|
|
//1、TODO::生成用户信息token(使用 alipay.commerce.educate.scene.token.create 接口生成用户信息token) |
|
|
|
|
|
url := cfg.SmartCanteenPay + "/alipay/faceCollection/educateSceneTokenCreate" |
|
|
|
|
|
bytes, err1 := utils.CurlPost(url, utils.Serialize(map[string]interface{}{ |
|
|
|
|
|
"config": map[string]string{ |
|
|
|
|
|
"ali_app_id": args.Config.AliAppId, |
|
|
|
|
|
"ali_private_key": args.Config.AliPrivateKey, |
|
|
|
|
|
"ali_public_key": args.Config.AliPublicKey, |
|
|
|
|
|
}, |
|
|
|
|
|
"cert_no": args.CertNo, |
|
|
|
|
|
"school_std_code": args.SchoolStdCode, |
|
|
|
|
|
"student_name": args.StudentName, |
|
|
|
|
|
"out_user_id": args.OutUserId, |
|
|
|
|
|
"cert_type": args.CertType, |
|
|
|
|
|
"sub_code": "SCHOOL_FACE_PASS_QUERY", |
|
|
|
|
|
}), nil) |
|
|
|
|
|
if err1 != nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
var result struct { |
|
|
|
|
|
Code int `json:"code"` |
|
|
|
|
|
Msg string `json:"msg"` |
|
|
|
|
|
Data interface{} `json:"data"` |
|
|
|
|
|
} |
|
|
|
|
|
err1 = json.Unmarshal(bytes, &result) |
|
|
|
|
|
utils.FilePutContents("CurlEducateSceneTokenCreate", utils.SerializeStr(result)) |
|
|
|
|
|
if err1 != nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if result.Code != 0 { |
|
|
|
|
|
if result.Msg != "" { |
|
|
|
|
|
err1 = errors.New(result.Msg) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
err1 = errors.New("请求智慧餐厅支付 异常/失败") |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
resultMap, ok := result.Data.(map[string]interface{}) |
|
|
|
|
|
if !ok { |
|
|
|
|
|
err1 = errors.New("获取 user_token 失败") |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if resultMap["code"].(string) != "10000" { |
|
|
|
|
|
return nil, resultMap |
|
|
|
|
|
} |
|
|
|
|
|
userToken = resultMap["token"].(string) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//2、TODO::查询用户一脸通行开通状态:根据获取到的用户信息token,使用 alipay.commerce.educate.scene.token.query 接口查询用户人脸采集状态 |
|
|
|
|
|
url := cfg.SmartCanteenPay + "/alipay/faceCollection/educateSceneTokenQuery" |
|
|
|
|
|
bytes, err := utils.CurlPost(url, utils.Serialize(map[string]string{ |
|
|
|
|
|
"user_token": userToken, |
|
|
|
|
|
}), nil) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var result1 struct { |
|
|
|
|
|
Code int `json:"code"` |
|
|
|
|
|
Msg string `json:"msg"` |
|
|
|
|
|
Data interface{} `json:"data"` |
|
|
|
|
|
} |
|
|
|
|
|
err = json.Unmarshal(bytes, &result1) |
|
|
|
|
|
utils.FilePutContents("CurlEducateSceneTokenQuery", utils.SerializeStr(result1)) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if result1.Code != 0 { |
|
|
|
|
|
if result1.Msg != "" { |
|
|
|
|
|
err = errors.New(result1.Msg) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
err = errors.New("请求智慧餐厅支付 异常/失败") |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return nil, result1.Data |
|
|
|
|
|
|
|
|
|
|
|
// 更新/新增 `self_support_for_user_facel_info` |
|
|
|
|
|
selfSupportForUserFaceInfoDb := db.SelfSupportForUserFaceInfoDb{} |
|
|
|
|
|
selfSupportForUserFaceInfoDb.Set(userIdentity.Id) |
|
|
|
|
|
info, err := selfSupportForUserFaceInfoDb.GetSelfSupportForUserFaceInfo() |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
now := time.Now().Format("2006-01-02 15:04:05") |
|
|
|
|
|
var res map[string]string |
|
|
|
|
|
utils.Unserialize([]byte(utils.SerializeStr(result1.Data)), &res) |
|
|
|
|
|
|
|
|
|
|
|
if info == nil { |
|
|
|
|
|
var concentrateSchoolFacePassStatus = 1 |
|
|
|
|
|
if res["school_face_pass_status"] == "OPEN" { |
|
|
|
|
|
concentrateSchoolFacePassStatus = 3 |
|
|
|
|
|
} |
|
|
|
|
|
info = &model.SelfSupportForUserFaceInfo{ |
|
|
|
|
|
EnterpriseId: userIdentity.EnterpriseId, |
|
|
|
|
|
UserIdentityId: userIdentity.Id, |
|
|
|
|
|
CollectFaceType: 1, |
|
|
|
|
|
SchoolCode: res["school_code"], |
|
|
|
|
|
SchoolStdCode: res["school_std_code"], |
|
|
|
|
|
ParentUserId: res["parent_user_id"], |
|
|
|
|
|
ParentLogonId: res["parent_logon_id"], |
|
|
|
|
|
UserId: res["user_id"], |
|
|
|
|
|
SchoolFacePassStatus: res["school_face_pass_status"], |
|
|
|
|
|
SchoolFacePaymentStatus: res["school_face_payment_status"], |
|
|
|
|
|
ConcentrateSchoolFacePassStatus: concentrateSchoolFacePassStatus, |
|
|
|
|
|
CreateAt: now, |
|
|
|
|
|
UpdateAt: now, |
|
|
|
|
|
} |
|
|
|
|
|
_, err2 := selfSupportForUserFaceInfoDb.SelfSupportForUserFaceInfoInsert(info) |
|
|
|
|
|
if err2 != nil { |
|
|
|
|
|
return err2, nil |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
var concentrateSchoolFacePassStatus = info.ConcentrateSchoolFacePassStatus |
|
|
|
|
|
if res["school_face_pass_status"] == "OPEN" { |
|
|
|
|
|
concentrateSchoolFacePassStatus = 3 |
|
|
|
|
|
} |
|
|
|
|
|
info.ParentUserId = res["parent_user_id"] |
|
|
|
|
|
info.ParentLogonId = res["parent_logon_id"] |
|
|
|
|
|
info.UserId = res["user_id"] |
|
|
|
|
|
info.SchoolFacePassStatus = res["school_face_pass_status"] |
|
|
|
|
|
info.SchoolFacePaymentStatus = res["school_face_payment_status"] |
|
|
|
|
|
info.ConcentrateSchoolFacePassStatus = concentrateSchoolFacePassStatus |
|
|
|
|
|
info.UpdateAt = now |
|
|
|
|
|
_, err2 := selfSupportForUserFaceInfoDb.SelfSupportForUserFaceInfoUpdate(info, "parent_user_id", "parent_logon_id", "user_id", "school_face_pass_status", "school_face_payment_status", "concentrate_school_face_pass_status", "update_at") |
|
|
|
|
|
if err2 != nil { |
|
|
|
|
|
return err2, nil |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//TODO:: school_face_pass_status && school_face_payment_status 都为 open 状态,则 签约信息同步“alipay.planet.ecocampus.api.roster.signUpInfo” 至 行业云 |
|
|
|
|
|
CurlAlipayPlanetEcocampusApiRosterSignUpInfo(md.CurlAlipayPlanetEcocampusApiRosterSignUpInfoReq{ |
|
|
|
|
|
FaceUid: info.UserId, |
|
|
|
|
|
ParentUid: info.ParentUserId, |
|
|
|
|
|
ParentLogonId: info.ParentLogonId, |
|
|
|
|
|
RosterName: args.StudentName, |
|
|
|
|
|
OutRosterCode: args.OutUserId, |
|
|
|
|
|
SchoolCode: info.SchoolCode, |
|
|
|
|
|
SchoolName: schoolName, |
|
|
|
|
|
ScanFacePayStatus: "ON", |
|
|
|
|
|
FaceOpenStatus: "ON", |
|
|
|
|
|
}) |
|
|
|
|
|
return nil, result1.Data |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
func CurlEducateSceneKidsClose(args md.CurlEducateSceneKidsCloseReq) (err error, resp interface{}) { |
|
|
func CurlEducateSceneKidsClose(args md.CurlEducateSceneKidsCloseReq) (err error, resp interface{}) { |
|
|
utils.FilePutContents("CurlEducateSceneKidsClose", utils.SerializeStr(map[string]interface{}{ |
|
|
utils.FilePutContents("CurlEducateSceneKidsClose", utils.SerializeStr(map[string]interface{}{ |
|
|
"args": args, |
|
|
"args": args, |
|
|