饿百平台运单取消后给运营发报警消息
This commit is contained in:
@@ -1,111 +1,217 @@
|
||||
package dao
|
||||
|
||||
// type StoreUserInfo struct {
|
||||
// legacymodel.WeiXins
|
||||
// ParentMobile string `json:"parentMobile"`
|
||||
// Members []*legacymodel.WeiXins `orm:"-" json:"members"`
|
||||
// MembersStr string `json:"-"`
|
||||
// }
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
// func CreateWeiXins(db *DaoDB, user *legacymodel.WeiXins) (err error) {
|
||||
// Begin(db)
|
||||
// if err = CreateEntity(db, user); err != nil {
|
||||
// Rollback(db)
|
||||
// return err
|
||||
// }
|
||||
// if err = SetWeiXinsEmpty2Null(db, user); err != nil {
|
||||
// Rollback(db)
|
||||
// return err
|
||||
// }
|
||||
// Commit(db)
|
||||
// return err
|
||||
// }
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
)
|
||||
|
||||
// func SetWeiXinsEmpty2Null(db *DaoDB, user *legacymodel.WeiXins) (err error) {
|
||||
// _, err = ExecuteSQL(db, `
|
||||
// UPDATE weixins
|
||||
// SET
|
||||
// openid = IF(openid = '', NULL, openid),
|
||||
// openid_mini = IF(openid_mini = '', NULL, openid_mini),
|
||||
// openid_union = IF(openid_union = '', NULL, openid_union),
|
||||
// tel = IF(tel = '', NULL, tel),
|
||||
// parentid = IF(parentid = 0, -1, parentid)
|
||||
// WHERE id = ?
|
||||
// `, user.ID)
|
||||
// return err
|
||||
// }
|
||||
type StoreWithCityName struct {
|
||||
model.Store
|
||||
CityName string `json:"cityName"`
|
||||
}
|
||||
|
||||
// func GetWeiXinUserByIDs(db *DaoDB, tel, unionID, openID, miniOpenID string) (user *legacymodel.WeiXins, err error) {
|
||||
// fieldList := []string{
|
||||
// "Tel",
|
||||
// "OpenIDUnion",
|
||||
// "OpenID",
|
||||
// "OpenIDMini",
|
||||
// }
|
||||
// valueList := []string{
|
||||
// tel,
|
||||
// unionID,
|
||||
// openID,
|
||||
// miniOpenID,
|
||||
// }
|
||||
// user = &legacymodel.WeiXins{
|
||||
// Tel: tel,
|
||||
// OpenIDUnion: unionID,
|
||||
// OpenID: openID,
|
||||
// OpenIDMini: miniOpenID,
|
||||
// }
|
||||
// for index := range valueList {
|
||||
// if valueList[index] != "" {
|
||||
// if err = GetEntity(db, user, fieldList[index]); err == nil {
|
||||
// return user, nil
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return nil, err
|
||||
// }
|
||||
type UserDeliveryAddressEx struct {
|
||||
model.UserDeliveryAddress
|
||||
|
||||
// func UpdateWeiXinUser(db *DaoDB, tel, nickname, unionID, openID, miniOpenID string) (err error) {
|
||||
// user := &legacymodel.WeiXins{
|
||||
// Tel: tel,
|
||||
// }
|
||||
// if err = GetEntity(db, user, "Tel"); err == nil {
|
||||
// updateFields := []string{}
|
||||
// if openID != "" {
|
||||
// user.OpenID = openID
|
||||
// updateFields = append(updateFields, "OpenID")
|
||||
// }
|
||||
// if unionID != "" {
|
||||
// user.OpenIDUnion = unionID
|
||||
// updateFields = append(updateFields, "OpenIDUnion")
|
||||
// }
|
||||
// if miniOpenID != "" {
|
||||
// user.OpenIDMini = miniOpenID
|
||||
// updateFields = append(updateFields, "OpenIDMini")
|
||||
// }
|
||||
// if nickname != "" {
|
||||
// user.NickName = nickname
|
||||
// updateFields = append(updateFields, "NickName")
|
||||
// }
|
||||
// _, err = UpdateEntity(db, user, updateFields...)
|
||||
// }
|
||||
// return err
|
||||
// }
|
||||
UserName string `json:"userName"`
|
||||
CityName string `json:"cityName"`
|
||||
DistrictName string `json:"districtName"`
|
||||
}
|
||||
|
||||
// func GetUserStoreInfo(db *DaoDB, fieldName, fieldValue string) (storeUserInfo *StoreUserInfo, err error) {
|
||||
// sql := fmt.Sprintf(`
|
||||
// SELECT t1.id, IF(t3.id IS NULL, t1.jxstoreid, t3.jxstoreid) jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid, t3.tel parent_mobile,
|
||||
// CONCAT("[", GROUP_CONCAT(CONCAT('{"id":', t2.id, ',"tel":"', t2.tel, '","nickname":"', IF(t2.nickname IS NULL, "", t2.nickname), '"}')), "]") members_str
|
||||
// FROM weixins t1
|
||||
// LEFT JOIN weixins t2 ON t2.parentid = t1.id
|
||||
// LEFT JOIN weixins t3 ON t1.parentid = t3.id
|
||||
// WHERE t1.%s = ?
|
||||
// GROUP BY 1,2,3,4,5,6,7;
|
||||
// `, fieldName)
|
||||
// if err = GetRow(db, &storeUserInfo, sql, fieldValue); err == nil { // todo
|
||||
// err = nil
|
||||
// if storeUserInfo.MembersStr != "" {
|
||||
// err = utils.UnmarshalUseNumber([]byte(storeUserInfo.MembersStr), &storeUserInfo.Members)
|
||||
// }
|
||||
// }
|
||||
// return storeUserInfo, err
|
||||
// }
|
||||
func GetUserByID(db *DaoDB, fieldName, fieldValue string) (user *model.User, err error) {
|
||||
sql := fmt.Sprintf(`
|
||||
SELECT *
|
||||
FROM user t1
|
||||
WHERE t1.deleted_at = ? AND t1.status = ? AND t1.%s = ?
|
||||
`, fieldName)
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
model.UserStatusNormal,
|
||||
fieldValue,
|
||||
}
|
||||
// globals.SugarLogger.Debugf("GetUserByID sql:%s, sqlParams:%s", sql, utils.Format4Output(sqlParams, false))
|
||||
err = GetRow(db, &user, sql, sqlParams...)
|
||||
return user, err
|
||||
}
|
||||
|
||||
func GetUsers(db *DaoDB, userType int, keyword string, userIDs, userID2s, mobiles []string, offset, pageSize int) (userList []*model.User, totalCount int, err error) {
|
||||
offset = jxutils.FormalizePageOffset(offset)
|
||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||
if userType == 0 {
|
||||
userType = 255
|
||||
}
|
||||
sql := `
|
||||
SELECT SQL_CALC_FOUND_ROWS
|
||||
t1.*
|
||||
FROM user t1
|
||||
WHERE t1.status = 1 AND t1.deleted_at = ? AND t1.type & ? <> 0`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
userType,
|
||||
}
|
||||
if len(userIDs) > 0 {
|
||||
sql += " AND t1.user_id IN (" + GenQuestionMarks(len(userIDs)) + ")"
|
||||
sqlParams = append(sqlParams, userIDs)
|
||||
}
|
||||
if len(userID2s) > 0 {
|
||||
sql += " AND t1.user_id2 IN (" + GenQuestionMarks(len(userID2s)) + ")"
|
||||
sqlParams = append(sqlParams, userID2s)
|
||||
}
|
||||
if len(mobiles) > 0 {
|
||||
sql += " AND t1.mobile IN (" + GenQuestionMarks(len(mobiles)) + ")"
|
||||
sqlParams = append(sqlParams, mobiles)
|
||||
}
|
||||
if keyword != "" {
|
||||
keywordLike := "%" + keyword + "%"
|
||||
sql += " AND (t1.user_id LIKE ? OR t1.user_id2 LIKE ? OR t1.mobile LIKE ? OR t1.email LIKE ? OR t1.name LIKE ?)"
|
||||
sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike)
|
||||
}
|
||||
sql += " LIMIT ? OFFSET ?"
|
||||
sqlParams = append(sqlParams, pageSize, offset)
|
||||
Begin(db)
|
||||
defer Commit(db)
|
||||
if err = GetRows(db, &userList, sql, sqlParams...); err == nil {
|
||||
totalCount = GetLastTotalRowCount(db)
|
||||
}
|
||||
return userList, totalCount, err
|
||||
}
|
||||
|
||||
func DeleteUsers(db *DaoDB, userIDs []string) (num int64, err error) {
|
||||
if len(userIDs) > 0 {
|
||||
sql := `
|
||||
UPDATE user t1
|
||||
JOIN auth_bind t2 ON t2.user_id = t1.user_id
|
||||
SET
|
||||
t1.deleted_at = ?,
|
||||
t2.deleted_at = ?
|
||||
WHERE t1.user_id IN (` + GenQuestionMarks(len(userIDs)) + ");"
|
||||
now := time.Now()
|
||||
sqlParams := []interface{}{
|
||||
now,
|
||||
now,
|
||||
userIDs,
|
||||
}
|
||||
num, err = ExecuteSQL(db, sql, sqlParams...)
|
||||
}
|
||||
return num, err
|
||||
}
|
||||
|
||||
func GetStoreListByMobile(db *DaoDB, mobile string) (storeList []*StoreWithCityName, err error) {
|
||||
if mobile != "" {
|
||||
sql := `
|
||||
SELECT
|
||||
DISTINCT t1.*, t2.name city_name
|
||||
FROM (
|
||||
SELECT *
|
||||
FROM store t1
|
||||
WHERE (t1.market_man_phone = ? OR t1.operator_phone = ? OR t1.operator_phone2 = ?)
|
||||
UNION DISTINCT
|
||||
SELECT t1.*
|
||||
FROM store t1
|
||||
JOIN weixins t2 ON t2.jxstoreid = t1.id AND t2.parentid = -1
|
||||
LEFT JOIN weixins t3 ON t3.parentid = t2.id
|
||||
WHERE (t2.tel = ? OR t3.tel = ?)
|
||||
) t1
|
||||
LEFT JOIN place t2 ON t2.code = t1.city_code
|
||||
WHERE t1.deleted_at = ?
|
||||
ORDER BY t1.name`
|
||||
sqlParams := []interface{}{
|
||||
mobile,
|
||||
mobile,
|
||||
mobile,
|
||||
mobile,
|
||||
mobile,
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
err = GetRows(db, &storeList, sql, sqlParams...)
|
||||
}
|
||||
return storeList, err
|
||||
}
|
||||
|
||||
func GetStoreListByMobileOrStoreIDs(db *DaoDB, mobile string, shortRoleNameList []string, storeIDs []int) (storeList []*StoreWithCityName, err error) {
|
||||
sql := `
|
||||
SELECT t1.*, t2.name city_name
|
||||
FROM store t1
|
||||
LEFT JOIN place t2 ON t2.code = t1.city_code
|
||||
WHERE t1.deleted_at = ? AND ( 1 = 0`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if mobile != "" {
|
||||
sql += " OR t1.market_man_phone = ? OR t1.operator_phone = ? OR t1.operator_phone2 = ?"
|
||||
sqlParams = append(sqlParams, mobile, mobile, mobile)
|
||||
}
|
||||
if len(shortRoleNameList) > 0 {
|
||||
questionMarks := GenQuestionMarks(len(shortRoleNameList))
|
||||
sql += " OR t1.market_man_role IN (" + questionMarks + ") OR t1.operator_role IN (" + questionMarks + ") OR t1.operator_role2 IN (" + questionMarks + ")"
|
||||
sqlParams = append(sqlParams, shortRoleNameList, shortRoleNameList, shortRoleNameList)
|
||||
}
|
||||
if len(storeIDs) > 0 {
|
||||
sql += " OR t1.id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
||||
sqlParams = append(sqlParams, storeIDs)
|
||||
}
|
||||
sql += ")"
|
||||
err = GetRows(db, &storeList, sql, sqlParams...)
|
||||
return storeList, err
|
||||
}
|
||||
|
||||
func QueryUserDeliveryAddress(db *DaoDB, addressID int64, userIDs []string, offset, pageSize int) (addressList []*UserDeliveryAddressEx, totalCount int, err error) {
|
||||
sql := `
|
||||
SELECT SQL_CALC_FOUND_ROWS
|
||||
t1.*,
|
||||
t2.name user_name,
|
||||
district.name district_name,
|
||||
city.name city_name
|
||||
FROM user_delivery_address t1
|
||||
LEFT JOIN user t2 ON t2.user_id = t1.user_id
|
||||
LEFT JOIN place district ON district.code = t1.district_code
|
||||
LEFT JOIN place city ON city.code = t1.city_code
|
||||
WHERE t1.deleted_at = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if addressID > 0 {
|
||||
sql += " AND t1.id = ? "
|
||||
sqlParams = append(sqlParams, addressID)
|
||||
}
|
||||
if len(userIDs) > 0 {
|
||||
sql += " AND t1.user_id IN (" + GenQuestionMarks(len(userIDs)) + ")"
|
||||
sqlParams = append(sqlParams, userIDs)
|
||||
}
|
||||
offset = jxutils.FormalizePageOffset(offset)
|
||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||
sql += `
|
||||
ORDER BY t1.is_default DESC, t1.consignee_name
|
||||
LIMIT ? OFFSET ?`
|
||||
sqlParams = append(sqlParams, pageSize, offset)
|
||||
|
||||
Begin(db)
|
||||
defer Commit(db)
|
||||
if err = GetRows(db, &addressList, sql, sqlParams...); err == nil {
|
||||
totalCount = GetLastTotalRowCount(db)
|
||||
}
|
||||
return addressList, totalCount, err
|
||||
}
|
||||
|
||||
func ClearUserDeliveryAddressDefault(db *DaoDB, userID string, defAddressID int) (err error) {
|
||||
sql := `
|
||||
UPDATE user_delivery_address t1
|
||||
SET t1.is_default = 0
|
||||
WHERE t1.deleted_at = ? AND t1.user_id = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
userID,
|
||||
}
|
||||
if defAddressID > 0 {
|
||||
sql += " AND t1.id <> ?"
|
||||
sqlParams = append(sqlParams, defAddressID)
|
||||
}
|
||||
_, err = ExecuteSQL(db, sql, sqlParams...)
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user