From cdf1e74e60dd3bd214081577f25805ffee921b83 Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期五, 12 七月 2024 10:15:07 +0800
Subject: [PATCH] 添加代码自动生成,修改获取车辆编号返回结构
---
controllers/workshop_manage_controller.go | 249 +++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 208 insertions(+), 41 deletions(-)
diff --git a/controllers/workshop_manage_controller.go b/controllers/workshop_manage_controller.go
index 434d435..c68422b 100644
--- a/controllers/workshop_manage_controller.go
+++ b/controllers/workshop_manage_controller.go
@@ -2,6 +2,8 @@
import (
"github.com/gin-gonic/gin"
+ "gorm.io/gorm"
+ "silkserver/constvar"
"silkserver/controllers/request"
"silkserver/controllers/response"
"silkserver/extend/code"
@@ -15,54 +17,167 @@
// SaveWorkshopManage
//
-// @Tags 绯荤粺璁剧疆/杞﹂棿绠$悊
-// @Summary 淇濆瓨杞﹂棿绠$悊
-// @Produce application/json
-// @Param object body models.WorkshopManage true "鍙傛暟"
-// @Param Authorization header string true "token"
-// @Success 200 {object} util.Response "鎴愬姛"
-// @Router /api-jl/v1/system/saveWorkshopManage [post]
+// @Tags 绯荤粺璁剧疆/杞﹂棿绠$悊
+// @Summary 淇濆瓨杞﹂棿绠$悊
+// @Produce application/json
+// @Param Authorization header string true "token"
+// @Param object body request.AddWorkshopManage true "鍙傛暟"
+// @Success 200 {object} util.Response "鎴愬姛"
+// @Router /api-jl/v1/system/saveWorkshopManage [post]
func (slf WorkshopManageController) SaveWorkshopManage(c *gin.Context) {
- var workshop models.WorkshopManage
- err := c.BindJSON(&workshop)
+ var param *request.AddWorkshopManage
+ err := c.BindJSON(¶m)
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
return
}
- if workshop.ID > 0 {
- err = models.NewWorkshopManageSearch().Save(&workshop)
- } else {
- err = models.NewWorkshopManageSearch().Create(&workshop)
+ if param.StartCarNumber > param.EndCarNumber {
+ util.ResponseFormat(c, code.RequestParamError, "缁撴潫杞﹀彿涓嶈兘灏忎簬寮�濮嬭溅鍙�")
+ return
}
+
+ editIds := make([]uint, len(param.Details))
+ for _, detail := range param.Details {
+ if detail.StartCarNumber > detail.EndCarNumber {
+ util.ResponseFormat(c, code.RequestParamError, "鍒嗙粍缁撴潫杞﹀彿涓嶈兘灏忎簬鍒嗙粍寮�濮嬭溅鍙�")
+ return
+ }
+ if detail.EndCarNumber > param.EndCarNumber {
+ util.ResponseFormat(c, code.RequestParamError, "鍒嗙粍缁撴潫杞﹀彿涓嶈兘澶т簬缁撴潫杞﹀彿")
+ return
+ }
+ if detail.ID > 0 {
+ editIds = append(editIds, detail.ID)
+ }
+ }
+
+ info := models.WorkshopManage{
+ WorkshopNumber: param.WorkshopNumber,
+ WorkshopName: param.WorkshopName,
+ Type: constvar.Workshop,
+ GroupNumber: param.GroupNumber,
+ StartCarNumber: param.StartCarNumber,
+ EndCarNumber: param.EndCarNumber,
+ CarFlag: param.CarFlag,
+ Notes: param.Notes,
+ }
+
+ err = models.WithTransaction(func(tx *gorm.DB) error {
+ if param.ID > 0 {
+ info.ID = param.ID
+ err = models.NewWorkshopManageSearch().Save(&info)
+ if err != nil {
+ return err
+ }
+ oldDetailsList, err := models.NewWorkshopManageSearch().SetType(constvar.Group).SetWorkshopNumber(param.WorkshopNumber).SetGroupNumber(param.GroupNumber).FindNotTotal()
+ if err != nil {
+ return err
+ }
+
+ for _, oldDetails := range oldDetailsList {
+ delFlag := true
+ for _, editId := range editIds {
+ if oldDetails.ID == editId {
+ delFlag = false
+ break
+ }
+ }
+ if delFlag {
+ err = models.NewWorkshopManageSearch().SetId(int(oldDetails.ID)).Delete()
+ if err != nil {
+ return err
+ }
+ }
+ }
+ } else {
+ err = models.NewWorkshopManageSearch().Create(&info)
+ }
+ if err != nil {
+ return err
+ }
+
+ for _, detail := range param.Details {
+ detail.Type = constvar.Group
+ detail.WorkshopNumber = param.WorkshopNumber
+ detail.WorkshopName = param.WorkshopName
+ detail.ParentID = param.WorkshopNumber
+ //detail.GroupNumber = param.Workshop.GroupNumber
+
+ if detail.ID > 0 {
+ err = models.NewWorkshopManageSearch().Save(&detail)
+ } else {
+ err = models.NewWorkshopManageSearch().Create(&detail)
+ }
+ }
+ return nil
+ })
if err != nil {
util.ResponseFormat(c, code.SaveFail, "淇濆瓨澶辫触")
return
}
+
util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛")
}
// GetWorkshopManageList
//
-// @Tags 绯荤粺璁剧疆/杞﹂棿绠$悊
-// @Summary 鑾峰彇杞﹂棿绠$悊鍒楄〃
-// @Produce application/json
-// @Param Authorization header string true "token"
-// @Param object query request.GetPriceStandard true "鍙傛暟"
-// @Success 200 {object} util.ResponseList{data=[]models.WorkshopManage} "鎴愬姛"
-// @Router /api-jl/v1/system/getWorkshopManageList [get]
+// @Tags 绯荤粺璁剧疆/杞﹂棿绠$悊
+// @Summary 鑾峰彇杞﹂棿绠$悊鍒楄〃
+// @Produce application/json
+// @Param Authorization header string true "token"
+// @Param object query request.GetPriceStandard true "鍙傛暟"
+// @Success 200 {object} util.ResponseList{data=[]response.WorkshopManage} "鎴愬姛"
+// @Router /api-jl/v1/system/getWorkshopManageList [post]
func (slf WorkshopManageController) GetWorkshopManageList(c *gin.Context) {
var param request.GetWorkshopManage
- err := c.ShouldBindQuery(¶m)
+ err := c.BindJSON(¶m)
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
return
}
- list, total, err := models.NewWorkshopManageSearch().SetPage(param.Page, param.PageSize).Find()
+ workshopManageSearch := models.NewWorkshopManageSearch()
+ if param.Page > 0 && param.PageSize > 0 {
+ workshopManageSearch.SetPage(param.Page, param.PageSize)
+ }
+ workshopManageSearch.SetType(constvar.Workshop).SetWorkshopName(param.WorkshopName).SetGroupNumber(param.GroupNumber)
+ list, total, err := workshopManageSearch.SetOrder("workshop_number,group_number,start_car_number").Find()
if err != nil {
util.ResponseFormat(c, code.SelectError, "鏌ヨ澶辫触")
return
}
- util.ResponseFormatList(c, code.Success, list, total)
+ workshopNumberArr := make([]string, len(list))
+ for _, workshopManage := range list {
+ workshopNumberArr = append(workshopNumberArr, workshopManage.WorkshopNumber)
+ }
+
+ details, _ := models.NewWorkshopManageSearch().SetType(constvar.Group).SetWorkshopNumberArr(workshopNumberArr).
+ SetOrder("workshop_number,group_number,start_car_number").FindNotTotal()
+
+ var result []*response.WorkshopManage
+ for _, info := range list {
+ var infoTemp response.WorkshopManage
+ infoTemp.ID = info.ID
+ infoTemp.CreatedAt = info.CreatedAt
+ infoTemp.UpdatedAt = info.UpdatedAt
+ infoTemp.WorkshopNumber = info.WorkshopNumber
+ infoTemp.WorkshopName = info.WorkshopName
+ infoTemp.Type = info.Type
+ infoTemp.ParentID = info.ParentID
+ infoTemp.GroupNumber = info.GroupNumber
+ infoTemp.StartCarNumber = info.StartCarNumber
+ infoTemp.EndCarNumber = info.EndCarNumber
+ infoTemp.CarFlag = info.CarFlag
+ infoTemp.Notes = info.Notes
+ var detailList []models.WorkshopManage
+ for _, detail := range details {
+ if info.WorkshopNumber == detail.WorkshopNumber && info.GroupNumber == detail.GroupNumber {
+ detailList = append(detailList, *detail)
+ }
+ }
+ infoTemp.Details = detailList
+ result = append(result, &infoTemp)
+ }
+ util.ResponseFormatList(c, code.Success, result, total)
}
// DeleteWorkshopManage
@@ -84,7 +199,28 @@
util.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲澶辫触")
return
}
- err = models.NewWorkshopManageSearch().SetId(atoi).Delete()
+
+ err = models.WithTransaction(func(tx *gorm.DB) error {
+ first, err := models.NewWorkshopManageSearch().SetId(atoi).First()
+ if err != nil {
+ return err
+ }
+ if first.Type == constvar.Group {
+ err = models.NewWorkshopManageSearch().SetId(atoi).Delete()
+ } else if first.Type == constvar.Workshop {
+ workshopManages, err := models.NewWorkshopManageSearch().SetWorkshopNumber(first.WorkshopNumber).SetGroupNumber(first.GroupNumber).FindNotTotal()
+ if err != nil {
+ return err
+ }
+ for _, detail := range workshopManages {
+ err = models.NewWorkshopManageSearch().SetId(int(detail.ID)).Delete()
+ if err != nil {
+ return err
+ }
+ }
+ }
+ return nil
+ })
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触")
return
@@ -108,19 +244,43 @@
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
return
}
- all, err := models.NewWorkshopManageSearch().SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber).FindAll()
+ all, err := models.NewWorkshopManageSearch().
+ SetType(constvar.Group).SetWorkshopNumber(params.WorkshopNumber).SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber).
+ SetOrder("workshop_number,group_number,start_car_number").FindNotTotal()
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
return
}
- carNumbers := make([]int, 0)
+ //carNumbers := make([]int, 0)
+ var (
+ startCarNumber = 0
+ endCarNumber = 0
+ startCarHalf = constvar.LeftHalfCar
+ endCarHalf = constvar.RightHalfCar
+ )
for _, manage := range all {
- i := manage.StartCarNumber
- for ; i <= manage.EndCarNumber; i++ {
- carNumbers = append(carNumbers, i)
+ if startCarNumber == 0 {
+ startCarNumber = manage.StartCarNumber
+ startCarHalf = manage.StartCarHalf
+ endCarNumber = manage.EndCarNumber
+ endCarHalf = manage.EndCarHalf
+ continue
+ }
+ if manage.StartCarNumber < startCarNumber {
+ startCarNumber = manage.StartCarNumber
+ startCarHalf = manage.StartCarHalf
+ }
+ if manage.EndCarNumber > endCarNumber {
+ endCarNumber = manage.EndCarNumber
+ endCarHalf = manage.EndCarHalf
}
}
- util.ResponseFormat(c, code.Success, carNumbers)
+ m := make(map[string]interface{})
+ m["startCarNumber"] = startCarNumber
+ m["startCarHalf"] = startCarHalf
+ m["endCarNumber"] = endCarNumber
+ m["endCarHalf"] = endCarHalf
+ util.ResponseFormat(c, code.Success, m)
}
// GetWorkshopManageGroup
@@ -138,7 +298,7 @@
util.ResponseFormat(c, code.RequestParamError, "鏃犳晥鐨勭紪鐮�")
return
}
- all, err := models.NewWorkshopManageSearch().SetWorkshopNumber(number).FindAll()
+ all, err := models.NewWorkshopManageSearch().SetType(constvar.Group).SetWorkshopNumber(number).FindNotTotal()
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
return
@@ -166,30 +326,37 @@
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
return
}
- all, err := models.NewWorkshopManageSearch().SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber).FindAll()
+ workshopManageList, err := models.NewWorkshopManageSearch().
+ SetType(constvar.Group).SetWorkshopNumber(params.WorkshopNumber).SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber).
+ FindNotTotal()
if err != nil {
- util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ util.ResponseFormat(c, code.RequestParamError, "杞﹂棿鍒嗙粍鏌ヨ澶辫触")
return
}
- fineness, err := models.NewFinenessRegisterSearch().SetWorkshop(params.WorkshopName).SetWorkshopGroup(params.GroupNumber).
- SetMarket(params.MarketName).First()
+ finenessRegisterList, err := models.NewFinenessRegisterSearch().
+ SetWorkshopNumber(params.WorkshopNumber).SetWorkshopName(params.WorkshopName).SetWorkshopGroup(params.GroupNumber).SetMarket(params.MarketName).
+ First()
if err != nil {
- util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ if err == gorm.ErrRecordNotFound {
+ util.ResponseFormat(c, code.RequestParamError, "褰撳墠搴勫彛銆佽溅闂淬�佺粍鍒笅,娌℃湁绾ゅ害鐧昏淇℃伅")
+ return
+ }
+ util.ResponseFormat(c, code.RequestParamError, "绾ゅ害鐧昏鏌ヨ澶辫触")
return
}
- first, err := models.NewFinenessCheckSearch().SetID(fineness.FinenessCheckID).First()
+ first, err := models.NewFinenessCheckSearch().SetID(finenessRegisterList.FinenessCheckID).First()
if err != nil {
- util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ util.ResponseFormat(c, code.RequestParamError, "绾ゅ害妫�楠屾煡璇㈠け璐�")
return
}
var data response.CarAndLevel
data.Level = first.FinenessGrade
carNum := make([][]int, 0)
- for _, manage := range all {
+ for _, workshop := range workshopManageList {
car := make([]int, 0)
- i := manage.StartCarNumber
- for ; i <= manage.EndCarNumber; i++ {
+ i := workshop.StartCarNumber
+ for ; i <= workshop.EndCarNumber; i++ {
car = append(car, i)
}
if len(car) > 0 {
--
Gitblit v1.8.0