This commit is contained in:
苏尹岚
2020-12-01 09:54:53 +08:00
parent 0788bd8e79
commit fd11b0cd83
7 changed files with 93 additions and 4 deletions

View File

@@ -197,8 +197,28 @@ func CancelPublishJob(ctx *jxcontext.Context, jobID int) (err error) {
return err
}
func GetJobs(ctx *jxcontext.Context, userIDs []string, categoryIDs, statuss, vendorIDs []int, includeStep bool, fromTime, toTime string, lng, lat float64, sortType, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) {
return dao.GetJobs(dao.GetDB(), userIDs, categoryIDs, statuss, vendorIDs, []int{model.JobTypeNormal}, includeStep, utils.Str2Time(fromTime), utils.Str2Time(toTime), lng, lat, sortType, pageSize, offset)
func GetJobs(ctx *jxcontext.Context, userIDs []string, categoryIDs, statuss, vendorIDs []int, includeStep bool, fromTime, toTime string, lng, lat float64, keyword string, sortType, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) {
var (
db = dao.GetDB()
userID = ctx.GetUserID()
)
pagedInfo, err = dao.GetJobs(db, userIDs, categoryIDs, statuss, vendorIDs, []int{model.JobTypeNormal}, includeStep, utils.Str2Time(fromTime), utils.Str2Time(toTime), lng, lat, keyword, sortType, pageSize, offset)
//插入用户搜索关键词
if keyword != "" {
if userSearchs, _ := dao.GetUserSearch(db, userID, keyword); len(userSearchs) > 0 {
userSearchs[0].Count++
userSearchs[0].UpdatedAt = time.Now()
dao.UpdateEntity(db, userSearchs[0], "Count", "UpdatedAt")
} else {
userSearch := &model.UserSearch{
UserID: userID,
Key: keyword,
}
dao.WrapAddIDCULEntity(userSearch, ctx.GetUserName())
dao.CreateEntity(db, userSearch)
}
}
return pagedInfo, err
}
func GetJobDetail(ctx *jxcontext.Context, jobID int, lng, lat float64) (job *dao.GetJobsResult, err error) {

View File

@@ -735,3 +735,19 @@ func AcceptAddGroup(ctx *jxcontext.Context, flag int) (err error) {
dao.UpdateEntity(db, user, "PopedFlag")
return err
}
type GetUserSerachKeywordResult struct {
AllSpan []*model.UserSearch `json:"allSpan"`
UserSpan []*model.UserSearch `json:"userSpan"`
}
func GetUserSerachKeyword(ctx *jxcontext.Context) (err error) {
var (
db = dao.GetDB()
userID = ctx.GetUserID()
)
sql := `
SELECT * FROM user_search WHERE
`
return err
}

View File

@@ -58,7 +58,7 @@ func GetJobImgs(db *DaoDB, jobID int) (jobImgs []*model.JobImg, err error) {
return jobImgs, err
}
func GetJobs(db *DaoDB, userIDs []string, categoryIDs, statuss, vendorIDs, types []int, includeStep bool, fromTime, toTime time.Time, lng, lat float64, sortType, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) {
func GetJobs(db *DaoDB, userIDs []string, categoryIDs, statuss, vendorIDs, types []int, includeStep bool, fromTime, toTime time.Time, lng, lat float64, keyword string, sortType, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) {
var (
jobs []*GetJobsResult
distanceFlag bool
@@ -107,6 +107,10 @@ func GetJobs(db *DaoDB, userIDs []string, categoryIDs, statuss, vendorIDs, types
sql += ` AND a.created_at <= ?`
sqlParams = append(sqlParams, toTime)
}
if keyword != "" {
sql += ` AND (a.title LIKE ? OR a.content LIKE ? OR a.address LIKE ? OR b.name LIKE ?)`
sqlParams = append(sqlParams, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%")
}
if sortType != 0 {
if sortType == sortTypeDistance {
sql += ` ORDER BY distance`
@@ -389,3 +393,22 @@ func GetMtMembers(db *DaoDB) (num int, err error) {
num = len(mtMembers)
return num, err
}
func GetUserSearch(db *DaoDB, userID, keyword string) (userSearchs []*model.UserSearch, err error) {
sql := `
SELECT *
FROM user_search
WHERE 1 = 1
`
sqlParams := []interface{}{}
if userID != "" {
sql += ` AND user_id = ?`
sqlParams = append(sqlParams, userID)
}
if keyword != "" {
sql += ` AND keyword = ?`
sqlParams = append(sqlParams, keyword)
}
err = GetRows(db, &userSearchs, sql, sqlParams)
return userSearchs, err
}

View File

@@ -260,3 +260,18 @@ type GetUserResult struct {
AcceptOrderCount int `json:"acceptOrderCount"`
FinishedOrderCount int `json:"finishedOrderCount"`
}
type UserSearch struct {
ModelIDCUL
UserID string `orm:"column(user_id)" json:"userID"` //用户ID
Key string `json:"key"` //搜索关键字
Count int `json:"count"` //搜索次数
}
func (v *UserSearch) TableIndex() [][]string {
return [][]string{
[]string{"UserID"},
[]string{"Key"},
}
}

View File

@@ -70,6 +70,7 @@ func (c *JobController) GetJobCategories() {
// @Param toTime query string false "结束时间"
// @Param lng query float64 false "经度"
// @Param lat query float64 false "维度"
// @Param keyword query string false "关键字"
// @Param sortType query int false "排序类型, 1距离2新店优先3今日热门4奖励高低"
// @Param offset query int false "门店列表起始序号以0开始缺省为0"
// @Param pageSize query int false "门店列表页大小缺省为50-1表示全部"
@@ -83,7 +84,7 @@ func (c *JobController) GetJobs() {
categoryIDs, statuss, vendorIDs []int
)
if err = jxutils.Strings2Objs(params.UserIDs, &userIDs, params.CategoryIDs, &categoryIDs, params.Statuss, &statuss, params.VendorIDs, &vendorIDs); err == nil {
retVal, err = cms.GetJobs(params.Ctx, userIDs, categoryIDs, statuss, vendorIDs, params.IncludeStep, params.FromTime, params.ToTime, params.Lng, params.Lat, params.SortType, params.PageSize, params.Offset)
retVal, err = cms.GetJobs(params.Ctx, userIDs, categoryIDs, statuss, vendorIDs, params.IncludeStep, params.FromTime, params.ToTime, params.Lng, params.Lat, params.Keyword, params.SortType, params.PageSize, params.Offset)
}
return retVal, "", err
})

View File

@@ -413,3 +413,16 @@ func (c *User2Controller) DeleteUserCityManager() {
return retVal, "", err
})
}
// @Title 得到搜索关键词
// @Description 得到搜索关键词
// @Param token header string true "认证token"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetUserSerachKeyword [get]
func (c *User2Controller) GetUserSerachKeyword() {
c.callGetUserSerachKeyword(func(params *tUser2GetUserSerachKeywordParams) (retVal interface{}, errCode string, err error) {
return retVal, "", err
})
}

View File

@@ -16,6 +16,7 @@ func Init() {
orm.RegisterModel(&model.UserMember{})
orm.RegisterModel(&model.UserDeliveryAddress{})
orm.RegisterModel(&model.UserCityManager{})
orm.RegisterModel(&model.UserSearch{})
//账单
orm.RegisterModel(&model.UserBill{}, &model.BillIncome{}, &model.BillExpend{})
//支付订单