@@ -109,8 +109,9 @@ func GetAllDatabaseDev() *[]model.DbMapping { | |||
var err error | |||
fmt.Println("cfg.Local is: ", cfg.Local) | |||
if cfg.Local { // 本地调试 加快速度 | |||
fmt.Println("notice:LOCAL TEST, only masterId:** 99813608 ** available!") | |||
err = Db.Where("deleted_at != ? AND db_master_id=?", 1, 31585332).Find(&m) | |||
fmt.Println("notice:LOCAL TEST, only masterId:** 123456 ** available!") | |||
err = Db.Where("deleted_at != ? AND is_dev = '1' AND db_master_id=?", 1, 123456). | |||
Or("db_master_id = ?", 32053480).Find(&m) | |||
} else { | |||
err = Db.Where("deleted_at != ? AND is_dev = '1' ", 1).Find(&m) | |||
} | |||
@@ -90,6 +90,85 @@ func DealFailResult(sess *xorm.Session, apply *model.FinWithdrawApply, masterId, | |||
} | |||
return nil | |||
} | |||
func DealFailResultForPuPiao(sess *xorm.Session, apply *model.FinWithdrawApply, masterId, errMsg string) (err error) { | |||
userProfile, err := db.UserFindByIDWithSession(sess, apply.Uid) | |||
if err != nil { | |||
return err | |||
} | |||
//1、修改提现单为失败 | |||
apply.State = 3 | |||
apply.Memo = errMsg | |||
updateAck, err := sess.Where("id=?", apply.Id).Cols("state", "memo").Update(apply) | |||
if err != nil { | |||
return err | |||
} | |||
if updateAck <= 0 { | |||
return errors.New("更新提现单失败") | |||
} | |||
updateAck, err = sess.Where("request_id=?", apply.Id).Cols("state", "callback_data_for_trade_result").Update(model2.FlexibleEmploymentOrd{ | |||
State: 3, | |||
CallbackDataForTradeResult: errMsg, | |||
}) | |||
if err != nil { | |||
return err | |||
} | |||
if updateAck <= 0 { | |||
return errors.New("更新工猫记录失败") | |||
} | |||
//2、判断类型 加回手续费 | |||
var finUserFlow model.FinUserFlow | |||
has, err := sess.Where("other_id = ?", apply.Id).Get(&finUserFlow) | |||
if err != nil { | |||
return | |||
} | |||
var sysFee = 0.00 | |||
if has && apply.FeeType == 1 { | |||
apply.Amount = utils.Float64ToStr(utils.StrToFloat64(apply.Amount) + utils.StrToFloat64(finUserFlow.SysFee)) | |||
sysFee = utils.StrToFloat64(finUserFlow.SysFee) | |||
} | |||
//3、退回余额 | |||
cb, err := svc.HandleBalanceDistributedLock(masterId, utils.IntToStr(apply.Uid), "withdraw_consume") | |||
if err != nil { | |||
return | |||
} | |||
if cb != nil { | |||
defer cb() | |||
} | |||
var beforeAmount = userProfile.FinValid | |||
userProfile.FinValid = utils.Float64ToStrPrec4(utils.StrToFloat64(beforeAmount) + utils.StrToFloat64(apply.Amount)) | |||
_, err = db.UserUpdateWithSession(sess, userProfile.Uid, userProfile, "fin_valid") | |||
if err != nil { | |||
return err | |||
} | |||
//4、插入流水表 | |||
newFinUserFlow := model.FinUserFlow{ | |||
Type: 0, | |||
Uid: userProfile.Uid, | |||
Amount: apply.Amount, | |||
BeforeAmount: beforeAmount, | |||
AfterAmount: userProfile.FinValid, | |||
OrdType: "withdraw", | |||
OrdAction: 22, | |||
PaymentType: 1, | |||
SysFee: utils.Float64ToStrPrec4(sysFee), | |||
OrdDetail: "", | |||
OtherId: apply.Id, | |||
OrdTitle: "提现退回", | |||
State: 2, | |||
OrdTime: int(apply.CreateAt.Unix()), | |||
CreateAt: time.Now(), | |||
UpdateAt: time.Now(), | |||
} | |||
_, err = db.InsertCommWithSession(sess, &newFinUserFlow) | |||
if err != nil { | |||
return err | |||
} | |||
return nil | |||
} | |||
func DealSuccessResult(sess *xorm.Session, apply *model.FinWithdrawApply) (err error) { | |||
//1、修改提现单为成功 | |||
@@ -23,7 +23,7 @@ type PuPiao struct { | |||
AppSecret string | |||
} | |||
const urlForPrd = "https://openapi.gongmall.com" | |||
const urlForPrd = "https://admin.linglong.net.cn" | |||
const urlForDev = "http://api.testlg.cn" | |||
func NewPuPiao(appId, appSecret string) *PuPiao { | |||
@@ -80,17 +80,17 @@ func initConsumes() { | |||
//////////////////////////////////////// oneCircles ///////////////////////////////////////////////////// | |||
jobs[consumeMd.OneCirclesSignInGreenEnergyFunName] = OneCirclesSignInGreenEnergyConsume | |||
jobs[consumeMd.OneCirclesStartLevelDividendFunName] = OneCirclesStartLevelDividendConsume | |||
jobs[consumeMd.OneCirclesActivityCoinAutoExchangeGreenEnergyFunName] = OneCirclesActivityCoinAutoExchangeGreenEnergyConsume | |||
jobs[consumeMd.OneCirclesActivityCoinAutoExchangeGreenEnergyForTeamFunName] = OneCirclesActivityCoinAutoExchangeGreenEnergyForTeamConsume | |||
jobs[consumeMd.OneCirclesSettlementPublicGiveActivityCoinFunName] = OneCirclesSettlementPublicGiveActivityCoinConsume | |||
//jobs[consumeMd.OneCirclesSignInGreenEnergyFunName] = OneCirclesSignInGreenEnergyConsume | |||
//jobs[consumeMd.OneCirclesStartLevelDividendFunName] = OneCirclesStartLevelDividendConsume | |||
//jobs[consumeMd.OneCirclesActivityCoinAutoExchangeGreenEnergyFunName] = OneCirclesActivityCoinAutoExchangeGreenEnergyConsume | |||
//jobs[consumeMd.OneCirclesActivityCoinAutoExchangeGreenEnergyForTeamFunName] = OneCirclesActivityCoinAutoExchangeGreenEnergyForTeamConsume | |||
//jobs[consumeMd.OneCirclesSettlementPublicGiveActivityCoinFunName] = OneCirclesSettlementPublicGiveActivityCoinConsume | |||
////jobs[consumeMd.OneCirclesSignInCopyGreenEnergyFunName] = OneCirclesSignInCopyGreenEnergyConsume | |||
//////////////////////////////////////// withdraw ///////////////////////////////////////////////////// | |||
//jobs[consumeMd.WithdrawConsumeFunName] = WithdrawConsume | |||
//jobs[consumeMd.FlexibleEmploymentWithdrawForGongMaoConsumeFunName] = FlexibleEmploymentWithdrawForGongMaoConsume | |||
//jobs[consumeMd.FlexibleEmploymentWithdrawForPupiaoConsumeFunName] = FlexibleEmploymentWithdrawForPupiaoConsume | |||
jobs[consumeMd.WithdrawConsumeFunName] = WithdrawConsume | |||
jobs[consumeMd.FlexibleEmploymentWithdrawForGongMaoConsumeFunName] = FlexibleEmploymentWithdrawForGongMaoConsume | |||
jobs[consumeMd.FlexibleEmploymentWithdrawForPupiaoConsumeFunName] = FlexibleEmploymentWithdrawForPupiaoConsume | |||
//jobs[consumeMd.ZhiosMallGreenCoinConsumeFunName] = ZhiosMallGreenCoinConsume //绿色双链积分 | |||
//jobs[consumeMd.ZhiosOneCirclesCoinConsumeFunName] = ZhiosOneCirclesCoinConsume //一个圈圈虚拟币变化 | |||
@@ -68,19 +68,24 @@ func FlexibleEmploymentWithdrawForPupiaoConsume(queue md.MqQueue) { | |||
} | |||
func handleFlexibleEmploymentWithdrawForPupiaoConsume(msgData []byte) error { | |||
var ms string | |||
err := json.Unmarshal(msgData, &ms) | |||
if err != nil { | |||
return err | |||
} | |||
time.Sleep(time.Microsecond * 200) // 等待200毫秒 | |||
//1、解析mq中queue的数据结构体 | |||
var msg struct { | |||
Uid string `json:"uid"` | |||
Nickname string `json:"nickname"` | |||
MasterId string `json:"master_id"` | |||
AppName string `json:"app_name"` | |||
ApplyOrder string `json:"apply_order"` | |||
ActualAmount string `json:"actual_amount"` | |||
Oid string `json:"oid"` | |||
MobCfg string `json:"mob_cfg"` | |||
Uid string `json:"uid"` | |||
Nickname string `json:"nickname"` | |||
MasterId string `json:"master_id"` | |||
AppName string `json:"app_name"` | |||
ApplyOrder string `json:"apply_order"` | |||
ActualAmount string `json:"actual_amount"` | |||
Oid string `json:"oid"` | |||
MobCfg interface{} `json:"mob_cfg"` | |||
} | |||
err := json.Unmarshal(msgData, &msg) | |||
err = json.Unmarshal([]byte(ms), &msg) | |||
if err != nil { | |||
return err | |||
} | |||
@@ -165,7 +170,7 @@ func handleFlexibleEmploymentWithdrawForPupiaoConsume(msgData []byte) error { | |||
session := engine.NewSession() | |||
defer session.Close() | |||
session.Begin() | |||
err = svc.DealFailResult(session, finWithdrawApply, msg.MasterId, response.ErrorMsg) | |||
err = svc.DealFailResultForPuPiao(session, finWithdrawApply, msg.MasterId, response.ErrorMsg) | |||
if err != nil { | |||
_ = session.Rollback() | |||
return err | |||