功能:完善用户服务关系展示与组织联动
统一平台、气站和配送点后台的服务关系业务名称展示。 新增气站、配送点、服务人员三级联动及暂未分配语义。 后端补充组织归属、人员角色和启用状态的严格校验。 补充前后端测试、项目文档、操作日志及本机日志忽略规则。
This commit is contained in:
@@ -226,10 +226,38 @@ func resolveServiceRelation(ctx *gin.Context, request serviceRelationRequest) (u
|
||||
infra.Response.Error(ctx, errcode.ErrInvalidArgument)
|
||||
return 0, 0, 0, 0, false
|
||||
}
|
||||
if gasBasicID == 0 && deliveryBasicID == 0 && staffAccountID == 0 ||
|
||||
!common.ValidateOrganizationIDs(gasBasicID, deliveryBasicID, staffAccountID) {
|
||||
if !validateServiceRelationOrganization(gasBasicID, deliveryBasicID, staffAccountID) {
|
||||
infra.Response.Error(ctx, errcode.ErrInvalidArgument)
|
||||
return 0, 0, 0, 0, false
|
||||
}
|
||||
return userAccountID, gasBasicID, deliveryBasicID, staffAccountID, true
|
||||
}
|
||||
|
||||
// validateServiceRelationOrganization 读取组织记录并执行服务关系专用的严格归属校验。
|
||||
func validateServiceRelationOrganization(gasBasicID, deliveryBasicID, staffAccountID uint64) bool {
|
||||
var delivery models.DeliveryBasic
|
||||
if deliveryBasicID != 0 {
|
||||
if err := common.ActiveRecords(impl.DBService).First(&delivery, deliveryBasicID).Error; err != nil {
|
||||
return false
|
||||
}
|
||||
}
|
||||
var staff models.StaffAccount
|
||||
if staffAccountID != 0 {
|
||||
if err := common.ActiveRecords(impl.DBService).First(&staff, staffAccountID).Error; err != nil {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return serviceRelationOrganizationMatches(gasBasicID, deliveryBasicID, staffAccountID, delivery, staff)
|
||||
}
|
||||
|
||||
// serviceRelationOrganizationMatches 要求配送点、服务人员与当前选择完全一致;全空表示暂未分配。
|
||||
func serviceRelationOrganizationMatches(gasBasicID, deliveryBasicID, staffAccountID uint64, delivery models.DeliveryBasic, staff models.StaffAccount) bool {
|
||||
if deliveryBasicID != 0 && delivery.GasBasicID != gasBasicID {
|
||||
return false
|
||||
}
|
||||
if staffAccountID == 0 {
|
||||
return true
|
||||
}
|
||||
validRole := staff.RoleCode == "installer" || staff.RoleCode == "delivery" || staff.RoleCode == "operations"
|
||||
return validRole && staff.Status == common.StatusEnable && staff.GasBasicID == gasBasicID && staff.DeliveryBasicID == deliveryBasicID
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user