This commit is contained in:
邹宗楠
2024-09-13 10:13:15 +08:00
parent fb355b892b
commit 6532479b1a
7 changed files with 253 additions and 11 deletions

View File

@@ -9,9 +9,10 @@ import (
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"strings"
"time"
)
// 获取招标信息
// GetBiddingMsg 获取招标信息
func GetBiddingMsg(ctx *jxcontext.Context, param map[string]interface{}) (result []*model.BiddingInfo, err error) {
sql := `select * from cg a where 1=1`
@@ -129,3 +130,67 @@ func UpdateTiktokOrderPhoneAddress() error {
}
return nil
}
// CreateSupermarketSign 保存超市签约数据
func CreateSupermarketSign(supermarket []*model.SupermarketSign, lastOperator string) []string {
db := dao.GetDB()
errors := make([]string, 0, 0)
for i := 0; i < len(supermarket); i++ {
dao.WrapAddIDCULDEntity(supermarket[i], lastOperator)
if err := dao.CreateEntity(db, supermarket[i]); err != nil {
errors = append(errors, fmt.Sprintf("%s-%s:%v", supermarket[i].StoreName, supermarket[i].StoreID, err))
}
}
return errors
}
func QuerySupermarketSign(storeId, storeName, cityName, storeType, signPeople string, start, end, page, size int) (result []*model.SupermarketSign, totalCount int, err error) {
sql := `SELECT SQL_CALC_FOUND_ROWS * FROM supermarket_sign WHERE 1 = 1 `
param := make([]interface{}, 0, 0)
if start != 0 {
startTime := time.Unix(int64(start), 0)
sql += ` AND sign_start_time >= ?`
param = append(param, startTime)
}
if end != 0 {
endTime := time.Unix(int64(end), 0)
sql += ` AND sign_end_time < ?`
param = append(param, endTime)
}
if storeId != "" {
sql += ` AND store_id = ?`
param = append(param, storeId)
}
if storeName != "" {
sql += ` AND store_name like ?`
param = append(param, "%"+storeName+"%")
}
if cityName != "" {
sql += ` AND code_name like ?`
param = append(param, "%"+cityName+"%")
}
if storeType != "" {
sql += ` AND store_type = ?`
param = append(param, storeType)
}
if signPeople != "" {
sql += ` AND sign_people = ?`
param = append(param, signPeople)
}
sql += " limit ? offset ? "
param = append(param, size)
param = append(param, (utils.MustInterface2Int64(page)-1)*utils.MustInterface2Int64(size))
db := dao.GetDB()
txDB, _ := dao.Begin(db)
defer dao.Commit(db, txDB)
if err = dao.GetRowsTx(txDB, &result, sql, param...); err == nil {
totalCount = dao.GetLastTotalRowCount2(db, txDB)
return result, totalCount, nil
}
return nil, 0, err
}

View File

@@ -171,6 +171,9 @@ func (c *OrderManager) OnOrderComments(orderCommentList []*model.OrderComment) (
}
if err == nil {
if comment2.OrderFlag == "1" {
globals.SugarLogger.Debugf("---------------comment2-isNewComment :%s", utils.Format4Output(comment2, false))
}
if isNewComment {
err = dao.CreateEntity(db, comment2)
} else if comment2 != nil {
@@ -178,12 +181,18 @@ func (c *OrderManager) OnOrderComments(orderCommentList []*model.OrderComment) (
}
}
} else {
if comment2.OrderFlag == "1" {
globals.SugarLogger.Debugf("---------------comment2-UpdateEntity :%s", utils.Format4Output(comment2, false))
}
if orderComment.VendorOrderID2 != "" {
comment2.VendorOrderId = orderComment.VendorOrderID2
_, err = dao.UpdateEntity(db, comment2)
}
}
} else {
if comment2.OrderFlag == "1" {
globals.SugarLogger.Debugf("---------------comment2-UpdateEntity2 :%s", utils.Format4Output(comment2, false))
}
comment2.VendorOrderId = orderComment.VendorOrderID2
_, err = dao.UpdateEntity(db, comment2, "VendorOrderId")
}

View File

