已完成用户APP首期功能开发
交付用户端首期页面、配套接口、后台资源及测试文档。用户APP构建、静态分析和三个管理后台构建通过;完整测试仍有2项失败,后端模型注释检查未通过,详见交付记录。
This commit is contained in:
47
backend/api/internal/logic/gas/contract_request.go
Normal file
47
backend/api/internal/logic/gas/contract_request.go
Normal file
@@ -0,0 +1,47 @@
|
||||
// 功能描述:供气单位答复本人合同变更申请,不自动改动合同条款;版本:1.0.0。
|
||||
package gas
|
||||
|
||||
import (
|
||||
"git.apinb.com/bsm-sdk/core/errcode"
|
||||
"git.apinb.com/bsm-sdk/core/infra"
|
||||
"git.apinb.com/heqiapp/platforms/backend/api/internal/impl"
|
||||
"git.apinb.com/heqiapp/platforms/backend/api/internal/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// ResolveContractRequest 按原合同气站锁定申请,提交处理结果后等待用户确认。
|
||||
func ResolveContractRequest(ctx *gin.Context) {
|
||||
account, station, ok := CurrentGasAccount(ctx)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
var request struct {
|
||||
Result string `json:"result" binding:"required,max=2000"`
|
||||
}
|
||||
if ctx.ShouldBindJSON(&request) != nil || strings.TrimSpace(request.Result) == "" {
|
||||
infra.Response.Error(ctx, errcode.ErrInvalidArgument)
|
||||
return
|
||||
}
|
||||
result := strings.TrimSpace(request.Result)
|
||||
err := impl.DBService.Transaction(func(tx *gorm.DB) error {
|
||||
var ticket models.CsTicket
|
||||
if err := tx.Clauses(clause.Locking{Strength: "UPDATE"}).Where("identity = ? AND gas_basic_id = ? AND gasorder_contract_id <> 0 AND category = ? AND status <> ?", ctx.Param("identity"), station.ID, "contract_change", 3).First(&ticket).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
if (ticket.TicketStatus == 34 || ticket.TicketStatus == 23) && ticket.Result == result {
|
||||
return nil
|
||||
}
|
||||
if ticket.TicketStatus != 32 && ticket.TicketStatus != 11 {
|
||||
return errcode.ErrInvalidArgument
|
||||
}
|
||||
return tx.Model(&ticket).Updates(map[string]any{"result": result, "ticket_status": 34, "operator_identity": account.Identity}).Error
|
||||
})
|
||||
if err != nil {
|
||||
infra.Response.Error(ctx, err)
|
||||
return
|
||||
}
|
||||
infra.Response.Success(ctx, gin.H{"updated": true})
|
||||
}
|
||||
Reference in New Issue
Block a user