Merge remote-tracking branch 'origin/mark' into don

This commit is contained in:
Rosy-zhudan
2019-09-12 15:44:48 +08:00
4 changed files with 64 additions and 31 deletions

View File

@@ -356,7 +356,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
}
if !isPending {
if status.Status == model.OrderStatusAgreeFailedGetGoods || status.Status == model.OrderStatusDeliverFailed {
s.updateOrderByBill(order, nil, true)
s.updateOrderByBill(order, nil, status.Status != model.OrderStatusAgreeFailedGetGoods)
s.removeWaybillFromMap(savedOrderInfo, order.VendorID)
}
}

View File

@@ -38,6 +38,10 @@ const (
type StoreExt struct {
model.Store
MarketManName string `orm:"size(8)" json:"marketManName"` // 市场负责人姓名
OperatorName string `orm:"size(8)" json:"operatorName"` // 运营人姓名
FloatLng float64 `json:"lng"`
FloatLat float64 `json:"lat"`
@@ -151,7 +155,7 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa
t1.licence2_code,
t1.licence2_valid,
t1.licence2_expire,
t1.market_man_name,
IF(mm.name <> '', mm.name, mm.user_id2) market_man_name,
t1.market_man_phone,
t1.jx_brand_fee_factor,
t1.market_add_fee_factor,
@@ -162,7 +166,7 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa
bank.value payee_bank_name,
t1.pay_percentage,
t1.operator_name,
IF(om.name <> '', om.name, om.user_id2) operator_name,
t1.operator_phone,
t1.printer_disabled,
@@ -188,12 +192,16 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa
LEFT JOIN place district ON t1.district_code = district.code AND district.level = 3
LEFT JOIN store_map m1 ON t1.id = m1.store_id AND m1.deleted_at = ?
LEFT JOIN store_courier_map m2 ON t1.id = m2.store_id AND m2.deleted_at = ?
LEFT JOIN user mm ON mm.mobile <> '' AND mm.mobile = t1.market_man_phone AND mm.deleted_at = ?
LEFT JOIN user om ON om.mobile <> '' AND om.mobile = t1.operator_phone AND om.deleted_at = ?
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
model.ConfigTypeBank,
utils.DefaultTimeValue,
utils.DefaultTimeValue,
utils.DefaultTimeValue,
utils.DefaultTimeValue,
}
sqlWhere := `
WHERE t1.deleted_at = ?
@@ -1513,6 +1521,46 @@ func isVendorStoresStatusNotOk(storeMapList []*model.VendorStoreSnapshot) bool {
return len(statusMap) > 1 && maxStatus == model.StoreStatusOpened
}
func getAllUsers4Store(ctx *jxcontext.Context, db *dao.DaoDB, store *model.Store) (userList []*model.User) {
storeID := store.ID
var userIDs []string
userMap := make(map[string]int)
// 门店老板
if roleUserIDList, err := GetRoleUserList(ctx, autils.NewStoreBossRole(storeID)); err == nil && len(roleUserIDList) > 0 {
userIDs = append(userIDs, roleUserIDList...)
}
// 全局相关角色(市场或运营)
for _, v := range []string{store.MarketManRole, store.OperatorRole, store.OperatorRole2} {
if v != "" {
if roleUserIDList, err := GetRoleUserList(ctx, autils.NewRole(v, 0)); err == nil && len(roleUserIDList) > 0 {
userIDs = append(userIDs, roleUserIDList...)
}
}
}
if len(userIDs) > 0 {
userList, _, _ = dao.GetUsers(db, 0, "", userIDs, "", "", 0, -1)
for _, v := range userList {
userMap[v.GetID()] = 1
}
}
// 直接电话信息相关人员
for _, mobile := range []string{store.Tel1, store.Tel2, store.MarketManPhone, store.OperatorPhone} {
if mobile != "" {
if user, err2 := dao.GetUserByID(db, "mobile", mobile); err2 == nil {
if userMap[user.GetID()] == 0 {
userMap[user.GetID()] = 1
userList = append(userList, user)
}
}
}
}
return userList
}
func SendAlarmVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, prevSnapshotList, curSnapshotList []*model.VendorStoreSnapshot) (err error) {
if len(prevSnapshotList) == 0 {
return nil
@@ -1578,31 +1626,16 @@ func SendAlarmVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, p
storeDetail, _ := dao.GetStoreDetail(db, storeID, list[0].VendorID)
if storeDetail != nil {
storeDetailMap[storeID] = storeDetail
var userList []*model.User
if roleUserIDList, err := GetRoleUserList(ctx, autils.NewStoreBossRole(storeID)); err == nil && len(roleUserIDList) > 0 {
userList, _, _ = dao.GetUsers(db, 0, "", roleUserIDList, "", "", 0, -1)
}
for _, mobile := range []string{storeDetail.Tel1, storeDetail.Tel2, storeDetail.MarketManPhone, storeDetail.OperatorPhone} {
if mobile != "" {
if user, err2 := dao.GetUserByID(db, "mobile", mobile); err2 == nil {
userList = append(userList, user)
}
}
}
processedUser := make(map[string]int)
userList := getAllUsers4Store(ctx, db, &storeDetail.Store)
for _, user := range userList {
userID := user.GetID()
if processedUser[userID] == 0 {
processedUser[userID] = 1
if userMap[userID] == nil {
userMap[userID] = make(map[int]int)
userMap2[userID] = user
}
userMap[userID][storeID] = 1
if txtAlarmSnapshotMap[storeID] != nil {
userMapTxt[userID] = append(userMapTxt[userID], txtAlarmSnapshotMap[storeID]...)
}
if userMap[userID] == nil {
userMap[userID] = make(map[int]int)
userMap2[userID] = user
}
userMap[userID][storeID] = 1
if txtAlarmSnapshotMap[storeID] != nil {
userMapTxt[userID] = append(userMapTxt[userID], txtAlarmSnapshotMap[storeID]...)
}
}
}

View File

@@ -31,9 +31,9 @@ func GetPlacesByCond(db *DaoDB, enableCond int) (placeList []*model.Place, err e
FROM place
WHERE level = 2
`
if enableCond == 1 {
if enableCond == EnableCondEnalbed {
sql += " AND enabled = 1"
} else if enableCond == 2 {
} else if enableCond == EnableCondDisabled {
sql += " AND enabled = 0"
}
sql += " ORDER BY code"

View File

@@ -285,9 +285,9 @@ type Store struct {
Licence2Valid string `orm:"size(32)" json:"licence2Valid"` // 有效期开始
Licence2Expire string `orm:"size(32)" json:"licence2Expire"` // 有效期结束
MarketManName string `orm:"size(8)" json:"marketManName"` // 市场负责人姓名
// MarketManName string `orm:"size(8)" json:"marketManName"` // 市场负责人姓名
MarketManPhone string `orm:"size(16)" json:"marketManPhone"` // 市场负责人电话
MarketManRole string `orm:"size(32)" json:"marketManRole"` // 市场负责人组(角色)
MarketManRole string `orm:"size(32)" json:"marketManRole"` // 市场负责人组(角色,单人
JxBrandFeeFactor int `json:"jxBrandFeeFactor"` // 京西品牌费因子
MarketAddFeeFactor int `json:"marketAddFeeFactor"` // 市场附加费因子
@@ -298,7 +298,7 @@ type Store struct {
PayeeBankCode string `orm:"size(8)" json:"payeeBankCode"` // 开户行代码
PayPercentage int `json:"payPercentage"`
OperatorName string `orm:"size(8)" json:"operatorName"` // 运营人姓名
// OperatorName string `orm:"size(8)" json:"operatorName"` // 运营人姓名
OperatorPhone string `orm:"size(16)" json:"operatorPhone"` // 运营人电话
OperatorRole string `orm:"size(32)" json:"operatorRole"` // 京东运营人组(角色)
OperatorRole2 string `orm:"size(32)" json:"operatorRole2"` // 非京东运营人组(角色)