智慧食堂
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

hdl_enterprise.go 22 KiB

1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837
  1. package hdl
  2. import (
  3. enum2 "applet/app/admin/enum"
  4. "applet/app/admin/lib/validate"
  5. "applet/app/admin/md"
  6. "applet/app/admin/svc"
  7. "applet/app/db"
  8. "applet/app/db/model"
  9. "applet/app/e"
  10. "applet/app/enum"
  11. "applet/app/utils"
  12. "github.com/gin-gonic/gin"
  13. "time"
  14. )
  15. func EnterpriseList(c *gin.Context) {
  16. var req md.EnterpriseListReq
  17. err := c.ShouldBindJSON(&req)
  18. if err != nil {
  19. err = validate.HandleValidateErr(err)
  20. err1 := err.(e.E)
  21. e.OutErr(c, err1.Code, err1.Error())
  22. return
  23. }
  24. if req.Limit == 0 {
  25. req.Limit = 10
  26. }
  27. if req.Page == 0 {
  28. req.Page = 10
  29. }
  30. admin := svc.GetUser(c)
  31. enterprises, total, err := svc.EnterpriseList(*admin, req)
  32. if err != nil {
  33. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  34. return
  35. }
  36. e.OutSuc(c, map[string]interface{}{
  37. "list": enterprises,
  38. "total": total,
  39. "state": []map[string]interface{}{
  40. {
  41. "name": enum.EnterpriseState(enum.EnterpriseStateForNormal).String(),
  42. "value": enum.EnterpriseStateForNormal,
  43. },
  44. {
  45. "name": enum.EnterpriseState(enum.EnterpriseStateForFreeze).String(),
  46. "value": enum.EnterpriseStateForFreeze,
  47. },
  48. },
  49. "kind": []map[string]interface{}{
  50. {
  51. "name": enum.EnterprisePvd(enum.EnterprisePvdByCentralKitchenForSchool).String(),
  52. "value": enum.EnterprisePvdByCentralKitchenForSchool,
  53. },
  54. {
  55. "name": enum.EnterprisePvd(enum.EnterprisePvdByCentralKitchenForFactory).String(),
  56. "value": enum.EnterprisePvdByCentralKitchenForFactory,
  57. },
  58. {
  59. "name": enum.EnterprisePvd(enum.EnterprisePvdBySelfSupportForSchool).String(),
  60. "value": enum.EnterprisePvdBySelfSupportForSchool,
  61. },
  62. {
  63. "name": enum.EnterprisePvd(enum.EnterprisePvdBySelfSupportForFactory).String(),
  64. "value": enum.EnterprisePvdBySelfSupportForFactory,
  65. },
  66. {
  67. "name": enum.EnterprisePvd(enum.EnterprisePvdByNursingHome).String(),
  68. "value": enum.EnterprisePvdByNursingHome,
  69. },
  70. },
  71. }, nil)
  72. return
  73. }
  74. func Detail(c *gin.Context) {
  75. enterpriseId := c.DefaultQuery("id", "")
  76. enterpriseDb := db.EnterpriseDb{}
  77. enterpriseDb.Set()
  78. enterprise, err := enterpriseDb.GetEnterprise(utils.StrToInt(enterpriseId))
  79. if err != nil {
  80. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  81. return
  82. }
  83. if enterprise.Kind == enum.EnterprisePvdBySelfSupportForSchool {
  84. detail, err := svc.EnterpriseDetailV2(utils.StrToInt(enterpriseId))
  85. if err != nil {
  86. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  87. return
  88. }
  89. e.OutSuc(c, detail, nil)
  90. return
  91. }
  92. detail, err := svc.EnterpriseDetail(utils.StrToInt(enterpriseId))
  93. if err != nil {
  94. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  95. return
  96. }
  97. e.OutSuc(c, detail, nil)
  98. return
  99. }
  100. func SchoolBelowGrade(c *gin.Context) {
  101. enterpriseId := c.DefaultQuery("enterprise_id", "")
  102. gradeDb := db.GradeDb{}
  103. gradeDb.Set(utils.StrToInt(enterpriseId))
  104. gradeList, err := gradeDb.FindGrade()
  105. if err != nil {
  106. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  107. return
  108. }
  109. e.OutSuc(c, map[string]interface{}{
  110. "list": gradeList,
  111. }, nil)
  112. return
  113. }
  114. func PeriodBelowGrade(c *gin.Context) {
  115. periodId := c.DefaultQuery("period_id", "")
  116. periodDb := db.PeriodDb{}
  117. periodDb.Set(0)
  118. period, err1 := periodDb.GetPeriod(utils.StrToInt(periodId))
  119. if err1 != nil {
  120. e.OutErr(c, e.ERR_DB_ORM, err1.Error())
  121. return
  122. }
  123. if period == nil {
  124. e.OutErr(c, e.ERR_NO_DATA, "未查询到相关学段信息")
  125. return
  126. }
  127. gradeDb := db.GradeDb{}
  128. gradeDb.Set(period.EnterpriseId)
  129. gradeList, err := gradeDb.FindGradeByPeriodId(period.Id)
  130. if err != nil {
  131. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  132. return
  133. }
  134. e.OutSuc(c, map[string]interface{}{
  135. "list": gradeList,
  136. }, nil)
  137. return
  138. }
  139. func SchoolBelowPeriod(c *gin.Context) {
  140. enterpriseId := c.DefaultQuery("enterprise_id", "")
  141. periodDb := db.PeriodDb{}
  142. periodDb.Set(utils.StrToInt(enterpriseId))
  143. periodList, err := periodDb.FindPeriod()
  144. if err != nil {
  145. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  146. return
  147. }
  148. e.OutSuc(c, map[string]interface{}{
  149. "list": periodList,
  150. }, nil)
  151. return
  152. }
  153. func SchoolGradeBelowClass(c *gin.Context) {
  154. gradeId := c.DefaultQuery("grade_id", "")
  155. enterpriseId := c.DefaultQuery("enterprise_id", "")
  156. classDb := db.ClassDb{}
  157. if gradeId != "" {
  158. classDb.Set(utils.StrToInt(gradeId))
  159. classList, err := classDb.FindClass()
  160. if err != nil {
  161. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  162. return
  163. }
  164. e.OutSuc(c, map[string]interface{}{
  165. "list": classList,
  166. }, nil)
  167. } else {
  168. classDb.Set(0)
  169. classList, err := classDb.FindClassByEnterprise(enterpriseId)
  170. if err != nil {
  171. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  172. return
  173. }
  174. e.OutSuc(c, map[string]interface{}{
  175. "list": classList,
  176. }, nil)
  177. }
  178. return
  179. }
  180. func EnterpriseAdd(c *gin.Context) {
  181. var req md.EnterpriseAddReq
  182. err := c.ShouldBindJSON(&req)
  183. if err != nil {
  184. err = validate.HandleValidateErr(err)
  185. err1 := err.(e.E)
  186. e.OutErr(c, err1.Code, err1.Error())
  187. return
  188. }
  189. enterpriseDb := db.EnterpriseDb{}
  190. enterpriseDb.Set()
  191. now := time.Now()
  192. var pvd = 2
  193. if req.Kind == enum.EnterprisePvdByCentralKitchenForSchool || req.Kind == enum.EnterprisePvdByCentralKitchenForFactory {
  194. pvd = 1
  195. }
  196. enterprise := model.Enterprise{
  197. Name: req.Name,
  198. Pvd: int32(pvd),
  199. Kind: req.Kind,
  200. CompanyId: req.CompanyId,
  201. State: enum2.CompanyStateForNormal,
  202. Memo: req.Memo,
  203. CreateAt: now.Format("2006-01-02 15:04:05"),
  204. UpdateAt: now.Format("2006-01-02 15:04:05"),
  205. }
  206. enterpriseId, err := enterpriseDb.EnterpriseInsert(&enterprise)
  207. if err != nil {
  208. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  209. return
  210. }
  211. if req.Kind == enum.EnterprisePvdByCentralKitchenForSchool {
  212. //新增 `central_kitchen_for_school_set` && `central_kitchen_for_school_with_spec`
  213. centralKitchenForSchoolSetDb := db.CentralKitchenForSchoolSetDb{}
  214. centralKitchenForSchoolSetDb.Set(enterpriseId)
  215. centralKitchenForSchoolSetDb.CentralKitchenForSchoolSetInsert(&model.CentralKitchenForSchoolSet{
  216. EnterpriseId: enterpriseId,
  217. IsOpenTeacherReportMeal: 1,
  218. IsOpenReportMealForDay: 1,
  219. IsOpenReportMealForMonth: 1,
  220. IsOpenReportMealForSemester: 1,
  221. IsOpenTeacherReportMealForDay: 1,
  222. IsOpenTeacherReportMealForMonth: 1,
  223. IsOpenTeacherReportMealForSemester: 1,
  224. CreateAt: now.Format("2006-01-02 15:04:05"),
  225. UpdateAt: now.Format("2006-01-02 15:04:05"),
  226. })
  227. centralKitchenForSchoolWithSpec := db.CentralKitchenForSchoolWithSpec{}
  228. centralKitchenForSchoolWithSpec.Set(enterpriseId)
  229. centralKitchenForSchoolWithSpec.CentralKitchenForSchoolWithSpecInsert(&model.CentralKitchenForSchoolWithSpec{
  230. EnterpriseId: enterpriseId,
  231. IsOpenBreakfast: 1,
  232. IsOpenLunch: 1,
  233. IsOpenDinner: 1,
  234. BreakfastUnitPrice: "0.00",
  235. LunchUnitPrice: "0.00",
  236. DinnerUnitPrice: "0.00",
  237. BreakfastUnitPriceForTeacher: "0.00",
  238. LunchUnitPriceForTeacher: "0.00",
  239. DinnerUnitPriceForTeacher: "0.00",
  240. CreateAt: now.Format("2006-01-02 15:04:05"),
  241. UpdateAt: now.Format("2006-01-02 15:04:05"),
  242. })
  243. }
  244. if req.Kind == enum.EnterprisePvdByNursingHome {
  245. //新增 `nursing_home_set` && `nursing_home_with_spec`
  246. nursingHomeSetDb := db.NursingHomeSetDb{}
  247. nursingHomeSetDb.Set(enterpriseId)
  248. nursingHomeSetDb.NursingHomeSetInsert(&model.NursingHomeSet{
  249. EnterpriseId: enterpriseId,
  250. IsOpenReportMealForDay: 1,
  251. IsOpenReportMealForMonth: 1,
  252. IsOpenReportMealForYear: 1,
  253. CreateAt: now.Format("2006-01-02 15:04:05"),
  254. UpdateAt: now.Format("2006-01-02 15:04:05"),
  255. })
  256. nursingHomeWithSpec := db.NursingHomeWithSpec{}
  257. nursingHomeWithSpec.Set(enterpriseId)
  258. nursingHomeWithSpec.NursingHomeWithSpecInsert(&model.NursingHomeWithSpec{
  259. EnterpriseId: enterpriseId,
  260. IsOpenBreakfast: 1,
  261. IsOpenLunch: 1,
  262. IsOpenDinner: 1,
  263. BreakfastUnitPrice: "0.00",
  264. LunchUnitPrice: "0.00",
  265. DinnerUnitPrice: "0.00",
  266. CreateAt: now.Format("2006-01-02 15:04:05"),
  267. UpdateAt: now.Format("2006-01-02 15:04:05"),
  268. })
  269. }
  270. e.OutSuc(c, "success", nil)
  271. return
  272. }
  273. func EnterpriseDelete(c *gin.Context) {
  274. var req md.EnterpriseDeleteReq
  275. err := c.ShouldBindJSON(&req)
  276. if err != nil {
  277. err = validate.HandleValidateErr(err)
  278. err1 := err.(e.E)
  279. e.OutErr(c, err1.Code, err1.Error())
  280. return
  281. }
  282. err = svc.EnterpriseDelete(req.EnterpriseIds)
  283. if err != nil {
  284. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  285. return
  286. }
  287. e.OutSuc(c, "success", nil)
  288. return
  289. }
  290. func CentralKitchenForSchoolUpdate(c *gin.Context) {
  291. var req md.CentralKitchenForSchoolUpdateReq
  292. err := c.ShouldBindJSON(&req)
  293. if err != nil {
  294. err = validate.HandleValidateErr(err)
  295. err1 := err.(e.E)
  296. e.OutErr(c, err1.Code, err1.Error())
  297. return
  298. }
  299. //1、更新 enterprise
  300. enterpriseDb := db.EnterpriseDb{}
  301. enterpriseDb.Set()
  302. enterprise, err := enterpriseDb.GetEnterprise(req.Id)
  303. if err != nil {
  304. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  305. return
  306. }
  307. if enterprise == nil {
  308. e.OutErr(c, e.ERR_NO_DATA, "未查询到对应记录")
  309. return
  310. }
  311. var pvd = 2
  312. if req.Kind == enum.EnterprisePvdByCentralKitchenForSchool || req.Kind == enum.EnterprisePvdByCentralKitchenForFactory || req.Kind == enum.EnterprisePvdByNursingHome {
  313. pvd = 1
  314. }
  315. now := time.Now()
  316. enterprise.Name = req.Name
  317. enterprise.Memo = req.Memo
  318. enterprise.Pvd = int32(pvd)
  319. enterprise.Kind = req.Kind
  320. enterprise.CompanyId = req.CompanyId
  321. enterprise.UpdateAt = now.Format("2006-01-02 15:04:05")
  322. _, err = enterpriseDb.EnterpriseUpdate(enterprise, "name", "memo", "pvd", "kind", "company_id", "update_at")
  323. if err != nil {
  324. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  325. return
  326. }
  327. //2、更新 period && grade && class 数据
  328. periodDb := db.PeriodDb{}
  329. periodDb.Set(req.Id)
  330. gradeDb := db.GradeDb{}
  331. gradeDb.Set(req.Id)
  332. classDb := db.ClassDb{}
  333. classDb.Set(0)
  334. //新增 grade 数据 && class 数据
  335. var classes []*model.Class
  336. for _, v := range req.PeriodList {
  337. if v.Id == 0 {
  338. //TODO::新增
  339. insertId, err1 := periodDb.PeriodInsert(&model.Period{
  340. EnterpriseId: req.Id,
  341. Name: v.Name,
  342. BreakfastUnitPrice: "0.00",
  343. LunchUnitPrice: "0.00",
  344. DinnerUnitPrice: "0.00",
  345. CreateAt: now.Format("2006-01-02 15:04:05"),
  346. UpdateAt: now.Format("2006-01-02 15:04:05"),
  347. })
  348. if err1 != nil {
  349. e.OutErr(c, e.ERR_DB_ORM, err1.Error())
  350. return
  351. }
  352. for _, v1 := range v.GradeList {
  353. insertId1, err2 := gradeDb.GradeInsert(&model.Grade{
  354. Name: v1.Name,
  355. Memo: "",
  356. PeriodId: insertId,
  357. EnterpriseId: req.Id,
  358. CreateAt: now.Format("2006-01-02 15:04:05"),
  359. UpdateAt: now.Format("2006-01-02 15:04:05"),
  360. })
  361. if err2 != nil {
  362. e.OutErr(c, e.ERR_DB_ORM, err2.Error())
  363. return
  364. }
  365. for _, v2 := range v1.ClassList {
  366. classes = append(classes, &model.Class{
  367. Name: v2.Name,
  368. Memo: "",
  369. GradeId: insertId1,
  370. EnterpriseId: req.Id,
  371. CreateAt: now.Format("2006-01-02 15:04:05"),
  372. UpdateAt: now.Format("2006-01-02 15:04:05"),
  373. })
  374. }
  375. }
  376. } else {
  377. //TODO::编辑
  378. period, err1 := periodDb.GetPeriod(v.Id)
  379. if err1 != nil {
  380. e.OutErr(c, e.ERR_DB_ORM, err1.Error())
  381. return
  382. }
  383. if period == nil {
  384. e.OutErr(c, e.ERR_NO_DATA, "未查询到相关学段信息")
  385. return
  386. }
  387. period.Name = v.Name
  388. _, err2 := periodDb.PeriodUpdate(period, "name")
  389. if err2 != nil {
  390. e.OutErr(c, e.ERR_DB_ORM, err2.Error())
  391. return
  392. }
  393. for _, v1 := range v.GradeList {
  394. var gradeId int
  395. if v1.Id == 0 {
  396. gradeId, err2 = gradeDb.GradeInsert(&model.Grade{
  397. Name: v1.Name,
  398. Memo: "",
  399. PeriodId: period.Id,
  400. EnterpriseId: req.Id,
  401. CreateAt: now.Format("2006-01-02 15:04:05"),
  402. UpdateAt: now.Format("2006-01-02 15:04:05"),
  403. })
  404. if err2 != nil {
  405. e.OutErr(c, e.ERR_DB_ORM, err2.Error())
  406. return
  407. }
  408. } else {
  409. grade, err3 := gradeDb.GetGrade(v1.Id)
  410. if err3 != nil {
  411. e.OutErr(c, e.ERR_DB_ORM, err3.Error())
  412. return
  413. }
  414. if grade == nil {
  415. e.OutErr(c, e.ERR_NO_DATA, "未查询到相关年级信息")
  416. return
  417. }
  418. grade.Name = v1.Name
  419. _, err4 := gradeDb.GradeUpdate(grade, "name")
  420. if err4 != nil {
  421. e.OutErr(c, e.ERR_DB_ORM, err4.Error())
  422. return
  423. }
  424. gradeId = grade.Id
  425. }
  426. for _, v2 := range v1.ClassList {
  427. if v2.Id == 0 {
  428. //新增
  429. classes = append(classes, &model.Class{
  430. Name: v2.Name,
  431. Memo: "",
  432. GradeId: gradeId,
  433. EnterpriseId: req.Id,
  434. CreateAt: now.Format("2006-01-02 15:04:05"),
  435. UpdateAt: now.Format("2006-01-02 15:04:05"),
  436. })
  437. } else {
  438. //编辑
  439. class, err4 := classDb.GetClass(v2.Id)
  440. if err4 != nil {
  441. e.OutErr(c, e.ERR_DB_ORM, err4.Error())
  442. return
  443. }
  444. if class == nil {
  445. e.OutErr(c, e.ERR_NO_DATA, "未查询到相关班级信息")
  446. return
  447. }
  448. class.Name = v2.Name
  449. _, err6 := classDb.ClassUpdate(class, "name")
  450. if err6 != nil {
  451. e.OutErr(c, e.ERR_DB_ORM, err6.Error())
  452. return
  453. }
  454. }
  455. }
  456. }
  457. }
  458. }
  459. if len(classes) > 0 {
  460. _, err2 := classDb.BatchAddClass(classes)
  461. if err2 != nil {
  462. e.OutErr(c, e.ERR_DB_ORM, err2.Error())
  463. return
  464. }
  465. }
  466. e.OutSuc(c, "success", nil)
  467. return
  468. }
  469. func SelfSupportForSchoolUpdate(c *gin.Context) {
  470. var req md.SelfSupportForSchoolUpdateReq
  471. err := c.ShouldBindJSON(&req)
  472. if err != nil {
  473. err = validate.HandleValidateErr(err)
  474. err1 := err.(e.E)
  475. e.OutErr(c, err1.Code, err1.Error())
  476. return
  477. }
  478. //1、更新 enterprise
  479. enterpriseDb := db.EnterpriseDb{}
  480. enterpriseDb.Set()
  481. enterprise, err := enterpriseDb.GetEnterprise(req.Id)
  482. if err != nil {
  483. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  484. return
  485. }
  486. if enterprise == nil {
  487. e.OutErr(c, e.ERR_NO_DATA, "未查询到对应记录")
  488. return
  489. }
  490. var pvd = 2
  491. if req.Kind == enum.EnterprisePvdByCentralKitchenForSchool || req.Kind == enum.EnterprisePvdByCentralKitchenForFactory || req.Kind == enum.EnterprisePvdByNursingHome {
  492. pvd = 1
  493. }
  494. now := time.Now()
  495. enterprise.Name = req.Name
  496. enterprise.Memo = req.Memo
  497. enterprise.Pvd = int32(pvd)
  498. enterprise.Kind = req.Kind
  499. enterprise.CompanyId = req.CompanyId
  500. enterprise.UpdateAt = now.Format("2006-01-02 15:04:05")
  501. _, err = enterpriseDb.EnterpriseUpdate(enterprise, "name", "memo", "pvd", "kind", "company_id", "update_at")
  502. if err != nil {
  503. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  504. return
  505. }
  506. //2、更新 grade && class 数据
  507. //2、删除 grade && class 数据
  508. gradeDb := db.GradeDb{}
  509. gradeDb.Set(req.Id)
  510. //_, err = gradeDb.ClassDeleteBySessionForEnterprise(db.Db.NewSession(), req.Id)
  511. //if err != nil {
  512. // e.OutErr(c, e.ERR_DB_ORM, err.Error())
  513. // return
  514. //}
  515. classDb := db.ClassDb{}
  516. classDb.Set(0)
  517. //_, err = classDb.ClassDeleteBySessionForEnterprise(db.Db.NewSession(), req.Id)
  518. //if err != nil {
  519. // e.OutErr(c, e.ERR_DB_ORM, err.Error())
  520. // return
  521. //}
  522. //新增 grade 数据 && class 数据
  523. for _, v := range req.GradeList {
  524. var classes []*model.Class
  525. if v.Id == 0 {
  526. //TODO::新增
  527. insertId, err1 := gradeDb.GradeInsert(&model.Grade{
  528. EnterpriseId: req.Id,
  529. Name: v.Name,
  530. Memo: "",
  531. CreateAt: now.Format("2006-01-02 15:04:05"),
  532. UpdateAt: now.Format("2006-01-02 15:04:05"),
  533. })
  534. if err1 != nil {
  535. e.OutErr(c, e.ERR_DB_ORM, err1.Error())
  536. return
  537. }
  538. for _, v1 := range v.ClassList {
  539. classes = append(classes, &model.Class{
  540. Name: v1.Name,
  541. Memo: "",
  542. GradeId: insertId,
  543. EnterpriseId: req.Id,
  544. CreateAt: now.Format("2006-01-02 15:04:05"),
  545. UpdateAt: now.Format("2006-01-02 15:04:05"),
  546. })
  547. }
  548. } else {
  549. //TODO::编辑
  550. grade, err3 := gradeDb.GetGrade(v.Id)
  551. if err3 != nil {
  552. e.OutErr(c, e.ERR_DB_ORM, err3.Error())
  553. return
  554. }
  555. if grade == nil {
  556. e.OutErr(c, e.ERR_NO_DATA, "未查询到相关年级信息")
  557. return
  558. }
  559. grade.Name = v.Name
  560. _, err4 := gradeDb.GradeUpdate(grade, "name")
  561. if err4 != nil {
  562. e.OutErr(c, e.ERR_DB_ORM, err4.Error())
  563. return
  564. }
  565. for _, v1 := range v.ClassList {
  566. if v1.Id == 0 {
  567. //新增
  568. classes = append(classes, &model.Class{
  569. Name: v1.Name,
  570. Memo: "",
  571. GradeId: grade.Id,
  572. EnterpriseId: req.Id,
  573. CreateAt: now.Format("2006-01-02 15:04:05"),
  574. UpdateAt: now.Format("2006-01-02 15:04:05"),
  575. })
  576. } else {
  577. //编辑
  578. class, err5 := classDb.GetClass(v1.Id)
  579. if err5 != nil {
  580. e.OutErr(c, e.ERR_DB_ORM, err5.Error())
  581. return
  582. }
  583. if class == nil {
  584. e.OutErr(c, e.ERR_NO_DATA, "未查询到相关班级信息")
  585. return
  586. }
  587. class.Name = v1.Name
  588. _, err6 := classDb.ClassUpdate(class, "name")
  589. if err6 != nil {
  590. e.OutErr(c, e.ERR_DB_ORM, err6.Error())
  591. return
  592. }
  593. }
  594. }
  595. }
  596. if len(classes) > 0 {
  597. _, err2 := classDb.BatchAddClass(classes)
  598. if err2 != nil {
  599. e.OutErr(c, e.ERR_DB_ORM, err2.Error())
  600. return
  601. }
  602. }
  603. }
  604. e.OutSuc(c, "success", nil)
  605. return
  606. }
  607. func EnterpriseAddGrade(c *gin.Context) {
  608. var req md.EnterpriseUpdateStateReq
  609. err := c.ShouldBindJSON(&req)
  610. if err != nil {
  611. err = validate.HandleValidateErr(err)
  612. err1 := err.(e.E)
  613. e.OutErr(c, err1.Code, err1.Error())
  614. return
  615. }
  616. enterpriseDb := db.EnterpriseDb{}
  617. enterpriseDb.Set()
  618. enterprise, err := enterpriseDb.GetEnterprise(req.Id)
  619. if err != nil {
  620. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  621. return
  622. }
  623. if enterprise == nil {
  624. e.OutErr(c, e.ERR_NO_DATA, "未查询到对应记录")
  625. return
  626. }
  627. now := time.Now()
  628. enterprise.State = req.State
  629. enterprise.UpdateAt = now.Format("2006-01-02 15:04:05")
  630. _, err = enterpriseDb.EnterpriseUpdate(enterprise, "state", "update_at")
  631. if err != nil {
  632. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  633. return
  634. }
  635. e.OutSuc(c, "success", nil)
  636. return
  637. }
  638. func EnterpriseUpdateState(c *gin.Context) {
  639. var req md.EnterpriseUpdateStateReq
  640. err := c.ShouldBindJSON(&req)
  641. if err != nil {
  642. err = validate.HandleValidateErr(err)
  643. err1 := err.(e.E)
  644. e.OutErr(c, err1.Code, err1.Error())
  645. return
  646. }
  647. enterpriseDb := db.EnterpriseDb{}
  648. enterpriseDb.Set()
  649. enterprise, err := enterpriseDb.GetEnterprise(req.Id)
  650. if err != nil {
  651. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  652. return
  653. }
  654. if enterprise == nil {
  655. e.OutErr(c, e.ERR_NO_DATA, "未查询到对应记录")
  656. return
  657. }
  658. now := time.Now()
  659. enterprise.State = req.State
  660. enterprise.UpdateAt = now.Format("2006-01-02 15:04:05")
  661. _, err = enterpriseDb.EnterpriseUpdate(enterprise, "state", "update_at")
  662. if err != nil {
  663. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  664. return
  665. }
  666. e.OutSuc(c, "success", nil)
  667. return
  668. }
  669. func ListCentralKitchenForSchoolPackageForSystem(c *gin.Context) {
  670. var req md.ListCentralKitchenForSchoolPackageForSystemReq
  671. err := c.ShouldBindJSON(&req)
  672. if err != nil {
  673. err = validate.HandleValidateErr(err)
  674. err1 := err.(e.E)
  675. e.OutErr(c, err1.Code, err1.Error())
  676. return
  677. }
  678. centralKitchenForSchoolPackageForSystemDb := db.CentralKitchenForSchoolPackageForSystemDb{}
  679. centralKitchenForSchoolPackageForSystemDb.Set()
  680. list, total, err := centralKitchenForSchoolPackageForSystemDb.CentralKitchenForSchoolPackageForSystemList(req)
  681. if err != nil {
  682. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  683. return
  684. }
  685. e.OutSuc(c, map[string]interface{}{
  686. "list": list,
  687. "total": total,
  688. }, nil)
  689. return
  690. }
  691. func SetCentralKitchenForSchoolWithSpecForSystem(c *gin.Context) {
  692. var req md.SetCentralKitchenForSchoolWithSpecForSystemReq
  693. err := c.ShouldBindJSON(&req)
  694. if err != nil {
  695. err = validate.HandleValidateErr(err)
  696. err1 := err.(e.E)
  697. e.OutErr(c, err1.Code, err1.Error())
  698. return
  699. }
  700. centralKitchenForSchoolWithSpecForSystemDb := db.CentralKitchenForSchoolWithSpecForSystem{}
  701. centralKitchenForSchoolWithSpecForSystemDb.Set()
  702. system, err := centralKitchenForSchoolWithSpecForSystemDb.GetCentralKitchenForSchoolWithSpecForSystem()
  703. if err != nil {
  704. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  705. return
  706. }
  707. system.BreakfastUnitPrice = req.BreakfastUnitPrice
  708. system.LunchUnitPrice = req.LunchUnitPrice
  709. system.DinnerUnitPrice = req.DinnerUnitPrice
  710. system.BreakfastUnitPriceForTeacher = req.BreakfastUnitPriceForTeacher
  711. system.LunchUnitPriceForTeacher = req.LunchUnitPriceForTeacher
  712. system.DinnerUnitPriceForTeacher = req.DinnerUnitPriceForTeacher
  713. system.UpdateAt = time.Now().Format("2006-01-02 15:04:05")
  714. updateAffected, err := centralKitchenForSchoolWithSpecForSystemDb.CentralKitchenForSchoolWithSpecForSystemUpdate(system.Id, system)
  715. if err != nil {
  716. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  717. return
  718. }
  719. if updateAffected <= 0 {
  720. e.OutErr(c, e.ERR, "更新数据失败")
  721. return
  722. }
  723. e.OutSuc(c, "success", nil)
  724. return
  725. }
  726. func GetCentralKitchenForSchoolWithSpecForSystem(c *gin.Context) {
  727. centralKitchenForSchoolWithSpecForSystemDb := db.CentralKitchenForSchoolWithSpecForSystem{}
  728. centralKitchenForSchoolWithSpecForSystemDb.Set()
  729. system, err := centralKitchenForSchoolWithSpecForSystemDb.GetCentralKitchenForSchoolWithSpecForSystem()
  730. if err != nil {
  731. e.OutErr(c, e.ERR_DB_ORM, err.Error())
  732. return
  733. }
  734. e.OutSuc(c, map[string]interface{}{
  735. "data": system,
  736. }, nil)
  737. return
  738. }
  739. func SaveCentralKitchenForSchoolPackageForSystem(c *gin.Context) {
  740. var req md.SaveCentralKitchenForSchoolPackageForSystemReq
  741. err := c.ShouldBindJSON(&req)
  742. if err != nil {
  743. err = validate.HandleValidateErr(err)
  744. err1 := err.(e.E)
  745. e.OutErr(c, err1.Code, err1.Error())
  746. return
  747. }
  748. //判断是新增 / 编辑
  749. if req.Id > 0 {
  750. err = svc.UpdateCentralKitchenForSchoolPackageForSystem(req)
  751. if err != nil {
  752. e.OutErr(c, e.ERR, err.Error())
  753. return
  754. }
  755. } else {
  756. err = svc.AddCentralKitchenForSchoolPackageForSystem(req)
  757. if err != nil {
  758. e.OutErr(c, e.ERR, err.Error())
  759. return
  760. }
  761. }
  762. e.OutSuc(c, "success", nil)
  763. return
  764. }
  765. func SyncCentralKitchenForSchoolPackageForSystem(c *gin.Context) {
  766. var req md.SyncCentralKitchenForSchoolPackageForSystemReq
  767. err := c.ShouldBindJSON(&req)
  768. if err != nil {
  769. err = validate.HandleValidateErr(err)
  770. err1 := err.(e.E)
  771. e.OutErr(c, err1.Code, err1.Error())
  772. return
  773. }
  774. err = svc.SyncCentralKitchenForSchoolPackageForSystem(req)
  775. if err != nil {
  776. e.OutErr(c, e.ERR, err.Error())
  777. return
  778. }
  779. e.OutSuc(c, "success", nil)
  780. return
  781. }
  782. func DeleteCentralKitchenForSchoolPackageForSystem(c *gin.Context) {
  783. id := c.Param("id")
  784. err := svc.DeleteCentralKitchenForSchoolPackageForSystem(utils.StrToInt(id))
  785. if err != nil {
  786. e.OutErr(c, e.ERR, err.Error())
  787. return
  788. }
  789. e.OutSuc(c, "success", nil)
  790. return
  791. }