+ SyncStoresQualify
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package partner
|
||||
|
||||
import "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
import (
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
)
|
||||
|
||||
type IStoreHandler interface {
|
||||
GetAllStoresVendorID(ctx *jxcontext.Context) (vendorStoreIDs []string, err error)
|
||||
@@ -9,3 +12,8 @@ type IStoreHandler interface {
|
||||
// opTime格式为整数1130代表11:30
|
||||
UpdateStoreOpTime(ctx *jxcontext.Context, storeID int, vendorStoreID string, opTimeList []int16) (err error)
|
||||
}
|
||||
|
||||
// 同步资质信息至平台
|
||||
type IStoreSyncQualifyHandler interface {
|
||||
SyncQualify(ctx *jxcontext.Context, storeDetail *dao.StoreDetail) (err error)
|
||||
}
|
||||
|
||||
@@ -357,3 +357,90 @@ func (c *PurchaseHandler) GetAllStoresVendorID(ctx *jxcontext.Context) (vendorSt
|
||||
vendorStoreIDs, err = api.JdAPI.GetStationsByVenderId()
|
||||
return vendorStoreIDs, err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) storeUploadImgByURL(inImgURL string) (imgURL string, err error) {
|
||||
if globals.EnableJdStoreWrite {
|
||||
imgURL, err = api.JdPageAPI.StoreUploadImgByURL(inImgURL)
|
||||
} else {
|
||||
imgURL = utils.GetUUID()
|
||||
}
|
||||
return imgURL, err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.StoreDetail) (err error) {
|
||||
if storeDetail.LicenceCode == "" || storeDetail.Licence == "" {
|
||||
return fmt.Errorf("营业执照信息不全")
|
||||
}
|
||||
if storeDetail.IDCode == "" || storeDetail.IDCardFront == "" || storeDetail.IDCardBack == "" || storeDetail.IDValid == "" {
|
||||
return fmt.Errorf("个人信息不全")
|
||||
}
|
||||
var qualifyList []*jdapi.QualifyItem
|
||||
licenceDetail, err := api.JdPageAPI.GetCorporationInfo(storeDetail.VendorStoreID, storeDetail.LicenceCode)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
licenceURL, err := c.storeUploadImgByURL(storeDetail.Licence)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
qualifyList = append(qualifyList, &jdapi.QualifyItem{
|
||||
QualifyType: jdapi.QualifyTypeCompany,
|
||||
QualifyURL: licenceURL,
|
||||
QualifyExpireStart: licenceDetail.StartDate,
|
||||
QualifyExpireForever: 0,
|
||||
QualifyName: licenceDetail.OperName,
|
||||
LicenceType: "-1",
|
||||
QualifyNumber: storeDetail.LicenceCode,
|
||||
QualifyAddress: licenceDetail.Address,
|
||||
LicenceName: licenceDetail.Name,
|
||||
EconKind: licenceDetail.EconKind,
|
||||
Scope: licenceDetail.Scope,
|
||||
})
|
||||
if licenceDetail.EconKind == jdapi.LincenceEconKindPerson { // 个人
|
||||
idFrondURL, err := c.storeUploadImgByURL(storeDetail.IDCardFront)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
personQualify := &jdapi.QualifyItem{
|
||||
QualifyType: jdapi.QualifyTypePerson,
|
||||
QualifyURL: idFrondURL,
|
||||
QualifyExpireStart: storeDetail.IDValid,
|
||||
QualifyNumber: storeDetail.IDCode,
|
||||
QualifyOwner: storeDetail.LicenceOwnerName,
|
||||
}
|
||||
if storeDetail.IDExpire == "" {
|
||||
personQualify.QualifyExpireForever = 0
|
||||
} else {
|
||||
personQualify.QualifyExpireForever = 1
|
||||
personQualify.QualifyExpireEnd = storeDetail.IDExpire
|
||||
}
|
||||
qualifyList = append(qualifyList, personQualify)
|
||||
} else {
|
||||
idFrondURL, err := c.storeUploadImgByURL(storeDetail.IDCardFront)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
qualifyList = append(qualifyList, &jdapi.QualifyItem{
|
||||
QualifyType: jdapi.QualifyTypeAddInfo,
|
||||
QualifyURL: idFrondURL,
|
||||
QualifyExpireForever: 1,
|
||||
})
|
||||
}
|
||||
if storeDetail.IDExpire == "" {
|
||||
idBackURL, err := c.storeUploadImgByURL(storeDetail.IDCardBack)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
qualifyList = append(qualifyList, &jdapi.QualifyItem{
|
||||
QualifyType: jdapi.QualifyTypeAddInfo,
|
||||
QualifyURL: idBackURL,
|
||||
QualifyExpireForever: 1,
|
||||
})
|
||||
}
|
||||
globals.SugarLogger.Debug(utils.Format4Output(qualifyList, false))
|
||||
if globals.EnableJdStoreWrite {
|
||||
// err = api.JdPageAPI.SaveQualify(storeDetail.VendorStoreID, jdapi.SaveQualifyActionTypeCommit, qualifyList)
|
||||
err = api.JdPageAPI.SaveQualify(storeDetail.VendorStoreID, jdapi.SaveQualifyActionTypeSave, qualifyList)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
@@ -81,3 +82,14 @@ func TestUpdateStore2(t *testing.T) {
|
||||
// t.Fatal("result doesn't match")
|
||||
// }
|
||||
// }
|
||||
|
||||
func TestSyncQualify(t *testing.T) {
|
||||
storeDetail, err := dao.GetStoreDetail(dao.GetDB(), 102610, model.VendorIDJD)
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
err = curPurchaseHandler.SyncQualify(jxcontext.AdminCtx, storeDetail)
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user