package supervisor import ( "errors" "zhiyuan/models" adminParam "zhiyuan/pkg/param/admin" "zhiyuan/services/admin" "zhiyuan/services/form" ) func GetList(where map[string]string, param map[string]interface{}, retVal interface{}) ([]*models.Admin, error) { where["where"] = where["where"] + " AND FIND_IN_SET({{role_id}}, role_ids)" param["role_id"] = adminParam.SupervisorRoleId return admin.GetAdminsRaw(where, param, retVal) } func Edit(form form.SupervisorAdd, id int) error { info, err := admin.GetInfoByID(id, nil, nil) if info == nil { return errors.New("invalid admin id") } if info.Phone != form.Phone && admin.CheckAdminDuplicate(form.Phone) { return errors.New("手机号码已存在") } adminInfo := admin.GetAdminCache(form.AdminID) if adminInfo.DeptID != info.DeptID { return errors.New("只能编辑本部门数据") } adminMap := map[string]interface{}{ "phone": form.Phone, "username": form.Username, } _, err = admin.Update(map[string]interface{}{"id": id}, adminMap) admin.ClearAdminCache(id) return err } func Add(form form.SupervisorAdd) (int64, error) { if admin.CheckAdminDuplicate(form.Phone) { return 0, errors.New("手机号码已存在") } adminInfo := admin.GetAdminCache(form.AdminID) adminMap := map[string]interface{}{ "username": form.Username, "phone": form.Phone, "dept_id": adminInfo.DeptID, "password": form.Phone[len(form.Phone)-6:], "role_ids": adminParam.SupervisorRoleId, } adminID, err := admin.InsertOne(adminMap) if err != nil { return 0, nil } return adminID, nil }