diff --git a/business/auth2/auth2.go b/business/auth2/auth2.go index da46bbc13..b023acaed 100644 --- a/business/auth2/auth2.go +++ b/business/auth2/auth2.go @@ -157,7 +157,7 @@ func getFixedTokenName(token string) *AuthInfo { } func createAuthInfo(user IUser, authBindInfo *AuthBindEx) (authInfo *AuthInfo) { - token, tokenType := createToken(user) + token, tokenType := createToken(user, authBindInfo) expireDuration := DefTokenDuration authInfo = &AuthInfo{ AuthBindInfo: authBindInfo, @@ -378,9 +378,9 @@ func ClearUserToken(userID string) { ///////////// -func createToken(user IUser) (token string, tokenType int) { +func createToken(user IUser, authBindInfo *AuthBindEx) (token string, tokenType int) { userID := TokenUserEmpty - userName := TokenUserEmpty + userName := authBindInfo.AuthID tokenType = TokenTypeOnlyAuth if user != nil { userID = user.GetID() @@ -392,8 +392,9 @@ func createToken(user IUser) (token string, tokenType int) { TokenVer, userID, time.Now().Format("20060102-150405"), - userName, + authBindInfo.Type, utils.GetUUID(), + userName, }, TokenTypeSep), tokenType } @@ -404,7 +405,7 @@ func GetTokenType(token string) (tokenType int) { tokenType = TokenTypeNone if token != "" { tokenPartList := strings.Split(token, TokenTypeSep) - if (len(tokenPartList) == 1) || (len(tokenPartList) == 6 && tokenPartList[2] != TokenUserEmpty) { + if (len(tokenPartList) == 1) || (len(tokenPartList) >= 6 && tokenPartList[2] != TokenUserEmpty) { tokenType = TokenTypeNormal } else { tokenType = TokenTypeOnlyAuth diff --git a/business/auth2/authprovider/alipay/alipay.go b/business/auth2/authprovider/alipay/alipay.go new file mode 100644 index 000000000..8c137ed68 --- /dev/null +++ b/business/auth2/authprovider/alipay/alipay.go @@ -0,0 +1,43 @@ +package alipay + +import ( + "git.rosy.net.cn/baseapi/platformapi/alipayapi" + "git.rosy.net.cn/jx-callback/business/auth2" + "git.rosy.net.cn/jx-callback/business/auth2/authprovider" + "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api" +) + +const ( + AuthType = "alipaycode" +) + +type Auther struct { + authprovider.DefAuther +} + +var ( + AutherObj *Auther +) + +func init() { + AutherObj = new(Auther) + auth2.RegisterAuther(AuthType, AutherObj) +} + +func (a *Auther) VerifySecret(dummy, code string) (authBindEx *auth2.AuthBindEx, err error) { + globals.SugarLogger.Debugf("VerifySecret dummy:%s, code:%s", dummy, code) + tokenInfo, err := api.AliPayAPI.SystemAuthToken(alipayapi.GrantTypeCode, code, "") + if err == nil { + userInfo, err2 := api.AliPayAPI.UserInfoShare(tokenInfo.AccessToken) + if err = err2; err == nil { + if authBindEx, err = a.UnionFindAuthBind(AuthType, nil, userInfo.UserID, "", userInfo); err == nil { + authBindEx.UserHint = &auth2.UserBasic{ + Name: userInfo.NickName, + Avatar: userInfo.Avatar, + } + } + } + } + return authBindEx, err +} diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 60ff706f3..a8cb01875 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -655,6 +655,9 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID } saleInfo.ActualPayPrice += v.ActualPayPrice saleInfo.Count++ + + saleInfo.DistanceFreightMoney += v.DistanceFreightMoney + saleInfo.WaybillTipMoney += v.WaybillTipMoney } orderMap[universalOrderID].SkuCount += v.Count diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index fa5e9cc67..8178a542b 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -406,8 +406,15 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod } if !isPending { if status.Status == model.OrderStatusAgreeFailedGetGoods || status.Status == model.OrderStatusDeliverFailed { - s.updateOrderByBill(order, nil, status.Status != model.OrderStatusAgreeFailedGetGoods) + s.updateOrderByBill(order, nil, false) //status.Status != model.OrderStatusAgreeFailedGetGoods) s.removeWaybillFromMap(savedOrderInfo, order.VendorID) + clearFlag := 0 + if status.Status == model.OrderStatusAgreeFailedGetGoods { + clearFlag = model.OrderFlagMaskFailedGetGoods + } else if status.Status == model.OrderFlagMaskFailedDeliver { + clearFlag = model.OrderFlagMaskFailedDeliver + } + dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, clearFlag) } } } @@ -427,7 +434,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod status.Status == model.OrderStatusAgreeFailedGetGoods || status.Status == model.OrderStatusDeliverFailed { if status.Status == model.OrderStatusApplyFailedGetGoods { - dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, ^(model.OrderFlagMaskFailedGetGoods | model.OrderFlagMaskCallPMCourier)) + dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, model.OrderFlagMaskFailedGetGoods|model.OrderFlagMaskCallPMCourier) } if status.Status == model.OrderStatusApplyCancel { s.notifyUserApplyCancel(savedOrderInfo.order, status.Remark) @@ -1166,7 +1173,8 @@ func isNeedWatchWaybillTip(order *model.GoodsOrder) bool { func isNeedWatch3rdWaybill(order *model.GoodsOrder) bool { return (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusDelivering) && // 订单状态 order.DeliveryFlag&model.OrderDeliveryFlagMaskScheduleDisabled == 0 && // 没有禁止调度 - !model.IsOrderHaveWaybill(order) // 没有有效运单 + !model.IsOrderHaveWaybill(order) && // 没有有效运单 + order.LockStatus == model.OrderStatusUnknown } func (s *DefScheduler) setWatchOrderWaybills(savedOrderInfo *WatchOrderInfo, duration time.Duration) { @@ -1219,27 +1227,28 @@ func (s *DefScheduler) watchOrderWaybills(savedOrderInfo *WatchOrderInfo) { // } // partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark) // } - if handler, ok := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).(partner.IAddWaybillTip); ok && handler != nil { - var remark string - tipFee := getWaybillTip(order) - vendorStatus := fmt.Sprintf("设置小费:%s", jxutils.IntPrice2StandardCurrencyString(tipFee)) - tipFee2Add := tipFee - order.WaybillTipMoney - vendorStatus += fmt.Sprintf(", 本次添加:%s", jxutils.IntPrice2StandardCurrencyString(tipFee2Add)) - if false { //tipFee2Add > 0 { - err := handler.UpdateWaybillTip(jxcontext.AdminCtx, order.VendorOrgCode, order.VendorStoreID, order.VendorOrderID, order.VendorOrderID, "", "", tipFee) - if err == nil { - vendorStatus += "成功" - order.WaybillTipMoney = tipFee - partner.CurOrderManager.UpdateOrderFields(order, []string{"WaybillTipMoney"}) - } else { - vendorStatus += "失败" - remark = fmt.Sprint(err) - } - } else { - vendorStatus += "空操作" - } - partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark) - } + + // if handler, ok := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).(partner.IAddWaybillTip); ok && handler != nil { + // var remark string + // tipFee := getWaybillTip(order) + // vendorStatus := fmt.Sprintf("设置小费:%s", jxutils.IntPrice2StandardCurrencyString(tipFee)) + // tipFee2Add := tipFee - order.WaybillTipMoney + // vendorStatus += fmt.Sprintf(", 本次添加:%s", jxutils.IntPrice2StandardCurrencyString(tipFee2Add)) + // if false { //tipFee2Add > 0 { + // err := handler.UpdateWaybillTip(jxcontext.AdminCtx, order.VendorOrgCode, order.VendorStoreID, order.VendorOrderID, order.VendorOrderID, "", "", tipFee) + // if err == nil { + // vendorStatus += "成功" + // order.WaybillTipMoney = tipFee + // partner.CurOrderManager.UpdateOrderFields(order, []string{"WaybillTipMoney"}) + // } else { + // vendorStatus += "失败" + // remark = fmt.Sprint(err) + // } + // } else { + // vendorStatus += "空操作" + // } + // partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark) + // } } if savedOrderInfo.isNeedCreate3rdWaybill { s.createWaybillOn3rdProviders(savedOrderInfo, 0, nil) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 67a813006..01efc70bc 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1042,7 +1042,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs err = AddEventDetail(model.OperateAdd, v.RealSkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), "", "") setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask) dao.WrapAddIDCULDEntity(skuBind, userName) - globals.SugarLogger.Debug(utils.Format4Output(skuBind, false)) + // globals.SugarLogger.Debug(utils.Format4Output(skuBind, false)) if deletedSku := dao.GetDeletedStoreSkuBind(db, skuBind.StoreID, skuBind.SkuID); deletedSku == nil { if err = dao.CreateEntity(db, skuBind); err != nil { dao.Rollback(db) @@ -1094,7 +1094,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs setStoreSkuBindStatus(skuBind, model.SyncFlagSaleMask) updateFieldMap[model.FieldStatus] = 1 } - if skuBindInfo.UnitPrice != 0 && isCanChangePrice { // 这里是否需要加此条件限制 + if skuBindInfo.UnitPrice != 0 && skuBind.UnitPrice != unitPrice && isCanChangePrice { // 这里是否需要加此条件限制 skuBind.UnitPrice = unitPrice skuBind.Price = jxutils.CaculateSkuPrice(unitPrice, v.SpecQuality, v.SpecUnit, v.SkuNameUnit) skuBind.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), skuBind.Price) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 9e88aa013..1da235d7c 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -195,7 +195,9 @@ func FullSyncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo } func isStoreSkuSyncNeedDelete(storeSku *dao.StoreSkuSyncInfo) bool { - return model.IsSyncStatusDelete(storeSku.SkuSyncStatus) || storeSku.BindDeletedAt != utils.DefaultTimeValue || storeSku.BindID == 0 || storeSku.NameID == 0 + return model.IsSyncStatusDelete(storeSku.SkuSyncStatus) || + storeSku.BindDeletedAt != utils.DefaultTimeValue || storeSku.BindID == 0 || + storeSku.NameID == 0 || storeSku.NameStatus != model.SkuStatusNormal || storeSku.Status != model.SkuStatusNormal } func storeSkuSyncInfo2Bare(inSku *dao.StoreSkuSyncInfo) (outSku *partner.StoreSkuInfo) { @@ -239,7 +241,7 @@ func formalizeStoreSkuList(inSkuList []*dao.StoreSkuSyncInfo) []*dao.StoreSkuSyn if skuItem.VendorPrice > skuItem.BoxFee { skuItem.BoxFee = boxFee } - skuItem.MergedStatus = jxutils.MergeSkuStatus(skuItem.Status, skuItem.StoreSkuStatus) + skuItem.MergedStatus = jxutils.MergeSkuStatus(jxutils.MergeSkuStatus(skuItem.NameStatus, skuItem.Status), skuItem.StoreSkuStatus) skuItem.SkuName = jxutils.ComposeSkuNameSync(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0, skuItem.ExPrefix, skuItem.ExPrefixBegin, skuItem.ExPrefixEnd) } } diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index a0885ad7c..38895b91d 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -16,22 +16,27 @@ const ( ) type StoresOrderSaleInfo struct { - StoreID int `orm:"column(store_id)" json:"storeID"` - VendorID int `orm:"column(vendor_id)" json:"vendorID"` - Status int `json:"status"` + StoreID int `orm:"column(store_id)" json:"storeID"` + VendorID int `orm:"column(vendor_id)" json:"vendorID"` + Status int `json:"status"` + Count int `json:"count"` ShopPrice int64 `json:"shopPrice"` VendorPrice int64 `json:"vendorPrice"` SalePrice int64 `json:"salePrice"` ActualPayPrice int64 `json:"actualPayPrice"` - EarningPrice int64 `json:"earningPrice"` // 预估结算给门店老板的钱 + EarningPrice int64 `json:"earningPrice"` // 预估结算给门店老板的钱 + DistanceFreightMoney int64 `json:"distanceFreightMoney"` // 商户承担的远距离配送费(当前只有京东到家有值) + WaybillTipMoney int64 `json:"waybillTipMoney"` // 京西加的平台配送小费 } type OrderSkuWithActualPayPrice struct { model.OrderSku - ActualPayPrice int64 `json:"actualPayPrice"` // 单位为分 顾客实际支付 + ActualPayPrice int64 `json:"actualPayPrice"` // 单位为分 顾客实际支付 + DistanceFreightMoney int64 `json:"distanceFreightMoney"` // 商户承担的远距离配送费(当前只有京东到家有值) + WaybillTipMoney int64 `json:"waybillTipMoney"` // 京西加的平台配送小费 StoreID int `orm:"column(store_id)" json:"storeID"` // 外部系统里记录的 jxstoreid Status int `json:"status"` // 参见OrderStatus*相关的常量定义 @@ -215,7 +220,7 @@ func ClearOrderFlag(db *DaoDB, userName string, vendorOrderID string, vendorID i UPDATE goods_order SET flag = flag & ? WHERE vendor_order_id = ? AND vendor_id = ? - `, flag, vendorOrderID, vendorID) + `, ^flag, vendorOrderID, vendorID) return err } @@ -345,7 +350,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt // order_finished_at sql := ` SELECT t1.*, - t2.actual_pay_price, t2.status, IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, + IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, t2.status, t2.actual_pay_price, t2.distance_freight_money, t2.waybill_tip_money, t3.pay_percentage FROM order_sku t1 JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 2204bed55..6e2fb863e 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -342,7 +342,7 @@ func newGetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty %s vendor_sku_id, t1.%s_sync_status sku_sync_status, t1.%s_price vendor_price, t1.%s_lock_time lock_time, t1.store_id, t1.deleted_at bind_deleted_at,t1.status_sale_begin,t1.status_sale_end, t2.*, - t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.ex_prefix, t3.ex_prefix_begin, t3.ex_prefix_end, + t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.ex_prefix, t3.ex_prefix_begin, t3.ex_prefix_end, IF(t11.%s <> '', t11.%s, t3.img) img, IF(t12.%s <> '', t12.%s, t3.img2) img2, t13.%s desc_img, @@ -367,8 +367,8 @@ func newGetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty sql += ` FROM store_sku_bind t1 JOIN store_map t14 ON t14.store_id = t1.store_id AND t14.vendor_id = ? AND t14.deleted_at = ? - LEFT JOIN sku t2 ON t1.sku_id = t2.id AND t2.deleted_at = ? AND t2.status = ? - LEFT JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ? AND t3.status = ? + LEFT JOIN sku t2 ON t1.sku_id = t2.id AND t2.deleted_at = ?/* AND t2.status = ?*/ + LEFT JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ?/* AND t3.status = ?*/ LEFT JOIN sku_category t4 ON t3.category_id = t4.id AND t4.deleted_at = ? LEFT JOIN data_resource t11 ON t11.main_url = t3.img LEFT JOIN data_resource t12 ON t12.main_url = t3.img2 @@ -376,8 +376,8 @@ func newGetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty ` sqlParams := []interface{}{ vendorID, utils.DefaultTimeValue, - utils.DefaultTimeValue, model.SkuStatusNormal, - utils.DefaultTimeValue, model.SkuStatusNormal, + utils.DefaultTimeValue, // model.SkuStatusNormal, + utils.DefaultTimeValue, // model.SkuStatusNormal, utils.DefaultTimeValue, } if isSingleStorePF { @@ -549,7 +549,7 @@ func newGetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSync t1.%s_sync_status sku_sync_status, t1.%s_price vendor_price, t1.%s_lock_time lock_time, t1.store_id, t1.deleted_at bind_deleted_at, t2.*, t2.id sku_id, t2m.vendor_thing_id vendor_sku_id, - t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.ex_prefix, t3.ex_prefix_begin, t3.ex_prefix_end, + t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.ex_prefix, t3.ex_prefix_begin, t3.ex_prefix_end, IF(t11.%s <> '', t11.%s, t3.img) img, IF(t12.%s <> '', t12.%s, t3.img2) img2, t13.%s desc_img, @@ -557,7 +557,7 @@ func newGetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSync t4m.sync_status cat_sync_status, t4m.vendor_thing_id vendor_cat_id, t5skum.sync_status sku_cat_sync_status, t5skum.vendor_thing_id sku_vendor_cat_id FROM sku t2 - JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ? AND t3.status = ? + JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ?/* AND t3.status = ?*/ JOIN sku_category t4 ON t3.category_id = t4.id AND t4.deleted_at = ? JOIN store_map sm ON sm.vendor_id = ? AND sm.store_id = ? AND sm.deleted_at = ? JOIN thing_map t2m ON t2m.thing_id = t2.id AND t2m.vendor_org_code = sm.vendor_org_code AND t2m.thing_type = ? AND t2m.vendor_id = ? AND t2m.deleted_at = ? @@ -568,17 +568,17 @@ func newGetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSync LEFT JOIN data_resource t11 ON t11.main_url = t3.img LEFT JOIN data_resource t12 ON t12.main_url = t3.img2 LEFT JOIN data_resource t13 ON t13.main_url = t3.desc_img - WHERE t2.deleted_at = ? AND t2.status = ? AND t2m.vendor_thing_id <> '' + WHERE t2.deleted_at = ?/* AND t2.status = ?*/ AND t2m.vendor_thing_id <> '' ORDER BY t1.price DESC` sqlParams := []interface{}{ - utils.DefaultTimeValue, model.SkuStatusNormal, + utils.DefaultTimeValue, // model.SkuStatusNormal, utils.DefaultTimeValue, vendorID, storeID, utils.DefaultTimeValue, model.ThingTypeSku, vendorID, utils.DefaultTimeValue, model.ThingTypeCategory, vendorID, utils.DefaultTimeValue, utils.DefaultTimeValue, model.ThingTypeCategory, vendorID, utils.DefaultTimeValue, - utils.DefaultTimeValue, model.SkuStatusNormal, + utils.DefaultTimeValue, // model.SkuStatusNormal, } fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID]) sql = fmt.Sprintf(sql, diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 2efea8782..0156e6349 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -53,6 +53,7 @@ var ( skuActTypeMap = map[string]int{ ebaiapi.OrderSkuDiscountTypeZhe: 1, ebaiapi.OrderSkuDiscountTypeReduce: 1, + ebaiapi.OrderSkuDiscountTypeTe: 1, } deliveryTypeMap = map[int]string{ ebaiapi.DeliveryPartyFengElmSelf: model.OrderDeliveryTypeStoreSelf, diff --git a/conf/app.conf b/conf/app.conf index bf065214d..280d9d507 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -83,6 +83,9 @@ dingdingCallbackToken = "j9JMGyaZs&vxqt&S" dingdingCallbackURL = "http://callback.test.jxc4.com/dingding/msg" dingdingCorpID = "ding7ab5687f3784a8db" +alipayAppID = "2019110769024042" +alipayPrivateKey = "MIIEpAIBAAKCAQEAnsbBe0lrK5c4/xhb7ZLDWjGRWmIaj7HyV4LQ9X4EcTV5I5IKLezH1YaNLXytD/VXc5NsJp9IDTFLyOYdXee8lJxAeSQbuBBy1+xLd6qK2JQdVUGP3RZ0pAwVZSc9m0JKj5pYEeA2lvgh4NhSfGEw4BdZacpiDjFWkrQYl+RZkl/eIH2w7sA4wXs/hLSnPiG0VRtLtyYzfGCQdEJNjP5PA6V6CJTd68qTytLnpuaTuVxIYHGGSNd08694b1wOuGpFv6YK+mZkfaGkFoEpp3gUhEQ05duKjNBY71f0ez/Fym7GQYdHNXlsIvCmGQzklkfvQkHj7+MvPpsME4PkqQjRgwIDAQABAoIBAHLzwzDXPtgYbBOEN0oRb43lRS8Cx+gxFRt2goK58c1kwYeXO/dz7loRSDUehs1++wmaOjrcJvYmMpAIykoqdMXDOop6MfdZMUxSr3C78DpNQc9v4BBZKal7diH9/wRhQkolnI2UnvE+RIjdFRsn4pLbVMja1ZMg9WTRLt0JXjAyQZus9pADWADK12OSEIHBvz7/+kiFpq0aM+KPMElQG/mSDg1ESmzfYEbXYmPoiMwU+9frtnprrNdG9h143pb7mdzbXTt/8DbmpFgCfKL7ItpsC3VcZFDsj1Sd3gewrU+FLifH6oPGHTiwEoHNIn5m0RdPVEFoQnQxZnqxzDVBVYECgYEA5zCnBZBLotumxVdIRwncAXKEV5nMHJV2NKVmAc20vHJTsmI4/kA9B2Bjx9jzwwctBzFp1pIadccSbFO48Z5Hn0NdwYOnqba9W50n6R7wO3SnqQuCaoyTAvfkcjrZjZqq88Opa9tKGjD69MFFa+mnK7O7s8B7X6hCa/h80s0zDmkCgYEAr9C5yACb0haAp1WkuYf0B2TyPIofhYOXsjHcJqref+mDHgXSqPntYsXl/RVpJJSAGXJ/CnPd+jHQ0Fis2LuNpZ6ntYzcGoTQtnXx8BdQsnyEjyAvzxWv2JJV12zoSTEW7HL078qqEgbzmort6A8edRiv0kIoNf054QAtv/C9OwsCgYBPATVSlWkDkoR/U8CDZj8kz3miZhB2hC0M+KjPXPiynW80upQ3bsRsTOhMVzuWHlGo7533kZ4xOYJ2OnYtO6XGK0NS6ibVvHkhYadN5yC5cLgK8L/0oW1rykLrNmk6FuzsuKShEyNTqAFauuF6azKRoK44U0LWAa4RL62YbD9SYQKBgQCD0Qp5WXt6WES9MQj/0V607IpxuV1IzRC/GYLlutZ3MKyNpe/7oObKV3XH+nWKZ4xjh+SYAac8Hn1guBtfo77fncQ/6gxcFZgmNOfgCpsGNzVr2cX+jVP6HD0f9xdxSMzXGplp75jzSyL5i5AznKJJSOkJy3A6ilEK0Qd8ERLPYQKBgQC/QSV0c71x3nYz3koOQv7s36i5R0jeHnadSMyGUlrYmn/TaXj0KaUaEYRcgJyWB/dxy3cde8EKlqg0q80Zc6ExkZKhpO6k1lj9Bta+l+KAyVFroYDIy/b0Wukr2qV1mkMK0FQ0X2hVbv6TJBq5RMNeYAy1shOeWIwaS5muSYm4Ig==" + feieUser = "jianhua.xu@rosy.net.cn" feieKey = "2JfKh8TyheQ9mwss" diff --git a/controllers/auth2.go b/controllers/auth2.go index e64d56176..d4c0160d9 100644 --- a/controllers/auth2.go +++ b/controllers/auth2.go @@ -79,7 +79,7 @@ func (c *Auth2Controller) SendVerifyCode() { // @Title 登录接口 // @Description 登录接口(微信与公众号登录不能直接调用此接口) -// @Param authType formData string true "登录类型,当前支持[localpass:本地账号密码,mobile:手机短信,wxqrcode:微信登录,weixinsns:微信公众号,weixinmini;小程序,ddstaff:钉钉企业,ddqrcode:钉钉扫码]" +// @Param authType formData string true "登录类型,当前支持[localpass:本地账号密码,mobile:手机短信,wxqrcode:微信登录,weixinsns:微信公众号,weixinmini;小程序,ddstaff:钉钉企业,ddqrcode:钉钉扫码,alipaycode:支付宝小程序]" // @Param authSecret formData string true "不同登录类型的登录秘密,如果是localpass登录类型,是md5后的值(空串不要md5)" // @Param authID formData string false "登录ID,登录类型为localpass时依赖于authIDType,其它为相应登录类型的id" // @Param authIDType formData string false "只有在登录类型为localpass时,才有意义,分别为:userid2:用户名,email,mobile" diff --git a/globals/api/api.go b/globals/api/api.go index b22fbca19..fedcb38d7 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -6,6 +6,7 @@ import ( aliyunsmsclient "github.com/KenmyZhang/aliyun-communicate" "git.rosy.net.cn/baseapi/platformapi" + "git.rosy.net.cn/baseapi/platformapi/alipayapi" "git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/baidunavi" "git.rosy.net.cn/baseapi/platformapi/dadaapi" @@ -50,6 +51,8 @@ var ( WeixinPageAPI *weixinapi.API // 用户微信扫码登录 + AliPayAPI *alipayapi.API + AutonaviAPI *autonavi.API BaiDuNaviAPI *baidunavi.API QiniuAPI *qbox.Mac @@ -168,6 +171,10 @@ func Init() { DingDingAPI = dingdingapi.NewWithAgentID(beego.AppConfig.DefaultInt64("dingdingAgentID", 0), beego.AppConfig.DefaultString("dingdingCorpID", ""), beego.AppConfig.DefaultString("dingdingAppKey", ""), beego.AppConfig.DefaultString("dingdingSecret", "")) DingDingQRCodeAPI = dingdingapi.New(beego.AppConfig.DefaultString("dingdingCorpID", ""), beego.AppConfig.DefaultString("dingdingQRCodeAppKey", ""), beego.AppConfig.DefaultString("dingdingQRCodeSecret", "")) + if alipayAppID := beego.AppConfig.DefaultString("alipayAppID", ""); alipayAppID != "" { + AliPayAPI = alipayapi.New(alipayAppID, []byte(beego.AppConfig.String("alipayPrivateKey"))) + } + FeieAPI = feieapi.New(beego.AppConfig.DefaultString("feieUser", ""), beego.AppConfig.DefaultString("feieKey", "")) XiaoWMAPI = xiaowmapi.New(beego.AppConfig.DefaultInt("xiaoWMAppID", 0), beego.AppConfig.DefaultString("xiaoWMAppKey", "")) YilianyunAPI = yilianyunapi.New(beego.AppConfig.DefaultString("yilianyunClientID", ""), beego.AppConfig.DefaultString("yilianyunClientSecret", "")) diff --git a/main.go b/main.go index 9b0d8d912..00908e8c2 100644 --- a/main.go +++ b/main.go @@ -33,11 +33,17 @@ import ( _ "git.rosy.net.cn/jx-callback/business/partner/printer/zhongwu" _ "git.rosy.net.cn/jx-callback/business/partner/purchase/ebai" - _ "git.rosy.net.cn/jx-callback/business/partner/purchase/jx" _ "git.rosy.net.cn/jx-callback/business/partner/purchase/jd" + _ "git.rosy.net.cn/jx-callback/business/partner/purchase/jx" _ "git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm" _ "git.rosy.net.cn/jx-callback/business/partner/purchase/weimob/wsc" + _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/alipay" + _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/dingding" + _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/mobile" + _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/password" + _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" + _ "git.rosy.net.cn/jx-callback/business/jxstore/act" _ "git.rosy.net.cn/jx-callback/routers"