@@ -231,6 +231,60 @@ func CentralKitchenForSchoolStudentAdmission(c *gin.Context) { | |||
return | |||
} | |||
func CentralKitchenForSchoolBatchStudentAdmission(c *gin.Context) { | |||
Kind := c.DefaultQuery("kind", "1") | |||
switch Kind { | |||
case "1": | |||
//按学校 | |||
var req md.CentralKitchenForSchoolStudentAdmissionBySchool | |||
err := c.ShouldBindJSON(&req) | |||
if err != nil { | |||
err = validate.HandleValidateErr(err) | |||
err1 := err.(e.E) | |||
e.OutErr(c, err1.Code, err1.Error()) | |||
return | |||
} | |||
err = svc2.CentralKitchenForSchoolStudentAdmissionBySchool(req) | |||
if err != nil { | |||
e.OutErr(c, e.ERR, err.Error()) | |||
return | |||
} | |||
break | |||
case "2": | |||
//按年级 | |||
var req md.CentralKitchenForSchoolStudentAdmissionByGrade | |||
err := c.ShouldBindJSON(&req) | |||
if err != nil { | |||
err = validate.HandleValidateErr(err) | |||
err1 := err.(e.E) | |||
e.OutErr(c, err1.Code, err1.Error()) | |||
return | |||
} | |||
err = svc2.CentralKitchenForSchoolStudentAdmissionByGrade(req) | |||
if err != nil { | |||
e.OutErr(c, e.ERR, err.Error()) | |||
return | |||
} | |||
break | |||
case "3": | |||
//按班级 | |||
var req md.CentralKitchenForSchoolStudentAdmissionByClass | |||
err := c.ShouldBindJSON(&req) | |||
if err != nil { | |||
err = validate.HandleValidateErr(err) | |||
err1 := err.(e.E) | |||
e.OutErr(c, err1.Code, err1.Error()) | |||
return | |||
} | |||
err = svc2.CentralKitchenForSchoolStudentAdmissionByClass(req) | |||
if err != nil { | |||
e.OutErr(c, e.ERR, err.Error()) | |||
return | |||
} | |||
break | |||
} | |||
} | |||
func CentralKitchenForSchoolStudentDelete(c *gin.Context) { | |||
var req md.CentralKitchenForSchoolStudentDeleteReq | |||
err := c.ShouldBindJSON(&req) | |||
@@ -1039,6 +1093,7 @@ func CentralKitchenForSchoolBatchAskForLeave(c *gin.Context) { | |||
Kind := c.DefaultQuery("kind", "1") | |||
switch Kind { | |||
case "1": | |||
//按学校 | |||
var req md.CentralKitchenForSchoolBatchAskForLeaveReqBySchool | |||
err := c.ShouldBindJSON(&req) | |||
if err != nil { | |||
@@ -1052,7 +1107,6 @@ func CentralKitchenForSchoolBatchAskForLeave(c *gin.Context) { | |||
e.OutErr(c, e.ERR, err.Error()) | |||
return | |||
} | |||
//按学校 | |||
break | |||
case "2": | |||
//按年级 | |||
@@ -70,6 +70,10 @@ func CentralKitchenForSchoolDataStatisticsList(c *gin.Context) { | |||
"name": "学校预定数量统计表", | |||
"value": 8, | |||
}, | |||
{ | |||
"name": "数据对比", | |||
"value": 9, | |||
}, | |||
}, | |||
}, nil) | |||
return | |||
@@ -125,6 +129,34 @@ func CentralKitchenForSchoolDataStatisticsExport(c *gin.Context) { | |||
return | |||
} | |||
func CentralKitchenForSchoolDataStatisticsContrast(c *gin.Context) { | |||
var req md.CentralKitchenForSchoolDataStatisticsContrastReq | |||
err := c.ShouldBindJSON(&req) | |||
if err != nil { | |||
err = validate.HandleValidateErr(err) | |||
err1 := err.(e.E) | |||
e.OutErr(c, err1.Code, err1.Error()) | |||
return | |||
} | |||
if req.EnterpriseId != 0 { | |||
enterpriseDb := db.EnterpriseDb{} | |||
enterpriseDb.Set() | |||
enterprise, err1 := enterpriseDb.GetEnterprise(req.EnterpriseId) | |||
if err1 != nil { | |||
e.OutErr(c, e.ERR_DB_ORM, err1.Error()) | |||
return | |||
} | |||
req.EnterpriseName = enterprise.Name | |||
} | |||
go svc.CentralKitchenForSchoolDataStatisticsContrast(req) | |||
e.OutSuc(c, map[string]interface{}{ | |||
"msg": "导出成功,请稍后刷新数据列表", | |||
}, nil) | |||
return | |||
} | |||
func NursingHomeDataStatisticsList(c *gin.Context) { | |||
var req md.NursingHomeExportRecordsListReq | |||
err := c.ShouldBindJSON(&req) | |||
@@ -17,6 +17,14 @@ type CentralKitchenForSchoolDataStatisticsExportReq struct { | |||
EnterpriseName string `json:"enterprise_name" label:"校企名称"` | |||
} | |||
type CentralKitchenForSchoolDataStatisticsContrastReq struct { | |||
Date1 []string `json:"date_1" binding:"required" label:"起始时间"` | |||
Date2 []string `json:"date_2" binding:"required" label:"截止时间"` | |||
MealKindList []int `json:"meal_kind_list" label:"就餐类型(1:早餐 2:午餐 3:晚餐)"` | |||
EnterpriseId int `json:"enterprise_id" label:"校企id"` | |||
EnterpriseName string `json:"enterprise_name" label:"校企名称"` | |||
} | |||
type NursingHomeExportRecordsListReq struct { | |||
Page int `json:"page" label:"页码"` | |||
Kind int `json:"kind" label:"导出类型"` | |||
@@ -108,3 +108,18 @@ type CentralKitchenForSchoolPackageForSystemWithDay struct { | |||
IsOpenDinner int `json:"is_open_dinner"` | |||
IsOpenReplenish int `json:"is_open_replenish"` | |||
} | |||
type CentralKitchenForSchoolStudentAdmissionBySchool struct { | |||
EnterpriseIds []int `json:"enterprise_ids" binding:"required" label:"企业id"` | |||
} | |||
type CentralKitchenForSchoolStudentAdmissionByGrade struct { | |||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||
GradeIds []int `json:"grade_ids" binding:"required" label:"年级id"` | |||
} | |||
type CentralKitchenForSchoolStudentAdmissionByClass struct { | |||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||
GradeId int `json:"grade_id" binding:"required" label:"年级id"` | |||
ClassIds []int `json:"class_ids" label:"班级id"` | |||
} |
@@ -534,6 +534,58 @@ func CentralKitchenForSchoolStudentAdmission(req md.CentralKitchenForSchoolStude | |||
return | |||
} | |||
func CentralKitchenForSchoolStudentAdmissionByClass(req md.CentralKitchenForSchoolStudentAdmissionByClass) (err error) { | |||
// 删除 class_with_user 记录 | |||
_, err = db.Db.In("class_id = ?", req.ClassIds).Delete(model.ClassWithUser{}) | |||
return | |||
} | |||
func CentralKitchenForSchoolStudentAdmissionByGrade(req md.CentralKitchenForSchoolStudentAdmissionByGrade) (err error) { | |||
for _, v := range req.GradeIds { | |||
// 查找班级记录 | |||
classDb := db.ClassDb{} | |||
classDb.Set(v) | |||
classes, err1 := classDb.FindClass() | |||
if err1 != nil { | |||
return err1 | |||
} | |||
var classesIds []int | |||
for _, v := range *classes { | |||
classesIds = append(classesIds, v.Id) | |||
} | |||
// 删除 class_with_user 记录 | |||
_, err = db.Db.In("class_id", classesIds).Delete(model.ClassWithUser{}) | |||
if err != nil { | |||
return | |||
} | |||
} | |||
return | |||
} | |||
func CentralKitchenForSchoolStudentAdmissionBySchool(req md.CentralKitchenForSchoolStudentAdmissionBySchool) (err error) { | |||
for _, v := range req.EnterpriseIds { | |||
// 查找班级记录 | |||
classDb := db.ClassDb{} | |||
classDb.Set(0) | |||
classes, err1 := classDb.FindClassByEnterprise(v) | |||
if err1 != nil { | |||
return err1 | |||
} | |||
var classesIds []int | |||
for _, v := range *classes { | |||
classesIds = append(classesIds, v.Id) | |||
} | |||
// 删除 class_with_user 记录 | |||
_, err = db.Db.In("class_id", classesIds).Delete(model.ClassWithUser{}) | |||
if err != nil { | |||
return | |||
} | |||
} | |||
return | |||
} | |||
func CentralKitchenForSchoolOrdList(req md.CentralKitchenForSchoolOrdListReq) (resp []md.CentralKitchenForSchoolOrdListResp, count int64, err error) { | |||
var classWithUserIdentityIdsOne []int | |||
var classWithUserIdentityIdsTwo []int | |||
@@ -1328,6 +1328,189 @@ func CentralKitchenForSchoolDataStatisticsExport(req md.CentralKitchenForSchoolD | |||
} | |||
} | |||
func CentralKitchenForSchoolDataStatisticsContrast(req md.CentralKitchenForSchoolDataStatisticsContrastReq) { | |||
var titleList []string | |||
var fileName, downloadPath string | |||
var now = time.Now() | |||
xlsx := excelize.NewFile() | |||
//数据对比 | |||
fileName = "数据对比_" + utils.Int64ToStr(now.UnixMilli()) + ".zip" | |||
downloadPath = "/export/central_kitchen_for_school/" + fileName | |||
var m []*db.CentralKitchenForSchoolPackageOrdForReserveWithUserIdentity | |||
sess := db.Db.Desc("central_kitchen_for_school_package_ord_for_reserve.id") | |||
if req.EnterpriseId != 0 { | |||
sess.And("central_kitchen_for_school_package_ord_for_reserve.enterprise_id =?", req.EnterpriseId) | |||
} | |||
sess.And("central_kitchen_for_school_package_ord_for_reserve.meal_time_start >= ?", req.Date1[0]) | |||
sess.And("central_kitchen_for_school_package_ord_for_reserve.meal_time_start <= ?", req.Date1[1]) | |||
if len(req.MealKindList) > 0 { | |||
sess.In("central_kitchen_for_school_package_ord_for_reserve.kind", req.MealKindList) | |||
} | |||
_, err := sess. | |||
Join("LEFT", "central_kitchen_for_school_package_ord", "central_kitchen_for_school_package_ord_for_reserve.out_trade_no = central_kitchen_for_school_package_ord.out_trade_no"). | |||
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 { | |||
logx.Error(err) | |||
println("<<<<CentralKitchenForSchoolDataStatisticsContrast>>>>>Error:::", err.Error()) | |||
return | |||
} | |||
var m1 []*db.CentralKitchenForSchoolPackageOrdForReserveWithUserIdentity | |||
sess1 := db.Db.Desc("central_kitchen_for_school_package_ord_for_reserve.id") | |||
if req.EnterpriseId != 0 { | |||
sess1.And("central_kitchen_for_school_package_ord_for_reserve.enterprise_id =?", req.EnterpriseId) | |||
} | |||
sess1.And("central_kitchen_for_school_package_ord_for_reserve.meal_time_start >= ?", req.Date2[0]) | |||
sess1.And("central_kitchen_for_school_package_ord_for_reserve.meal_time_start <= ?", req.Date2[1]) | |||
if len(req.MealKindList) > 0 { | |||
sess1.In("central_kitchen_for_school_package_ord_for_reserve.kind", req.MealKindList) | |||
} | |||
_, err1 := sess1. | |||
Join("LEFT", "central_kitchen_for_school_package_ord", "central_kitchen_for_school_package_ord_for_reserve.out_trade_no = central_kitchen_for_school_package_ord.out_trade_no"). | |||
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 err1 != nil { | |||
logx.Error(err1) | |||
println("<<<<CentralKitchenForSchoolDataStatisticsContrast>>>>>Error:::", err.Error()) | |||
return | |||
} | |||
var list = map[string]map[string]map[string]map[string]string{} | |||
for _, v := range m { | |||
if list[v.Enterprise.Name] == nil { | |||
list[v.Enterprise.Name] = make(map[string]map[string]map[string]string) | |||
} | |||
if list[v.Enterprise.Name][v.Grade.Name] == nil { | |||
list[v.Enterprise.Name][v.Grade.Name] = make(map[string]map[string]string) | |||
} | |||
if list[v.Enterprise.Name][v.Grade.Name][v.Class.Name] == nil { | |||
list[v.Enterprise.Name][v.Grade.Name][v.Class.Name] = make(map[string]string) | |||
} | |||
list[v.Enterprise.Name][v.Grade.Name][v.Class.Name][v.UserIdentity.Name] = v.User.Phone | |||
} | |||
var list1 = map[string]map[string]map[string]map[string]string{} | |||
for _, v := range m1 { | |||
if list1[v.Enterprise.Name] == nil { | |||
list1[v.Enterprise.Name] = make(map[string]map[string]map[string]string) | |||
} | |||
if list1[v.Enterprise.Name][v.Grade.Name] == nil { | |||
list1[v.Enterprise.Name][v.Grade.Name] = make(map[string]map[string]string) | |||
} | |||
if list1[v.Enterprise.Name][v.Grade.Name][v.Class.Name] == nil { | |||
list1[v.Enterprise.Name][v.Grade.Name][v.Class.Name] = make(map[string]string) | |||
} | |||
list1[v.Enterprise.Name][v.Grade.Name][v.Class.Name][v.UserIdentity.Name] = v.User.Phone | |||
} | |||
var xlsFileName, xlsDownloadPath []string | |||
for k1, v1 := range list { | |||
tmpFileName := k1 + "数据对比_" + utils.Int64ToStr(now.UnixMilli()) + ".xlsx" | |||
tmpDownloadPath := "./static/export/central_kitchen_for_school/" + tmpFileName | |||
for k2, v2 := range v1 { | |||
if k2 == "" { | |||
//若年级为空,则为教师 | |||
continue | |||
} | |||
for k3, v3 := range v2 { | |||
titleList = []string{"姓名", "家长联系电话"} | |||
xlsx.NewSheet(k3) | |||
xlsx.SetSheetRow(k3, "A1", &titleList) | |||
j := 2 //表头被第一行用了,只能从第二行开始 | |||
for k4, v4 := range v3 { | |||
//TODO::判断当前用户是否在新的月份里面 | |||
if list1[k1] == nil || list1[k1][k2] == nil || list1[k1][k2][k3] == nil || list1[k1][k2][k3][k4] == "" { | |||
xlsx.SetSheetRow(k3, "A"+strconv.Itoa(j), &[]interface{}{ | |||
k4, v4}) | |||
j++ | |||
} | |||
} | |||
} | |||
} | |||
//将文件保存至服务器 | |||
xlsx.DeleteSheet("Sheet1") //TODO::只能放这里删除 | |||
err1 := xlsx.SaveAs(tmpDownloadPath) | |||
if err1 != nil { | |||
logx.Error(err1) | |||
println("<<<<CentralKitchenForSchoolDataStatisticsContrast>>>>>Error:::", err1.Error()) | |||
panic(err1) | |||
} | |||
xlsDownloadPath = append(xlsDownloadPath, tmpDownloadPath) | |||
xlsFileName = append(xlsFileName, tmpFileName) | |||
} | |||
archive, err := os.Create("./static" + downloadPath) //第一步,创建 zip 文件 | |||
if err != nil { | |||
logx.Error(err) | |||
println("<<<<CentralKitchenForSchoolDataStatisticsContrast>>>>>Error:::", err.Error()) | |||
panic(err) | |||
} | |||
defer archive.Close() | |||
zipWriter := zip.NewWriter(archive) //第二步,创建一个新的 *Writer 对象 | |||
for k, v := range xlsDownloadPath { | |||
w, err1 := zipWriter.Create("数据对比/" + xlsFileName[k]) //向 zip 文件中添加一个文件,返回一个待压缩的文件内容应写入的 Writer | |||
if err1 != nil { | |||
logx.Error(err1) | |||
println("<<<<CentralKitchenForSchoolDataStatisticsContrast>>>>>Error:::", err1.Error()) | |||
panic(err1) | |||
} | |||
f, err1 := os.Open(v) //打开待压缩的文件 | |||
if err1 != nil { | |||
logx.Error(err1) | |||
println("<<<<CentralKitchenForSchoolDataStatisticsContrast>>>>>Error:::", err1.Error()) | |||
panic(err1) | |||
} | |||
if _, err1 = io.Copy(w, f); err != nil { | |||
logx.Error(err1) | |||
println("<<<<CentralKitchenForSchoolDataStatisticsContrast>>>>>Error:::", err1.Error()) | |||
panic(err1) | |||
} | |||
if err1 != nil { | |||
logx.Error(err1) | |||
println("<<<<CentralKitchenForSchoolDataStatisticsContrast>>>>>Error:::", err1.Error()) | |||
panic(err1) | |||
} | |||
f.Close() | |||
os.RemoveAll(v) //TODO::移除源文件 | |||
} | |||
zipWriter.Close() // 第四步,关闭 zip writer,将所有数据写入指向基础 zip 文件的数据流 | |||
if err != nil { | |||
panic(err) | |||
} | |||
//新增数据 | |||
centralKitchenForSchoolExportRecordsDb := db.CentralKitchenForSchoolExportRecordsDb{} | |||
centralKitchenForSchoolExportRecordsDb.Set() | |||
marshal, _ := json.Marshal(req) | |||
centralKitchenForSchoolExportRecordsDb.CentralKitchenForSchoolExportRecordsInsert(&model.CentralKitchenForSchoolExportRecords{ | |||
Name: fileName, | |||
DownloadPath: downloadPath, | |||
Kind: 9, //数据对比 | |||
ReqContent: string(marshal), | |||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||
}) | |||
} | |||
func JudgeSelfSupportForMealTime(mealDate string) (mealZh string) { | |||
mealZh = "未知" | |||
mealTime, _ := time.ParseInLocation("2006-01-02 15:04:05", mealDate, time.Local) | |||
@@ -4,7 +4,7 @@ type CentralKitchenForSchoolExportRecords struct { | |||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||
Name string `json:"name" xorm:"not null default '' comment('名称') VARCHAR(255)"` | |||
DownloadPath string `json:"download_path" xorm:"not null default '' comment('下载地址') VARCHAR(255)"` | |||
Kind int `json:"kind" xorm:"not null default 0 comment('类型(1:订单列表 2:退款申请表 3:学校预定统计表 4:班级明细表 5:退款明细表 6:收款统计表 7:班级收款明细表 8:学校预定数量统计表)') TINYINT(1)"` | |||
Kind int `json:"kind" xorm:"not null default 0 comment('类型(1:订单列表 2:退款申请表 3:学校预定统计表 4:班级明细表 5:退款明细表 6:收款统计表 7:班级收款明细表 8:学校预定数量统计表 9:数据对比)') TINYINT(1)"` | |||
ReqContent string `json:"req_content" xorm:"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"` | |||
@@ -109,6 +109,7 @@ func rDeviceManage(r *gin.RouterGroup) { | |||
func rDataStatistics(r *gin.RouterGroup) { | |||
r.POST("/centralKitchenForSchool/export", hdl2.CentralKitchenForSchoolDataStatisticsExport) //数据统计-(央厨-学校)-导出 | |||
r.POST("/centralKitchenForSchool/contrast", hdl2.CentralKitchenForSchoolDataStatisticsContrast) //数据统计-(央厨-学校)-数据对比 | |||
r.POST("/centralKitchenForSchool/list", hdl2.CentralKitchenForSchoolDataStatisticsList) //数据统计-(央厨-学校)-列表 | |||
r.DELETE("/centralKitchenForSchool/delete/:id", hdl2.CentralKitchenForSchoolDataStatisticsDelete) //数据统计-(央厨-学校)-删除 | |||
@@ -159,25 +160,26 @@ func rEnterpriseManage(r *gin.RouterGroup) { | |||
r.POST("/centralKitchenForSchool/userUpdate", hdl.CentralKitchenForSchoolUserUpdate) //"央厨-学校"用户编辑 | |||
r.POST("/centralKitchenForSchool/userDelete", hdl.CentralKitchenForSchoolUserDelete) //"央厨-学校"用户删除 | |||
r.POST("/centralKitchenForSchool/studentList", hdl.CentralKitchenForSchoolStudentList) //"央厨-学校"学生列表 | |||
r.POST("/centralKitchenForSchool/studentUpdate", hdl.CentralKitchenForSchoolStudentUpdate) //"央厨-学校"学生编辑 | |||
r.POST("/centralKitchenForSchool/studentDelete", hdl.CentralKitchenForSchoolStudentDelete) //"央厨-学校"学生删除 | |||
r.POST("/centralKitchenForSchool/studentAdmission", hdl.CentralKitchenForSchoolStudentAdmission) //"央厨-学校"学生升学 | |||
r.POST("/centralKitchenForSchool/teacherList", hdl.CentralKitchenForSchoolTeacherList) //"央厨-学校"教师列表 | |||
r.POST("/centralKitchenForSchool/teacherUpdate", hdl.CentralKitchenForSchoolTeacherUpdate) //"央厨-学校"教师编辑 | |||
r.POST("/centralKitchenForSchool/teacherDelete", hdl.CentralKitchenForSchoolTeacherDelete) //"央厨-学校"教师删除 | |||
r.POST("/centralKitchenForSchool/gradeList", hdl.CentralKitchenForSchoolGradeList) //"央厨-学校"年级列表 | |||
r.DELETE("/centralKitchenForSchool/gradeDelete/:id", hdl.CentralKitchenForSchoolGradeDelete) //"央厨-学校"年级删除 | |||
r.POST("/centralKitchenForSchool/classList", hdl.CentralKitchenForSchoolClassList) //"央厨-学校"班级列表 | |||
r.DELETE("/centralKitchenForSchool/classDelete/:id", hdl.CentralKitchenForSchoolClassDelete) //"央厨-学校"班级删除 | |||
r.POST("/centralKitchenForSchool/ordList", hdl.CentralKitchenForSchoolOrdList) //"央厨-学校"订单列表 | |||
r.GET("/centralKitchenForSchool/ordDetail", hdl.CentralKitchenForSchoolOrdDetail) //"央厨-学校"订单详情 | |||
r.POST("/centralKitchenForSchool/ordRefund", hdl.CentralKitchenForSchoolOrdRefund) //"央厨-学校"订单退款 | |||
r.POST("/centralKitchenForSchool/batchAskForLeave", hdl.CentralKitchenForSchoolBatchAskForLeave) //"央厨-学校"批量请假 | |||
r.POST("/centralKitchenForSchool/reserveList", hdl.CentralKitchenForSchoolReserveList) //"央厨-学校"预定列表 | |||
r.GET("/centralKitchenForSchool/reserveUpdateStudent", hdl.CentralKitchenForSchoolReserveUpdateStudent) //"央厨-学校"获取修改学生预定数据 | |||
r.POST("/centralKitchenForSchool/reserveUpdateStudent", hdl.CentralKitchenForSchoolReserveUpdateStudent) //"央厨-学校"修改学生预定 | |||
r.GET("/centralKitchenForSchool/reserveDetail", hdl.CentralKitchenForSchoolReserveDetail) //"央厨-学校"预定详情 | |||
r.POST("/centralKitchenForSchool/studentList", hdl.CentralKitchenForSchoolStudentList) //"央厨-学校"学生列表 | |||
r.POST("/centralKitchenForSchool/studentUpdate", hdl.CentralKitchenForSchoolStudentUpdate) //"央厨-学校"学生编辑 | |||
r.POST("/centralKitchenForSchool/studentDelete", hdl.CentralKitchenForSchoolStudentDelete) //"央厨-学校"学生删除 | |||
r.POST("/centralKitchenForSchool/batchStudentAdmission", hdl.CentralKitchenForSchoolBatchStudentAdmission) //"央厨-学校"学生升学 | |||
r.POST("/centralKitchenForSchool/studentAdmission", hdl.CentralKitchenForSchoolStudentAdmission) //"央厨-学校"学生升学 | |||
r.POST("/centralKitchenForSchool/teacherList", hdl.CentralKitchenForSchoolTeacherList) //"央厨-学校"教师列表 | |||
r.POST("/centralKitchenForSchool/teacherUpdate", hdl.CentralKitchenForSchoolTeacherUpdate) //"央厨-学校"教师编辑 | |||
r.POST("/centralKitchenForSchool/teacherDelete", hdl.CentralKitchenForSchoolTeacherDelete) //"央厨-学校"教师删除 | |||
r.POST("/centralKitchenForSchool/gradeList", hdl.CentralKitchenForSchoolGradeList) //"央厨-学校"年级列表 | |||
r.DELETE("/centralKitchenForSchool/gradeDelete/:id", hdl.CentralKitchenForSchoolGradeDelete) //"央厨-学校"年级删除 | |||
r.POST("/centralKitchenForSchool/classList", hdl.CentralKitchenForSchoolClassList) //"央厨-学校"班级列表 | |||
r.DELETE("/centralKitchenForSchool/classDelete/:id", hdl.CentralKitchenForSchoolClassDelete) //"央厨-学校"班级删除 | |||
r.POST("/centralKitchenForSchool/ordList", hdl.CentralKitchenForSchoolOrdList) //"央厨-学校"订单列表 | |||
r.GET("/centralKitchenForSchool/ordDetail", hdl.CentralKitchenForSchoolOrdDetail) //"央厨-学校"订单详情 | |||
r.POST("/centralKitchenForSchool/ordRefund", hdl.CentralKitchenForSchoolOrdRefund) //"央厨-学校"订单退款 | |||
r.POST("/centralKitchenForSchool/batchAskForLeave", hdl.CentralKitchenForSchoolBatchAskForLeave) //"央厨-学校"批量请假 | |||
r.POST("/centralKitchenForSchool/reserveList", hdl.CentralKitchenForSchoolReserveList) //"央厨-学校"预定列表 | |||
r.GET("/centralKitchenForSchool/reserveUpdateStudent", hdl.CentralKitchenForSchoolReserveUpdateStudent) //"央厨-学校"获取修改学生预定数据 | |||
r.POST("/centralKitchenForSchool/reserveUpdateStudent", hdl.CentralKitchenForSchoolReserveUpdateStudent) //"央厨-学校"修改学生预定 | |||
r.GET("/centralKitchenForSchool/reserveDetail", hdl.CentralKitchenForSchoolReserveDetail) //"央厨-学校"预定详情 | |||
r.POST("/centralKitchenForSchoolOrderRefundList", hdl2.CentralKitchenForSchoolOrderRefundList) //"央厨-学校"订单退款列表 | |||
//r.POST("/centralKitchenForSchoolOrderRefundAudit", hdl2.CentralKitchenForSchoolOrderRefundAudit) //"央厨-学校"订单退款审核 | |||