正在显示
26 个修改的文件
包含
250 行增加
和
227 行删除
| @@ -26,6 +26,7 @@ type MyConfig struct { | @@ -26,6 +26,7 @@ type MyConfig struct { | ||
| 26 | var MConfig *MyConfig | 26 | var MConfig *MyConfig |
| 27 | 27 | ||
| 28 | func RestMyConfig() *MyConfig { | 28 | func RestMyConfig() *MyConfig { |
| 29 | + fmt.Println("初始化config") | ||
| 29 | mysqlHost := beego.AppConfig.String("mysql_host") | 30 | mysqlHost := beego.AppConfig.String("mysql_host") |
| 30 | mysqlPort := beego.AppConfig.String("mysql_port") | 31 | mysqlPort := beego.AppConfig.String("mysql_port") |
| 31 | mysqlUser := beego.AppConfig.String("mysql_user") | 32 | mysqlUser := beego.AppConfig.String("mysql_user") |
| @@ -2,6 +2,7 @@ package log | @@ -2,6 +2,7 @@ package log | ||
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "encoding/json" | 4 | "encoding/json" |
| 5 | + "fmt" | ||
| 5 | 6 | ||
| 6 | "github.com/astaxie/beego/logs" | 7 | "github.com/astaxie/beego/logs" |
| 7 | ) | 8 | ) |
| @@ -67,6 +68,7 @@ func (config LoggerFile) Name() string { | @@ -67,6 +68,7 @@ func (config LoggerFile) Name() string { | ||
| 67 | var logger *logs.BeeLogger | 68 | var logger *logs.BeeLogger |
| 68 | 69 | ||
| 69 | func ResetLog(config SetLoggerConfig, funcCall bool) { | 70 | func ResetLog(config SetLoggerConfig, funcCall bool) { |
| 71 | + fmt.Println("初始化log") | ||
| 70 | logger = logs.GetBeeLogger() | 72 | logger = logs.GetBeeLogger() |
| 71 | out := config.Name() | 73 | out := config.Name() |
| 72 | logconf := config.MarshalString() | 74 | logconf := config.MarshalString() |
| @@ -2,6 +2,7 @@ package redis | @@ -2,6 +2,7 @@ package redis | ||
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | 4 | "fmt" |
| 5 | + "oppmg/common/log" | ||
| 5 | 6 | ||
| 6 | "github.com/go-redis/redis" | 7 | "github.com/go-redis/redis" |
| 7 | ) | 8 | ) |
| @@ -18,6 +19,7 @@ const ( | @@ -18,6 +19,7 @@ const ( | ||
| 18 | var RedisClient *redis.Client | 19 | var RedisClient *redis.Client |
| 19 | 20 | ||
| 20 | func SetRedis(addr string, password string, db int) { | 21 | func SetRedis(addr string, password string, db int) { |
| 22 | + log.Info("初始化redis") | ||
| 21 | RedisClient = redis.NewClient(&redis.Options{ | 23 | RedisClient = redis.NewClient(&redis.Options{ |
| 22 | Addr: addr, | 24 | Addr: addr, |
| 23 | Password: password, | 25 | Password: password, |
| @@ -2,32 +2,34 @@ | @@ -2,32 +2,34 @@ | ||
| 2 | config_name = "local" | 2 | config_name = "local" |
| 3 | #----beego的默认配置 开始--- | 3 | #----beego的默认配置 开始--- |
| 4 | #端口号 | 4 | #端口号 |
| 5 | -httpport = 8081 | 5 | +httpport = 8080 |
| 6 | #开启应用内监控 | 6 | #开启应用内监控 |
| 7 | -EnableAdmin = true | 7 | +EnableAdmin = false |
| 8 | AdminPort = 8088 | 8 | AdminPort = 8088 |
| 9 | -##---beego的默认配置 结束--- | 9 | +#---beego的默认配置 结束--- |
| 10 | 10 | ||
| 11 | #---自定义配置 开始---- | 11 | #---自定义配置 开始---- |
| 12 | -#数据库连接 | ||
| 13 | -# sqlconn = "root:root@tcp(127.0.0.1:3306)/ability_display?charset=utf8&loc=Asia%2FShanghai" | 12 | +##数据库连接 |
| 13 | +# sqlconn ="${MYSQL_CONN||root:sutianxia2015@tcp(115.29.205.99:3306)/opportunity?charset=utf8&loc=Asia%2FShanghai}" | ||
| 14 | mysql_user = "${MYSQL_USER||root}" | 14 | mysql_user = "${MYSQL_USER||root}" |
| 15 | mysql_password = "${MYSQL_PASSWORD||sutianxia2015}" | 15 | mysql_password = "${MYSQL_PASSWORD||sutianxia2015}" |
| 16 | mysql_host = "${MYSQL_HOST||115.29.205.99}" | 16 | mysql_host = "${MYSQL_HOST||115.29.205.99}" |
| 17 | mysql_port = "${MYSQL_PORT||3306}" | 17 | mysql_port = "${MYSQL_PORT||3306}" |
| 18 | mysql_db_name = "${MYSQL_DB_NAME||opportunity}" | 18 | mysql_db_name = "${MYSQL_DB_NAME||opportunity}" |
| 19 | -#redis相关配置 | 19 | +##redis相关配置 |
| 20 | redis_add_port = "127.0.0.1:6379" | 20 | redis_add_port = "127.0.0.1:6379" |
| 21 | redis_auth = "" | 21 | redis_auth = "" |
| 22 | -#log相关配置 | ||
| 23 | -#out_put:"console","file" | 22 | +##log相关配置 |
| 23 | +##out_put:"console","file" | ||
| 24 | log_output = "file" | 24 | log_output = "file" |
| 25 | -# | ||
| 26 | -log_filename = "./log/ability.log" | ||
| 27 | -# maxlines = | ||
| 28 | -# maxsize = | ||
| 29 | -# daily = | ||
| 30 | -# maxdays = | ||
| 31 | -# rotate = | ||
| 32 | -log_level = "debug" | 25 | +log_filename = "${aliyun_logs_access||ability.log}" |
| 26 | +log_level = "${LOG_LEVEL||error}" | ||
| 27 | + | ||
| 28 | +##统一用户中心相关配置 | ||
| 29 | +ucenter_check_alt = "rsF0pL!6DwjBO735" | ||
| 30 | +ucenter_base_url = "http://suplus-ucenter-dev.fjmaimaimai.com" | ||
| 31 | +ucenter_app_key = "39aefef9e22744a3b2d2d3791824ae7b" | ||
| 32 | +ucenter_secret = "39aefef9e22744a3b2d2d3791824ae7b" | ||
| 33 | +# 审批流程修改 消息发布 | ||
| 34 | +message_publish = "audit_change" | ||
| 33 | #---自定义配置 结束---- | 35 | #---自定义配置 结束---- |
| @@ -96,7 +96,7 @@ func (c *AuthController) ChangeCompany() { | @@ -96,7 +96,7 @@ func (c *AuthController) ChangeCompany() { | ||
| 96 | return | 96 | return |
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | -//me | 99 | +//Me |
| 100 | //@router /me [get] | 100 | //@router /me [get] |
| 101 | func (c *AuthController) Me() { | 101 | func (c *AuthController) Me() { |
| 102 | var msg *protocol.ResponseMessage | 102 | var msg *protocol.ResponseMessage |
| @@ -56,12 +56,15 @@ func (c *CommonController) SelectorRole() { | @@ -56,12 +56,15 @@ func (c *CommonController) SelectorRole() { | ||
| 56 | var roles []protocol.RoleBase | 56 | var roles []protocol.RoleBase |
| 57 | switch param.For { | 57 | switch param.For { |
| 58 | case "user": | 58 | case "user": |
| 59 | + //编辑用户时 | ||
| 59 | list := servecommon.SelectorRoleAll(companyid) | 60 | list := servecommon.SelectorRoleAll(companyid) |
| 60 | roles = servecommon.FilterRoleAll(userid, companyid, list) | 61 | roles = servecommon.FilterRoleAll(userid, companyid, list) |
| 61 | case "role": | 62 | case "role": |
| 63 | + //编辑角色时 | ||
| 62 | list := servecommon.SelectorRoleAll(companyid) | 64 | list := servecommon.SelectorRoleAll(companyid) |
| 63 | roles = servecommon.FilterRoleGroup(userid, companyid, list) | 65 | roles = servecommon.FilterRoleGroup(userid, companyid, list) |
| 64 | case "all": | 66 | case "all": |
| 67 | + //无特殊规则时 | ||
| 65 | roles = servecommon.SelectorRoleAll(companyid) | 68 | roles = servecommon.SelectorRoleAll(companyid) |
| 66 | default: | 69 | default: |
| 67 | roles = servecommon.SelectorRoleAll(companyid) | 70 | roles = servecommon.SelectorRoleAll(companyid) |
| @@ -30,13 +30,14 @@ func (c *RbacController) RoleAdd() { | @@ -30,13 +30,14 @@ func (c *RbacController) RoleAdd() { | ||
| 30 | msg = protocol.BadRequestParam("1") | 30 | msg = protocol.BadRequestParam("1") |
| 31 | return | 31 | return |
| 32 | } | 32 | } |
| 33 | + param.Types = models.ROLETYPES_ROLE | ||
| 33 | param.CompanyID = c.GetCompanyId() | 34 | param.CompanyID = c.GetCompanyId() |
| 34 | if param.CompanyID <= 0 { | 35 | if param.CompanyID <= 0 { |
| 35 | log.Error("param.CompanyID <= 0") | 36 | log.Error("param.CompanyID <= 0") |
| 36 | msg = protocol.BadRequestParam("1") | 37 | msg = protocol.BadRequestParam("1") |
| 37 | return | 38 | return |
| 38 | } | 39 | } |
| 39 | - param.Types = models.ROLETYPES_ROLE | 40 | + |
| 40 | r, err := serverbac.RoleAdd(param) | 41 | r, err := serverbac.RoleAdd(param) |
| 41 | msg = protocol.NewReturnResponse(r, err) | 42 | msg = protocol.NewReturnResponse(r, err) |
| 42 | return | 43 | return |
| @@ -87,6 +87,8 @@ spec: | @@ -87,6 +87,8 @@ spec: | ||
| 87 | value: "stdout" | 87 | value: "stdout" |
| 88 | - name: aliyun_logs_access | 88 | - name: aliyun_logs_access |
| 89 | value: "/opt/logs/oppmg.log" | 89 | value: "/opt/logs/oppmg.log" |
| 90 | + - name: aliyun_logs_access | ||
| 91 | + value: "/var/www/opp/file" | ||
| 90 | volumes: | 92 | volumes: |
| 91 | - name: accesslogs | 93 | - name: accesslogs |
| 92 | emptyDir: {} | 94 | emptyDir: {} |
| @@ -20,7 +20,6 @@ type Department struct { | @@ -20,7 +20,6 @@ type Department struct { | ||
| 20 | Relation string `orm:"column(relation);size(1024)" description:"父子级关系树"` | 20 | Relation string `orm:"column(relation);size(1024)" description:"父子级关系树"` |
| 21 | DeleteAt time.Time `orm:"column(delete_at);type(timestamp)" description:"删除时间"` | 21 | DeleteAt time.Time `orm:"column(delete_at);type(timestamp)" description:"删除时间"` |
| 22 | UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"` | 22 | UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"` |
| 23 | - Member int `orm:"column(member)" description:"成员数量"` | ||
| 24 | Manages string `orm:"column(managers)" description:"部门负责人id列表 json 数组 []"` | 23 | Manages string `orm:"column(managers)" description:"部门负责人id列表 json 数组 []"` |
| 25 | } | 24 | } |
| 26 | 25 |
| @@ -18,7 +18,6 @@ type Position struct { | @@ -18,7 +18,6 @@ type Position struct { | ||
| 18 | UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"` | 18 | UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"` |
| 19 | DeleteAt time.Time `orm:"column(delete_at);type(timestamp)" description:"删除时间"` | 19 | DeleteAt time.Time `orm:"column(delete_at);type(timestamp)" description:"删除时间"` |
| 20 | EnableStatus string `orm:"column(enable_status);size(255)" description:"有效状态 1:有效 0:无效"` | 20 | EnableStatus string `orm:"column(enable_status);size(255)" description:"有效状态 1:有效 0:无效"` |
| 21 | - Member int `orm:"column(member)"` | ||
| 22 | } | 21 | } |
| 23 | 22 | ||
| 24 | func (t *Position) TableName() string { | 23 | func (t *Position) TableName() string { |
models/role_related.go
已删除
100644 → 0
| 1 | -package models | ||
| 2 | - | ||
| 3 | -import ( | ||
| 4 | - "fmt" | ||
| 5 | - | ||
| 6 | - "github.com/astaxie/beego/orm" | ||
| 7 | -) | ||
| 8 | - | ||
| 9 | -type RoleRelated struct { | ||
| 10 | - Id int `orm:"column(id);pk"` | ||
| 11 | - RoleId int64 `orm:"column(role_id)"` | ||
| 12 | - UserId int64 `orm:"column(user_id)"` | ||
| 13 | -} | ||
| 14 | - | ||
| 15 | -func (t *RoleRelated) TableName() string { | ||
| 16 | - return "role_related" | ||
| 17 | -} | ||
| 18 | - | ||
| 19 | -func init() { | ||
| 20 | - orm.RegisterModel(new(RoleRelated)) | ||
| 21 | -} | ||
| 22 | - | ||
| 23 | -// AddRoleRelated insert a new RoleRelated into database and returns | ||
| 24 | -// last inserted Id on success. | ||
| 25 | -func AddRoleRelated(m *RoleRelated) (id int64, err error) { | ||
| 26 | - o := orm.NewOrm() | ||
| 27 | - id, err = o.Insert(m) | ||
| 28 | - return | ||
| 29 | -} | ||
| 30 | - | ||
| 31 | -// GetRoleRelatedById retrieves RoleRelated by Id. Returns error if | ||
| 32 | -// Id doesn't exist | ||
| 33 | -func GetRoleRelatedById(id int) (v *RoleRelated, err error) { | ||
| 34 | - o := orm.NewOrm() | ||
| 35 | - v = &RoleRelated{Id: id} | ||
| 36 | - if err = o.Read(v); err == nil { | ||
| 37 | - return v, nil | ||
| 38 | - } | ||
| 39 | - return nil, err | ||
| 40 | -} | ||
| 41 | - | ||
| 42 | -// UpdateRoleRelated updates RoleRelated by Id and returns error if | ||
| 43 | -// the record to be updated doesn't exist | ||
| 44 | -func UpdateRoleRelatedById(m *RoleRelated) (err error) { | ||
| 45 | - o := orm.NewOrm() | ||
| 46 | - v := RoleRelated{Id: m.Id} | ||
| 47 | - // ascertain id exists in the database | ||
| 48 | - if err = o.Read(&v); err == nil { | ||
| 49 | - var num int64 | ||
| 50 | - if num, err = o.Update(m); err == nil { | ||
| 51 | - fmt.Println("Number of records updated in database:", num) | ||
| 52 | - } | ||
| 53 | - } | ||
| 54 | - return | ||
| 55 | -} | ||
| 56 | - | ||
| 57 | -// DeleteRoleRelated deletes RoleRelated by Id and returns error if | ||
| 58 | -// the record to be deleted doesn't exist | ||
| 59 | -func DeleteRoleRelated(id int) (err error) { | ||
| 60 | - o := orm.NewOrm() | ||
| 61 | - v := RoleRelated{Id: id} | ||
| 62 | - // ascertain id exists in the database | ||
| 63 | - if err = o.Read(&v); err == nil { | ||
| 64 | - var num int64 | ||
| 65 | - if num, err = o.Delete(&RoleRelated{Id: id}); err == nil { | ||
| 66 | - fmt.Println("Number of records deleted in database:", num) | ||
| 67 | - } | ||
| 68 | - } | ||
| 69 | - return | ||
| 70 | -} | ||
| 71 | - | ||
| 72 | -func CountRoleRelatedByUser(roleid int64) (int64, error) { | ||
| 73 | - var ( | ||
| 74 | - cnt int64 | ||
| 75 | - err error | ||
| 76 | - ) | ||
| 77 | - o := orm.NewOrm() | ||
| 78 | - cnt, err = o.QueryTable(&RoleRelated{}). | ||
| 79 | - Filter("role_id", roleid). | ||
| 80 | - Count() | ||
| 81 | - return cnt, err | ||
| 82 | -} |
| @@ -59,6 +59,7 @@ func AddUserCompany(m *UserCompany, o orm.Ormer) (id int64, err error) { | @@ -59,6 +59,7 @@ func AddUserCompany(m *UserCompany, o orm.Ormer) (id int64, err error) { | ||
| 59 | m.CreateAt = time.Now() | 59 | m.CreateAt = time.Now() |
| 60 | m.DeleteAt = time.Unix(0, 0) | 60 | m.DeleteAt = time.Unix(0, 0) |
| 61 | m.UpdateAt = time.Now() | 61 | m.UpdateAt = time.Now() |
| 62 | + m.Enable = USERCOMPANY_ENABLE_YES | ||
| 62 | id, err = o.Insert(m) | 63 | id, err = o.Insert(m) |
| 63 | return | 64 | return |
| 64 | } | 65 | } |
| @@ -81,8 +82,10 @@ func UpdateUserCompanyById(m *UserCompany) (err error) { | @@ -81,8 +82,10 @@ func UpdateUserCompanyById(m *UserCompany) (err error) { | ||
| 81 | func GetUserCompanyBy(userid int64, companyId int64) (*UserCompany, error) { | 82 | func GetUserCompanyBy(userid int64, companyId int64) (*UserCompany, error) { |
| 82 | o := orm.NewOrm() | 83 | o := orm.NewOrm() |
| 83 | var data []*UserCompany | 84 | var data []*UserCompany |
| 84 | - _, err := o.QueryTable(&UserCompany{}).Filter("UserId", userid). | ||
| 85 | - Filter("CompanyId", companyId). | 85 | + _, err := o.QueryTable(&UserCompany{}). |
| 86 | + Filter("user_id", userid). | ||
| 87 | + Filter("company_id", companyId). | ||
| 88 | + Filter("delete_at", 0). | ||
| 86 | All(&data) | 89 | All(&data) |
| 87 | if err != nil { | 90 | if err != nil { |
| 88 | return nil, err | 91 | return nil, err |
| @@ -96,8 +99,9 @@ func GetUserCompanyBy(userid int64, companyId int64) (*UserCompany, error) { | @@ -96,8 +99,9 @@ func GetUserCompanyBy(userid int64, companyId int64) (*UserCompany, error) { | ||
| 96 | func ExistUserCompany(userid int64, companyId int64) bool { | 99 | func ExistUserCompany(userid int64, companyId int64) bool { |
| 97 | o := orm.NewOrm() | 100 | o := orm.NewOrm() |
| 98 | ok := o.QueryTable(&UserCompany{}). | 101 | ok := o.QueryTable(&UserCompany{}). |
| 99 | - Filter("UserId", userid). | ||
| 100 | - Filter("CompanyId", companyId). | 102 | + Filter("user_id", userid). |
| 103 | + Filter("company_id", companyId). | ||
| 104 | + Filter("delete_at", 0). | ||
| 101 | Exist() | 105 | Exist() |
| 102 | return ok | 106 | return ok |
| 103 | } | 107 | } |
| @@ -105,8 +109,8 @@ func ExistUserCompany(userid int64, companyId int64) bool { | @@ -105,8 +109,8 @@ func ExistUserCompany(userid int64, companyId int64) bool { | ||
| 105 | func EnableUserCompany(userid int64, companyid int64) error { | 109 | func EnableUserCompany(userid int64, companyid int64) error { |
| 106 | o := orm.NewOrm() | 110 | o := orm.NewOrm() |
| 107 | _, err := o.QueryTable(&UserCompany{}). | 111 | _, err := o.QueryTable(&UserCompany{}). |
| 108 | - Filter("UserId", userid). | ||
| 109 | - Filter("CompanyId", companyid).Update(orm.Params{ | 112 | + Filter("user_id", userid). |
| 113 | + Filter("company_id", companyid).Update(orm.Params{ | ||
| 110 | "enable": USERCOMPANY_ENABLE_YES, | 114 | "enable": USERCOMPANY_ENABLE_YES, |
| 111 | "delete_at": 0, | 115 | "delete_at": 0, |
| 112 | }) | 116 | }) |
| @@ -8,12 +8,13 @@ import ( | @@ -8,12 +8,13 @@ import ( | ||
| 8 | ) | 8 | ) |
| 9 | 9 | ||
| 10 | type UserDepartment struct { | 10 | type UserDepartment struct { |
| 11 | - Id int64 `orm:"column(id);auto" description:"主键"` | ||
| 12 | - UserId int64 `orm:"column(user_id)" description:"用户id"` | ||
| 13 | - CompanyId int64 `orm:"column(company_id)" description:"公司id"` | ||
| 14 | - DepartmentId int64 `orm:"column(department_id)" description:"部门id"` | ||
| 15 | - CreateTime time.Time `orm:"column(create_time);type(timestamp);null" description:"创建时间"` | ||
| 16 | - EnableStatus int8 `orm:"column(enable_status)" description:"是否有效"` | 11 | + Id int64 `orm:"column(id);auto" description:"主键"` |
| 12 | + UserId int64 `orm:"column(user_id)" description:"用户id"` | ||
| 13 | + CompanyId int64 `orm:"column(company_id)" description:"公司id"` | ||
| 14 | + DepartmentId int64 `orm:"column(department_id)" description:"部门id"` | ||
| 15 | + CreateTime time.Time `orm:"column(create_time);type(timestamp);null" description:"创建时间"` | ||
| 16 | + EnableStatus int8 `orm:"column(enable_status)" description:"是否有效"` | ||
| 17 | + UserCompanyId int64 `orm:"column(user_company_id)"` | ||
| 17 | } | 18 | } |
| 18 | 19 | ||
| 19 | func (t *UserDepartment) TableName() string { | 20 | func (t *UserDepartment) TableName() string { |
| @@ -98,3 +99,16 @@ func GetUserDepartment(userid, companyid int64) ([]*UserDepartment, error) { | @@ -98,3 +99,16 @@ func GetUserDepartment(userid, companyid int64) ([]*UserDepartment, error) { | ||
| 98 | All(&result) | 99 | All(&result) |
| 99 | return result, err | 100 | return result, err |
| 100 | } | 101 | } |
| 102 | + | ||
| 103 | +func CountUserDepartByDepart(departid int64) (int64, error) { | ||
| 104 | + var ( | ||
| 105 | + cnt int64 | ||
| 106 | + err error | ||
| 107 | + ) | ||
| 108 | + o := orm.NewOrm() | ||
| 109 | + cnt, err = o.QueryTable(&UserDepartment{}). | ||
| 110 | + Filter("department_id", departid). | ||
| 111 | + Filter("enable_status", 1). | ||
| 112 | + Count() | ||
| 113 | + return cnt, err | ||
| 114 | +} |
| @@ -8,12 +8,13 @@ import ( | @@ -8,12 +8,13 @@ import ( | ||
| 8 | ) | 8 | ) |
| 9 | 9 | ||
| 10 | type UserPosition struct { | 10 | type UserPosition struct { |
| 11 | - Id int64 `orm:"column(id);pk" description:"唯一键值"` | ||
| 12 | - UserId int64 `orm:"column(user_id)" description:"表user.id 用户编号"` | ||
| 13 | - PositionId int64 `orm:"column(position_id)" description:"表position.id 职位编号"` | ||
| 14 | - CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"` | ||
| 15 | - CompanyId int64 `orm:"column(company_id)" description:"表company.id 公司编号"` | ||
| 16 | - EnableStatus int8 `orm:"column(enable_status);null" description:"是否有效 1:有效 2:无效"` | 11 | + Id int64 `orm:"column(id);pk" description:"唯一键值"` |
| 12 | + UserId int64 `orm:"column(user_id)" description:"表user.id 用户编号"` | ||
| 13 | + PositionId int64 `orm:"column(position_id)" description:"表position.id 职位编号"` | ||
| 14 | + CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"` | ||
| 15 | + CompanyId int64 `orm:"column(company_id)" description:"表company.id 公司编号"` | ||
| 16 | + EnableStatus int8 `orm:"column(enable_status);null" description:"是否有效 1:有效 2:无效"` | ||
| 17 | + UserCompanyId int64 `orm:"column(user_company_id)"` | ||
| 17 | } | 18 | } |
| 18 | 19 | ||
| 19 | func (t *UserPosition) TableName() string { | 20 | func (t *UserPosition) TableName() string { |
| @@ -73,3 +74,16 @@ func GetUserPosition(userid, companyid int64) ([]*UserPosition, error) { | @@ -73,3 +74,16 @@ func GetUserPosition(userid, companyid int64) ([]*UserPosition, error) { | ||
| 73 | All(&result) | 74 | All(&result) |
| 74 | return result, err | 75 | return result, err |
| 75 | } | 76 | } |
| 77 | + | ||
| 78 | +func CountUserPositionByPosition(positionid int64) (int64, error) { | ||
| 79 | + var ( | ||
| 80 | + cnt int64 | ||
| 81 | + err error | ||
| 82 | + ) | ||
| 83 | + o := orm.NewOrm() | ||
| 84 | + cnt, err = o.QueryTable(&UserPosition{}). | ||
| 85 | + Filter("position_id", positionid). | ||
| 86 | + Filter("enable_status", 1). | ||
| 87 | + Count() | ||
| 88 | + return cnt, err | ||
| 89 | +} |
| @@ -7,11 +7,12 @@ import ( | @@ -7,11 +7,12 @@ import ( | ||
| 7 | ) | 7 | ) |
| 8 | 8 | ||
| 9 | type UserRole struct { | 9 | type UserRole struct { |
| 10 | - Id int `orm:"column(id);pk"` | ||
| 11 | - RoleId int64 `orm:"column(role_id)"` | ||
| 12 | - UserId int64 `orm:"column(user_id)"` | ||
| 13 | - EnableStatus int8 `orm:"column(enable_status)" description:"是否有效"` | ||
| 14 | - CompanyId int64 `orm:"column(company_id)" description:"表company.id 公司编号"` | 10 | + Id int `orm:"column(id);pk"` |
| 11 | + RoleId int64 `orm:"column(role_id)"` | ||
| 12 | + UserId int64 `orm:"column(user_id)"` | ||
| 13 | + EnableStatus int8 `orm:"column(enable_status)" description:"是否有效"` | ||
| 14 | + CompanyId int64 `orm:"column(company_id)" description:"表company.id 公司编号"` | ||
| 15 | + UserCompanyId int64 `orm:"column(user_company_id)"` | ||
| 15 | } | 16 | } |
| 16 | 17 | ||
| 17 | func (t *UserRole) TableName() string { | 18 | func (t *UserRole) TableName() string { |
| @@ -71,3 +72,16 @@ func GetUserRole(userid, companyid int64) ([]*UserRole, error) { | @@ -71,3 +72,16 @@ func GetUserRole(userid, companyid int64) ([]*UserRole, error) { | ||
| 71 | All(&result) | 72 | All(&result) |
| 72 | return result, err | 73 | return result, err |
| 73 | } | 74 | } |
| 75 | + | ||
| 76 | +func CountUserRoleByRole(roleid int64) (int64, error) { | ||
| 77 | + var ( | ||
| 78 | + cnt int64 | ||
| 79 | + err error | ||
| 80 | + ) | ||
| 81 | + o := orm.NewOrm() | ||
| 82 | + cnt, err = o.QueryTable(&UserRole{}). | ||
| 83 | + Filter("role_id", roleid). | ||
| 84 | + Filter("enable_status", 1). | ||
| 85 | + Count() | ||
| 86 | + return cnt, err | ||
| 87 | +} |
| @@ -36,12 +36,12 @@ type ResponseDepartmentInfo struct { | @@ -36,12 +36,12 @@ type ResponseDepartmentInfo struct { | ||
| 36 | Name string `json:"name"` //部门名字 | 36 | Name string `json:"name"` //部门名字 |
| 37 | ParantID int64 `json:"parant_id"` //父级部门Id | 37 | ParantID int64 `json:"parant_id"` //父级部门Id |
| 38 | Manages []DepartmentManager `json:"manages"` //部门管理员 | 38 | Manages []DepartmentManager `json:"manages"` //部门管理员 |
| 39 | - Member int `json:"member"` //成员数 | 39 | + Member int64 `json:"member"` //成员数 |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | //ResponseDepartmentList .... | 42 | //ResponseDepartmentList .... |
| 43 | type ResponseDepartmentList struct { | 43 | type ResponseDepartmentList struct { |
| 44 | - List []ResponseDepartmentInfo | 44 | + List []ResponseDepartmentInfo `json:"list"` |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | //RequestPositionAdd 添加职位 | 47 | //RequestPositionAdd 添加职位 |
| @@ -100,10 +100,10 @@ type ResponseUserList struct { | @@ -100,10 +100,10 @@ type ResponseUserList struct { | ||
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | type UserListItem struct { | 102 | type UserListItem struct { |
| 103 | - UserId int64 `json:"user_id" orm:"column(user_id)"` | ||
| 104 | - NickName string `json:"nick_name" orm:"column(nick_name)"` | ||
| 105 | - Positions string `json:"positions" orm:"-"` | ||
| 106 | - Roles string `json:"roles" orm:"-"` | ||
| 107 | - Departments string `json:"departments" orm:"-"` | ||
| 108 | - Enable int8 `json:"enable" orm:"column(enable)"` | 103 | + UserCompanydId int64 `json:"user_company_id" orm:"column(user_company_id)"` |
| 104 | + NickName string `json:"nick_name" orm:"column(nick_name)"` | ||
| 105 | + Positions string `json:"positions" orm:"-"` | ||
| 106 | + Roles string `json:"roles" orm:"-"` | ||
| 107 | + Departments string `json:"departments" orm:"-"` | ||
| 108 | + Enable int8 `json:"enable" orm:"column(enable)"` | ||
| 109 | } | 109 | } |
| @@ -26,6 +26,7 @@ var errmessge ErrorMap = map[string]string{ | @@ -26,6 +26,7 @@ var errmessge ErrorMap = map[string]string{ | ||
| 26 | "10036": "请输入正确的手机格式", | 26 | "10036": "请输入正确的手机格式", |
| 27 | "10037": "用户的部门必填", | 27 | "10037": "用户的部门必填", |
| 28 | "10038": "用户的角色必填", | 28 | "10038": "用户的角色必填", |
| 29 | + "10039": "用户已存在", | ||
| 29 | } | 30 | } |
| 30 | 31 | ||
| 31 | //错误码转换 ,兼容需要 | 32 | //错误码转换 ,兼容需要 |
| @@ -6,7 +6,7 @@ type RequestRoleAdd struct { | @@ -6,7 +6,7 @@ type RequestRoleAdd struct { | ||
| 6 | Pid int64 `json:"pid"` | 6 | Pid int64 `json:"pid"` |
| 7 | Name string `json:"name"` | 7 | Name string `json:"name"` |
| 8 | Types int8 `json:"types"` | 8 | Types int8 `json:"types"` |
| 9 | - Descript string `json:"descript"` | 9 | + // Descript string `json:"descript"` |
| 10 | } | 10 | } |
| 11 | 11 | ||
| 12 | //RequestRoleDelete 删除一个角色数据 | 12 | //RequestRoleDelete 删除一个角色数据 |
| @@ -14,13 +14,13 @@ func init() { | @@ -14,13 +14,13 @@ func init() { | ||
| 14 | beego.NSBefore(middleware.LogRequestData), | 14 | beego.NSBefore(middleware.LogRequestData), |
| 15 | //beego.NSBefore(middleware.AuthToken), | 15 | //beego.NSBefore(middleware.AuthToken), |
| 16 | beego.NSNamespace("/department", | 16 | beego.NSNamespace("/department", |
| 17 | - beego.NSRouter("/list", &controllers.CompanyController{}, "get:DepartmentList"), | 17 | + beego.NSRouter("/list", &controllers.CompanyController{}, "post:DepartmentList"), |
| 18 | beego.NSRouter("/add", &controllers.CompanyController{}, "post:DepartmentAdd"), | 18 | beego.NSRouter("/add", &controllers.CompanyController{}, "post:DepartmentAdd"), |
| 19 | beego.NSRouter("/edit", &controllers.CompanyController{}, "post:DepartmentUpdate"), | 19 | beego.NSRouter("/edit", &controllers.CompanyController{}, "post:DepartmentUpdate"), |
| 20 | beego.NSRouter("/delete", &controllers.CompanyController{}, "post:DepartmentDelete"), | 20 | beego.NSRouter("/delete", &controllers.CompanyController{}, "post:DepartmentDelete"), |
| 21 | ), | 21 | ), |
| 22 | beego.NSNamespace("position", | 22 | beego.NSNamespace("position", |
| 23 | - beego.NSRouter("/list", &controllers.CompanyController{}, "get:PositionList"), | 23 | + beego.NSRouter("/list", &controllers.CompanyController{}, "post:PositionList"), |
| 24 | beego.NSRouter("/add", &controllers.CompanyController{}, "post:PositionAdd"), | 24 | beego.NSRouter("/add", &controllers.CompanyController{}, "post:PositionAdd"), |
| 25 | beego.NSRouter("/edit", &controllers.CompanyController{}, "post:PositionEdit"), | 25 | beego.NSRouter("/edit", &controllers.CompanyController{}, "post:PositionEdit"), |
| 26 | beego.NSRouter("/delete", &controllers.CompanyController{}, "post:PositionDelete"), | 26 | beego.NSRouter("/delete", &controllers.CompanyController{}, "post:PositionDelete"), |
| @@ -32,9 +32,9 @@ func init() { | @@ -32,9 +32,9 @@ func init() { | ||
| 32 | beego.NSRouter("/role_group/add", &controllers.RbacController{}, "post:RoleGroupAdd"), | 32 | beego.NSRouter("/role_group/add", &controllers.RbacController{}, "post:RoleGroupAdd"), |
| 33 | beego.NSRouter("/role_group/edit", &controllers.RbacController{}, "post:RoleGroupUpdate"), | 33 | beego.NSRouter("/role_group/edit", &controllers.RbacController{}, "post:RoleGroupUpdate"), |
| 34 | beego.NSRouter("/role_group/delete", &controllers.RbacController{}, "post:RoleGroupDelete"), | 34 | beego.NSRouter("/role_group/delete", &controllers.RbacController{}, "post:RoleGroupDelete"), |
| 35 | - beego.NSRouter("/role", &controllers.RbacController{}, "get:RoleList"), | 35 | + beego.NSRouter("/role/list", &controllers.RbacController{}, "post:RoleList"), |
| 36 | ), | 36 | ), |
| 37 | - beego.NSNamespace("/user/", | 37 | + beego.NSNamespace("/user", |
| 38 | beego.NSRouter("/list", &controllers.CompanyController{}, "post:UserList"), | 38 | beego.NSRouter("/list", &controllers.CompanyController{}, "post:UserList"), |
| 39 | beego.NSRouter("/add", &controllers.CompanyController{}, "post:UserAdd"), | 39 | beego.NSRouter("/add", &controllers.CompanyController{}, "post:UserAdd"), |
| 40 | beego.NSRouter("/edit", &controllers.CompanyController{}, "post:UserEdit"), | 40 | beego.NSRouter("/edit", &controllers.CompanyController{}, "post:UserEdit"), |
| @@ -42,7 +42,8 @@ func init() { | @@ -42,7 +42,8 @@ func init() { | ||
| 42 | ), | 42 | ), |
| 43 | beego.NSNamespace("/auth", | 43 | beego.NSNamespace("/auth", |
| 44 | beego.NSRouter("/change_company", &controllers.AuthController{}, "post:ChangeCompany"), | 44 | beego.NSRouter("/change_company", &controllers.AuthController{}, "post:ChangeCompany"), |
| 45 | - beego.NSRouter("/refresh_token", &controllers.AuthController{}, "get:RefreshToken"), | 45 | + beego.NSRouter("/refresh_token", &controllers.AuthController{}, "post:RefreshToken"), |
| 46 | + beego.NSRouter("/me", &controllers.AuthController{}, "post:Me"), | ||
| 46 | ), | 47 | ), |
| 47 | beego.NSNamespace("/bulletin", | 48 | beego.NSNamespace("/bulletin", |
| 48 | beego.NSRouter("/add", &controllers.BulletinController{}, "post:BulletinRelease"), | 49 | beego.NSRouter("/add", &controllers.BulletinController{}, "post:BulletinRelease"), |
| @@ -50,7 +51,7 @@ func init() { | @@ -50,7 +51,7 @@ func init() { | ||
| 50 | beego.NSRouter("/get", &controllers.BulletinController{}, "post:GetBulletin"), | 51 | beego.NSRouter("/get", &controllers.BulletinController{}, "post:GetBulletin"), |
| 51 | beego.NSRouter("/update", &controllers.BulletinController{}, "post:UpdateBulletin"), | 52 | beego.NSRouter("/update", &controllers.BulletinController{}, "post:UpdateBulletin"), |
| 52 | ), | 53 | ), |
| 53 | - beego.NSNamespace("common", | 54 | + beego.NSNamespace("/common", |
| 54 | beego.NSRouter("/department", &controllers.CommonController{}, "post:SelectorDepartment"), | 55 | beego.NSRouter("/department", &controllers.CommonController{}, "post:SelectorDepartment"), |
| 55 | beego.NSRouter("/role", &controllers.CommonController{}, "post:SelectorRole"), | 56 | beego.NSRouter("/role", &controllers.CommonController{}, "post:SelectorRole"), |
| 56 | beego.NSRouter("/position", &controllers.CommonController{}, "post:SelectorPosition"), | 57 | beego.NSRouter("/position", &controllers.CommonController{}, "post:SelectorPosition"), |
| @@ -45,7 +45,6 @@ func DepartmentAdd(param protocol.RequestDepartmentAdd) (protocol.ResponseDepart | @@ -45,7 +45,6 @@ func DepartmentAdd(param protocol.RequestDepartmentAdd) (protocol.ResponseDepart | ||
| 45 | CreateAt: time.Now(), | 45 | CreateAt: time.Now(), |
| 46 | UpdateAt: time.Now(), | 46 | UpdateAt: time.Now(), |
| 47 | ParentId: param.ParentID, | 47 | ParentId: param.ParentID, |
| 48 | - Member: 0, | ||
| 49 | } | 48 | } |
| 50 | departmentAdd.SetManages(param.Managers) | 49 | departmentAdd.SetManages(param.Managers) |
| 51 | o := orm.NewOrm() | 50 | o := orm.NewOrm() |
| @@ -207,61 +206,6 @@ func departmentRelationUpdate(departUpdate *models.Department, newparent *models | @@ -207,61 +206,6 @@ func departmentRelationUpdate(departUpdate *models.Department, newparent *models | ||
| 207 | return nil | 206 | return nil |
| 208 | } | 207 | } |
| 209 | 208 | ||
| 210 | -//DepartmentDelete 部门删除,删除整个分枝 | ||
| 211 | -// func DepartmentDelete(param protocol.RequestDepartmentDelete) error { | ||
| 212 | -// var ( | ||
| 213 | -// departDelete *models.Department | ||
| 214 | -// err error | ||
| 215 | -// ) | ||
| 216 | -// departDelete, err = models.GetDepartmentById(param.ID) | ||
| 217 | -// if err != nil { | ||
| 218 | -// e := fmt.Errorf("GetDepartmentById err:%s", err) | ||
| 219 | -// log.Error(e.Error()) | ||
| 220 | -// return protocol.NewErrWithMessage("1", e) | ||
| 221 | -// } | ||
| 222 | -// if departDelete.CompanyId != param.CompanyID { | ||
| 223 | -// e := fmt.Errorf("departDelete.CompanyId != param.CompanyID") | ||
| 224 | -// log.Error(e.Error()) | ||
| 225 | -// return protocol.NewErrWithMessage("1", e) | ||
| 226 | -// } | ||
| 227 | -// const ( | ||
| 228 | -// //获取部门子集 锁数据 select ... for update, | ||
| 229 | -// dataSql0 string = `SELECT id,relation,member FROM department WHERE relation LIKE ? AND delete_at = 0 FOR UPDATE` | ||
| 230 | -// dataSql2 string = `update department set delete_at=? where relation LIKE ?` | ||
| 231 | -// ) | ||
| 232 | -// var ( | ||
| 233 | -// departSubset []models.Department | ||
| 234 | -// relationLike string = departDelete.Relation + "%" | ||
| 235 | -// nowTime string = time.Now().String() | ||
| 236 | -// ) | ||
| 237 | -// o := orm.NewOrm() | ||
| 238 | -// o.Begin() | ||
| 239 | -// err = utils.ExecuteQueryAllWithOrmer(o, &departSubset, dataSql0, relationLike) | ||
| 240 | -// if err != nil { | ||
| 241 | -// o.Rollback() | ||
| 242 | -// e := fmt.Errorf("") | ||
| 243 | -// log.Error(e.Error()) | ||
| 244 | -// return protocol.NewErrWithMessage("1", e) | ||
| 245 | -// } | ||
| 246 | -// for _, v := range departSubset { | ||
| 247 | -// if v.Member > 0 { | ||
| 248 | -// o.Rollback() | ||
| 249 | -// e := fmt.Errorf("Member > 0 ") | ||
| 250 | -// log.Error(e.Error()) | ||
| 251 | -// return protocol.NewErrWithMessage("1", e) | ||
| 252 | -// } | ||
| 253 | -// } | ||
| 254 | -// err = utils.ExecuteSQLWithOrmer(o, dataSql2, nowTime, relationLike) | ||
| 255 | -// if err != nil { | ||
| 256 | -// o.Rollback() | ||
| 257 | -// e := fmt.Errorf("EXECUTE SQL err:%s", err) | ||
| 258 | -// log.Error(e.Error()) | ||
| 259 | -// return protocol.NewErrWithMessage("1", e) | ||
| 260 | -// } | ||
| 261 | -// o.Commit() | ||
| 262 | -// return nil | ||
| 263 | -// } | ||
| 264 | - | ||
| 265 | func DepartmentDelete(param protocol.RequestDepartmentDelete) error { | 209 | func DepartmentDelete(param protocol.RequestDepartmentDelete) error { |
| 266 | //检查是否可以被删除 | 210 | //检查是否可以被删除 |
| 267 | var ( | 211 | var ( |
| @@ -301,7 +245,12 @@ func DepartmentDelete(param protocol.RequestDepartmentDelete) error { | @@ -301,7 +245,12 @@ func DepartmentDelete(param protocol.RequestDepartmentDelete) error { | ||
| 301 | return protocol.NewErrWithMessage("1", e) | 245 | return protocol.NewErrWithMessage("1", e) |
| 302 | } | 246 | } |
| 303 | for _, subset := range departSubset { | 247 | for _, subset := range departSubset { |
| 304 | - if subset.Member > 0 { | 248 | + cnt, err := models.CountUserDepartByDepart(subset.Id) |
| 249 | + if err != nil { | ||
| 250 | + log.Error("CountUserDepartByDepart err:%s", err) | ||
| 251 | + return protocol.NewErrWithMessage("1") | ||
| 252 | + } | ||
| 253 | + if cnt > 0 { | ||
| 305 | e := fmt.Errorf("user in department,relation:%s", subset.Relation) | 254 | e := fmt.Errorf("user in department,relation:%s", subset.Relation) |
| 306 | log.Error(e.Error()) | 255 | log.Error(e.Error()) |
| 307 | return protocol.NewErrWithMessage("1", e) | 256 | return protocol.NewErrWithMessage("1", e) |
| @@ -347,9 +296,13 @@ func DepartmentListAll(companyId int64) ([]protocol.ResponseDepartmentInfo, erro | @@ -347,9 +296,13 @@ func DepartmentListAll(companyId int64) ([]protocol.ResponseDepartmentInfo, erro | ||
| 347 | return nil, protocol.NewErrWithMessage("1", err) | 296 | return nil, protocol.NewErrWithMessage("1", err) |
| 348 | } | 297 | } |
| 349 | for _, v := range departmodels { | 298 | for _, v := range departmodels { |
| 299 | + cnt, err := models.CountUserDepartByDepart(v.Id) | ||
| 300 | + if err != nil { | ||
| 301 | + log.Error("CountUserDepartByDepart err:%s", err) | ||
| 302 | + } | ||
| 350 | depart := protocol.ResponseDepartmentInfo{ | 303 | depart := protocol.ResponseDepartmentInfo{ |
| 351 | ID: v.Id, CompanyID: v.CompanyId, | 304 | ID: v.Id, CompanyID: v.CompanyId, |
| 352 | - Name: v.Name, Member: v.Member, | 305 | + Name: v.Name, Member: cnt, |
| 353 | ParantID: v.ParentId, | 306 | ParantID: v.ParentId, |
| 354 | } | 307 | } |
| 355 | var manage []protocol.DepartmentManager | 308 | var manage []protocol.DepartmentManager |
| @@ -218,7 +218,7 @@ func PositionDelete(param protocol.RequestPositionDelete) error { | @@ -218,7 +218,7 @@ func PositionDelete(param protocol.RequestPositionDelete) error { | ||
| 218 | var p *models.Position | 218 | var p *models.Position |
| 219 | p, err := models.GetPositionById(id) | 219 | p, err := models.GetPositionById(id) |
| 220 | if err != nil { | 220 | if err != nil { |
| 221 | - e := fmt.Errorf("GetPositionById(%d)", id) | 221 | + e := fmt.Errorf("GetPositionById(%d) err:%s", id, err) |
| 222 | log.Error(e.Error()) | 222 | log.Error(e.Error()) |
| 223 | return protocol.NewErrWithMessage("1", e) | 223 | return protocol.NewErrWithMessage("1", e) |
| 224 | } | 224 | } |
| @@ -240,10 +240,15 @@ func PositionDelete(param protocol.RequestPositionDelete) error { | @@ -240,10 +240,15 @@ func PositionDelete(param protocol.RequestPositionDelete) error { | ||
| 240 | return protocol.NewErrWithMessage("1", e) | 240 | return protocol.NewErrWithMessage("1", e) |
| 241 | } | 241 | } |
| 242 | for _, subset := range positionsubset { | 242 | for _, subset := range positionsubset { |
| 243 | - if subset.Member > 0 { | 243 | + cnt, err := models.CountUserPositionByPosition(subset.Id) |
| 244 | + if err != nil { | ||
| 245 | + log.Error("CountUserPositionByPosition err:%s", err) | ||
| 246 | + return protocol.NewErrWithMessage("1") | ||
| 247 | + } | ||
| 248 | + if cnt > 0 { | ||
| 244 | e := fmt.Errorf("user in position,relation:%s", subset.Relation) | 249 | e := fmt.Errorf("user in position,relation:%s", subset.Relation) |
| 245 | log.Error(e.Error()) | 250 | log.Error(e.Error()) |
| 246 | - return protocol.NewErrWithMessage("1", e) | 251 | + return protocol.NewErrWithMessage("10011", e) |
| 247 | } | 252 | } |
| 248 | if _, ok := toDelete[subset.Id]; ok { | 253 | if _, ok := toDelete[subset.Id]; ok { |
| 249 | delete(toDelete, subset.Id) | 254 | delete(toDelete, subset.Id) |
| @@ -6,6 +6,7 @@ import ( | @@ -6,6 +6,7 @@ import ( | ||
| 6 | "oppmg/models" | 6 | "oppmg/models" |
| 7 | "oppmg/protocol" | 7 | "oppmg/protocol" |
| 8 | "oppmg/utils" | 8 | "oppmg/utils" |
| 9 | + "strings" | ||
| 9 | "time" | 10 | "time" |
| 10 | 11 | ||
| 11 | "github.com/astaxie/beego/orm" | 12 | "github.com/astaxie/beego/orm" |
| @@ -16,6 +17,11 @@ func UserAdd(param protocol.RequestUserAdd) error { | @@ -16,6 +17,11 @@ func UserAdd(param protocol.RequestUserAdd) error { | ||
| 16 | userm *models.User | 17 | userm *models.User |
| 17 | err error | 18 | err error |
| 18 | ) | 19 | ) |
| 20 | + //校验用户 | ||
| 21 | + err = validCompanyUser(param.CompanyId, param.Phone) | ||
| 22 | + if err != nil { | ||
| 23 | + return err | ||
| 24 | + } | ||
| 19 | //校验角色 | 25 | //校验角色 |
| 20 | err = validCompanyRole(param.CompanyId, param.Roles) | 26 | err = validCompanyRole(param.CompanyId, param.Roles) |
| 21 | if err != nil { | 27 | if err != nil { |
| @@ -134,6 +140,23 @@ func validCompanyPosition(companyid int64, positionid []int64) error { | @@ -134,6 +140,23 @@ func validCompanyPosition(companyid int64, positionid []int64) error { | ||
| 134 | return nil | 140 | return nil |
| 135 | } | 141 | } |
| 136 | 142 | ||
| 143 | +func validCompanyUser(companyid int64, phone string) error { | ||
| 144 | + userdata, err := models.GetUserByPhone(phone) | ||
| 145 | + if err == orm.ErrNoRows { | ||
| 146 | + return nil | ||
| 147 | + } | ||
| 148 | + if err != nil { | ||
| 149 | + log.Error("database operate fail:%s", err) | ||
| 150 | + return protocol.NewErrWithMessage("1") | ||
| 151 | + } | ||
| 152 | + | ||
| 153 | + ok := models.ExistUserCompany(userdata.Id, companyid) | ||
| 154 | + if ok { | ||
| 155 | + protocol.NewErrWithMessage("10039") | ||
| 156 | + } | ||
| 157 | + return nil | ||
| 158 | +} | ||
| 159 | + | ||
| 137 | //registUser 注册用户 | 160 | //registUser 注册用户 |
| 138 | func registUser(userIn *models.User, companyid int64, o orm.Ormer) error { | 161 | func registUser(userIn *models.User, companyid int64, o orm.Ormer) error { |
| 139 | var ( | 162 | var ( |
| @@ -163,15 +186,15 @@ func registUser(userIn *models.User, companyid int64, o orm.Ormer) error { | @@ -163,15 +186,15 @@ func registUser(userIn *models.User, companyid int64, o orm.Ormer) error { | ||
| 163 | CompanyId: companyid, | 186 | CompanyId: companyid, |
| 164 | UserId: userIn.Id, | 187 | UserId: userIn.Id, |
| 165 | } | 188 | } |
| 166 | - ok := models.ExistUserCompany(usrData.Id, companyid) | ||
| 167 | - if !ok { | ||
| 168 | - _, err = models.AddUserCompany(musercompany, o) | ||
| 169 | - if err != nil { | ||
| 170 | - return err | ||
| 171 | - } | 189 | + // ok := models.ExistUserCompany(usrData.Id, companyid) |
| 190 | + // if !ok { | ||
| 191 | + _, err = models.AddUserCompany(musercompany, o) | ||
| 192 | + if err != nil { | ||
| 193 | + return err | ||
| 172 | } | 194 | } |
| 173 | - err = models.EnableUserCompany(usrData.Id, companyid) | ||
| 174 | - return err | 195 | + // } |
| 196 | + // err = models.EnableUserCompany(usrData.Id, companyid) | ||
| 197 | + return nil | ||
| 175 | } | 198 | } |
| 176 | 199 | ||
| 177 | func editUserDepart(userid int64, companyid int64, departids []int64, o orm.Ormer) error { | 200 | func editUserDepart(userid int64, companyid int64, departids []int64, o orm.Ormer) error { |
| @@ -257,7 +280,7 @@ func editUserRole(userid int64, companyid int64, roleids []int64, o orm.Ormer) e | @@ -257,7 +280,7 @@ func editUserRole(userid int64, companyid int64, roleids []int64, o orm.Ormer) e | ||
| 257 | addRoleIds []int64 | 280 | addRoleIds []int64 |
| 258 | ) | 281 | ) |
| 259 | dataSql := `SELECT role_id FROM user_role WHERE enable_status=1 AND company_id=? AND user_id=?` | 282 | dataSql := `SELECT role_id FROM user_role WHERE enable_status=1 AND company_id=? AND user_id=?` |
| 260 | - dataSql2 := `UPDATE user_position SET enable_status = 2 WHERE company_id =? AND user_id=? AND role_id=?` | 283 | + dataSql2 := `UPDATE user_role SET enable_status = 2 WHERE company_id =? AND user_id=? AND role_id=?` |
| 261 | datasql3 := `INSERT INTO user_role (user_id,role_id,company_id,enable_status) VALUES (?,?,?,?)` | 284 | datasql3 := `INSERT INTO user_role (user_id,role_id,company_id,enable_status) VALUES (?,?,?,?)` |
| 262 | err = utils.ExecuteQueryAllWithOrmer(o, &oldRoleIds, dataSql, companyid, userid) | 285 | err = utils.ExecuteQueryAllWithOrmer(o, &oldRoleIds, dataSql, companyid, userid) |
| 263 | if err != nil { | 286 | if err != nil { |
| @@ -291,6 +314,10 @@ func UserEdit(param protocol.RequestUserEdit) error { | @@ -291,6 +314,10 @@ func UserEdit(param protocol.RequestUserEdit) error { | ||
| 291 | userm *models.User | 314 | userm *models.User |
| 292 | err error | 315 | err error |
| 293 | ) | 316 | ) |
| 317 | + err = validCompanyUser(param.CompanyId, param.Phone) | ||
| 318 | + if err != nil { | ||
| 319 | + return err | ||
| 320 | + } | ||
| 294 | //校验角色 | 321 | //校验角色 |
| 295 | err = validCompanyRole(param.CompanyId, param.Roles) | 322 | err = validCompanyRole(param.CompanyId, param.Roles) |
| 296 | if err != nil { | 323 | if err != nil { |
| @@ -322,6 +349,7 @@ func UserEdit(param protocol.RequestUserEdit) error { | @@ -322,6 +349,7 @@ func UserEdit(param protocol.RequestUserEdit) error { | ||
| 322 | // log.Error("registUser err:%s", err) | 349 | // log.Error("registUser err:%s", err) |
| 323 | // return protocol.NewErrWithMessage("1") | 350 | // return protocol.NewErrWithMessage("1") |
| 324 | // } | 351 | // } |
| 352 | + // TODO 用户数据更新 | ||
| 325 | //添加角色 | 353 | //添加角色 |
| 326 | err = editUserRole(userm.Id, param.CompanyId, param.Roles, o) | 354 | err = editUserRole(userm.Id, param.CompanyId, param.Roles, o) |
| 327 | if err != nil { | 355 | if err != nil { |
| @@ -371,7 +399,7 @@ func UserDelete(userid, companyid int64) error { | @@ -371,7 +399,7 @@ func UserDelete(userid, companyid int64) error { | ||
| 371 | 399 | ||
| 372 | func UserList(param protocol.RequestUserList) (protocol.ResponseUserList, error) { | 400 | func UserList(param protocol.RequestUserList) (protocol.ResponseUserList, error) { |
| 373 | 401 | ||
| 374 | - datasql := `SELECT a.company_id,a.user_id,a.enable, b.phone,b.nick_name | 402 | + datasql := `SELECT a.id as user_company_id,a.company_id,a.user_id,a.enable, b.phone,b.nick_name |
| 375 | FROM user_company AS a | 403 | FROM user_company AS a |
| 376 | LEFT JOIN user AS b ON a.user_id = b.id | 404 | LEFT JOIN user AS b ON a.user_id = b.id |
| 377 | WHERE a.company_id=? AND a.delete_at = 0 ` | 405 | WHERE a.company_id=? AND a.delete_at = 0 ` |
| @@ -404,20 +432,77 @@ func UserList(param protocol.RequestUserList) (protocol.ResponseUserList, error) | @@ -404,20 +432,77 @@ func UserList(param protocol.RequestUserList) (protocol.ResponseUserList, error) | ||
| 404 | log.Error(e.Error()) | 432 | log.Error(e.Error()) |
| 405 | return responseData, protocol.NewErrWithMessage("0") | 433 | return responseData, protocol.NewErrWithMessage("0") |
| 406 | } | 434 | } |
| 407 | - // for k, v := range result { | ||
| 408 | - // positions, _ := models.GetUserPosition(v.UserId, param.Companyid) | ||
| 409 | - // departments, _ := models.GetUserDepartment(v.UserId, param.Companyid) | ||
| 410 | - // roles, _ := models.GetUserRole(v.UserId, param.Companyid) | ||
| 411 | - // } | 435 | + for k, v := range result { |
| 436 | + var ( | ||
| 437 | + pname []string | ||
| 438 | + dname []string | ||
| 439 | + rname []string | ||
| 440 | + ) | ||
| 441 | + positions := GetUserPosition(v.UserCompanydId) | ||
| 442 | + for i := range positions { | ||
| 443 | + pname = append(pname, positions[i].Name) | ||
| 444 | + } | ||
| 445 | + departments := GetUserDepartment(v.UserCompanydId) | ||
| 446 | + for i := range departments { | ||
| 447 | + dname = append(dname, departments[i].Name) | ||
| 448 | + } | ||
| 449 | + roles := GetUserRole(v.UserCompanydId) | ||
| 450 | + for i := range roles { | ||
| 451 | + rname = append(rname, roles[i].Name) | ||
| 452 | + } | ||
| 453 | + result[k].Departments = strings.Join(dname, ",") | ||
| 454 | + result[k].Positions = strings.Join(pname, ",") | ||
| 455 | + result[k].Roles = strings.Join(rname, ",") | ||
| 456 | + } | ||
| 412 | responseData.ResponsePageInfo = pageInfo | 457 | responseData.ResponsePageInfo = pageInfo |
| 413 | responseData.List = result | 458 | responseData.List = result |
| 414 | return responseData, nil | 459 | return responseData, nil |
| 415 | } | 460 | } |
| 416 | 461 | ||
| 417 | -func GetUserDepartment(user int64, companyid int64) { | ||
| 418 | - | 462 | +func GetUserDepartment(usercompanyid int64) []protocol.DepartmentBase { |
| 463 | + const datasql string = `SELECT b.name,b.parent_id,b.id FROM user_department AS a | ||
| 464 | + JOIN department AS b ON a.department_id = b.id | ||
| 465 | + WHERE a.enable_status =1 AND a.user_company_id =? ` | ||
| 466 | + var ( | ||
| 467 | + err error | ||
| 468 | + data []protocol.DepartmentBase | ||
| 469 | + ) | ||
| 470 | + err = utils.ExecuteQueryAll(&data, datasql, usercompanyid) | ||
| 471 | + if err != nil { | ||
| 472 | + e := fmt.Errorf("EXECUTE SQL err:%s", err) | ||
| 473 | + log.Error(e.Error()) | ||
| 474 | + } | ||
| 475 | + return data | ||
| 419 | } | 476 | } |
| 420 | 477 | ||
| 421 | -func GetUserPosition(user int64, companyid int64) { | 478 | +func GetUserPosition(usercompanyid int64) []protocol.PositionBase { |
| 479 | + const datasql string = `SELECT b.name,b.parent_id,b.id FROM user_position AS a | ||
| 480 | + JOIN position AS b ON a.position_id = b.id | ||
| 481 | + WHERE a.enable_status =1 AND a.user_company_id =? ` | ||
| 482 | + var ( | ||
| 483 | + err error | ||
| 484 | + data []protocol.PositionBase | ||
| 485 | + ) | ||
| 486 | + err = utils.ExecuteQueryAll(&data, datasql, usercompanyid) | ||
| 487 | + if err != nil { | ||
| 488 | + e := fmt.Errorf("EXECUTE SQL err:%s", err) | ||
| 489 | + log.Error(e.Error()) | ||
| 490 | + } | ||
| 491 | + return data | ||
| 492 | +} | ||
| 422 | 493 | ||
| 494 | +func GetUserRole(usercompanyid int64) []protocol.RoleBase { | ||
| 495 | + const datasql string = `SELECT b.name,b.pid,b.id FROM user_role AS a | ||
| 496 | + JOIN role AS b ON a.role_id = b.id | ||
| 497 | + WHERE a.enable_status =1 AND a.user_company_id =? ` | ||
| 498 | + var ( | ||
| 499 | + err error | ||
| 500 | + data []protocol.RoleBase | ||
| 501 | + ) | ||
| 502 | + err = utils.ExecuteQueryAll(&data, datasql, usercompanyid) | ||
| 503 | + if err != nil { | ||
| 504 | + e := fmt.Errorf("EXECUTE SQL err:%s", err) | ||
| 505 | + log.Error(e.Error()) | ||
| 506 | + } | ||
| 507 | + return data | ||
| 423 | } | 508 | } |
| @@ -17,7 +17,7 @@ func RoleAdd(param protocol.RequestRoleAdd) (*protocol.ResponseRoleInfo, error) | @@ -17,7 +17,7 @@ func RoleAdd(param protocol.RequestRoleAdd) (*protocol.ResponseRoleInfo, error) | ||
| 17 | CreateAt: nowTime, | 17 | CreateAt: nowTime, |
| 18 | Pid: param.Pid, | 18 | Pid: param.Pid, |
| 19 | Types: param.Types, | 19 | Types: param.Types, |
| 20 | - Descript: param.Descript, | 20 | + // Descript: param.Descript, |
| 21 | } | 21 | } |
| 22 | if ok := role.ValidateTypes(); !ok { | 22 | if ok := role.ValidateTypes(); !ok { |
| 23 | e := fmt.Errorf("ValidateTypes err") | 23 | e := fmt.Errorf("ValidateTypes err") |
| @@ -66,7 +66,7 @@ func RoleDelete(param protocol.RequestRoleDelete) error { | @@ -66,7 +66,7 @@ func RoleDelete(param protocol.RequestRoleDelete) error { | ||
| 66 | log.Error(e.Error()) | 66 | log.Error(e.Error()) |
| 67 | return protocol.NewErrWithMessage("1") | 67 | return protocol.NewErrWithMessage("1") |
| 68 | } | 68 | } |
| 69 | - cnt, err := models.CountRoleRelatedByUser(param.RoleID) | 69 | + cnt, err := models.CountUserRoleByRole(param.RoleID) |
| 70 | if err != nil { | 70 | if err != nil { |
| 71 | log.Error(err.Error()) | 71 | log.Error(err.Error()) |
| 72 | return protocol.NewErrWithMessage("1") | 72 | return protocol.NewErrWithMessage("1") |
| @@ -99,7 +99,7 @@ func RoleEdit(param protocol.RequestRoleEdit) (*protocol.ResponseRoleInfo, error | @@ -99,7 +99,7 @@ func RoleEdit(param protocol.RequestRoleEdit) (*protocol.ResponseRoleInfo, error | ||
| 99 | return nil, protocol.NewErrWithMessage("1", e) | 99 | return nil, protocol.NewErrWithMessage("1", e) |
| 100 | } | 100 | } |
| 101 | role.Pid = param.Pid | 101 | role.Pid = param.Pid |
| 102 | - role.Descript = param.Descript | 102 | + //role.Descript = param.Descript |
| 103 | role.Name = param.Name | 103 | role.Name = param.Name |
| 104 | if _, err = role.ValidatePid(); err != nil { | 104 | if _, err = role.ValidatePid(); err != nil { |
| 105 | e := fmt.Errorf("ValidatePid err:%s", err) | 105 | e := fmt.Errorf("ValidatePid err:%s", err) |
| @@ -301,7 +301,7 @@ token 的响应内容 | @@ -301,7 +301,7 @@ token 的响应内容 | ||
| 301 | 301 | ||
| 302 | ```json | 302 | ```json |
| 303 | { | 303 | { |
| 304 | - "id": [1, 2, 3] | 304 | + "ids": [1, 2, 3] |
| 305 | } | 305 | } |
| 306 | ``` | 306 | ``` |
| 307 | 307 | ||
| @@ -311,7 +311,7 @@ token 的响应内容 | @@ -311,7 +311,7 @@ token 的响应内容 | ||
| 311 | { | 311 | { |
| 312 | "code": 0, | 312 | "code": 0, |
| 313 | "msg": "成功", | 313 | "msg": "成功", |
| 314 | - "data":null | 314 | + "data": null |
| 315 | } | 315 | } |
| 316 | ``` | 316 | ``` |
| 317 | 317 | ||
| @@ -384,7 +384,7 @@ token 的响应内容 | @@ -384,7 +384,7 @@ token 的响应内容 | ||
| 384 | 384 | ||
| 385 | ```json | 385 | ```json |
| 386 | { | 386 | { |
| 387 | - "ids": [1, 23] | 387 | + "id": 1 |
| 388 | } | 388 | } |
| 389 | ``` | 389 | ``` |
| 390 | 390 | ||
| @@ -527,7 +527,7 @@ obj.status 状态 0-所有 1-下架 2-上架 | @@ -527,7 +527,7 @@ obj.status 状态 0-所有 1-下架 2-上架 | ||
| 527 | 527 | ||
| 528 | ```json | 528 | ```json |
| 529 | { | 529 | { |
| 530 | - "id":5 | 530 | + "id": 5 |
| 531 | } | 531 | } |
| 532 | ``` | 532 | ``` |
| 533 | 533 |
-
mentioned in commit a90c6ee3
-
请 注册 或 登录 后发表评论