From 45778cdd4a7829039fef3d262dc7999bb0628f93 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期三, 10 四月 2024 14:22:43 +0800
Subject: [PATCH] 补充
---
controllers/fineness.go | 254 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 248 insertions(+), 6 deletions(-)
diff --git a/controllers/fineness.go b/controllers/fineness.go
index 55428b6..ac8351c 100644
--- a/controllers/fineness.go
+++ b/controllers/fineness.go
@@ -1,47 +1,154 @@
package controllers
import (
+ "errors"
"github.com/gin-gonic/gin"
+ "gorm.io/gorm"
"silkserver/controllers/request"
+ "silkserver/controllers/response"
"silkserver/extend/code"
"silkserver/extend/util"
"silkserver/models"
"silkserver/pkg/convertx"
+ "silkserver/pkg/logx"
+ "silkserver/pkg/structx"
+ "silkserver/service"
)
type FinenessController struct{}
-// List
+// RegisterAdd
+// @Tags 绾ゅ害鐧昏
+// @Summary 绾ゅ害鐧昏娣诲姞
+// @Produce application/json
+// @Param object body request.AddFinenessRegister true "瀛楀吀淇℃伅"
+// @Param Authorization header string true "token"
+// @Success 200 {object} util.Response "鎴愬姛"
+// @Router /api-jl/v1/fineness/register [post]
+func (slf FinenessController) RegisterAdd(c *gin.Context) {
+ var reqParams request.AddFinenessRegister
+ var params models.FinenessRegister
+ if err := c.BindJSON(&reqParams); err != nil {
+ logx.Errorf("RegisterAdd 鍙傛暟瑙f瀽澶辫触:%v", err.Error())
+ util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+ return
+ }
+ if err := structx.AssignTo(reqParams, ¶ms); err != nil {
+ logx.Errorf("RegisterAdd 鏁版嵁杞崲閿欒:%v", err.Error())
+ util.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲閿欒")
+ return
+ }
+
+ if err := slf.ParamsCheck(params); err != nil {
+ util.ResponseFormat(c, code.RequestParamError, err.Error())
+ return
+ }
+
+ isNew := params.ID == 0
+
+ err := models.WithTransaction(func(db *gorm.DB) error {
+ search := models.NewFinenessRegisterSearch().SetOrm(db)
+
+ if !isNew {
+ if err := models.NewFinenessItemSearch().SetOrm(db).SetFinenessRegisterID(params.ID).Delete(); err != nil {
+ return err
+ }
+ return search.Save(¶ms)
+ } else {
+ return search.Create(¶ms)
+ }
+ })
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触")
+ }
+
+ err = service.FinenessCheck(¶ms, isNew)
+ if err != nil {
+ logx.Errorf("service.FinenessCheck err:%v, finenessRegister:%+v", err, params)
+ util.ResponseFormat(c, code.RequestParamError, "鐢熸垚妫�楠岃〃澶辫触")
+ return
+ }
+
+ util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛")
+}
+
+func (slf FinenessController) ParamsCheck(params models.FinenessRegister) (err error) {
+ if params.ID == 0 {
+ _, err = models.NewFinenessRegisterSearch().SetNumber(params.Number).First()
+ if err != gorm.ErrRecordNotFound {
+ return errors.New("缂栫爜閲嶅")
+ }
+ } else {
+ old, err := models.NewFinenessRegisterSearch().SetID(params.ID).First()
+ if err != nil {
+ return errors.New("璁板綍涓嶅瓨鍦�")
+ }
+ if old.Number != params.Number {
+ return errors.New("缂栫爜涓嶈兘淇敼")
+ }
+ }
+ return nil
+}
+
+// RegisterList
// @Tags 绾ゅ害鐧昏
// @Summary 绾ゅ害鐧昏鍒楄〃
// @Produce application/json
// @Param object query request.GetFinenessRegisterList true "鏌ヨ鍙傛暟"
// @Success 200 {object} util.ResponseList{data=[]models.FinenessRegister} "鎴愬姛"
// @Router /api-jl/v1/fineness/register [get]
-func (slf FinenessController) List(c *gin.Context) {
+func (slf FinenessController) RegisterList(c *gin.Context) {
var params request.GetFinenessRegisterList
if err := c.ShouldBindQuery(¶ms); err != nil {
util.ResponseFormat(c, code.RequestParamError, err.Error())
return
}
- list, total, err := models.NewFinenessRegisterSearch().Find()
+ list, total, err := models.NewFinenessRegisterSearch().SetKeyword(params.Keyword).SetPage(params.Page, params.PageSize).Find()
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
return
}
- util.ResponseFormatList(c, code.Success, list, int(total))
+ util.ResponseFormatList(c, code.Success, list, total)
}
-// Delete
+// RegisterInfo
+// @Tags 绾ゅ害鐧昏
+// @Summary 绾ゅ害鐧昏璇︽儏
+// @Produce application/json
+// @Param id path string true "瀛楀吀淇℃伅"
+// @Success 200 {object} util.ResponseList{data=models.FinenessRegister} "鎴愬姛"
+// @Router /api-jl/v1/fineness/register/{id} [get]
+func (slf FinenessController) RegisterInfo(c *gin.Context) {
+ idStr := c.Param("id")
+ if idStr == "0" || idStr == "" {
+ util.ResponseFormat(c, code.RequestParamError, "绌虹殑璁板綍id")
+ return
+ }
+
+ id := convertx.StringToUInt(idStr)
+ if id == 0 {
+ util.ResponseFormat(c, code.RequestParamError, "绌虹殑璁板綍id")
+ return
+ }
+
+ info, err := models.NewFinenessRegisterSearch().SetID(id).SetPreload().First()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ return
+ }
+ util.ResponseFormat(c, code.Success, info)
+}
+
+// RegisterDelete
// @Tags 绾ゅ害鐧昏
// @Summary 绾ゅ害鐧昏鍒犻櫎
// @Produce application/json
// @Param id path string true "瀛楀吀淇℃伅"
// @Success 200 {object} util.Response "鎴愬姛"
// @Router /api-jl/v1/fineness/register/{id} [delete]
-func (slf FinenessController) Delete(c *gin.Context) {
+func (slf FinenessController) RegisterDelete(c *gin.Context) {
idStr := c.Param("id")
if idStr == "0" || idStr == "" {
util.ResponseFormat(c, code.RequestParamError, "绌虹殑璁板綍id")
@@ -61,3 +168,138 @@
}
util.ResponseFormat(c, code.UpdateSuccess, "鍒犻櫎鎴愬姛")
}
+
+// CheckList
+// @Tags 绾ゅ害妫�楠�
+// @Summary 绾ゅ害妫�楠屽垪琛�
+// @Produce application/json
+// @Param object query request.GetFinenessRegisterList true "鏌ヨ鍙傛暟"
+// @Success 200 {object} util.ResponseList{data=[]models.FinenessCheck} "鎴愬姛"
+// @Router /api-jl/v1/fineness/check [get]
+func (slf FinenessController) CheckList(c *gin.Context) {
+ var params request.GetFinenessRegisterList
+ if err := c.ShouldBindQuery(¶ms); err != nil {
+ util.ResponseFormat(c, code.RequestParamError, err.Error())
+ return
+ }
+
+ list, total, err := models.NewFinenessCheckSearch().SetPage(params.Page, params.PageSize).SetPreload().Find()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ return
+ }
+
+ util.ResponseFormatList(c, code.Success, list, total)
+}
+
+// CheckInfo
+// @Tags 绾ゅ害妫�楠�
+// @Summary 绾ゅ害妫�楠岃鎯�
+// @Produce application/json
+// @Param id path string true "瀛楀吀淇℃伅"
+// @Success 200 {object} util.ResponseList{data=response.FinenessCheckInfo} "鎴愬姛"
+// @Router /api-jl/v1/fineness/check/{id} [get]
+func (slf FinenessController) CheckInfo(c *gin.Context) {
+ idStr := c.Param("id")
+ if idStr == "0" || idStr == "" {
+ util.ResponseFormat(c, code.RequestParamError, "绌虹殑璁板綍id")
+ return
+ }
+
+ id := convertx.StringToUInt(idStr)
+ if id == 0 {
+ util.ResponseFormat(c, code.RequestParamError, "绌虹殑璁板綍id")
+ return
+ }
+
+ info, err := models.NewFinenessCheckSearch().SetID(id).SetPreload().First()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ return
+ }
+ resp := new(response.FinenessCheckInfo)
+ resp.Info = info
+ resp.Items, err = models.NewFinenessCheckItemSearch().SetFinenessRegisterID(info.FinenessRegisterID).FindAll()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ return
+ }
+
+ util.ResponseFormat(c, code.Success, resp)
+}
+
+// CheckDelete
+// @Tags 绾ゅ害妫�楠�
+// @Summary 绾ゅ害妫�楠屽垹闄�
+// @Produce application/json
+// @Param id path string true "瀛楀吀淇℃伅"
+// @Success 200 {object} util.Response "鎴愬姛"
+// @Router /api-jl/v1/fineness/check/{id} [delete]
+func (slf FinenessController) CheckDelete(c *gin.Context) {
+ idStr := c.Param("id")
+ if idStr == "0" || idStr == "" {
+ util.ResponseFormat(c, code.RequestParamError, "绌虹殑璁板綍id")
+ return
+ }
+
+ id := convertx.StringToUInt(idStr)
+ if id == 0 {
+ util.ResponseFormat(c, code.RequestParamError, "绌虹殑璁板綍id")
+ return
+ }
+
+ check, err := models.NewFinenessCheckSearch().SetID(id).First()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "妫�楠岃褰曚笉瀛樺湪")
+ return
+ }
+
+ err = models.WithTransaction(func(db *gorm.DB) error {
+ err := models.NewFinenessCheckSearch().SetOrm(db).SetID(id).Delete()
+ if err != nil {
+ return err
+ }
+ return models.NewFinenessCheckItemSearch().SetOrm(db).SetFinenessRegisterID(check.FinenessRegisterID).Delete()
+ })
+
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触")
+ return
+ }
+ util.ResponseFormat(c, code.UpdateSuccess, "鍒犻櫎鎴愬姛")
+}
+
+// CheckEdit
+// @Tags 绾ゅ害妫�楠�
+// @Summary 绾ゅ害妫�楠屼慨鏀�
+// @Produce application/json
+// @Param object body models.FinenessCheck true "瀛楀吀淇℃伅"
+// @Success 200 {object} util.Response "鎴愬姛"
+// @Router /api-jl/v1/fineness/check [post]
+func (slf FinenessController) CheckEdit(c *gin.Context) {
+ var params models.FinenessCheck
+ if err := c.BindJSON(¶ms); err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+ return
+ }
+
+ _, err := models.NewFinenessCheckSearch().SetID(params.ID).First()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "妫�楠岃褰曚笉瀛樺湪")
+ return
+ }
+
+ err = service.FinenessReCheck(¶ms)
+ if err != nil {
+ logx.Errorf("service.FinenessReCheck err:%v, finenessCheck:%+v", err, params)
+ util.ResponseFormat(c, code.RequestParamError, "妫�楠屽け璐�")
+ return
+ }
+
+ err = models.NewFinenessCheckSearch().Save(¶ms)
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触")
+ return
+ }
+ util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛")
+}
--
Gitblit v1.8.0