@@ -823,7 +823,21 @@ func CentralKitchenForSchoolOrdList(c *gin.Context) { | |||||
e.OutErr(c, e.ERR, err.Error()) | e.OutErr(c, e.ERR, err.Error()) | ||||
return | return | ||||
} | } | ||||
personNum, orderCountByDay, orderCountByMonth, orderCountByTerm, consumeAmount, err := svc2.CentralKitchenForSchoolOrdStatistics(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, map[string]interface{}{ | e.OutSuc(c, map[string]interface{}{ | ||||
"statistics": map[string]interface{}{ | |||||
"person_num": personNum, | |||||
"order_count_by_day": orderCountByDay, | |||||
"order_count_by_month": orderCountByMonth, | |||||
"order_count_by_term": orderCountByTerm, | |||||
"consume_amount": consumeAmount, | |||||
}, | |||||
"list": resp, | "list": resp, | ||||
"total": total, | "total": total, | ||||
"enterprise_kind_list": md.EnterpriseKindForSchool, | "enterprise_kind_list": md.EnterpriseKindForSchool, | ||||
@@ -13,6 +13,7 @@ import ( | |||||
"applet/app/enum" | "applet/app/enum" | ||||
"applet/app/utils" | "applet/app/utils" | ||||
"encoding/csv" | "encoding/csv" | ||||
"encoding/json" | |||||
"fmt" | "fmt" | ||||
"github.com/360EntSecGroup-Skylar/excelize" | "github.com/360EntSecGroup-Skylar/excelize" | ||||
"github.com/gin-gonic/gin" | "github.com/gin-gonic/gin" | ||||
@@ -1079,7 +1080,22 @@ func SelfSupportForSchoolOrdList(c *gin.Context) { | |||||
e.OutErr(c, e.ERR, err.Error()) | e.OutErr(c, e.ERR, err.Error()) | ||||
return | return | ||||
} | } | ||||
personNum, count, consumeAmount, alreadyPayAmount, waitPayAmount, refundPayAmount, err := svc2.SelfSupportForSchoolOrdStatistics(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, map[string]interface{}{ | e.OutSuc(c, map[string]interface{}{ | ||||
"statistics": map[string]interface{}{ | |||||
"person_num": personNum, | |||||
"order_count": count, | |||||
"consume_amount": consumeAmount, | |||||
"already_pay_amount": alreadyPayAmount, | |||||
"wait_pay_amount": waitPayAmount, | |||||
"refund_pay_amount": refundPayAmount, | |||||
}, | |||||
"list": resp, | "list": resp, | ||||
"total": total, | "total": total, | ||||
"enterprise_kind_list": md.EnterpriseKindForSchool, | "enterprise_kind_list": md.EnterpriseKindForSchool, | ||||
@@ -1102,7 +1118,7 @@ func SelfSupportForSchoolOrdList(c *gin.Context) { | |||||
} | } | ||||
func SelfSupportForSchoolConsumeLimit(c *gin.Context) { | func SelfSupportForSchoolConsumeLimit(c *gin.Context) { | ||||
var req []*md.SelfSupportForSchoolConsumeLimitReq | |||||
var req md.SelfSupportForSchoolConsumeLimitReq | |||||
err := c.ShouldBindJSON(&req) | err := c.ShouldBindJSON(&req) | ||||
if err != nil { | if err != nil { | ||||
err = validate.HandleValidateErr(err) | err = validate.HandleValidateErr(err) | ||||
@@ -1110,6 +1126,17 @@ func SelfSupportForSchoolConsumeLimit(c *gin.Context) { | |||||
e.OutErr(c, err1.Code, err1.Error()) | e.OutErr(c, err1.Code, err1.Error()) | ||||
return | return | ||||
} | } | ||||
//TODO::业务校验 | |||||
var totalMaxConsumeTimes int | |||||
for _, v := range req.RosterPeriodConsumeLimitConfigList { | |||||
totalMaxConsumeTimes += v.MaxConsumeTimes | |||||
} | |||||
if totalMaxConsumeTimes > utils.StrToInt(req.DailyMaxConsumeTimes) { | |||||
fmt.Println(utils.StrToInt(req.DailyMaxConsumeTimes)) | |||||
e.OutErr(c, e.ERR_INVALID_ARGS, "单日最大消费次数,上限99(如需设置需要大于餐段次数之和,否则可能会导致餐段消费次数不足)") | |||||
return | |||||
} | |||||
enterpriseId := utils.StrToInt(c.DefaultQuery("enterprise_id", "")) | enterpriseId := utils.StrToInt(c.DefaultQuery("enterprise_id", "")) | ||||
enterpriseDb := db.EnterpriseDb{} | enterpriseDb := db.EnterpriseDb{} | ||||
enterpriseDb.Set() | enterpriseDb.Set() | ||||
@@ -1135,80 +1162,82 @@ func SelfSupportForSchoolConsumeLimit(c *gin.Context) { | |||||
selfSupportForUserFaceInfoDb := db.SelfSupportForUserFaceInfoDb{} | selfSupportForUserFaceInfoDb := db.SelfSupportForUserFaceInfoDb{} | ||||
userIdentityDb := db.UserIdentityDb{} | userIdentityDb := db.UserIdentityDb{} | ||||
var data md2.CurlAlipayPlanetEcocampusApiRosterConsumeLimit | |||||
var mm []*model.SelfSupportForUserConsumeLimit | |||||
var userIdentityIds []int | |||||
var data md2.CurlAlipayPlanetEcocampusApiRosterSingleConsumeLimitSync | |||||
now := time.Now() | now := time.Now() | ||||
for _, v := range req { | |||||
selfSupportForUserFaceInfoDb.Set(v.UserIdentityId) | |||||
userIdentityDb.Set(0) | |||||
faceInfo, err := selfSupportForUserFaceInfoDb.GetSelfSupportForUserFaceInfo() | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if faceInfo == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "用户【"+utils.IntToStr(v.UserIdentityId)+"】身份未查询到一脸通行相关数据") | |||||
return | |||||
} | |||||
identity, err := userIdentityDb.GetUserIdentity(v.UserIdentityId) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if identity == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "用户【"+utils.IntToStr(v.UserIdentityId)+"】身份未查询到") | |||||
return | |||||
} | |||||
data.SchoolCode = selfSupportForSchoolInfo.SchoolCode | |||||
data.SchoolName = selfSupportForSchoolInfo.SchoolName | |||||
data.ConsumeLimitSyncInfo = append(data.ConsumeLimitSyncInfo, md2.ConsumeLimitSyncInfo{ | |||||
FaceUid: faceInfo.UserId, | |||||
OutRosterCode: utils.IntToStr(v.UserIdentityId), | |||||
RosterName: identity.Name, | |||||
DailyConsumeLimit: v.DailyConsumeLimit, | |||||
DailyConsumeLimitSwitch: v.DailyConsumeLimitSwitch, | |||||
SingleConsumeLimit: v.SingleConsumeLimit, | |||||
SingleConsumeLimitSwitch: v.SingleConsumeLimitSwitch, | |||||
DailyConsumeNumber: v.DailyConsumeNumber, | |||||
DailyConsumeNumberSwitch: v.DailyConsumeNumberSwitch, | |||||
}) | |||||
mm = append(mm, &model.SelfSupportForUserConsumeLimit{ | |||||
EnterpriseId: enterpriseId, | |||||
UserIdentityId: v.UserIdentityId, | |||||
DailyConsumeLimit: v.DailyConsumeLimit, | |||||
DailyConsumeLimitSwitch: v.DailyConsumeLimitSwitch, | |||||
SingleConsumeLimit: v.SingleConsumeLimit, | |||||
SingleConsumeLimitSwitch: v.SingleConsumeLimitSwitch, | |||||
DailyConsumeNumber: v.DailyConsumeNumber, | |||||
DailyConsumeNumberSwitch: v.DailyConsumeNumberSwitch, | |||||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
}) | |||||
userIdentityIds = append(userIdentityIds, v.UserIdentityId) | |||||
selfSupportForUserFaceInfoDb.Set(req.UserIdentityId) | |||||
userIdentityDb.Set(0) | |||||
faceInfo, err := selfSupportForUserFaceInfoDb.GetSelfSupportForUserFaceInfo() | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if faceInfo == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "用户【"+utils.IntToStr(req.UserIdentityId)+"】身份未查询到一脸通行相关数据") | |||||
return | |||||
} | |||||
identity, err := userIdentityDb.GetUserIdentity(req.UserIdentityId) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if identity == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "用户【"+utils.IntToStr(req.UserIdentityId)+"】身份未查询到") | |||||
return | |||||
} | } | ||||
err, resp := svc.CurlAlipayPlanetEcocampusApiRosterConsumeLimit(data) | |||||
data.SchoolCode = selfSupportForSchoolInfo.SchoolCode | |||||
data.FaceUid = faceInfo.UserId | |||||
data.RosterName = identity.Name | |||||
data.DailyConsumeLimit = req.DailyConsumeLimit | |||||
data.SingleConsumeLimit = req.SingleConsumeLimit | |||||
data.DailyMaxConsumeTimes = req.DailyMaxConsumeTimes | |||||
data.RosterPeriodConsumeLimitConfigList = req.RosterPeriodConsumeLimitConfigList | |||||
err, resp := svc.CurlAlipayPlanetEcocampusApiRosterSingleConsumeLimitSync(data) | |||||
fmt.Println(">>>>>>>>>>>>>>>>>!!!<<<<<<<<<<<<<<<<", data, err) | fmt.Println(">>>>>>>>>>>>>>>>>!!!<<<<<<<<<<<<<<<<", data, err) | ||||
if err != nil { | if err != nil { | ||||
e.OutErr(c, e.ERR, err.Error()) | e.OutErr(c, e.ERR, err.Error()) | ||||
return | return | ||||
} | } | ||||
//TODO::记录到表中 | //TODO::记录到表中 | ||||
_, err = db.Db.In("user_identity_id", userIdentityIds).Delete(model.SelfSupportForUserConsumeLimit{}) | |||||
if err != nil { | |||||
return | |||||
} | |||||
selfSupportForUserConsumeLimitDb := db.SelfSupportForUserConsumeLimitDb{} | selfSupportForUserConsumeLimitDb := db.SelfSupportForUserConsumeLimitDb{} | ||||
selfSupportForUserConsumeLimitDb.Set(0) | |||||
_, err = selfSupportForUserConsumeLimitDb.BatchAdd(mm) | |||||
selfSupportForUserConsumeLimitDb.Set(req.UserIdentityId) | |||||
m, err := selfSupportForUserConsumeLimitDb.GetSelfSupportForUserConsumeLimit() | |||||
if err != nil { | if err != nil { | ||||
e.OutErr(c, e.ERR, err.Error()) | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | return | ||||
} | } | ||||
if m == nil { | |||||
m = &model.SelfSupportForUserConsumeLimit{ | |||||
EnterpriseId: enterpriseId, | |||||
UserIdentityId: req.UserIdentityId, | |||||
DailyConsumeLimit: req.DailyConsumeLimit, | |||||
SingleConsumeLimit: req.SingleConsumeLimit, | |||||
DailyMaxConsumeTimes: req.DailyMaxConsumeTimes, | |||||
RosterPeriodConsumeLimitConfigList: utils.SerializeStr(req.RosterPeriodConsumeLimitConfigList), | |||||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
} | |||||
_, err1 := selfSupportForUserConsumeLimitDb.SelfSupportForUserConsumeLimitInsert(m) | |||||
if err1 != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err1.Error()) | |||||
return | |||||
} | |||||
} else { | |||||
m.EnterpriseId = enterpriseId | |||||
m.UserIdentityId = req.UserIdentityId | |||||
m.DailyConsumeLimit = req.DailyConsumeLimit | |||||
m.SingleConsumeLimit = req.SingleConsumeLimit | |||||
m.DailyMaxConsumeTimes = req.DailyMaxConsumeTimes | |||||
m.RosterPeriodConsumeLimitConfigList = utils.SerializeStr(req.RosterPeriodConsumeLimitConfigList) | |||||
m.UpdateAt = now.Format("2006-01-02 15:04:05") | |||||
_, err1 := selfSupportForUserConsumeLimitDb.SelfSupportForUserConsumeLimitUpdate(m, | |||||
"enterprise_id", "user_identity_id", "daily_consume_limit", "single_consume_limit", "daily_consume_number", "roster_period_consume_limit_config_list") | |||||
if err1 != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err1.Error()) | |||||
return | |||||
} | |||||
} | |||||
e.OutSuc(c, resp, nil) | e.OutSuc(c, resp, nil) | ||||
return | return | ||||
@@ -1273,21 +1302,6 @@ func SelfSupportForSchoolConsumeLimitList(c *gin.Context) { | |||||
if req.DailyConsumeLimit != "" { | if req.DailyConsumeLimit != "" { | ||||
sess.And("self_support_for_user_consume_limit.daily_consume_limit = ?", req.DailyConsumeLimit) | sess.And("self_support_for_user_consume_limit.daily_consume_limit = ?", req.DailyConsumeLimit) | ||||
} | } | ||||
if req.DailyConsumeLimitSwitch != "" { | |||||
sess.And("self_support_for_user_consume_limit.daily_consume_limit_switch = ?", req.DailyConsumeLimitSwitch) | |||||
} | |||||
if req.SingleConsumeLimit != "" { | |||||
sess.And("self_support_for_user_consume_limit.single_consume_limit = ?", req.SingleConsumeLimit) | |||||
} | |||||
if req.SingleConsumeLimitSwitch != "" { | |||||
sess.And("self_support_for_user_consume_limit.single_consume_limit_switch = ?", req.SingleConsumeLimitSwitch) | |||||
} | |||||
if req.DailyConsumeNumber != "" { | |||||
sess.And("self_support_for_user_consume_limit.daily_consume_number = ?", req.DailyConsumeNumber) | |||||
} | |||||
if req.DailyConsumeNumberSwitch != "" { | |||||
sess.And("self_support_for_user_consume_limit.daily_consume_number_switch = ?", req.DailyConsumeNumberSwitch) | |||||
} | |||||
if req.Name != "" { | if req.Name != "" { | ||||
sess.And("user_identity.name like ?", "%"+req.Name+"%") | sess.And("user_identity.name like ?", "%"+req.Name+"%") | ||||
} | } | ||||
@@ -1316,67 +1330,34 @@ func SelfSupportForSchoolConsumeLimitList(c *gin.Context) { | |||||
var list []md.SelfSupportForSchoolConsumeLimitListResp | var list []md.SelfSupportForSchoolConsumeLimitListResp | ||||
for _, v := range m { | for _, v := range m { | ||||
var dailyConsumeLimitSwitch, singleConsumeLimitSwitch, dailyConsumeNumberSwitch = "off", "off", "off" | |||||
if v.SelfSupportForUserConsumeLimit.DailyConsumeLimitSwitch != "" { | |||||
dailyConsumeLimitSwitch = v.SelfSupportForUserConsumeLimit.DailyConsumeLimitSwitch | |||||
} | |||||
if v.SelfSupportForUserConsumeLimit.SingleConsumeLimitSwitch != "" { | |||||
singleConsumeLimitSwitch = v.SelfSupportForUserConsumeLimit.SingleConsumeLimitSwitch | |||||
} | |||||
if v.SelfSupportForUserConsumeLimit.DailyConsumeNumberSwitch != "" { | |||||
dailyConsumeNumberSwitch = v.SelfSupportForUserConsumeLimit.DailyConsumeNumberSwitch | |||||
var rosterPeriodConsumeLimitConfigList []md.RosterPeriodConsumeLimitConfig | |||||
if v.SelfSupportForUserConsumeLimit.DailyMaxConsumeTimes != "" { | |||||
err = json.Unmarshal([]byte(v.SelfSupportForUserConsumeLimit.DailyMaxConsumeTimes), &rosterPeriodConsumeLimitConfigList) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
} | } | ||||
list = append(list, md.SelfSupportForSchoolConsumeLimitListResp{ | list = append(list, md.SelfSupportForSchoolConsumeLimitListResp{ | ||||
UserIdentityId: v.UserIdentity.Id, | |||||
Name: v.UserIdentity.Name, | |||||
GradeId: v.Grade.Id, | |||||
GradeName: v.Grade.Name, | |||||
ClassId: v.Class.Id, | |||||
ClassName: v.Class.Name, | |||||
Phone: v.User.Phone, | |||||
DailyConsumeLimit: v.SelfSupportForUserConsumeLimit.DailyConsumeLimit, | |||||
DailyConsumeLimitSwitch: dailyConsumeLimitSwitch, | |||||
SingleConsumeLimit: v.SelfSupportForUserConsumeLimit.SingleConsumeLimit, | |||||
SingleConsumeLimitSwitch: singleConsumeLimitSwitch, | |||||
DailyConsumeNumber: v.SelfSupportForUserConsumeLimit.DailyConsumeNumber, | |||||
DailyConsumeNumberSwitch: dailyConsumeNumberSwitch, | |||||
UserIdentityId: v.UserIdentity.Id, | |||||
Name: v.UserIdentity.Name, | |||||
GradeId: v.Grade.Id, | |||||
GradeName: v.Grade.Name, | |||||
ClassId: v.Class.Id, | |||||
ClassName: v.Class.Name, | |||||
Phone: v.User.Phone, | |||||
DailyConsumeLimit: v.SelfSupportForUserConsumeLimit.DailyConsumeLimit, | |||||
SingleConsumeLimit: v.SelfSupportForUserConsumeLimit.SingleConsumeLimit, | |||||
DailyMaxConsumeTimes: v.SelfSupportForUserConsumeLimit.DailyMaxConsumeTimes, | |||||
RosterPeriodConsumeLimitConfigList: rosterPeriodConsumeLimitConfigList, | |||||
}) | }) | ||||
} | } | ||||
e.OutSuc(c, map[string]interface{}{ | e.OutSuc(c, map[string]interface{}{ | ||||
"list": list, | "list": list, | ||||
"enterprise_kind_list": md.EnterpriseKindForSchool, | "enterprise_kind_list": md.EnterpriseKindForSchool, | ||||
"daily_consume_limit_switch_list": []map[string]string{ | |||||
{ | |||||
"name": "开启", | |||||
"value": "ON", | |||||
}, | |||||
{ | |||||
"name": "关闭", | |||||
"value": "OFF", | |||||
}, | |||||
}, | |||||
"single_consume_limit_switch_list": []map[string]string{ | |||||
{ | |||||
"name": "开启", | |||||
"value": "ON", | |||||
}, | |||||
{ | |||||
"name": "关闭", | |||||
"value": "OFF", | |||||
}, | |||||
}, | |||||
"daily_consume_number_switch_list": []map[string]string{ | |||||
{ | |||||
"name": "开启", | |||||
"value": "ON", | |||||
}, | |||||
{ | |||||
"name": "关闭", | |||||
"value": "OFF", | |||||
}, | |||||
}, | |||||
"total": count, | |||||
"total": count, | |||||
}, nil) | }, nil) | ||||
return | return | ||||
} | } | ||||
@@ -503,47 +503,47 @@ type SelfSupportForSchoolOrdListReq struct { | |||||
} | } | ||||
type SelfSupportForSchoolConsumeLimitReq struct { | type SelfSupportForSchoolConsumeLimitReq struct { | ||||
UserIdentityId int `json:"user_identity_id" label:"用户身份id"` | |||||
DailyConsumeLimit string `json:"daily_consume_limit" label:"单日金额上限"` | |||||
DailyConsumeLimitSwitch string `json:"daily_consume_limit_switch" label:"单日金额上限 功能开关"` | |||||
SingleConsumeLimit string `json:"single_consume_limit" label:"单笔金额上限"` | |||||
SingleConsumeLimitSwitch string `json:"single_consume_limit_switch" label:"单笔金额上限 功能开关"` | |||||
DailyConsumeNumber string `json:"daily_consume_number" label:"单日笔数上限"` | |||||
DailyConsumeNumberSwitch string `json:"daily_consume_number_switch" label:"单日笔数上限 功能开关"` | |||||
UserIdentityId int `json:"user_identity_id" label:"用户身份id"` | |||||
DailyConsumeLimit string `json:"daily_consume_limit" label:"单日金额上限"` | |||||
SingleConsumeLimit string `json:"single_consume_limit" label:"单笔金额上限"` | |||||
DailyMaxConsumeTimes string `json:"daily_max_consume_times" label:"单日最大消费次数"` | |||||
RosterPeriodConsumeLimitConfigList []RosterPeriodConsumeLimitConfig `json:"roster_period_consume_limit_config_list" label:"餐段设置"` | |||||
} | |||||
type RosterPeriodConsumeLimitConfig struct { | |||||
PeriodDesc string `json:"period_desc" label:"餐段时间描述"` | |||||
StartTime string `json:"start_time" label:"餐段开始时间,格式为:xx:xx"` | |||||
EndTime string `json:"end_time" label:"餐段结束时间,格式为:xx:xx"` | |||||
MaxConsumeTimes int `json:"max_consume_times" label:"餐段内最大消费次数,默认值1,最大9"` | |||||
} | } | ||||
type SelfSupportForSchoolConsumeLimitListReq struct { | type SelfSupportForSchoolConsumeLimitListReq struct { | ||||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||||
EnterpriseKind int `json:"enterprise_kind" label:"企业类型"` | |||||
Limit int `json:"limit" binding:"required"` | |||||
Page int `json:"page" binding:"required"` | |||||
Name string `json:"name" label:"姓名"` | |||||
GradeId int `json:"grade_id" label:"年级id"` | |||||
ClassId int `json:"class_id" label:"班级id"` | |||||
Phone string `json:"phone" label:"用户电话"` | |||||
DailyConsumeLimit string `json:"daily_consume_limit" label:"单日金额上限"` | |||||
DailyConsumeLimitSwitch string `json:"daily_consume_limit_switch" label:"单日金额上限 功能开关"` | |||||
SingleConsumeLimit string `json:"single_consume_limit" label:"单笔金额上限"` | |||||
SingleConsumeLimitSwitch string `json:"single_consume_limit_switch" label:"单笔金额上限 功能开关"` | |||||
DailyConsumeNumber string `json:"daily_consume_number" label:"单日笔数上限"` | |||||
DailyConsumeNumberSwitch string `json:"daily_consume_number_switch" label:"单日笔数上限 功能开关"` | |||||
IsTeacher int `json:"is_teacher" label:"是否教师"` | |||||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||||
EnterpriseKind int `json:"enterprise_kind" label:"企业类型"` | |||||
Limit int `json:"limit" binding:"required"` | |||||
Page int `json:"page" binding:"required"` | |||||
Name string `json:"name" label:"姓名"` | |||||
GradeId int `json:"grade_id" label:"年级id"` | |||||
ClassId int `json:"class_id" label:"班级id"` | |||||
Phone string `json:"phone" label:"用户电话"` | |||||
DailyConsumeLimit string `json:"daily_consume_limit" label:"单日金额上限"` | |||||
SingleConsumeLimit string `json:"single_consume_limit" label:"单笔金额上限"` | |||||
DailyMaxConsumeTimes string `json:"daily_max_consume_times" label:"单日最大消费次数"` | |||||
IsTeacher int `json:"is_teacher" label:"是否教师"` | |||||
} | } | ||||
type SelfSupportForSchoolConsumeLimitListResp struct { | type SelfSupportForSchoolConsumeLimitListResp struct { | ||||
UserIdentityId int `json:"user_identity_id" label:"用户身份id"` | |||||
Name string `json:"name" label:"姓名"` | |||||
GradeId int `json:"grade_id" label:"年级id"` | |||||
GradeName string `json:"grade_name" label:"年级名称"` | |||||
ClassId int `json:"class_id" label:"班级id"` | |||||
ClassName string `json:"class_name" label:"班级名称"` | |||||
Phone string `json:"phone" label:"用户电话"` | |||||
DailyConsumeLimit string `json:"daily_consume_limit" label:"单日金额上限"` | |||||
DailyConsumeLimitSwitch string `json:"daily_consume_limit_switch" label:"单日金额上限 功能开关"` | |||||
SingleConsumeLimit string `json:"single_consume_limit" label:"单笔金额上限"` | |||||
SingleConsumeLimitSwitch string `json:"single_consume_limit_switch" label:"单笔金额上限 功能开关"` | |||||
DailyConsumeNumber string `json:"daily_consume_number" label:"单日笔数上限"` | |||||
DailyConsumeNumberSwitch string `json:"daily_consume_number_switch" label:"单日笔数上限 功能开关"` | |||||
UserIdentityId int `json:"user_identity_id" label:"用户身份id"` | |||||
Name string `json:"name" label:"姓名"` | |||||
GradeId int `json:"grade_id" label:"年级id"` | |||||
GradeName string `json:"grade_name" label:"年级名称"` | |||||
ClassId int `json:"class_id" label:"班级id"` | |||||
ClassName string `json:"class_name" label:"班级名称"` | |||||
Phone string `json:"phone" label:"用户电话"` | |||||
DailyConsumeLimit string `json:"daily_consume_limit" label:"单日金额上限"` | |||||
SingleConsumeLimit string `json:"single_consume_limit" label:"单笔金额上限"` | |||||
DailyMaxConsumeTimes string `json:"daily_max_consume_times" label:"单日最大消费次数"` | |||||
RosterPeriodConsumeLimitConfigList []RosterPeriodConsumeLimitConfig `json:"roster_period_consume_limit_config_list" label:"餐段设置"` | |||||
} | } | ||||
type SelfSupportForSchoolArrearsOrdListReq struct { | type SelfSupportForSchoolArrearsOrdListReq struct { | ||||
@@ -718,6 +718,154 @@ func CentralKitchenForSchoolOrdList(req md.CentralKitchenForSchoolOrdListReq) (r | |||||
return | return | ||||
} | } | ||||
func CentralKitchenForSchoolOrdStatistics(req md.CentralKitchenForSchoolOrdListReq) (personNum, orderCountByDay, orderCountByMonth, orderCountByTerm int64, consumeAmount float64, err error) { | |||||
var classWithUserIdentityIdsOne []int | |||||
var classWithUserIdentityIdsTwo []int | |||||
classWithUserDb := db.ClassWithUserDb{} | |||||
classWithUserDb.Set() | |||||
if req.ClassId != 0 { | |||||
classWithUsers, err2 := classWithUserDb.FindUserIdentity(req.ClassId) | |||||
if err2 != nil { | |||||
return 0, 0, 0, 0, 0, err2 | |||||
} | |||||
for _, v := range *classWithUsers { | |||||
classWithUserIdentityIdsOne = append(classWithUserIdentityIdsOne, v.UserIdentityId) | |||||
} | |||||
} | |||||
if req.GradeId != 0 { | |||||
classDb := db.ClassDb{} | |||||
classDb.Set(req.GradeId) | |||||
classes, err3 := classDb.FindClass() | |||||
if err3 != nil { | |||||
return 0, 0, 0, 0, 0, err3 | |||||
} | |||||
var classesId []int | |||||
for _, v := range *classes { | |||||
classesId = append(classesId, v.Id) | |||||
} | |||||
classWithUsers, err4 := classWithUserDb.FindUserIdentity(classesId) | |||||
if err4 != nil { | |||||
return 0, 0, 0, 0, 0, err4 | |||||
} | |||||
for _, v := range *classWithUsers { | |||||
classWithUserIdentityIdsTwo = append(classWithUserIdentityIdsTwo, v.UserIdentityId) | |||||
} | |||||
} | |||||
sess := db.Db.Desc("central_kitchen_for_school_package_ord.id") | |||||
if req.EnterpriseId != 0 { | |||||
sess.And("central_kitchen_for_school_package_ord.enterprise_id =?", req.EnterpriseId) | |||||
} | |||||
if req.IsTeacher != 0 { | |||||
if req.IsTeacher == 1 { | |||||
sess.And("user_identity.identity =?", enum2.UserIdentityForCentralKitchenForTeacher) | |||||
} | |||||
if req.IsTeacher == 2 { | |||||
sess.And("user_identity.identity !=?", enum2.UserIdentityForCentralKitchenForTeacher) | |||||
} | |||||
} | |||||
if req.StartDate != "" { | |||||
sess.And("central_kitchen_for_school_package_ord.create_at >= ?", req.StartDate) | |||||
} | |||||
if req.EndDate != "" { | |||||
sess.And("central_kitchen_for_school_package_ord.create_at <= ?", req.EndDate) | |||||
} | |||||
if req.Kind != 0 { | |||||
sess.And("central_kitchen_for_school_package_ord.kind = ?", req.Kind) | |||||
} | |||||
if req.Sate != -1 { | |||||
sess.And("central_kitchen_for_school_package_ord.state = ?", req.Sate) | |||||
} | |||||
if req.OrdSate != -1 { | |||||
sess.And("central_kitchen_for_school_package_ord.ord_state = ?", req.OrdSate) | |||||
} | |||||
if req.OutTradeNo != "" { | |||||
sess.And("central_kitchen_for_school_package_ord.out_trade_no like ?", "%"+req.OutTradeNo+"%") | |||||
} | |||||
if req.Name != "" { | |||||
sess.And("user_identity.name like ?", "%"+req.Name+"%") | |||||
} | |||||
if req.Phone != "" { | |||||
sess.And("user.phone like ?", "%"+req.Phone+"%") | |||||
} | |||||
if req.EnterPriseKind != 0 { | |||||
sess.And("enterprise.kind = ?", req.EnterPriseKind) | |||||
} | |||||
if len(classWithUserIdentityIdsOne) > 0 { | |||||
sess.In("user_identity.id", classWithUserIdentityIdsOne) | |||||
} | |||||
if len(classWithUserIdentityIdsTwo) > 0 { | |||||
sess.In("user_identity.id", classWithUserIdentityIdsTwo) | |||||
} | |||||
var sess1, sess2, sess3, sess4, sess5 = sess, sess, sess, sess, sess | |||||
var m []*db.CentralKitchenForSchoolPackageOrdWithUserIdentity | |||||
personNum, err = sess1. | |||||
Join("LEFT", "user_identity", "central_kitchen_for_school_package_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
GroupBy("central_kitchen_for_school_package_ord.user_identity_id"). | |||||
FindAndCount(&m) | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, err | |||||
} | |||||
orderCountByTerm, err = sess2.And("central_kitchen_for_school_package_ord.kind = ?", 1). | |||||
Join("LEFT", "user_identity", "central_kitchen_for_school_package_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
FindAndCount(&m) | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, err | |||||
} | |||||
orderCountByMonth, err = sess3.And("central_kitchen_for_school_package_ord.kind = ?", 2). | |||||
Join("LEFT", "user_identity", "central_kitchen_for_school_package_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
FindAndCount(&m) | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, err | |||||
} | |||||
orderCountByDay, err = sess4.And("central_kitchen_for_school_package_ord.kind = ?", 3). | |||||
Join("LEFT", "user_identity", "central_kitchen_for_school_package_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
FindAndCount(&m) | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, err | |||||
} | |||||
var mm db.CentralKitchenForSchoolPackageOrdWithUserIdentity | |||||
consumeAmount, err = sess5. | |||||
Join("LEFT", "user_identity", "central_kitchen_for_school_package_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
Sum(mm, "central_kitchen_for_school_package_ord.total_price") | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, err | |||||
} | |||||
return | |||||
} | |||||
func CentralKitchenForSchoolReserveList(req md.CentralKitchenForSchoolReserveListReq) (resp []md.CentralKitchenForSchoolReserveListResp, count int64, err error) { | func CentralKitchenForSchoolReserveList(req md.CentralKitchenForSchoolReserveListReq) (resp []md.CentralKitchenForSchoolReserveListResp, count int64, err error) { | ||||
var classWithUserIdentityIdsOne []int | var classWithUserIdentityIdsOne []int | ||||
var classWithUserIdentityIdsTwo []int | var classWithUserIdentityIdsTwo []int | ||||
@@ -669,6 +669,160 @@ func SelfSupportForSchoolOrdList(req md.SelfSupportForSchoolOrdListReq) (resp [] | |||||
return | return | ||||
} | } | ||||
func SelfSupportForSchoolOrdStatistics(req md.SelfSupportForSchoolOrdListReq) (personNum, count int64, consumeAmount, alreadyPayAmount, waitPayAmount, refundPayAmount float64, err error) { | |||||
var classWithUserIdentityIdsOne []int | |||||
var classWithUserIdentityIdsTwo []int | |||||
classWithUserDb := db.ClassWithUserDb{} | |||||
classWithUserDb.Set() | |||||
if req.ClassId != 0 { | |||||
classWithUsers, err2 := classWithUserDb.FindUserIdentity(req.ClassId) | |||||
if err2 != nil { | |||||
return 0, 0, 0, 0, 0, 0, err2 | |||||
} | |||||
for _, v := range *classWithUsers { | |||||
classWithUserIdentityIdsOne = append(classWithUserIdentityIdsOne, v.UserIdentityId) | |||||
} | |||||
} | |||||
if req.GradeId != 0 { | |||||
classDb := db.ClassDb{} | |||||
classDb.Set(req.GradeId) | |||||
classes, err3 := classDb.FindClass() | |||||
if err3 != nil { | |||||
return 0, 0, 0, 0, 0, 0, err | |||||
} | |||||
var classesId []int | |||||
for _, v := range *classes { | |||||
classesId = append(classesId, v.Id) | |||||
} | |||||
classWithUsers, err4 := classWithUserDb.FindUserIdentity(classesId) | |||||
if err4 != nil { | |||||
return 0, 0, 0, 0, 0, 0, err | |||||
} | |||||
for _, v := range *classWithUsers { | |||||
classWithUserIdentityIdsTwo = append(classWithUserIdentityIdsTwo, v.UserIdentityId) | |||||
} | |||||
} | |||||
sess := db.Db.Desc("self_support_for_school_ord.id") | |||||
if req.EnterpriseId != 0 { | |||||
sess.And("self_support_for_school_ord.enterprise_id =?", req.EnterpriseId) | |||||
} | |||||
if req.StartDate != "" { | |||||
sess.And("self_support_for_school_ord.face_time >= ?", req.StartDate) | |||||
} | |||||
if req.EndDate != "" { | |||||
sess.And("self_support_for_school_ord.face_time <= ?", req.EndDate) | |||||
} | |||||
if req.OrderStatus != 0 { | |||||
sess.And("self_support_for_school_ord.order_status = ?", req.OrderStatus) | |||||
} | |||||
if req.OutTradeNo != "" { | |||||
sess.And("self_support_for_school_ord.out_order_no like ?", "%"+req.OutTradeNo+"%") | |||||
} | |||||
if req.EnterpriseKind != 0 { | |||||
sess.And("enterprise.kind = ?", req.EnterpriseKind) | |||||
} | |||||
if req.IsTeacher != 0 { | |||||
if req.IsTeacher == 1 { | |||||
sess.And("user_identity.identity =?", enum2.UserIdentityForCentralKitchenForTeacher) | |||||
} | |||||
if req.IsTeacher == 2 { | |||||
sess.And("user_identity.identity !=?", enum2.UserIdentityForCentralKitchenForTeacher) | |||||
} | |||||
} | |||||
if req.Name != "" { | |||||
sess.And("user_identity.name like ?", "%"+req.Name+"%") | |||||
} | |||||
if req.Phone != "" { | |||||
sess.And("user.phone like ?", "%"+req.Phone+"%") | |||||
} | |||||
if len(classWithUserIdentityIdsOne) > 0 { | |||||
sess.In("user_identity.id", classWithUserIdentityIdsOne) | |||||
} | |||||
if len(classWithUserIdentityIdsTwo) > 0 { | |||||
sess.In("user_identity.id", classWithUserIdentityIdsTwo) | |||||
} | |||||
var sess1, sess2, sess3, sess4, sess5, sess6 = sess, sess, sess, sess, sess, sess | |||||
var m []*db.SelfSupportForSchoolOrdWithUserIdentity | |||||
personNum, err = sess1. | |||||
Join("LEFT", "user_identity", "self_support_for_school_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
GroupBy("self_support_for_school_ord.user_identity_id"). | |||||
FindAndCount(&m) | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, 0, err | |||||
} | |||||
count, err = sess2. | |||||
Join("LEFT", "user_identity", "self_support_for_school_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
FindAndCount(&m) | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, 0, err | |||||
} | |||||
var mm db.SelfSupportForSchoolOrdWithUserIdentity | |||||
consumeAmount, err = sess3. | |||||
Join("LEFT", "user_identity", "self_support_for_school_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
Sum(mm, "self_support_for_school_ord.trade_amount") | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, 0, err | |||||
} | |||||
waitPayAmount, err = sess4.And("self_support_for_school_ord.order_status = ?", enum2.SelfSupportForSchoolOrdOrderStatusForWait). | |||||
Join("LEFT", "user_identity", "self_support_for_school_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
Sum(mm, "self_support_for_school_ord.trade_amount") | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, 0, err | |||||
} | |||||
alreadyPayAmount, err = sess5.And("self_support_for_school_ord.order_status = ?", enum2.SelfSupportForSchoolOrdOrderStatusForSuccess). | |||||
Join("LEFT", "user_identity", "self_support_for_school_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
Sum(mm, "self_support_for_school_ord.trade_amount") | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, 0, err | |||||
} | |||||
refundPayAmount, err = sess6.And("self_support_for_school_ord.order_status = ?", enum2.SelfSupportForSchoolOrdOrderStatusForSuccess). | |||||
Join("LEFT", "user_identity", "self_support_for_school_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "class_with_user", "class_with_user.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "class", "class_with_user.class_id = class.id"). | |||||
Join("LEFT", "grade", "class.grade_id = grade.id"). | |||||
Sum(mm, "self_support_for_school_ord.trade_amount") | |||||
if err != nil { | |||||
return 0, 0, 0, 0, 0, 0, err | |||||
} | |||||
return | |||||
} | |||||
func SelfSupportForSchoolOrdListExport(req md.SelfSupportForSchoolOrdListReq) (resp []md.SelfSupportForSchoolOrdListResp, err error) { | func SelfSupportForSchoolOrdListExport(req md.SelfSupportForSchoolOrdListReq) (resp []md.SelfSupportForSchoolOrdListResp, err error) { | ||||
var classWithUserIdentityIdsOne []int | var classWithUserIdentityIdsOne []int | ||||
var classWithUserIdentityIdsTwo []int | var classWithUserIdentityIdsTwo []int | ||||
@@ -1,5 +1,7 @@ | |||||
package md | package md | ||||
import "applet/app/admin/md" | |||||
type CurlAesDecrypt struct { | type CurlAesDecrypt struct { | ||||
AesKey string `json:"aes_key" label:"支付宝开放平台-小程序-接口内容加密-aesKey"` | AesKey string `json:"aes_key" label:"支付宝开放平台-小程序-接口内容加密-aesKey"` | ||||
Content string `json:"content" binding:"required" label:"解密内容"` | Content string `json:"content" binding:"required" label:"解密内容"` | ||||
@@ -151,20 +153,12 @@ type CurlAlipayPlanetEcocampusApiDebtCancel struct { | |||||
MerchantCode string `json:"merchant_code" label:"商户编号"` | MerchantCode string `json:"merchant_code" label:"商户编号"` | ||||
} | } | ||||
type CurlAlipayPlanetEcocampusApiRosterConsumeLimit struct { | |||||
ConsumeLimitSyncInfo []ConsumeLimitSyncInfo `json:"consume_limit_sync_info" label:"外部订单号"` | |||||
SchoolCode string `json:"school_code" label:"学校内标"` | |||||
SchoolName string `json:"school_name" label:"学校名称"` | |||||
} | |||||
type ConsumeLimitSyncInfo struct { | |||||
FaceUid string `json:"face_uid" label:"学生刷脸编号"` | |||||
OutRosterCode string `json:"out_roster_code" label:"外部花名册编号"` | |||||
RosterName string `json:"roster_name" label:"花名册名称"` | |||||
DailyConsumeLimit string `json:"daily_consume_limit" label:"单日金额上限"` | |||||
DailyConsumeLimitSwitch string `json:"daily_consume_limit_switch" label:"单日金额上限 功能开关"` | |||||
SingleConsumeLimit string `json:"single_consume_limit" label:"单笔金额上限"` | |||||
SingleConsumeLimitSwitch string `json:"single_consume_limit_switch" label:"单笔金额上限 功能开关"` | |||||
DailyConsumeNumber string `json:"daily_consume_number" label:"单日笔数上限"` | |||||
DailyConsumeNumberSwitch string `json:"daily_consume_number_switch" label:"单日笔数上限 功能开关"` | |||||
type CurlAlipayPlanetEcocampusApiRosterSingleConsumeLimitSync struct { | |||||
SchoolCode string `json:"school_code" label:"学校内标"` | |||||
FaceUid string `json:"face_uid" label:"学生刷脸编号"` | |||||
RosterName string `json:"roster_name" label:"花名册名称"` | |||||
DailyConsumeLimit string `json:"daily_consume_limit" label:"单日金额上限"` | |||||
SingleConsumeLimit string `json:"single_consume_limit" label:"单笔金额上限"` | |||||
DailyMaxConsumeTimes string `json:"daily_max_consume_times" label:"单日笔数上限"` | |||||
RosterPeriodConsumeLimitConfigList []md.RosterPeriodConsumeLimitConfig `json:"roster_period_consume_limit_config_list" label:"餐段设置"` | |||||
} | } |
@@ -857,9 +857,9 @@ func CurlAlipayPlanetEcocampusApiDebtCancel(args md.CurlAlipayPlanetEcocampusApi | |||||
return nil, result.Data | return nil, result.Data | ||||
} | } | ||||
func CurlAlipayPlanetEcocampusApiRosterConsumeLimit(args md.CurlAlipayPlanetEcocampusApiRosterConsumeLimit) (err error, resp interface{}) { | |||||
url := cfg.SmartCanteenPay + "/alipay/bPass/alipayPlanetEcocampusApiRosterConsumeLimit" | |||||
utils.FilePutContents("CurlAlipayPlanetEcocampusApiRosterConsumeLimit", utils.SerializeStr(map[string]interface{}{ | |||||
func CurlAlipayPlanetEcocampusApiRosterSingleConsumeLimitSync(args md.CurlAlipayPlanetEcocampusApiRosterSingleConsumeLimitSync) (err error, resp interface{}) { | |||||
url := cfg.SmartCanteenPay + "/alipay/bPass/alipayPlanetEcocampusApiRosterSingleConsumeLimitSync" | |||||
utils.FilePutContents("CurlAlipayPlanetEcocampusApiRosterSingleConsumeLimitSync", utils.SerializeStr(map[string]interface{}{ | |||||
"args": args, | "args": args, | ||||
})) | })) | ||||
bytes, err := utils.CurlPost(url, utils.Serialize(args), nil) | bytes, err := utils.CurlPost(url, utils.Serialize(args), nil) | ||||
@@ -871,7 +871,7 @@ func CurlAlipayPlanetEcocampusApiRosterConsumeLimit(args md.CurlAlipayPlanetEcoc | |||||
Msg string `json:"msg"` | Msg string `json:"msg"` | ||||
Data interface{} `json:"data"` | Data interface{} `json:"data"` | ||||
} | } | ||||
utils.FilePutContents("CurlAlipayPlanetEcocampusApiRosterConsumeLimit", utils.SerializeStr(result)) | |||||
utils.FilePutContents("CurlAlipayPlanetEcocampusApiRosterSingleConsumeLimitSync", utils.SerializeStr(result)) | |||||
err = json.Unmarshal(bytes, &result) | err = json.Unmarshal(bytes, &result) | ||||
if err != nil { | if err != nil { | ||||
return | return | ||||
@@ -1,15 +1,13 @@ | |||||
package model | package model | ||||
type SelfSupportForUserConsumeLimit struct { | type SelfSupportForUserConsumeLimit struct { | ||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
EnterpriseId int `json:"enterprise_id" xorm:"not null default 0 comment('单位id') INT(11)"` | |||||
UserIdentityId int `json:"user_identity_id" xorm:"not null default 0 comment('用户身份id') INT(11)"` | |||||
DailyConsumeLimit string `json:"daily_consume_limit" xorm:"not null default '' comment('单日金额上限') CHAR(50)"` | |||||
DailyConsumeLimitSwitch string `json:"daily_consume_limit_switch" xorm:"not null default '' comment('单日金额上限 功能开关') CHAR(50)"` | |||||
SingleConsumeLimit string `json:"single_consume_limit" xorm:"not null default '' comment('单笔金额上限') CHAR(50)"` | |||||
SingleConsumeLimitSwitch string `json:"single_consume_limit_switch" xorm:"not null default '' comment('单日金额上限 功能开关') CHAR(50)"` | |||||
DailyConsumeNumber string `json:"daily_consume_number" xorm:"not null default '' comment('单日笔数上限') CHAR(50)"` | |||||
DailyConsumeNumberSwitch string `json:"daily_consume_number_switch" xorm:"not null default '' comment('单日笔数上限 功能开关') CHAR(50)"` | |||||
CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
EnterpriseId int `json:"enterprise_id" xorm:"not null default 0 comment('单位id') INT(11)"` | |||||
UserIdentityId int `json:"user_identity_id" xorm:"not null default 0 comment('用户身份id') INT(11)"` | |||||
DailyConsumeLimit string `json:"daily_consume_limit" xorm:"not null default '' comment('单日金额上限,上限999') CHAR(50)"` | |||||
SingleConsumeLimit string `json:"single_consume_limit" xorm:"not null default '' comment('单笔金额上限,上限99') CHAR(50)"` | |||||
DailyMaxConsumeTimes string `json:"daily_max_consume_times" xorm:"not null default '' comment('单日最大消费次数,上限99(如需设置需要大于餐段次数之和,否则可能会导致餐段消费次数不足)') CHAR(50)"` | |||||
RosterPeriodConsumeLimitConfigList string `json:"roster_period_consume_limit_config_list" xorm:"not null comment('餐段设置,如需设置支持2-4个餐段。餐段时间不能有重叠') TEXT"` | |||||
CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
} | } |