@@ -0,0 +1,109 @@ | |||
package db | |||
import ( | |||
"applet/app/db/model" | |||
"applet/app/utils" | |||
"fmt" | |||
) | |||
func GetHwOrderByOne(oid, mid, types string) *model.HwOrder { | |||
var data model.HwOrder | |||
get, err := ZhimengDb.Where("uid=? and oid=? and type=?", mid, oid, types).Get(&data) | |||
if get == false || err != nil { | |||
fmt.Println(err) | |||
return nil | |||
} | |||
return &data | |||
} | |||
func GetHwOrderList(args map[string]string) []model.HwOrder { | |||
/*** | |||
p 页数 | |||
size 个数 | |||
start_time 开始时间 | |||
end_time 结束时间 | |||
ord_type 订单类型 | |||
video_type 视频类型 | |||
status 订单状态 | |||
settle_status 结算状态 | |||
oid 订单号 | |||
sort 排序 | |||
is_to_settle 智盟结算 | |||
to_settle_time 结算上月时间 | |||
*/ | |||
var data = make([]model.HwOrder, 0) | |||
size := utils.StrToInt(args["size"]) | |||
offet := (utils.StrToInt(args["p"]) - 1) * size | |||
sess := ZhimengDb.Where("1=1") | |||
if args["start_time"] != "" { | |||
sess = sess.And("update_time>=?", args["start_time"]) | |||
} | |||
if args["end_time"] != "" { | |||
sess = sess.And("update_time<=?", args["end_time"]) | |||
} | |||
if args["type"] != "" { | |||
sess = sess.And("type=?", args["type"]) | |||
} | |||
if args["uid"] != "" { | |||
sess = sess.And("uid=?", args["uid"]) | |||
} | |||
if args["status"] != "" { | |||
sess = sess.And("status=?", args["status"]) | |||
} | |||
if args["to_settle_time"] != "" { | |||
sess = sess.And("create_time<?", args["to_settle_time"]) | |||
} | |||
sort := "update_time desc,id desc" | |||
if args["sort"] != "" { | |||
sort = args["sort"] | |||
} | |||
if args["is_to_settle"] == "1" { | |||
sess = sess.And("settle_time=?", 0) | |||
} | |||
if args["is_commission"] == "1" { | |||
sess = sess.And("commission>?", 0) | |||
} | |||
err := sess.Limit(size, offet).OrderBy(sort).Find(&data) | |||
fmt.Println(err) | |||
fmt.Println(sess.LastSQL()) | |||
return data | |||
} | |||
func GetHwOrderListTotal(args map[string]string) ([]model.HwOrder, int64) { | |||
var data = make([]model.HwOrder, 0) | |||
size := utils.StrToInt(args["size"]) | |||
offet := (utils.StrToInt(args["p"]) - 1) * size | |||
sess := ZhimengDb.Where("1=1") | |||
if args["start_time"] != "" { | |||
sess = sess.And("create_time>=?", args["start_time"]) | |||
} | |||
if args["end_time"] != "" { | |||
sess = sess.And("create_time<=?", args["end_time"]) | |||
} | |||
if args["type"] != "" { | |||
sess = sess.And("type=?", args["type"]) | |||
} | |||
if args["settle_type"] == "0" { | |||
sess = sess.And("settle_time=?", 0) | |||
} | |||
if args["settle_type"] == "1" { | |||
sess = sess.And("settle_time>?", 0) | |||
} | |||
if args["uid"] != "" { | |||
sess = sess.And("uid=?", args["uid"]) | |||
} | |||
if args["zuid"] != "" { | |||
sess = sess.And("zuid=?", args["zuid"]) | |||
} | |||
if args["status"] != "" { | |||
sess = sess.And("status=?", args["status"]) | |||
} | |||
sort := "create_time desc,id desc" | |||
if args["sort"] != "" { | |||
sort = args["sort"] | |||
} | |||
total, err := sess.Limit(size, offet).OrderBy(sort).FindAndCount(&data) | |||
fmt.Println(err) | |||
fmt.Println(sess.LastSQL()) | |||
return data, total | |||
} |
@@ -25,12 +25,22 @@ func (masterAmountDb *MasterAmountDb) GetMasterAmount(id, types string) *model.M | |||
} | |||
return &data | |||
} | |||
func (masterAmountDb *MasterAmountDb) GetMasterAmountByExtendUid(id, extendUid, types string) *model.MasterAmount { | |||
var data model.MasterAmount | |||
get, err := masterAmountDb.Db.Where("uid=? and type=? and extend_uid=?", id, types, extendUid).Get(&data) | |||
if get == false || err != nil { | |||
data = model.MasterAmount{Uid: id, ExtendUid: extendUid, Type: types, UpdateTime: time.Now()} | |||
masterAmountDb.Db.InsertOne(&data) | |||
} | |||
return &data | |||
} | |||
func (masterAmountDb *MasterAmountDb) GetMasterAmountList(args map[string]string) *[]model.MasterAmount { | |||
var data = make([]model.MasterAmount, 0) | |||
size := utils.StrToInt(args["size"]) | |||
offet := (utils.StrToInt(args["p"]) - 1) * size | |||
sess := masterAmountDb.Db.Where("last_month_amount>0") | |||
sess.Limit(size, offet).OrderBy("id desc").Find(&data) | |||
err := sess.Limit(size, offet).OrderBy("id desc").Find(&data) | |||
fmt.Println(err) | |||
return &data | |||
} | |||
func (masterAmountDb *MasterAmountDb) GetMasterAmountByListId(id string) *model.MasterAmount { | |||
@@ -0,0 +1,30 @@ | |||
package model | |||
type HwOrder struct { | |||
Id int `json:"id" xorm:"not null pk autoincr index INT(11)"` | |||
Oid string `json:"oid" xorm:"default '' comment('订单编号') VARCHAR(255)"` | |||
Info string `json:"info" xorm:"default '' comment('商品标题') VARCHAR(100)"` | |||
Commission float64 `json:"commission" xorm:"default 0.00 comment('佣金') DOUBLE(30,2)"` | |||
Type string `json:"type" xorm:"default '' comment('平台') VARCHAR(100)"` | |||
TakePhoneNumber string `json:"take_phone_number" xorm:"default '' comment('手机号') VARCHAR(100)"` | |||
RestaurantAddress string `json:"restaurant_address" xorm:"default '' comment('地址') VARCHAR(100)"` | |||
Uid int `json:"uid" xorm:"default 0 comment('站长id') index INT(11)"` | |||
Payment float64 `json:"payment" xorm:"default 0.00 comment('付款金额') DOUBLE(11,2)"` | |||
Status string `json:"status" xorm:"default '' comment('状态描述') VARCHAR(10)"` | |||
CreateTime int `json:"create_time" xorm:"default 0 comment('订单创建时间') INT(11)"` | |||
Fanli int `json:"fanli" xorm:"default 0 comment('是否已返利') INT(1)"` | |||
Data string `json:"data" xorm:"comment('附加内容') LONGTEXT"` | |||
TakeMealCode string `json:"take_meal_code" xorm:"comment('取餐口令') LONGTEXT"` | |||
SettleTime int `json:"settle_time" xorm:"default 0 comment('返利时间') INT(11)"` | |||
UpdateTime int `json:"update_time" xorm:"default 0 comment('订单最后更新时间') INT(11)"` | |||
Zuid string `json:"zuid" xorm:"default '0' comment('站长平台的用户id') VARCHAR(100)"` | |||
Extra string `json:"extra" xorm:"default '' comment('自定义参数') VARCHAR(100)"` | |||
Code string `json:"code" xorm:"default '' comment('取餐口令') VARCHAR(100)"` | |||
UserId string `json:"user_id" xorm:"default '' comment('自定义参数') VARCHAR(100)"` | |||
LmJsTime int `json:"lm_js_time" xorm:"default 0 comment('结算时间') INT(11)"` | |||
PlatformTypes string `json:"platform_types" xorm:"default '' VARCHAR(50)"` | |||
IsShare int `json:"is_share" xorm:"default 0 INT(11)"` | |||
RefundTime int `json:"refund_time" xorm:"default 0 comment('订单退款成功时间') INT(11)"` | |||
OutMealTime int `json:"out_meal_time" xorm:"default 0 comment('订单出餐成功时间') INT(11)"` | |||
ExtendUid string `json:"extend_uid" xorm:"VARCHAR(255)"` | |||
} |
@@ -13,4 +13,5 @@ type MasterAmount struct { | |||
LastMonthAmount string `json:"last_month_amount" xorm:"DECIMAL(20,2)"` | |||
MonthAmount string `json:"month_amount" xorm:"DECIMAL(20,2)"` | |||
ChangeTime time.Time `json:"change_time" xorm:"comment('标记本月是否把预估结算佣金转换') DATETIME"` | |||
ExtendUid string `json:"extend_uid" xorm:"VARCHAR(255)"` | |||
} |
@@ -0,0 +1,27 @@ | |||
package offical | |||
import ( | |||
"applet/app/db" | |||
"applet/app/db/model" | |||
) | |||
func MasterListCfgGetOneData(uid, key string) string { | |||
var cfgList model.MasterListCfg | |||
has, err := db.Db.Where("`k`=? and uid=?", key, uid).Get(&cfgList) | |||
if err != nil { | |||
return "" | |||
} | |||
if has == false { | |||
cfgList = model.MasterListCfg{Uid: uid, K: key} | |||
db.Db.InsertOne(&cfgList) | |||
} | |||
return cfgList.V | |||
} | |||
func MasterListCfgGetKeyAll(key string) *[]model.MasterListCfg { | |||
var cfgList []model.MasterListCfg | |||
err := db.Db.Where("`k`=? ", key).Find(&cfgList) | |||
if err != nil { | |||
return nil | |||
} | |||
return &cfgList | |||
} |
@@ -0,0 +1,15 @@ | |||
package offical | |||
import ( | |||
"applet/app/db" | |||
"applet/app/db/official/model" | |||
) | |||
func GetUserAppList(uid string) *model.UserAppList { | |||
var data model.UserAppList | |||
get, err := db.Db.Where("uuid=?", uid).Get(&data) | |||
if get == false || err != nil { | |||
return nil | |||
} | |||
return &data | |||
} |
@@ -0,0 +1,9 @@ | |||
package model | |||
type MasterListCfg struct { | |||
K string `json:"k" xorm:"not null VARCHAR(255)"` | |||
V string `json:"v" xorm:"TEXT"` | |||
Memo string `json:"memo" xorm:"VARCHAR(255)"` | |||
Uid string `json:"uid" xorm:"comment('0是官方') VARCHAR(255)"` | |||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||
} |
@@ -0,0 +1,33 @@ | |||
package model | |||
type UserAppList struct { | |||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||
Uuid int `json:"uuid" xorm:"not null comment('masterId') INT(10)"` | |||
Uid int `json:"uid" xorm:"not null comment('用户ID') INT(10)"` | |||
AppId int `json:"app_id" xorm:"not null comment('应用ID') INT(10)"` | |||
PlanId string `json:"plan_id" xorm:"not null default '' comment('套餐ID') VARCHAR(100)"` | |||
Expire int `json:"expire" xorm:"not null default 0 comment('过期时间') INT(10)"` | |||
Name string `json:"name" xorm:"not null default '' comment('应用主名称') VARCHAR(32)"` | |||
Icon string `json:"icon" xorm:"not null default '' comment('应用主图标') VARCHAR(250)"` | |||
CreateTime int `json:"create_time" xorm:"not null default 0 comment('初次激活时间') INT(10)"` | |||
RenewTime int `json:"renew_time" xorm:"not null default 0 comment('上次续费时间') INT(10)"` | |||
Domain string `json:"domain" xorm:"not null default '' comment('域名') index VARCHAR(110)"` | |||
DomainAlias string `json:"domain_alias" xorm:"not null default '' comment('域名别名') index VARCHAR(110)"` | |||
Platform string `json:"platform" xorm:"not null default '' comment('平台信息 ios,android,applet') VARCHAR(100)"` | |||
Info string `json:"info" xorm:"comment('平台名称如ios.name.#ddd;') TEXT"` | |||
PayMode int `json:"pay_mode" xorm:"not null default 1 comment('付费模式,0授信,1付款') TINYINT(1)"` | |||
Price float32 `json:"price" xorm:"not null default 0.00 comment('应用价格') FLOAT(10,2)"` | |||
PricePay float32 `json:"price_pay" xorm:"not null default 0.00 comment('实际付款价格') FLOAT(10,2)"` | |||
OfficialPrice float32 `json:"official_price" xorm:"not null default 0.00 comment('应用价格') FLOAT(10,2)"` | |||
OfficialPricePay float32 `json:"official_price_pay" xorm:"not null default 0.00 comment('实际付款价格') FLOAT(10,2)"` | |||
State int `json:"state" xorm:"not null default 0 comment('0未创建,1正常,2停用,3过期') TINYINT(1)"` | |||
DeleteAt int `json:"delete_at" xorm:"not null default 0 TINYINT(1)"` | |||
CustomAndroidCount int `json:"custom_android_count" xorm:"default 0 comment('客户端安卓包名重置次数') INT(11)"` | |||
CustomIosCount int `json:"custom_ios_count" xorm:"default 0 comment('客户端ios包名重置次数') INT(11)"` | |||
StoreAndroidCount int `json:"store_android_count" xorm:"default 0 comment('商家端安卓包名重置次数') INT(11)"` | |||
StoreIosCount int `json:"store_ios_count" xorm:"default 0 comment('商家端ios包名重置次数') INT(11)"` | |||
SmsPlatform string `json:"sms_platform" xorm:"default 'mob' comment('mob ljioe联江') VARCHAR(255)"` | |||
IsClose int `json:"is_close" xorm:"default 0 comment('是否关闭') INT(1)"` | |||
Puid int `json:"puid" xorm:"default 0 comment('') INT(11)"` | |||
StoreRateInfo string `json:"store_rate_info" xorm:"comment('付呗商品进件费率') TEXT"` | |||
} |
@@ -0,0 +1,10 @@ | |||
package hdl | |||
import ( | |||
"applet/app/svc" | |||
"github.com/gin-gonic/gin" | |||
) | |||
func GetHwOrder(c *gin.Context) { | |||
svc.GetHwOrder(c) | |||
} |
@@ -1,13 +1,91 @@ | |||
package zhimeng_platform | |||
import ( | |||
"applet/app/e" | |||
"applet/app/svc/platform" | |||
"applet/app/utils" | |||
"github.com/gin-gonic/gin" | |||
) | |||
func OrderList(c *gin.Context) { | |||
platform.OrderList(c) | |||
var args map[string]string | |||
if err := c.ShouldBindJSON(&args); err != nil { | |||
e.OutErr(c, e.ERR_INVALID_ARGS, err) | |||
return | |||
} | |||
platformMaps := []string{ | |||
"starbucks", "movie", "mcdonald", "nayuki", "luckin", "pizza", "pagoda", "burger_king", "heytea", "to_kfc", "wallace", "flowerCake", "delivery", "tourism", | |||
} | |||
platformMap := map[string]string{ | |||
"starbucks": "星巴克", "movie": "电影", "mcdonald": "麦当劳", "nayuki": "奈雪", "luckin": "瑞幸咖啡", "pizza": "必胜客", | |||
"pagoda": "百果园", "burger_king": "汉堡王", "heytea": "喜茶", "to_kfc": "肯德基", "wallace": "华莱士", "flowerCake": "鲜花", "delivery": "比价寄", "tourism": "出游", | |||
} | |||
var data = make([]map[string]string, 0) | |||
var total int64 | |||
if utils.InArr(args["source"], platformMaps) { | |||
data, total = platform.HwOrderList(c, args) | |||
} else { | |||
data, total = platform.OrderList(c, args) | |||
} | |||
sourceList := []map[string]string{ | |||
{"name": "短剧", "value": "video"}, | |||
{"name": "广告", "value": "adv"}, | |||
} | |||
for k, v := range platformMap { | |||
tmp := map[string]string{ | |||
"name": v, "value": k, | |||
} | |||
sourceList = append(sourceList, tmp) | |||
} | |||
videoList := []map[string]string{ | |||
{"name": "抖音", "value": "douyin"}, | |||
{"name": "快手", "value": "kuaishou"}, | |||
{"name": "视频号", "value": "channel"}, | |||
} | |||
statusList := []map[string]string{ | |||
{"name": "订单付款", "value": "订单付款"}, | |||
{"name": "订单成功", "value": "订单成功"}, | |||
{"name": "订单结算", "value": "订单结算"}, | |||
} | |||
settleStatusList := []map[string]string{ | |||
{"name": "未结算", "value": "未结算"}, | |||
{"name": "已结算", "value": "已结算"}, | |||
} | |||
var res = map[string]interface{}{ | |||
"list": data, | |||
"total": total, | |||
"source_list": sourceList, | |||
"video_ist": videoList, | |||
"status_list": statusList, | |||
"settle_status_list": settleStatusList, | |||
} | |||
e.OutSuc(c, res, nil) | |||
return | |||
} | |||
func OrderOutput(c *gin.Context) { | |||
platform.OrderOutput(c) | |||
var args map[string]string | |||
if err := c.ShouldBindJSON(&args); err != nil { | |||
e.OutErr(c, e.ERR_INVALID_ARGS, err) | |||
return | |||
} | |||
platformMap := []string{ | |||
"starbucks", "movie", "mcdonald", "nayuki", "luckin", "pizza", "pagoda", "burger_king", "heytea", "to_kfc", "wallace", "flowerCake", "delivery", "tourism", | |||
} | |||
var data map[string]string | |||
var name string | |||
if utils.InArr(args["source"], platformMap) { | |||
name, data = platform.HwOrderOutput(c, args) | |||
} else { | |||
name, data = platform.OrderOutput(c, args) | |||
} | |||
file := utils.Output(c, name, data) | |||
filename := name + ".xlsx" | |||
r := map[string]string{ | |||
"file": file, | |||
"filename": filename, | |||
} | |||
e.OutSuc(c, r, nil) | |||
return | |||
} |
@@ -49,6 +49,7 @@ func routeInternal(r *gin.RouterGroup) { | |||
r.Use(mw.DB) // 以下接口需要用到数据库 | |||
{ | |||
r.POST("/playlet_order", internalHdl.GetPlayletOrder) | |||
r.POST("/hw_order", internalHdl.GetHwOrder) | |||
r.POST("/playlet_short_link", internalHdl.GetShortLink) | |||
} | |||
@@ -0,0 +1,15 @@ | |||
package platform | |||
import ( | |||
offical "applet/app/db/official" | |||
"applet/app/utils" | |||
) | |||
func AppUserListPuid(mid string) string { | |||
appList := offical.GetUserAppList(mid) | |||
uid := "0" | |||
if appList != nil && appList.Puid > 0 { | |||
uid = utils.IntToStr(appList.Puid) | |||
} | |||
return uid | |||
} |
@@ -0,0 +1,91 @@ | |||
package platform | |||
import ( | |||
"applet/app/db" | |||
"applet/app/utils" | |||
"github.com/gin-gonic/gin" | |||
"time" | |||
) | |||
func HwOrderList(c *gin.Context, args map[string]string) ([]map[string]string, int64) { | |||
masterId, _ := c.Get("master_id") | |||
args["uid"] = utils.AnyToString(masterId) | |||
list, total := db.GetHwOrderListTotal(args) | |||
var data = make([]map[string]string, 0) | |||
platformMap := map[string]string{ | |||
"starbucks": "星巴克", "movie": "电影", "mcdonald": "麦当劳", "nayuki": "奈雪", "luckin": "瑞幸咖啡", "pizza": "必胜客", | |||
"pagoda": "百果园", "burger_king": "汉堡王", "heytea": "喜茶", "to_kfc": "肯德基", "wallace": "华莱士", "flowerCake": "鲜花", "delivery": "比价寄", "tourism": "出游", | |||
} | |||
if len(list) > 0 { | |||
for _, v := range list { | |||
settleStatus := "未结算" | |||
settleTime := "-" | |||
if v.SettleTime > 0 { | |||
settleStatus = "已结算" | |||
settleTime = time.Unix(int64(v.SettleTime), 0).Format("2006-01-02 15:04:05") | |||
} | |||
var tmp = map[string]string{ | |||
"oid": v.Oid, | |||
"uid": v.Zuid, | |||
"title": v.Info, | |||
"platform_fee": "0", | |||
"commission_bili": "", | |||
"source": platformMap[v.Type], | |||
"amount": utils.Float64ToStr(v.Payment), | |||
"commission": utils.Float64ToStr(v.Commission), | |||
"status": v.Status, | |||
"settle_status": settleStatus, | |||
"create_time": time.Unix(int64(v.CreateTime), 0).Format("2006-01-02 15:04:05"), | |||
"settle_time": settleTime, | |||
} | |||
data = append(data, tmp) | |||
} | |||
} | |||
return data, total | |||
} | |||
func HwOrderOutput(c *gin.Context, args map[string]string) (string, map[string]string) { | |||
masterId, _ := c.Get("master_id") | |||
args["mid"] = utils.AnyToString(masterId) | |||
args["size"] = "3000" | |||
if args["ids"] != "" { | |||
args["size"] = "0" | |||
} | |||
name := "订单_" + args["p"] | |||
//写入数据 | |||
data := map[string]string{ | |||
"A1": "订单号", | |||
"B1": "会员ID", | |||
"C1": "标题", | |||
"D1": "来源", | |||
"E1": "结算时间", | |||
"F1": "订单状态", | |||
"G1": "金额", | |||
"H1": "佣金", | |||
} | |||
platformMap := map[string]string{ | |||
"starbucks": "星巴克", "movie": "电影", "mcdonald": "麦当劳", "nayuki": "奈雪", "luckin": "瑞幸咖啡", "pizza": "必胜客", | |||
"pagoda": "百果园", "burger_king": "汉堡王", "heytea": "喜茶", "to_kfc": "肯德基", "wallace": "华莱士", "flowerCake": "鲜花", "delivery": "比价寄", "tourism": "出游", | |||
} | |||
list, _ := db.GetHwOrderListTotal(args) | |||
if len(list) > 0 { | |||
for k, v := range list { | |||
settleTime := "-" | |||
if v.SettleTime > 0 { | |||
settleTime = time.Unix(int64(v.SettleTime), 0).Format("2006-01-02 15:04:05") | |||
} | |||
i := utils.IntToStr(k + 2) | |||
data["A"+i] = v.Oid | |||
data["B"+i] = v.Zuid | |||
data["C"+i] = v.Info | |||
data["D"+i] = platformMap[v.Type] | |||
data["E"+i] = settleTime | |||
data["F"+i] = v.Status | |||
data["G"+i] = utils.Float64ToStr(v.Payment) | |||
data["H"+i] = utils.Float64ToStr(v.Commission) | |||
} | |||
} | |||
return name, data | |||
} |
@@ -2,19 +2,14 @@ package platform | |||
import ( | |||
"applet/app/db" | |||
"applet/app/e" | |||
"applet/app/md" | |||
"applet/app/utils" | |||
"github.com/gin-gonic/gin" | |||
"time" | |||
) | |||
func OrderList(c *gin.Context) { | |||
var args map[string]string | |||
if err := c.ShouldBindJSON(&args); err != nil { | |||
e.OutErr(c, e.ERR_INVALID_ARGS, err) | |||
return | |||
} | |||
func OrderList(c *gin.Context, args map[string]string) ([]map[string]string, int64) { | |||
masterId, _ := c.Get("master_id") | |||
playletSaleOrderDb := db.PlayletSaleOrderDb{} | |||
playletSaleOrderDb.Set() | |||
@@ -22,7 +17,6 @@ func OrderList(c *gin.Context) { | |||
args["sort"] = "create_time desc,id desc" | |||
list, total := playletSaleOrderDb.GetPlayletVideoOrderListAndTotal(args) | |||
var data = make([]map[string]string, 0) | |||
if list != nil { | |||
for _, v := range *list { | |||
source := md.OrdTypeMap[v.OrdType] + md.VideoTypeMap[v.VideoType] | |||
@@ -53,41 +47,11 @@ func OrderList(c *gin.Context) { | |||
data = append(data, tmp) | |||
} | |||
} | |||
sourceList := []map[string]string{ | |||
{"name": "短剧", "value": "video"}, | |||
{"name": "广告", "value": "adv"}, | |||
} | |||
videoList := []map[string]string{ | |||
{"name": "抖音", "value": "douyin"}, | |||
{"name": "快手", "value": "kuaishou"}, | |||
{"name": "视频号", "value": "channel"}, | |||
} | |||
statusList := []map[string]string{ | |||
{"name": "订单付款", "value": "订单付款"}, | |||
{"name": "订单结算", "value": "订单结算"}, | |||
} | |||
settleStatusList := []map[string]string{ | |||
{"name": "未结算", "value": "未结算"}, | |||
{"name": "已结算", "value": "已结算"}, | |||
} | |||
var res = map[string]interface{}{ | |||
"list": data, | |||
"total": total, | |||
"source_list": sourceList, | |||
"video_ist": videoList, | |||
"status_list": statusList, | |||
"settle_status_list": settleStatusList, | |||
} | |||
e.OutSuc(c, res, nil) | |||
return | |||
return data, total | |||
} | |||
func OrderOutput(c *gin.Context) { | |||
var args map[string]string | |||
if err := c.ShouldBindJSON(&args); err != nil { | |||
e.OutErr(c, e.ERR_INVALID_ARGS, err) | |||
return | |||
} | |||
func OrderOutput(c *gin.Context, args map[string]string) (string, map[string]string) { | |||
masterId, _ := c.Get("master_id") | |||
playletSaleOrderDb := db.PlayletSaleOrderDb{} | |||
playletSaleOrderDb.Set() | |||
@@ -127,13 +91,5 @@ func OrderOutput(c *gin.Context) { | |||
data["H"+i] = v.Commission | |||
} | |||
} | |||
file := utils.Output(c, name, data) | |||
filename := name + ".xlsx" | |||
r := map[string]string{ | |||
"file": file, | |||
"filename": filename, | |||
} | |||
e.OutSuc(c, r, nil) | |||
return | |||
return name, data | |||
} |
@@ -3,6 +3,7 @@ package platform | |||
import ( | |||
"applet/app/db" | |||
"applet/app/db/model" | |||
offical "applet/app/db/official" | |||
"applet/app/e" | |||
"applet/app/utils" | |||
"applet/app/utils/cache" | |||
@@ -29,13 +30,23 @@ func WithdrawalIncome(c *gin.Context) { | |||
if amountMap["alipay"] != "" { | |||
isNeedBingAlipay = "0" | |||
} | |||
var res = []map[string]string{ | |||
{"name": "账户余额", "value": amountMap["amount"], "type": "amount", "tip": "", "alipay": amountMap["alipay"], "alipay_name": amountMap["alipay_name"], "is_need_bing_alipay": isNeedBingAlipay, "is_show_withdrawal": "1"}, | |||
{"name": "上月预估收益", "value": monthAmountMap["last_month_amount"], "type": "last_month_amount", "tip": "", "is_need_bing_alipay": "0", "is_show_withdrawal": "0"}, | |||
{"name": "上月预估结算收益", "value": amountMap["last_month_settle_amount"], "type": "last_month_settle_amount", "tip": "", "is_need_bing_alipay": "0", "is_show_withdrawal": "0"}, | |||
{"name": "本月预估收益", "value": monthAmountMap["month_amount"], "type": "month_amount", "tip": "", "is_need_bing_alipay": "0", "is_show_withdrawal": "0"}, | |||
{"name": "本月预估结算收益", "value": monthAmountMap["month_settle_amount"], "type": "month_settle_amount", "tip": "", "is_need_bing_alipay": "0", "is_show_withdrawal": "0"}, | |||
} | |||
var res = make([]map[string]string, 0) | |||
if amountMap["is_show_official_amount"] == "1" { | |||
var tmp = map[string]string{"name": "账户一余额", "value": amountMap["amount"], "type": "amount", "tip": "", "alipay": amountMap["alipay"], "alipay_name": amountMap["alipay_name"], "is_need_bing_alipay": isNeedBingAlipay, "is_show_withdrawal": "1"} | |||
res = append(res, tmp) | |||
if utils.StrToInt(amountMap["puid"]) > 0 { | |||
var tmpAgent = map[string]string{"name": "账户二余额", "value": amountMap["agent_amount"], "type": "agent_amount", "tip": "", "alipay": amountMap["alipay"], "alipay_name": amountMap["alipay_name"], "is_need_bing_alipay": isNeedBingAlipay, "is_show_withdrawal": "1"} | |||
res = append(res, tmpAgent) | |||
} | |||
} else { | |||
var tmpAgent = map[string]string{"name": "账户余额", "value": amountMap["agent_amount"], "type": "agent_amount", "tip": "", "alipay": amountMap["alipay"], "alipay_name": amountMap["alipay_name"], "is_need_bing_alipay": isNeedBingAlipay, "is_show_withdrawal": "1"} | |||
res = append(res, tmpAgent) | |||
} | |||
res = append(res, map[string]string{"name": "上月预估收益", "value": monthAmountMap["last_month_amount"], "type": "last_month_amount", "tip": "", "is_need_bing_alipay": "0", "is_show_withdrawal": "0"}) | |||
res = append(res, map[string]string{"name": "上月预估结算收益", "value": amountMap["last_month_settle_amount"], "type": "last_month_settle_amount", "tip": "", "is_need_bing_alipay": "0", "is_show_withdrawal": "0"}) | |||
res = append(res, map[string]string{"name": "本月预估收益", "value": monthAmountMap["month_amount"], "type": "month_amount", "tip": "", "is_need_bing_alipay": "0", "is_show_withdrawal": "0"}) | |||
res = append(res, map[string]string{"name": "本月预估结算收益", "value": monthAmountMap["month_settle_amount"], "type": "month_settle_amount", "tip": "", "is_need_bing_alipay": "0", "is_show_withdrawal": "0"}) | |||
e.OutSuc(c, res, nil) | |||
return | |||
} | |||
@@ -105,6 +116,12 @@ func WithdrawalDoing(c *gin.Context) { | |||
return | |||
} | |||
amountMap := masterAmount(mid, args["type"]) | |||
puid := "0" | |||
if args["amount_type"] == "agent_amount" { | |||
amountMap["amount"] = amountMap["agent_amount"] | |||
amountMap["list_id"] = amountMap["agent_list_id"] | |||
puid = amountMap["puid"] | |||
} | |||
leaveAmount := utils.StrToFloat64(amountMap["amount"]) - utils.StrToFloat64(args["amount"]) | |||
if leaveAmount < 0 { | |||
e.OutErr(c, 400, e.NewErr(400, "余额不足")) | |||
@@ -112,9 +129,9 @@ func WithdrawalDoing(c *gin.Context) { | |||
} | |||
masterListCfgDb := db.MasterListCfgDb{} | |||
masterListCfgDb.Set() | |||
withdrawalBili := masterListCfgDb.MasterListCfgGetOneData("0", "withdrawal_bili") | |||
invoiceBili := masterListCfgDb.MasterListCfgGetOneData("0", "invoice_bili") | |||
withdrawalDay := masterListCfgDb.MasterListCfgGetOneData("0", "withdrawal_day") | |||
withdrawalBili := masterListCfgDb.MasterListCfgGetOneData(puid, "withdrawal_bili") | |||
invoiceBili := masterListCfgDb.MasterListCfgGetOneData(puid, "invoice_bili") | |||
withdrawalDay := masterListCfgDb.MasterListCfgGetOneData(puid, "withdrawal_day") | |||
if time.Now().Day() != utils.StrToInt(withdrawalDay) && utils.StrToInt(withdrawalDay) > 0 { | |||
e.OutErr(c, 400, e.NewErr(400, "每月"+withdrawalDay+"号提现")) | |||
return | |||
@@ -158,6 +175,7 @@ func WithdrawalDoing(c *gin.Context) { | |||
return | |||
} | |||
defer sess.Close() | |||
//先扣钱 | |||
amountData := db.GetMasterAmountByListIdWithSess(sess, amountMap["list_id"]) | |||
if amountData == nil { | |||
@@ -188,7 +206,7 @@ func WithdrawalDoing(c *gin.Context) { | |||
Oid: "", | |||
Title: "提现", | |||
FlowType: "withdrawal", | |||
ExtendUid: master.ExtendUid, | |||
ExtendUid: puid, | |||
} | |||
flowInsert := db.MasterAmountFlowInsertWithSess(sess, &tmpFlow) | |||
if flowInsert == false { | |||
@@ -209,7 +227,7 @@ func WithdrawalDoing(c *gin.Context) { | |||
Status: "提现审核", | |||
HasInvoice: utils.StrToInt(args["has_invoice"]), | |||
InvoiceBili: args["invoice_bili"], | |||
ExtendUid: master.ExtendUid, | |||
ExtendUid: puid, | |||
} | |||
insert := db.MasterWithdrawalFlowInsertWithSess(sess, &tmp) | |||
if insert == false { | |||
@@ -351,12 +369,32 @@ func masterAmount(mid, types string) map[string]string { | |||
if masterInfos["id"] == "" { | |||
return res | |||
} | |||
puid := AppUserListPuid(mid) | |||
hwOwnOpen := offical.MasterListCfgGetOneData(puid, "hw_own_open") | |||
masterAmountDb := db.MasterAmountDb{} | |||
masterAmountDb.Set() | |||
masterAmounts := masterAmountDb.GetMasterAmount(masterInfos["id"], types) | |||
masterAmounts := masterAmountDb.GetMasterAmountByExtendUid(masterInfos["id"], "0", types) | |||
if masterAmounts == nil { | |||
return res | |||
} | |||
res["agent_amount"] = "0" | |||
res["is_show_official_amount"] = "1" | |||
res["puid"] = puid | |||
if utils.StrToInt(puid) > 0 && hwOwnOpen == "1" { | |||
agentMasterAmounts := masterAmountDb.GetMasterAmountByExtendUid(masterInfos["id"], puid, types) | |||
if agentMasterAmounts != nil { | |||
if agentMasterAmounts.Amount != "" { | |||
res["agent_amount"] = agentMasterAmounts.Amount | |||
} | |||
res["agent_list_id"] = utils.IntToStr(agentMasterAmounts.Id) | |||
masterAmounts.LastMonthAmount = utils.Float64ToStr(utils.StrToFloat64(masterAmounts.LastMonthAmount) + utils.StrToFloat64(agentMasterAmounts.LastMonthAmount)) | |||
} | |||
if utils.StrToFloat64(masterAmounts.Amount) == 0 { | |||
res["is_show_official_amount"] = "0" | |||
} | |||
} | |||
res["amount"] = masterAmounts.Amount | |||
if res["amount"] == "" { | |||
res["amount"] = "0" | |||
@@ -0,0 +1,35 @@ | |||
package svc | |||
import ( | |||
"applet/app/db" | |||
"applet/app/e" | |||
"applet/app/utils" | |||
"github.com/gin-gonic/gin" | |||
) | |||
func GetHwOrder(c *gin.Context) { | |||
var args map[string]string | |||
if err := c.ShouldBindJSON(&args); err != nil { | |||
e.OutErr(c, e.ERR_INVALID_ARGS, err) | |||
return | |||
} | |||
args["uid"] = c.GetString("mid") | |||
order := db.GetHwOrderList(args) | |||
list := make([]map[string]string, 0) | |||
for _, v := range order { | |||
var tmp = map[string]string{ | |||
"oid": v.Oid, | |||
"info": v.Info, | |||
"commission": utils.Float64ToStr(v.Commission), | |||
"status": v.Status, | |||
"type": v.Type, | |||
"zuid": v.Zuid, | |||
"is_share": utils.IntToStr(v.IsShare), | |||
"update_time": utils.IntToStr(v.UpdateTime), | |||
"create_time": utils.IntToStr(v.CreateTime), | |||
} | |||
list = append(list, tmp) | |||
} | |||
e.OutSuc(c, list, nil) | |||
return | |||
} |
@@ -91,8 +91,22 @@ func initTasks() { | |||
jobs[taskMd.ZhimengCronPlayletAdvOrderYesterDay] = taskPlayletAdvOrderYesterday // | |||
jobs[taskMd.ZhimengCronPlayletAdvOrderYesterDayToMoney] = taskPlayletAdvOrderYesterdayToMoney // | |||
jobs[taskMd.ZhimengCronPlayletGoods] = taskPlayletGoods // | |||
jobs[taskMd.ZhimengCronPlayletOrderSettle] = taskPlayletOrderSettle // | |||
jobs[taskMd.ZhimengCronMasterMonthSettle] = taskMasterMonthSettle // | |||
jobs[taskMd.ZhimengCronPlayletOrderSettle] = taskPlayletOrderSettle // | |||
jobs[taskMd.ZhimengCronHwOrderSettle] = taskHwOrderSettle // | |||
jobs[taskMd.ZhimengCronMasterMonthSettle] = taskMasterMonthSettle // | |||
jobs[taskMd.ZhimengCronHwStarbucksOrder] = taskHwStarbucksOrder // | |||
jobs[taskMd.ZhimengCronHwMovieOrder] = taskHwMovieOrder // | |||
jobs[taskMd.ZhimengCronHwMcdonaldOrder] = taskHwMcdonaldOrder // | |||
jobs[taskMd.ZhimengCronHwNayukiOrder] = taskHwNayukiOrder // | |||
jobs[taskMd.ZhimengCronHwLuckinOrder] = taskHwLuckinOrder // | |||
jobs[taskMd.ZhimengCronHwPizzaOrder] = taskHwPizzaOrder // | |||
jobs[taskMd.ZhimengCronHwPagodaOrder] = taskHwPagodaOrder // | |||
jobs[taskMd.ZhimengCronHwBurgerKingOrder] = taskHwBurgerKingOrder // | |||
jobs[taskMd.ZhimengCronHwHeyteaOrder] = taskHwHeyteaOrder // | |||
jobs[taskMd.ZhimengCronHwToKfcOrder] = taskHwToKfcOrder // | |||
jobs[taskMd.ZhimengCronHwWallaceOrder] = taskHwWallaceOrder // | |||
jobs[taskMd.ZhimengCronHwFlowerCakeOrder] = taskHwFlowerCakeOrder // | |||
jobs[taskMd.ZhimengCronHwDeliveryOrder] = taskHwDeliveryOrder // | |||
jobs[taskMd.ZhimengCronHwTourismOrder] = taskHwTourismOrder // | |||
} |
@@ -11,5 +11,20 @@ const ( | |||
ZhimengCronPlayletGoods = "zhimeng_cron_playlet_goods" | |||
ZhimengCronPlayletOrderSettle = "zhimeng_cron_playlet_order_settle" | |||
ZhimengCronHwOrderSettle = "zhimeng_cron_hw_order_settle" | |||
ZhimengCronMasterMonthSettle = "zhimeng_cron_master_month_settle" | |||
ZhimengCronHwStarbucksOrder = "zhimeng_cron_hw_starbucks_order" | |||
ZhimengCronHwMovieOrder = "zhimeng_cron_hw_movie_order" | |||
ZhimengCronHwMcdonaldOrder = "zhimeng_cron_hw_mcdonald_order" | |||
ZhimengCronHwNayukiOrder = "zhimeng_cron_hw_nayuki_order" | |||
ZhimengCronHwLuckinOrder = "zhimeng_cron_hw_luckin_order" | |||
ZhimengCronHwPizzaOrder = "zhimeng_cron_hw_pizza_order" | |||
ZhimengCronHwPagodaOrder = "zhimeng_cron_hw_pagoda_order" | |||
ZhimengCronHwBurgerKingOrder = "zhimeng_cron_hw_burger_king_order" | |||
ZhimengCronHwHeyteaOrder = "zhimeng_cron_hw_heytea_order" | |||
ZhimengCronHwToKfcOrder = "zhimeng_cron_hw_to_kfc_order" | |||
ZhimengCronHwWallaceOrder = "zhimeng_cron_hw_wallace_order" | |||
ZhimengCronHwFlowerCakeOrder = "zhimeng_cron_hw_flowerCake_order" | |||
ZhimengCronHwDeliveryOrder = "zhimeng_cron_hw_delivery_order" | |||
ZhimengCronHwTourismOrder = "zhimeng_cron_hw_tourism_order" | |||
) |
@@ -0,0 +1,184 @@ | |||
package svc | |||
import ( | |||
"applet/app/db" | |||
"applet/app/db/model" | |||
offical "applet/app/db/official" | |||
"applet/app/utils" | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/hw" | |||
"encoding/json" | |||
"fmt" | |||
"strings" | |||
"time" | |||
) | |||
func HwLoop(method string) { | |||
all := offical.MasterListCfgGetKeyAll("hw_share_code") | |||
if all == nil { | |||
return | |||
} | |||
for _, v := range *all { | |||
if v.V == "" { | |||
continue | |||
} | |||
data := offical.MasterListCfgGetOneData(v.Uid, "hw_own_open") | |||
if data != "1" && utils.StrToInt(v.Uid) > 0 { | |||
continue | |||
} | |||
p := 1 | |||
for true { | |||
count := GetHwOrder(p, method, v.Uid) | |||
if count < 50 { | |||
break | |||
} | |||
p++ | |||
} | |||
} | |||
} | |||
func GetHwOrder(p int, method, uid string) int { | |||
hwShareCode := offical.MasterListCfgGetOneData(uid, "hw_share_code") | |||
hwSecret := offical.MasterListCfgGetOneData(uid, "hw_secret") | |||
router := "" | |||
switch method { | |||
case "starbucks": | |||
router = "https://ot.jfshou.cn/sbkplus/queryStarbucksOrder" | |||
break | |||
case "movie": | |||
router = "https://ot.jfshou.cn/ticket/query/order/list" | |||
break | |||
case "mcdonald": | |||
router = "https://ot.jfshou.cn/api/queryMcOrder" | |||
break | |||
case "nayuki": | |||
router = "https://ot.jfshou.cn/api/nayuki/order/queryOrdersByUser" | |||
break | |||
case "luckin": | |||
router = "https://ot.jfshou.cn/privilege-api/luckin/external/queryOrder" | |||
break | |||
case "pizza": | |||
router = "https://ot.jfshou.cn/privilege-api/pizzaHut/external/queryOrder" | |||
break | |||
case "pagoda": | |||
router = "https://ot.jfshou.cn/privilege-api/pagoda/external/queryOrder" | |||
break | |||
case "burger_king": | |||
router = "https://ot.jfshou.cn/privilege-api/burgerKing/external/queryOrder" | |||
break | |||
case "heytea": | |||
router = "https://ot.jfshou.cn/privilege-api/heytea/external/queryOrder" | |||
break | |||
case "to_kfc": | |||
router = "https://ot.jfshou.cn/api/queryOrder" | |||
break | |||
case "wallace": | |||
router = "https://ot.jfshou.cn/privilege-api/wallace/external/queryOrder" | |||
break | |||
case "flowerCake": | |||
router = "https://ot.jfshou.cn/privilege-api/flowercake/external/queryOrder" | |||
break | |||
case "delivery": | |||
router = "https://ot.jfshou.cn/privilege-api/expressDelivery/external/queryOrder" | |||
break | |||
case "tourism": | |||
router = "https://ot.jfshou.cn/privilege-api/tourism/external/queryOrder" | |||
break | |||
} | |||
endTime := time.Now().Unix() | |||
startTime := endTime - 300 | |||
params := map[string]string{ | |||
"start_time": time.Unix(startTime, 0).Format("2006-01-02 15:04:05"), | |||
"end_time": time.Unix(endTime, 0).Format("2006-01-02 15:04:05"), | |||
"time_type": "1", | |||
"page_number": utils.IntToStr(p), | |||
"page_size": "50", | |||
} | |||
params["share_code"] = hwShareCode | |||
params["timestamp"] = utils.Int64ToStr(time.Now().UnixNano() / 1e6) | |||
order, takeList := hw.HwSendOrder(router, params, hwSecret) | |||
count := 0 | |||
if order != "" && order != "[]" { | |||
var list = make([]map[string]interface{}, 0) | |||
json.Unmarshal([]byte(order), &list) | |||
count = len(list) | |||
for _, v := range list { | |||
AddOrder(method, v) | |||
} | |||
} | |||
if takeList != "" && takeList != "[]" { | |||
var list = make([]map[string]interface{}, 0) | |||
json.Unmarshal([]byte(takeList), &list) | |||
for _, v := range list { | |||
AddOrder(method, v) | |||
} | |||
} | |||
return count | |||
} | |||
func AddOrder(method string, order map[string]interface{}) { | |||
statusArr := map[string]string{"FINISHED": "订单成功", "GENERATE_SUCCESS": "订单成功", "WAIT_GENERATE": "订单付款", "WAIT_PAY": "创建订单", "CLOSED": "订单失效", "CANCELED": "订单失效", "FAIL": "订单失效", "CLOSE": "订单失效", "RETURNED": "订单失效", "UNPAID": "创建订单", "PAYED": "订单付款", "DEALING": "订单付款", "SENDING": "订单付款", "ORDER_RECEIVED": "订单付款", "RECEIVED": "订单成功", "RECEIVED_ORDER": "订单付款", "WAITING_RECEIVED": "订单付款", "WAIT_OUT_MEAL": "订单付款", "MAKING": "订单付款", "ARRIVED": "订单成功", "COMPLETE": "订单成功", "REFUNDED": "订单退款", "OUT_MEAL": "订单成功"} | |||
userId := order["extra"] | |||
if strings.Contains(utils.AnyToString(userId), "m") == false { | |||
return | |||
} | |||
isShare := 0 | |||
if strings.Contains(utils.AnyToString(userId), "share") { | |||
isShare = 1 | |||
userId = strings.ReplaceAll(utils.AnyToString(userId), "share", "") | |||
} | |||
split := strings.Split(utils.AnyToString(userId), "s") | |||
mid := strings.ReplaceAll(split[0], "m", "") | |||
splitSecond := strings.Split(split[1], "p") | |||
puid := splitSecond[1] | |||
uid := splitSecond[0] | |||
if order["modify_time"] == "" { | |||
order["modify_time"] = order["update_time"] | |||
} | |||
if utils.AnyToFloat64(order["total_rebate"]) == 0 { | |||
order["total_rebate"] = order["rebate"] | |||
} | |||
if order["product_detail"] == "" { | |||
order["product_detail"] = order["product_name"] | |||
} | |||
if order["product_detail"] == "" { | |||
order["product_detail"] = utils.AnyToString(order["cinema_name"]) + "-" + utils.AnyToString(order["movie_name"]) | |||
} | |||
if order["product_detail"] == "" { | |||
order["product_detail"] = utils.AnyToString(order["delivery_brand_name"]) + "-" + utils.AnyToString(order["delivery_goods_name"]) | |||
} | |||
var ord = &model.HwOrder{ | |||
Oid: utils.AnyToString(order["order_no"]), | |||
Info: utils.AnyToString(order["product_detail"]), | |||
Commission: utils.AnyToFloat64(order["total_rebate"]), | |||
Type: method, | |||
TakePhoneNumber: utils.AnyToString(order["take_phone_number"]), | |||
RestaurantAddress: utils.AnyToString(order["restaurant_address"]), | |||
Uid: utils.StrToInt(mid), | |||
Payment: utils.AnyToFloat64(order["settle_price"]), | |||
Status: statusArr[utils.AnyToString(order["order_status"])], | |||
CreateTime: int(utils.TimeStdParseUnix(utils.AnyToString(order["order_time"]))), | |||
Data: utils.SerializeStr(order), | |||
UpdateTime: int(utils.TimeStdParseUnix(utils.AnyToString(order["modify_time"]))), | |||
Zuid: uid, | |||
Extra: utils.AnyToString(order["extra"]), | |||
Code: utils.AnyToString(order["code"]), | |||
UserId: utils.AnyToString(order["user_id"]), | |||
IsShare: isShare, | |||
OutMealTime: int(utils.TimeStdParseUnix(utils.AnyToString(order["out_meal_time"]))), | |||
ExtendUid: puid, | |||
} | |||
if order["refund_time"] != "" { | |||
ord.RefundTime = int(utils.TimeStdParseUnix(utils.AnyToString(order["refund_time"]))) | |||
} | |||
one := db.GetHwOrderByOne(ord.Oid, utils.IntToStr(ord.Uid), ord.Type) | |||
if one == nil { | |||
insertOne, err := db.ZhimengDb.InsertOne(ord) | |||
fmt.Println(insertOne) | |||
fmt.Println(err) | |||
} else { | |||
ord.SettleTime = one.SettleTime | |||
db.ZhimengDb.Where("id=?", one.Id).AllCols().Update(ord) | |||
} | |||
return | |||
} |
@@ -0,0 +1,111 @@ | |||
package svc | |||
import ( | |||
"applet/app/db" | |||
"applet/app/db/model" | |||
"applet/app/utils" | |||
"applet/app/utils/cache" | |||
"fmt" | |||
"time" | |||
) | |||
func HwOrderSettle() { | |||
day := time.Now().Day() | |||
if day < 15 { | |||
return | |||
} | |||
month := utils.GetTimeRange("current_month") | |||
fmt.Println(month) | |||
arg := map[string]string{ | |||
"status": "订单成功", | |||
"sort": "id desc", | |||
"is_to_settle": "1", | |||
"is_commission": "1", | |||
"to_settle_time": utils.Int64ToStr(month["start"]), | |||
"p": "1", | |||
"size": "100", | |||
} | |||
order := db.GetHwOrderList(arg) | |||
if len(order) == 0 { | |||
return | |||
} | |||
fmt.Println(utils.SerializeStr(order)) | |||
platformMap := map[string]string{ | |||
"starbucks": "星巴克", "movie": "电影", "mcdonald": "麦当劳", "nayuki": "奈雪", "luckin": "瑞幸咖啡", "pizza": "必胜客", | |||
"pagoda": "百果园", "burger_king": "汉堡王", "heytea": "喜茶", "to_kfc": "肯德基", "wallace": "华莱士", "flowerCake": "鲜花", "delivery": "比价寄", "tourism": "出游", | |||
} | |||
for _, v := range order { | |||
fmt.Println("=================00") | |||
// 加锁 防止并发提取 | |||
mutexKey := fmt.Sprintf("hw_order_settle3:%d", v.Id) | |||
withdrawAvailable, err := cache.Do("SET", mutexKey, 1, "EX", 1800, "NX") | |||
if err != nil { | |||
fmt.Println("=================0") | |||
fmt.Println(err) | |||
continue | |||
} | |||
if withdrawAvailable != "OK" { | |||
fmt.Println("=================1") | |||
continue | |||
} | |||
if v.SettleTime > 0 { | |||
fmt.Println("=================2") | |||
continue | |||
} | |||
//加到上月结算 | |||
if v.Uid == 0 { | |||
fmt.Println("=================3") | |||
continue | |||
} | |||
masterDb := db.MasterDb{} | |||
masterDb.Set() | |||
master := masterDb.GetMaster(utils.IntToStr(v.Uid)) | |||
if master == nil { | |||
fmt.Println("=================4") | |||
continue | |||
} | |||
masterAmountDb := db.MasterAmountDb{} | |||
masterAmountDb.Set() | |||
amount := masterAmountDb.GetMasterAmountByExtendUid(utils.IntToStr(master.Id), v.ExtendUid, "playlet") | |||
if amount == nil { | |||
fmt.Println("=================5") | |||
continue | |||
} | |||
if v.Commission <= 0 { | |||
v.SettleTime = int(time.Now().Unix()) | |||
db.ZhimengDb.Where("id=?", v.Id).Update(&v) | |||
continue | |||
} | |||
oldAmount := amount.LastMonthAmount | |||
amount.LastMonthAmount = utils.Float64ToStr(utils.StrToFloat64(amount.LastMonthAmount) + v.Commission) | |||
update := masterAmountDb.MasterAmountUpdate(amount.Id, amount) | |||
if update == false { | |||
fmt.Println("=================7") | |||
continue | |||
} | |||
var tmp = model.MasterLastMonthAmountFlow{ | |||
Uid: utils.IntToStr(master.Id), | |||
Time: time.Now(), | |||
BeforeAmount: oldAmount, | |||
Amount: utils.Float64ToStr(v.Commission), | |||
AfterAmount: amount.LastMonthAmount, | |||
Platform: v.Type, | |||
Oid: v.Oid, | |||
Title: platformMap[v.Type] + "结算", | |||
FlowType: v.Type + "_settle", | |||
ExtendUid: v.ExtendUid, | |||
} | |||
masterLastMonthAmountFlowDb := db.MasterLastMonthAmountFlowDb{} | |||
masterLastMonthAmountFlowDb.Set() | |||
masterLastMonthAmountFlowDb.MasterLastMonthAmountFlowInsert(&tmp) | |||
v.SettleTime = int(time.Now().Unix()) | |||
db.ZhimengDb.Where("id=?", v.Id).Update(&v) | |||
} | |||
return | |||
} |
@@ -41,7 +41,7 @@ func MasterMonthSettle() { | |||
} | |||
masterDb := db.MasterDb{} | |||
masterDb.Set() | |||
master := masterDb.GetMasterId(v.Id) | |||
master := masterDb.GetMasterId(utils.StrToInt(v.Uid)) | |||
if master == nil { | |||
continue | |||
} | |||
@@ -61,10 +61,10 @@ func MasterMonthSettle() { | |||
AfterAmount: v.Amount, | |||
Platform: "playlet", | |||
Oid: utils.IntToStr(v.Id), | |||
Title: "短剧上月结算佣金到账", | |||
Title: "上月结算佣金到账", | |||
FlowType: "last_month_playlet_settle", | |||
IncomeType: 0, | |||
ExtendUid: master.ExtendUid, | |||
ExtendUid: v.ExtendUid, | |||
} | |||
masterAmountFlowDb := db.MasterAmountFlowDb{} | |||
masterAmountFlowDb.Set() | |||
@@ -78,10 +78,10 @@ func MasterMonthSettle() { | |||
AfterAmount: v.LastMonthAmount, | |||
Platform: "playlet", | |||
Oid: utils.IntToStr(v.Id), | |||
Title: "短剧上月结算佣金转到余额", | |||
Title: "上月结算佣金转到余额", | |||
FlowType: "last_month_playlet_settle", | |||
IncomeType: 1, | |||
ExtendUid: master.ExtendUid, | |||
ExtendUid: v.ExtendUid, | |||
} | |||
masterLastMonthAmountFlowDb := db.MasterLastMonthAmountFlowDb{} | |||
masterLastMonthAmountFlowDb.Set() | |||
@@ -70,7 +70,7 @@ func PlayletOrderSettle() { | |||
} | |||
masterAmountDb := db.MasterAmountDb{} | |||
masterAmountDb.Set() | |||
amount := masterAmountDb.GetMasterAmount(utils.IntToStr(master.Id), "playlet") | |||
amount := masterAmountDb.GetMasterAmountByExtendUid(utils.IntToStr(master.Id), v.ExtendUid, "playlet") | |||
if amount == nil { | |||
fmt.Println("=================5") | |||
@@ -101,7 +101,7 @@ func PlayletOrderSettle() { | |||
Oid: v.Oid, | |||
Title: "短剧订单结算", | |||
FlowType: "playlet_settle", | |||
ExtendUid: master.ExtendUid, | |||
ExtendUid: v.ExtendUid, | |||
} | |||
masterLastMonthAmountFlowDb := db.MasterLastMonthAmountFlowDb{} | |||
masterLastMonthAmountFlowDb.Set() | |||
@@ -0,0 +1,191 @@ | |||
package task | |||
import ( | |||
"applet/app/task/svc" | |||
"math/rand" | |||
"time" | |||
) | |||
//25结算上个月1-30结算订单 | |||
func taskHwStarbucksOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("starbucks") | |||
<-ch | |||
} | |||
func taskHwMovieOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("movie") | |||
<-ch | |||
} | |||
func taskHwMcdonaldOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("mcdonald") | |||
<-ch | |||
} | |||
func taskHwNayukiOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("nayuki") | |||
<-ch | |||
} | |||
func taskHwLuckinOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("luckin") | |||
<-ch | |||
} | |||
func taskHwPizzaOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("pizza") | |||
<-ch | |||
} | |||
func taskHwPagodaOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("pagoda") | |||
<-ch | |||
} | |||
func taskHwBurgerKingOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("burger_king") | |||
<-ch | |||
} | |||
func taskHwHeyteaOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("heytea") | |||
<-ch | |||
} | |||
func taskHwToKfcOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("to_kfc") | |||
<-ch | |||
} | |||
func taskHwWallaceOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("wallace") | |||
<-ch | |||
} | |||
func taskHwFlowerCakeOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("flowerCake") | |||
<-ch | |||
} | |||
func taskHwDeliveryOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("delivery") | |||
<-ch | |||
} | |||
func taskHwTourismOrder() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwLoop("tourism") | |||
<-ch | |||
} |
@@ -0,0 +1,22 @@ | |||
package task | |||
import ( | |||
"applet/app/task/svc" | |||
"math/rand" | |||
"time" | |||
) | |||
// | |||
func taskHwOrderSettle() { | |||
for { | |||
if len(ch) > workerNum { | |||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||
} else { | |||
goto START | |||
} | |||
} | |||
START: | |||
ch <- 1 | |||
svc.HwOrderSettle() | |||
<-ch | |||
} |
@@ -4,7 +4,7 @@ go 1.15 | |||
require ( | |||
code.fnuoos.com/go_rely_warehouse/zyos_go_es.git v1.0.1-0.20230707081910-52e70aa52998 | |||
code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git v1.1.21-0.20230805060535-47d3fd8bc8d7 | |||
code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git v1.1.21-0.20230921025810-033e82ffb46e | |||
github.com/360EntSecGroup-Skylar/excelize v1.4.1 | |||
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 | |||
github.com/boombuler/barcode v1.0.1 | |||
@@ -26,6 +26,7 @@ require ( | |||
github.com/sony/sonyflake v1.1.0 | |||
github.com/syyongx/php2go v0.9.7 | |||
github.com/tidwall/gjson v1.14.1 | |||
github.com/xuri/excelize/v2 v2.8.0 // indirect | |||
go.uber.org/zap v1.16.0 | |||
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f // indirect | |||
gopkg.in/natefinch/lumberjack.v2 v2.0.0 | |||