作者 陈志颖

fix:修复活动时间筛选问题

... ... @@ -3,13 +3,12 @@ package command
import (
"fmt"
"github.com/astaxie/beego/validation"
"time"
)
type SearchExchangeCashActivityCommand struct {
ActivityNameMatch string `json:"activityNameMatch"` // 兑换现金活动名称
CompanyId int64 `json:"companyId"` // 公司id
Deadline time.Time `json:"deadline,omitempty"` // 截止时间筛选
Deadline string `json:"deadline,omitempty"` // 截止时间筛选
Offset int `json:"offset,omitempty"` // 查询偏移量
Limit int `json:"limit,omitempty"` // 查询限制条目
}
... ...
... ... @@ -289,7 +289,7 @@ func (cashPoolService *CashPoolService) CreateExchangeCashActivity(createExchang
// 时间格式化
var deadline = createExchangeCashActivityCommand.Deadline
var t1 = time.Now()
var t2 = time.Date(deadline.Year(), deadline.Month(), deadline.Day(), 23, 59, 59, 0, time.Now().Location())
var t2 = time.Date(deadline.Year(), deadline.Month(), deadline.Day(), 23, 59, 59, 0, time.UTC)
// 创建兑换活动命令
newActivity := &domain.ExchangeCashActivity{
... ... @@ -393,6 +393,8 @@ func (cashPoolService *CashPoolService) SearchExchangeCashActivity(activityComma
exchangeActivityRepository = value
}
//fmt.Printf("查找活动命令:%+v\n", activityCommand)
// 查找兑换现金活动
if count, activities, err := exchangeActivityRepository.Find(tool_funs.SimpleStructToMap(activityCommand)); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
... ...
... ... @@ -81,16 +81,20 @@ func (repository *ExchangeCashActivityRepository) Find(queryOptions map[string]i
var exchangeCashActivityModels []*models.ExchangeCashActivity
exchangeCashActivities := make([]*domain.ExchangeCashActivity, 0)
query := tx.Model(&exchangeCashActivityModels)
fmt.Printf("查询:%+v\n", queryOptions)
if companyId, ok := queryOptions["companyId"]; ok {
query = query.Where(`exchange_cash_activity.company_id = ?`, companyId)
}
if activityNameMatch, ok := queryOptions["activityNameMatch"]; ok && (activityNameMatch != "") {
query = query.Where(`exchange_cash_activity.activity_name LIKE ?`, fmt.Sprintf("%%%s%%", activityNameMatch.(string)))
}
if deadline, ok := queryOptions["deadline"]; ok && !deadline.(time.Time).IsZero() {
var t = deadline.(time.Time)
newDeadline := time.Date(t.Year(), t.Month(), t.Day(), 23, 59, 59, 0, time.Now().Location())
query = query.Where(`exchange_cash_activity.deadline >= ?`, newDeadline)
if deadline, ok := queryOptions["deadline"]; ok && deadline != "" {
fmt.Print(deadline, "\n")
t, _ := time.ParseInLocation("2006-01-02", deadline.(string), time.UTC)
fmt.Print(t, "\n")
//newDeadline := time.Date(t.Year(), t.Month(), t.Day(), 23, 59, 59, 0, time.UTC)
//fmt.Print(newDeadline, "\n")
query = query.Where(`exchange_cash_activity.deadline >= ?`, t)
}
if offset, ok := queryOptions["offset"]; ok {
offset := offset.(int)
... ...
... ... @@ -198,6 +198,7 @@ func (controller *SuMoneyController) SearchExchangeActivities () {
cashPoolService := service.NewCashPoolService(nil)
searchExchangeCashActivityCommand := &command.SearchExchangeCashActivityCommand{}
json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), searchExchangeCashActivityCommand)
fmt.Printf("命令:%+v\n", searchExchangeCashActivityCommand)
data, err := cashPoolService.SearchExchangeCashActivity(searchExchangeCashActivityCommand)
var response utils.JsonResponse
if err != nil {
... ...