- don't mark sync status when directly deleted in CopyStoreSkus

This commit is contained in:
gazebo
2018-10-31 19:23:18 +08:00
parent fdd50744f0
commit c0d5fc60b0
4 changed files with 24 additions and 6 deletions

View File

@@ -15,19 +15,24 @@ const (
) )
func SendVerifyCode(mobileNumber string) error { func SendVerifyCode(mobileNumber string) error {
smsClient := aliyunsmsclient.New("http://dysmsapi.aliyuncs.com/")
code := fmt.Sprintf("%06d", rand.Intn(1000000)) code := fmt.Sprintf("%06d", rand.Intn(1000000))
globals.SugarLogger.Debugf("SendVerifyCode mobileNumber:%s, code:%s", mobileNumber, code)
smsClient := aliyunsmsclient.New("http://dysmsapi.aliyuncs.com/")
_, err := smsClient.Execute(globals.AliKey, globals.AliSecret, mobileNumber, "京西菜市", "SMS_84655036", string(utils.MustMarshal(map[string]interface{}{ _, err := smsClient.Execute(globals.AliKey, globals.AliSecret, mobileNumber, "京西菜市", "SMS_84655036", string(utils.MustMarshal(map[string]interface{}{
"code": code, "code": code,
}))) })))
if err == nil { if err == nil {
globals.Cacher.Set(mobileNumber, code, DefVerifyCodeDuration) globals.Cacher.Set(mobileNumber, code, DefVerifyCodeDuration)
} else {
globals.SugarLogger.Infof("SendVerifyCode mobileNumber:%s failed with error:%v", mobileNumber, err)
} }
// globals.SugarLogger.Debug(utils.Format4Output(result, false))
return err return err
} }
func VerifyCode(mobileNumber, code string) bool { func VerifyCode(mobileNumber, code string) bool {
globals.SugarLogger.Debugf("VerifyCode mobileNumber:%s, code:%s", mobileNumber, code)
if value := globals.Cacher.Get(mobileNumber); value != nil { if value := globals.Cacher.Get(mobileNumber); value != nil {
if code == value.(string) { if code == value.(string) {
globals.Cacher.Del(mobileNumber) globals.Cacher.Del(mobileNumber)

View File

@@ -44,6 +44,8 @@ func init() {
} }
func GetUserInfo(code string, state string) (token *UserInfoExt, err error) { func GetUserInfo(code string, state string) (token *UserInfoExt, err error) {
globals.SugarLogger.Debugf("GetUserInfo code:%s", code)
if state == "" { if state == "" {
wxapi := weixinsnsapi.New(api.WeixinAPI.GetAppID(), api.WeixinAPI.GetSecret()) wxapi := weixinsnsapi.New(api.WeixinAPI.GetAppID(), api.WeixinAPI.GetSecret())
token, err2 := wxapi.RefreshToken(code) token, err2 := wxapi.RefreshToken(code)
@@ -51,6 +53,7 @@ func GetUserInfo(code string, state string) (token *UserInfoExt, err error) {
wxUserinfo, err2 := wxapi.GetUserInfo(token.OpenID) wxUserinfo, err2 := wxapi.GetUserInfo(token.OpenID)
if err = err2; err == nil { if err = err2; err == nil {
pwd := utils.GetUUID() pwd := utils.GetUUID()
globals.SugarLogger.Debugf("GetUserInfo code:%s, pwd:%s", code, pwd)
globals.Cacher.Set(wxUserinfo.OpenID, pwd, DefTempPasswordDuration) globals.Cacher.Set(wxUserinfo.OpenID, pwd, DefTempPasswordDuration)
return &UserInfoExt{ return &UserInfoExt{
UserInfo: *wxUserinfo, UserInfo: *wxUserinfo,
@@ -65,6 +68,8 @@ func GetUserInfo(code string, state string) (token *UserInfoExt, err error) {
} }
func (a *Auther) Login(openid, password string) (err error) { func (a *Auther) Login(openid, password string) (err error) {
globals.SugarLogger.Debugf("Login openid:%s, password:%s", openid, password)
if value := globals.Cacher.Get(openid); value != nil { if value := globals.Cacher.Get(openid); value != nil {
if password == value.(string) { if password == value.(string) {
// wxUser := &legacymodel.WeiXins{ // wxUser := &legacymodel.WeiXins{
@@ -86,6 +91,8 @@ func (a *Auther) Logout(openid string) error {
} }
func BindMobile(token, mobileNum, code, nickname string) (err error) { func BindMobile(token, mobileNum, code, nickname string) (err error) {
globals.SugarLogger.Debugf("BindMobile mobileNum:%s, code:%s, nickname:%s", mobileNum, code, nickname)
loginInfo := new(auth.LoginInfo) loginInfo := new(auth.LoginInfo)
if err = globals.Cacher.GetAs(token, loginInfo); err == nil { if err = globals.Cacher.GetAs(token, loginInfo); err == nil {
if mobile.VerifyCode(mobileNum, code) { if mobile.VerifyCode(mobileNum, code) {

View File

@@ -506,11 +506,12 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
JOIN sku_name t3 ON t2.name_id = t3.id AND t2.deleted_at = ? JOIN sku_name t3 ON t2.name_id = t3.id AND t2.deleted_at = ?
JOIN sku_category t4 ON t3.category_id = t4.id AND t2.deleted_at = ? JOIN sku_category t4 ON t3.category_id = t4.id AND t2.deleted_at = ?
SET t1.deleted_at = ?, SET t1.deleted_at = ?,
t1.updated_at = ?,
t1.last_operator = ?, t1.last_operator = ?,
t1.status = ?, t1.status = ?,
t1.jd_sync_status = ?, t1.jd_sync_status = IF(t1.jd_sync_status = ?, 0, ?),
t1.elm_sync_status = ?, t1.elm_sync_status = IF(t1.elm_sync_status = ?, 0, ?),
t1.ebai_sync_status = ? t1.ebai_sync_status = IF(t1.ebai_sync_status = ?, 0, ?)
WHERE t1.store_id = ? AND t1.deleted_at = ? WHERE t1.store_id = ? AND t1.deleted_at = ?
` `
sqlDeleteParams := []interface{}{ sqlDeleteParams := []interface{}{
@@ -518,10 +519,14 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
utils.DefaultTimeValue, utils.DefaultTimeValue,
utils.DefaultTimeValue, utils.DefaultTimeValue,
time.Now(), time.Now(),
time.Now(),
userName, userName,
model.StoreSkuBindStatusDeleted, model.StoreSkuBindStatusDeleted,
model.SyncFlagNewMask,
model.SyncFlagDeletedMask, model.SyncFlagDeletedMask,
model.SyncFlagNewMask,
model.SyncFlagDeletedMask, model.SyncFlagDeletedMask,
model.SyncFlagNewMask,
model.SyncFlagDeletedMask, model.SyncFlagDeletedMask,
toStoreID, toStoreID,
utils.DefaultTimeValue, utils.DefaultTimeValue,
@@ -530,6 +535,7 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
sqlDelete += sqlCatAndSku sqlDelete += sqlCatAndSku
sqlDeleteParams = append(sqlDeleteParams, sqlCatAndSkuParams) sqlDeleteParams = append(sqlDeleteParams, sqlCatAndSkuParams)
} }
// globals.SugarLogger.Debug(sqlDelete)
if _, err = dao.ExecuteSQL(db, sqlDelete, sqlDeleteParams); err != nil { if _, err = dao.ExecuteSQL(db, sqlDelete, sqlDeleteParams); err != nil {
return 0, err return 0, err
} }

View File

@@ -37,7 +37,7 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
SELECT t1.*, t2.price_percentage, t2.vendor_store_id SELECT t1.*, t2.price_percentage, t2.vendor_store_id
FROM store_sku_bind t1 FROM store_sku_bind t1
JOIN store_map t2 ON t1.store_id = t2.store_id AND t2.vendor_id = ? AND t2.deleted_at = ? JOIN store_map t2 ON t1.store_id = t2.store_id AND t2.vendor_id = ? AND t2.deleted_at = ?
` + sqlWhere ` + sqlWhere + " ORDER BY t1.updated_at"
var storeSkus []*tStoreSkuBindExt var storeSkus []*tStoreSkuBindExt
sqlParams := []interface{}{ sqlParams := []interface{}{
model.VendorIDJD, model.VendorIDJD,