@@ -0,0 +1,28 @@
package model
import "time"
type SupermarketSign struct {
ModelIDCULD
StoreID string `orm:"column(store_id);size(32)" json:"storeID"` // 门店ID
StoreName string `orm:"column(store_name);size(128)" json:"storeName"` // 门店名称
CodeName string `orm:"column(code_name);size(32)" json:"codeName"` // 门店所属城市
StoreType string `orm:"column(store_type);size(16)" json:"storeType"` // 门店类型
SalesVolume int64 `orm:"column(sales_volume);size(16)" json:"salesVolume"` // 销量
Points float64 `orm:"column(points);size(4)" json:"points"` // 扣点
ContractFee float64 `orm:"column(contract_fee);size(8)" json:"contractFee"` // 签约收费
SignStartTime time.Time `orm:"column(sign_start_time);type(datetime)" json:"signStartTime"` // 签约开始时间
SignEndTime time.Time `orm:"column(sign_end_time);type(datetime)" json:"signEndTime"` // 签约结束时间
SignPeople string `orm:"column(sign_people);size(36)" json:"signPeople"` // 签约人
Status string `orm:"column(status);size(36)" json:"status"` // 签约状态
Remake string `orm:"column(remake);size(512)" json:"remake"` // 备注
Reward string `orm:"column(reward);size(512)" json:"reward"` // 奖励信息
CreateCrowd string `orm:"column(create_crowd);size(16)" json:"createCrowd"` // 群状态
}
func (*SupermarketSign) TableIndex() [][]string {
return [][]string{
[]string{"StoreID", "StoreName", "CodeName"},
[]string{"SignStartTime"},
}
}

View File

@@ -60,6 +60,7 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error)
}
// 查询门店差评
commentList, _ := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID).CommentQuery(storeDetail.VendorStoreID, startDateStr, endDateStr, 0, 0, mtwmapi.CommentReplyStatusNotReplied)
globals.SugarLogger.Debugf("--------------commentList := %d", len(commentList))
var orderCommentList []*model.OrderComment
if len(commentList) == model.NO || commentList == nil {
return nil, nil
@@ -130,6 +131,7 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error)
orderComment := result.(*model.OrderComment)
orderCommentList = append(orderCommentList, orderComment)
}
globals.SugarLogger.Debugf("--------------orderCommentList := %d", len(orderCommentList))
if len(orderCommentList) > 0 {
err = partner.CurOrderManager.OnOrderComments(orderCommentList)
}

View File

