package jd import ( "encoding/json" "net/url" "git.rosy.net.cn/jx-callback/globals/api" "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() { 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 GetAPIbyKey(appKey string) (apiObj *jdapi.API) { if code, err := dao.GetVendorOrgCodeByKey(dao.GetDB(), model.VendorIDJD, appKey); err == nil && code != nil { return jdapi.New(code.Token, code.AppKey, code.AppSecret) } return nil } 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 code, err := dao.GetVendorOrgCodeByKey(dao.GetDB(), model.VendorIDJD, appKey); err == nil && code != nil { vendorOrgCode = code.VendorOrgCode } 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.Code != "" { 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, IsJxCat: 1, } dao.WrapAddIDCULDEntity(voc2, "jxadmin") if err := dao.CreateEntity(db, voc2); err == nil { //添加成功后去开发者后台填验证码 if configs, err := dao.QueryConfigs(dao.GetDB(), "jdConfigCookie", model.ConfigTypeCookie, ""); err == nil { api.JdAPI.SetCookieWithStr(configs[0].Value) if appID, err := api.JdAPI.GetJdNoAuthAppID(codeInfo.VenderID); err == nil { api.JdAPI.SetCode(codeInfo.Code, appID) } } } } else { globals.SugarLogger.Debugf("OnTokenChange, 发验证码,但是库里有这个账号了") } //} } else { tokenInfo := &JdToken{} if dataStr := values.Get("token"); dataStr != "" { json.Unmarshal([]byte(dataStr), &tokenInfo) } if tokenInfo == nil { return } //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, tokenInfo.VenderID, model.VendorOrgTypePlatform); len(result) > 0 { result[0].Token = tokenInfo.Token if _, err := dao.UpdateEntity(db, result[0], "Token"); err == nil { //添加成功后去开发者后台填验证码 // if configs, err := dao.QueryConfigs(dao.GetDB(), "jdConfigCookie", model.ConfigTypeCookie, ""); err == nil { // api.JdAPI.SetCookieWithStr(configs[0].Value) // result2, _ := api.JdAPI.GetJdAppInfo() // result[0].AppKey = result2.AppKey // result[0].AppSecret = result2.AppSecret // dao.UpdateEntity(db, result[0], "AppKey", "AppSecret") // } } } else { globals.SugarLogger.Debugf("OnTokenChange, 发token,但是库里没这个账号") } //} } } func (p *PurchaseHandler) GetOrderRider(vendorOrgCode, vendorStoreID string, param map[string]interface{}) (err error) { return nil }