This commit is contained in:
2026-04-23 16:42:10 +08:00
parent dac1102ae5
commit 6b68eb254e
10 changed files with 280 additions and 16 deletions
+48
View File
@@ -350,6 +350,54 @@ func ApiPurchase(r *gin.RouterGroup) {
ReturnJson(ctx, "apiOK", nil)
})
// 删除状态记录
r.POST("/delete_commit", func(ctx *gin.Context) {
isAuth, user, data := AuthenticationAuthority(ctx)
if !isAuth {
ReturnJson(ctx, "userCookieError", nil)
return
}
type FromDeleteCommit struct {
OrderID uint `json:"orderId"`
CommitID uint `json:"commitId"`
}
var from FromDeleteCommit
if err := decodeJSON(data, &from); err != nil || from.OrderID == 0 || from.CommitID == 0 {
ReturnJson(ctx, "jsonErr", nil)
return
}
// 获取订单信息
var order TabPurchaseOrder
if err := models.DB.Where("id = ?", from.OrderID).First(&order).Error; err != nil {
ReturnJson(ctx, "order_not_found", nil)
return
}
// 获取进度信息
var commit TabPurchaseCommit
if err := models.DB.Where("id = ? AND order_id = ?", from.CommitID, from.OrderID).First(&commit).Error; err != nil {
ReturnJson(ctx, "commit_not_found", nil)
return
}
// 权限判断:订单创建者 或 进度创建者 或 管理员
isOrderCreator := user.ID == order.UserID
isCommitCreator := user.ID == commit.UserID
isAdmin := slices.Contains(purchaseAdmins, user.ID)
if !isOrderCreator && !isCommitCreator && !isAdmin {
ReturnJson(ctx, "no_permission", nil)
return
}
// 删除进度
models.DB.Where("id = ?", from.CommitID).Delete(&TabPurchaseCommit{})
ReturnJson(ctx, "apiOK", nil)
})
r.POST("/getorders", func(ctx *gin.Context) {
isAuth, _, data := AuthenticationAuthority(ctx)
if isAuth {
+53 -1
View File
@@ -354,7 +354,7 @@ func ApiWorkOrder(r *gin.RouterGroup) {
// commits
var commits []TabWorkOrderCommit
models.DB.Where("work_order_id = ?", from.ID).Order("created_at ASC").Find(&commits)
models.DB.Where("work_order_id = ?", from.ID).Order("created_at DESC").Find(&commits)
// 为每条 commit 附加图片和采购订单
type CommitWithPhotos struct {
@@ -566,6 +566,58 @@ func ApiWorkOrder(r *gin.RouterGroup) {
ReturnJson(ctx, "apiOK", nil)
})
// 删除进度
r.POST("/delete_commit", func(ctx *gin.Context) {
isAuth, user, data := AuthenticationAuthority(ctx)
if !isAuth {
ReturnJson(ctx, "userCookieError", nil)
return
}
type FromDeleteCommit struct {
WorkOrderID uint `json:"workOrderId"`
CommitID uint `json:"commitId"`
}
var from FromDeleteCommit
if err := decodeJSON(data, &from); err != nil || from.WorkOrderID == 0 || from.CommitID == 0 {
ReturnJson(ctx, "jsonErr", nil)
return
}
// 获取工单信息
var order TabWorkOrder
if err := models.DB.Where("id = ?", from.WorkOrderID).First(&order).Error; err != nil {
ReturnJson(ctx, "order_not_found", nil)
return
}
// 获取进度信息
var commit TabWorkOrderCommit
if err := models.DB.Where("id = ? AND work_order_id = ?", from.CommitID, from.WorkOrderID).First(&commit).Error; err != nil {
ReturnJson(ctx, "commit_not_found", nil)
return
}
// 权限判断:工单创建者 或 进度创建者 或 管理员
isOrderCreator := user.ID == order.UserID
isCommitCreator := user.ID == commit.UserID
isAdmin := slices.Contains(workOrderAdmins, user.ID)
if !isOrderCreator && !isCommitCreator && !isAdmin {
ReturnJson(ctx, "no_permission", nil)
return
}
// 删除关联的采购订单绑定
models.DB.Where("commit_id = ?", from.CommitID).Delete(&TabWorkOrderPurchaseOrderBind{})
// 删除关联的图片
models.DB.Where("commit_id = ?", from.CommitID).Delete(&TabWorkOrderCommitFileBind{})
// 删除进度记录
models.DB.Where("id = ?", from.CommitID).Delete(&commit)
ReturnJson(ctx, "apiOK", nil)
})
// 获取工单数量统计
r.POST("/count", func(ctx *gin.Context) {
isAuth, _, _ := AuthenticationAuthority(ctx)