@@ -1,14 +1,20 @@
package controllers
import (
"encoding/json"
"errors"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/bidding"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/excel"
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego/server/web"
"strings"
"time"
)
type BiddingController struct {
@@ -125,3 +131,117 @@ func (c *BiddingController) JXPrintAfsOrder() {
return nil, "", err
})
}
// CreateSupermarketSign 创建超市签约信息
// @Title 创建超市签约信息
// @Description 创建超市签约信息:记录已经签约的门店信息
// @Param signObj formData string true "model.SupermarketSign"
// @Param token header string false "认证token"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /CreateSupermarketSign [post]
func (c *BiddingController) CreateSupermarketSign() {
c.callCreateSupermarketSign(func(params *tBindCreateSupermarketSignParams) (retVal interface{}, hint string, err error) {
supermarket := make([]*model.SupermarketSign, 0, 0)
if err = json.Unmarshal([]byte(params.SignObj), &supermarket); err != nil {
return nil, "", err
}
//retVal = bidding.CreateSupermarketSign(supermarket, params.Ctx.GetUserID())
retVal = bidding.CreateSupermarketSign(supermarket, "liulei")
return retVal, "", nil
})
}
// GetSupermarketSign 查询超市签约信息
// @Title 查询超市签约信息
// @Description 查询超市签约信息:记录已经签约的门店信息
// @Param storeID formData string false "美团门店ID"
// @Param storeName formData string false "美团门店名称"
// @Param startTime formData int64 false "签约开始时间"
// @Param endTime formData int64 false "签约结束时间"
// @Param cityName formData string false "门店城市"
// @Param storeType formData string false "门店类型"
// @Param signPeople formData string false "签约人"
// @Param page formData int64 true "页码"
// @Param size formData int64 true "页数"
// @Param token header string false "认证token"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetSupermarketSign [post]
func (c *BiddingController) GetSupermarketSign() {
c.callGetSupermarketSign(func(params *tBindGetSupermarketSignParams) (retVal interface{}, hint string, err error) {
retVal, count, err := bidding.QuerySupermarketSign(params.StoreID, params.StoreName, params.CityName, params.StoreType, params.SignPeople, params.StartTime, params.EndTime, params.Page, params.Size)
return map[string]interface{}{"data": retVal, "page": count}, "", err
})
}
// DownSupermarketSign 下载超市签约信息
// @Title 下载超市签约信息
// @Description 下载超市签约信息
// @Param storeID formData string false "美团门店ID"
// @Param storeName formData string false "美团门店名称"
// @Param startTime formData int64 false "签约开始时间"
// @Param endTime formData int64 false "签约结束时间"
// @Param cityName formData string false "门店城市"
// @Param storeType formData string false "门店类型"
// @Param signPeople formData string false "签约人"
// @Param token header string true "认证token"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /DownSupermarketSign [post]
func (c *BiddingController) DownSupermarketSign() {
c.callGetSupermarketSign(func(params *tBindGetSupermarketSignParams) (retVal interface{}, hint string, err error) {
var (
stores []*model.SupermarketSign
excelBin []byte
)
task := tasksch.NewSeqTask("导出签约门店", params.Ctx,
func(task *tasksch.SeqTask, step int, params2 ...interface{}) (result interface{}, err error) {
switch step {
case 0:
stores, _, _ = bidding.QuerySupermarketSign(params.StoreID, params.StoreName, params.CityName, params.StoreType, params.SignPeople, params.StartTime, params.EndTime, 1, model.UnlimitedPageSize)
case 1:
excelConf := &excel.Obj2ExcelSheetConfig{
Title: "签约门店导出",
Data: stores,
CaptionList: []string{
"createdAt",
"updatedAt",
"storeID",
"storeName",
"codeName",
"storeType",
"salesVolume",
"points",
"contractFee",
"signStartTime",
"signEndTime",
"signPeople",
"status",
"remake",
"reward",
"createCrowd",
},
}
excelBin = excel.Obj2Excel([]*excel.Obj2ExcelSheetConfig{excelConf})
case 2:
keyPart := []string{
params.Ctx.GetUserName(),
}
keyPart = append(keyPart, time.Now().Format("20060102T150405")+".xlsx")
key := "export/" + strings.Join(keyPart, "_")
excelURL, err2 := jxutils.UploadExportContent(excelBin, key)
if err = err2; err == nil {
task.SetNoticeMsg(excelURL)
}
}
return nil, err
}, 2)
tasksch.ManageTask(task).Run()
hint = task.GetID()
return "", hint, err
})
}

View File

@@ -10,20 +10,14 @@ import (
)
func Init() {
// set default database
// orm.RegisterDataBase(aliasName, driverName, dataSource, params)
//正式服务器
orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(111.231.218.230:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
// 本地测试服调试
// orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
//orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
//orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
// 开启sql打印
//orm.Debug = true
orm.RegisterModel(&model.SupermarketSign{})
orm.RegisterModel(new(legacymodel.Config))
orm.RegisterModel(new(legacymodel.BlackClient))
orm.RegisterModel(new(legacymodel.JxBadComments))
@@ -31,10 +25,7 @@ func Init() {
// if !globals.DisableWXAuth1 {
// orm.RegisterModel(new(legacymodel.WeiXins))
// }
// 这个注册的2022年之前的表包括2022年数据
orm.RegisterModel(new(model.GoodsOrder))
// 这个注册的是当前年份下一年的表,实现分表。不包括当前年份。
//orm.RegisterModelWithSuffix("_"+strconv.Itoa(time.Now().Year()+1), new(model.GoodsOrder))
orm.RegisterModel(new(model.GoodsOrderOriginal))
orm.RegisterModel(new(model.TempGoodsOrderMobile))
orm.RegisterModel(new(model.OrderSku))

View File

@@ -4450,6 +4450,33 @@ func init() {
MethodParams: param.Make(),
Filters: nil,
Params: nil})
// 创建签约门店
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"],
web.ControllerComments{
Method: "CreateSupermarketSign",
Router: `/CreateSupermarketSign`,
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
// 查询签约门店
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"],
web.ControllerComments{
Method: "GetSupermarketSign",
Router: `/GetSupermarketSign`,
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
// 下载报表
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"],
web.ControllerComments{
Method: "DownSupermarketSign",
Router: `/DownSupermarketSign`,
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
// 版本设置
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:VersionController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:VersionController"],