161 lines
4.3 KiB
Go
161 lines
4.3 KiB
Go
package jd
|
||
|
||
import (
|
||
"encoding/json"
|
||
"fmt"
|
||
"net/url"
|
||
|
||
"git.rosy.net.cn/baseapi/utils"
|
||
|
||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||
|
||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||
"git.rosy.net.cn/jx-callback/business/model"
|
||
"git.rosy.net.cn/jx-callback/business/partner"
|
||
"git.rosy.net.cn/jx-callback/globals"
|
||
)
|
||
|
||
type PurchaseHandler struct {
|
||
partner.BasePurchasePlatform
|
||
}
|
||
|
||
var (
|
||
CurPurchaseHandler *PurchaseHandler
|
||
)
|
||
|
||
func init() {
|
||
globals.SugarLogger.Debug("init jd")
|
||
CurPurchaseHandler = new(PurchaseHandler)
|
||
partner.RegisterPurchasePlatform(CurPurchaseHandler)
|
||
}
|
||
|
||
func getAPI(appOrgCode string) (apiObj *jdapi.API) {
|
||
if appOrgCode == "" {
|
||
globals.SugarLogger.Warnf("getAPI appOrgCode is empty")
|
||
}
|
||
return partner.CurAPIManager.GetAPI(model.VendorIDJD, appOrgCode).(*jdapi.API)
|
||
}
|
||
|
||
func GetAPI(appOrgCode string) (apiObj *jdapi.API) {
|
||
return getAPI(appOrgCode)
|
||
}
|
||
|
||
func AppKey2OrgCode(appKey string) (vendorOrgCode string) {
|
||
apiList := partner.CurAPIManager.GetAppOrgCodeList(model.VendorIDJD)
|
||
for _, v := range apiList {
|
||
jdAPI := partner.CurAPIManager.GetAPI(model.VendorIDJD, v).(*jdapi.API)
|
||
if jdAPI.GetAppKey() == appKey {
|
||
vendorOrgCode = v
|
||
break
|
||
}
|
||
}
|
||
if vendorOrgCode == "" {
|
||
globals.SugarLogger.Warnf("AppKey2OrgCode appKey:%s get empty vendorOrgCode", appKey)
|
||
}
|
||
return vendorOrgCode
|
||
}
|
||
|
||
func (c *PurchaseHandler) GetVendorID() int {
|
||
return model.VendorIDJD
|
||
}
|
||
|
||
func JdOperationTime2JxOperationTime(value1 int) int16 {
|
||
value := int16(value1)
|
||
return (value/2)*100 + (value%2)*30
|
||
}
|
||
|
||
func JxOperationTime2JdOperationTime(value int16) int16 {
|
||
return (value/100)*2 + (value%100)/30
|
||
}
|
||
|
||
func JdStoreStatus2JxStatus(yn, closeStatus int) int {
|
||
if yn == 1 {
|
||
return model.StoreStatusDisabled
|
||
} else if closeStatus == 1 {
|
||
return model.StoreStatusClosed
|
||
}
|
||
return model.StoreStatusOpened
|
||
}
|
||
|
||
func JxStoreStatus2JdStatus(status int) (yn, closeStatus int) {
|
||
switch status {
|
||
case model.StoreStatusDisabled:
|
||
return 1, 1
|
||
case model.StoreStatusHaveRest, model.StoreStatusClosed:
|
||
return 0, 1
|
||
default:
|
||
return 0, 0
|
||
}
|
||
}
|
||
|
||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, vendorOrgCode, imgURL string, imgData []byte, imgName string, imgType int) (imgHint string, err error) {
|
||
return imgHint, err
|
||
}
|
||
|
||
type JdCode struct {
|
||
Code string `json:"code"`
|
||
VenderID string `json:"venderId"`
|
||
}
|
||
|
||
type JdToken struct {
|
||
Token string `json:"token"`
|
||
VenderID string `json:"venderId"`
|
||
}
|
||
|
||
func OnTokenChange(values url.Values) {
|
||
db := dao.GetDB()
|
||
codeInfo := &JdCode{}
|
||
if dataStr := values.Get("code"); dataStr != "" {
|
||
json.Unmarshal([]byte(dataStr), &codeInfo)
|
||
}
|
||
if codeInfo != nil {
|
||
voc := &model.VendorOrgCode{}
|
||
sql := `
|
||
SELECT * FROM tmp_jd WHERE vendor_org_code = ?
|
||
`
|
||
sqlParams := []interface{}{codeInfo.VenderID}
|
||
if err := dao.GetRow(db, &voc, sql, sqlParams); err == nil && voc != nil {
|
||
if result, _ := dao.GetVendorOrgCode(db, model.VendorIDJD, codeInfo.VenderID, model.VendorOrgTypePlatform); len(result) == 0 {
|
||
voc2 := &model.VendorOrgCode{
|
||
Comment: voc.Comment,
|
||
VendorOrgCode: codeInfo.VenderID,
|
||
VendorType: model.VendorOrgTypePlatform,
|
||
}
|
||
dao.WrapAddIDCULDEntity(voc2, "jxadmin")
|
||
if err := dao.CreateEntity(db, voc2); err == nil {
|
||
//添加成功后去开发者后台填验证码
|
||
|
||
}
|
||
} else {
|
||
globals.SugarLogger.Debugf("OnTokenChange, 发验证码,但是库里有这个账号了")
|
||
}
|
||
}
|
||
} else {
|
||
tokenInfo := &JdToken{}
|
||
fmt.Println("11111111111111111111", values)
|
||
if dataStr := values.Get("token"); dataStr != "" {
|
||
json.Unmarshal([]byte(dataStr), &tokenInfo)
|
||
}
|
||
fmt.Println("11111111111111111111", values.Get("token"))
|
||
fmt.Println("11111111111111111111", utils.Format4Output(tokenInfo, false))
|
||
if tokenInfo == nil {
|
||
return
|
||
}
|
||
voc := &model.VendorOrgCode{}
|
||
sql := `
|
||
SELECT * FROM tmp_jd WHERE vendor_org_code = ?
|
||
`
|
||
sqlParams := []interface{}{tokenInfo.VenderID}
|
||
if err := dao.GetRow(db, &voc, sql, sqlParams); err == nil && voc != nil {
|
||
if result, _ := dao.GetVendorOrgCode(db, model.VendorIDJD, voc.VendorOrgCode, model.VendorOrgTypePlatform); len(result) > 0 {
|
||
result[0].Token = tokenInfo.Token
|
||
dao.UpdateEntity(db, result[0], "Token")
|
||
} else {
|
||
globals.SugarLogger.Debugf("OnTokenChange, 发token,但是库里没这个账号")
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|