正在显示
10 个修改的文件
包含
258 行增加
和
172 行删除
controllers/achievement.go
0 → 100644
1 | +package controllers | ||
2 | + | ||
3 | +import ( | ||
4 | + "encoding/json" | ||
5 | + "oppmg/common/log" | ||
6 | + "oppmg/protocol" | ||
7 | + serveachievement "oppmg/services/achievement" | ||
8 | +) | ||
9 | + | ||
10 | +type AchievementController struct { | ||
11 | + BaseController | ||
12 | +} | ||
13 | + | ||
14 | +//List 成果列表 | ||
15 | +//@router /achievement/list | ||
16 | +func (c AchievementController) List() { | ||
17 | + var msg *protocol.ResponseMessage | ||
18 | + defer func() { | ||
19 | + c.ResposeJson(msg) | ||
20 | + }() | ||
21 | + type Parameter struct { | ||
22 | + protocol.RequestPageInfo | ||
23 | + Status int `json:"status"` | ||
24 | + } | ||
25 | + var param Parameter | ||
26 | + if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { | ||
27 | + log.Error("json 解析失败 err:%s", err) | ||
28 | + msg = protocol.BadRequestParam("1") | ||
29 | + return | ||
30 | + } | ||
31 | + companyid := c.GetCompanyId() | ||
32 | + rspdata := serveachievement.GetAchievementList(param.PageIndex, param.PageSize, companyid, param.Status) | ||
33 | + msg = protocol.NewReturnResponse(rspdata, nil) | ||
34 | + return | ||
35 | +} |
@@ -191,12 +191,14 @@ func (c RankController) RankSeasonEdit() { | @@ -191,12 +191,14 @@ func (c RankController) RankSeasonEdit() { | ||
191 | ) | 191 | ) |
192 | t1, err := time.ParseInLocation("2006-01-02", param.BeginTime, time.Local) | 192 | t1, err := time.ParseInLocation("2006-01-02", param.BeginTime, time.Local) |
193 | if err != nil { | 193 | if err != nil { |
194 | + log.Error(err.Error()) | ||
194 | msg = protocol.BadRequestParam("1") | 195 | msg = protocol.BadRequestParam("1") |
195 | return | 196 | return |
196 | } | 197 | } |
197 | beginTime = t1.Unix() | 198 | beginTime = t1.Unix() |
198 | t2, err := time.ParseInLocation("2006-01-02", param.EndTime, time.Local) | 199 | t2, err := time.ParseInLocation("2006-01-02", param.EndTime, time.Local) |
199 | if err != nil { | 200 | if err != nil { |
201 | + log.Error(err.Error()) | ||
200 | msg = protocol.BadRequestParam("1") | 202 | msg = protocol.BadRequestParam("1") |
201 | return | 203 | return |
202 | } | 204 | } |
1 | package models | 1 | package models |
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | - "errors" | ||
5 | "fmt" | 4 | "fmt" |
6 | - "reflect" | ||
7 | - "strings" | ||
8 | "time" | 5 | "time" |
9 | 6 | ||
10 | "github.com/astaxie/beego/orm" | 7 | "github.com/astaxie/beego/orm" |
11 | ) | 8 | ) |
12 | 9 | ||
13 | type AchievementChance struct { | 10 | type AchievementChance struct { |
14 | - Id int `orm:"column(id);pk"` | 11 | + Id int64 `orm:"column(id);pk"` |
15 | AchievementId int64 `orm:"column(achievement_id);null" description:"成果编号 表achievement.id"` | 12 | AchievementId int64 `orm:"column(achievement_id);null" description:"成果编号 表achievement.id"` |
16 | ChanceId int64 `orm:"column(chance_id);null" description:"机会编号 表chance.id"` | 13 | ChanceId int64 `orm:"column(chance_id);null" description:"机会编号 表chance.id"` |
17 | ChanceCode string `orm:"column(chance_code);size(255);null" description:"机会编号 表chance.code"` | 14 | ChanceCode string `orm:"column(chance_code);size(255);null" description:"机会编号 表chance.code"` |
@@ -36,7 +33,7 @@ func AddAchievementChance(m *AchievementChance) (id int64, err error) { | @@ -36,7 +33,7 @@ func AddAchievementChance(m *AchievementChance) (id int64, err error) { | ||
36 | 33 | ||
37 | // GetAchievementChanceById retrieves AchievementChance by Id. Returns error if | 34 | // GetAchievementChanceById retrieves AchievementChance by Id. Returns error if |
38 | // Id doesn't exist | 35 | // Id doesn't exist |
39 | -func GetAchievementChanceById(id int) (v *AchievementChance, err error) { | 36 | +func GetAchievementChanceById(id int64) (v *AchievementChance, err error) { |
40 | o := orm.NewOrm() | 37 | o := orm.NewOrm() |
41 | v = &AchievementChance{Id: id} | 38 | v = &AchievementChance{Id: id} |
42 | if err = o.Read(v); err == nil { | 39 | if err = o.Read(v); err == nil { |
@@ -45,84 +42,6 @@ func GetAchievementChanceById(id int) (v *AchievementChance, err error) { | @@ -45,84 +42,6 @@ func GetAchievementChanceById(id int) (v *AchievementChance, err error) { | ||
45 | return nil, err | 42 | return nil, err |
46 | } | 43 | } |
47 | 44 | ||
48 | -// GetAllAchievementChance retrieves all AchievementChance matches certain condition. Returns empty list if | ||
49 | -// no records exist | ||
50 | -func GetAllAchievementChance(query map[string]string, fields []string, sortby []string, order []string, | ||
51 | - offset int64, limit int64) (ml []interface{}, err error) { | ||
52 | - o := orm.NewOrm() | ||
53 | - qs := o.QueryTable(new(AchievementChance)) | ||
54 | - // query k=v | ||
55 | - for k, v := range query { | ||
56 | - // rewrite dot-notation to Object__Attribute | ||
57 | - k = strings.Replace(k, ".", "__", -1) | ||
58 | - if strings.Contains(k, "isnull") { | ||
59 | - qs = qs.Filter(k, (v == "true" || v == "1")) | ||
60 | - } else { | ||
61 | - qs = qs.Filter(k, v) | ||
62 | - } | ||
63 | - } | ||
64 | - // order by: | ||
65 | - var sortFields []string | ||
66 | - if len(sortby) != 0 { | ||
67 | - if len(sortby) == len(order) { | ||
68 | - // 1) for each sort field, there is an associated order | ||
69 | - for i, v := range sortby { | ||
70 | - orderby := "" | ||
71 | - if order[i] == "desc" { | ||
72 | - orderby = "-" + v | ||
73 | - } else if order[i] == "asc" { | ||
74 | - orderby = v | ||
75 | - } else { | ||
76 | - return nil, errors.New("Error: Invalid order. Must be either [asc|desc]") | ||
77 | - } | ||
78 | - sortFields = append(sortFields, orderby) | ||
79 | - } | ||
80 | - qs = qs.OrderBy(sortFields...) | ||
81 | - } else if len(sortby) != len(order) && len(order) == 1 { | ||
82 | - // 2) there is exactly one order, all the sorted fields will be sorted by this order | ||
83 | - for _, v := range sortby { | ||
84 | - orderby := "" | ||
85 | - if order[0] == "desc" { | ||
86 | - orderby = "-" + v | ||
87 | - } else if order[0] == "asc" { | ||
88 | - orderby = v | ||
89 | - } else { | ||
90 | - return nil, errors.New("Error: Invalid order. Must be either [asc|desc]") | ||
91 | - } | ||
92 | - sortFields = append(sortFields, orderby) | ||
93 | - } | ||
94 | - } else if len(sortby) != len(order) && len(order) != 1 { | ||
95 | - return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1") | ||
96 | - } | ||
97 | - } else { | ||
98 | - if len(order) != 0 { | ||
99 | - return nil, errors.New("Error: unused 'order' fields") | ||
100 | - } | ||
101 | - } | ||
102 | - | ||
103 | - var l []AchievementChance | ||
104 | - qs = qs.OrderBy(sortFields...) | ||
105 | - if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil { | ||
106 | - if len(fields) == 0 { | ||
107 | - for _, v := range l { | ||
108 | - ml = append(ml, v) | ||
109 | - } | ||
110 | - } else { | ||
111 | - // trim unused fields | ||
112 | - for _, v := range l { | ||
113 | - m := make(map[string]interface{}) | ||
114 | - val := reflect.ValueOf(v) | ||
115 | - for _, fname := range fields { | ||
116 | - m[fname] = val.FieldByName(fname).Interface() | ||
117 | - } | ||
118 | - ml = append(ml, m) | ||
119 | - } | ||
120 | - } | ||
121 | - return ml, nil | ||
122 | - } | ||
123 | - return nil, err | ||
124 | -} | ||
125 | - | ||
126 | // UpdateAchievementChance updates AchievementChance by Id and returns error if | 45 | // UpdateAchievementChance updates AchievementChance by Id and returns error if |
127 | // the record to be updated doesn't exist | 46 | // the record to be updated doesn't exist |
128 | func UpdateAchievementChanceById(m *AchievementChance) (err error) { | 47 | func UpdateAchievementChanceById(m *AchievementChance) (err error) { |
@@ -140,7 +59,7 @@ func UpdateAchievementChanceById(m *AchievementChance) (err error) { | @@ -140,7 +59,7 @@ func UpdateAchievementChanceById(m *AchievementChance) (err error) { | ||
140 | 59 | ||
141 | // DeleteAchievementChance deletes AchievementChance by Id and returns error if | 60 | // DeleteAchievementChance deletes AchievementChance by Id and returns error if |
142 | // the record to be deleted doesn't exist | 61 | // the record to be deleted doesn't exist |
143 | -func DeleteAchievementChance(id int) (err error) { | 62 | +func DeleteAchievementChance(id int64) (err error) { |
144 | o := orm.NewOrm() | 63 | o := orm.NewOrm() |
145 | v := AchievementChance{Id: id} | 64 | v := AchievementChance{Id: id} |
146 | // ascertain id exists in the database | 65 | // ascertain id exists in the database |
1 | package models | 1 | package models |
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | - "errors" | ||
5 | "fmt" | 4 | "fmt" |
6 | - "reflect" | ||
7 | - "strings" | ||
8 | "time" | 5 | "time" |
9 | 6 | ||
10 | "github.com/astaxie/beego/orm" | 7 | "github.com/astaxie/beego/orm" |
11 | ) | 8 | ) |
12 | 9 | ||
13 | type AchievementProvider struct { | 10 | type AchievementProvider struct { |
14 | - Id int `orm:"column(id);pk" description:"主键id"` | 11 | + Id int64 `orm:"column(id);pk" description:"主键id"` |
15 | AchievementId int64 `orm:"column(achievement_id);null" description:"表achievement.id"` | 12 | AchievementId int64 `orm:"column(achievement_id);null" description:"表achievement.id"` |
16 | UserCompanyId int64 `orm:"column(user_company_id);null" description:"user_company.id"` | 13 | UserCompanyId int64 `orm:"column(user_company_id);null" description:"user_company.id"` |
17 | UserGraspScore float64 `orm:"column(user_grasp_score);null;digits(4);decimals(1)" description:"把握人得分"` | 14 | UserGraspScore float64 `orm:"column(user_grasp_score);null;digits(4);decimals(1)" description:"把握人得分"` |
@@ -36,7 +33,7 @@ func AddAchievementProvider(m *AchievementProvider) (id int64, err error) { | @@ -36,7 +33,7 @@ func AddAchievementProvider(m *AchievementProvider) (id int64, err error) { | ||
36 | 33 | ||
37 | // GetAchievementProviderById retrieves AchievementProvider by Id. Returns error if | 34 | // GetAchievementProviderById retrieves AchievementProvider by Id. Returns error if |
38 | // Id doesn't exist | 35 | // Id doesn't exist |
39 | -func GetAchievementProviderById(id int) (v *AchievementProvider, err error) { | 36 | +func GetAchievementProviderById(id int64) (v *AchievementProvider, err error) { |
40 | o := orm.NewOrm() | 37 | o := orm.NewOrm() |
41 | v = &AchievementProvider{Id: id} | 38 | v = &AchievementProvider{Id: id} |
42 | if err = o.Read(v); err == nil { | 39 | if err = o.Read(v); err == nil { |
@@ -45,84 +42,6 @@ func GetAchievementProviderById(id int) (v *AchievementProvider, err error) { | @@ -45,84 +42,6 @@ func GetAchievementProviderById(id int) (v *AchievementProvider, err error) { | ||
45 | return nil, err | 42 | return nil, err |
46 | } | 43 | } |
47 | 44 | ||
48 | -// GetAllAchievementProvider retrieves all AchievementProvider matches certain condition. Returns empty list if | ||
49 | -// no records exist | ||
50 | -func GetAllAchievementProvider(query map[string]string, fields []string, sortby []string, order []string, | ||
51 | - offset int64, limit int64) (ml []interface{}, err error) { | ||
52 | - o := orm.NewOrm() | ||
53 | - qs := o.QueryTable(new(AchievementProvider)) | ||
54 | - // query k=v | ||
55 | - for k, v := range query { | ||
56 | - // rewrite dot-notation to Object__Attribute | ||
57 | - k = strings.Replace(k, ".", "__", -1) | ||
58 | - if strings.Contains(k, "isnull") { | ||
59 | - qs = qs.Filter(k, (v == "true" || v == "1")) | ||
60 | - } else { | ||
61 | - qs = qs.Filter(k, v) | ||
62 | - } | ||
63 | - } | ||
64 | - // order by: | ||
65 | - var sortFields []string | ||
66 | - if len(sortby) != 0 { | ||
67 | - if len(sortby) == len(order) { | ||
68 | - // 1) for each sort field, there is an associated order | ||
69 | - for i, v := range sortby { | ||
70 | - orderby := "" | ||
71 | - if order[i] == "desc" { | ||
72 | - orderby = "-" + v | ||
73 | - } else if order[i] == "asc" { | ||
74 | - orderby = v | ||
75 | - } else { | ||
76 | - return nil, errors.New("Error: Invalid order. Must be either [asc|desc]") | ||
77 | - } | ||
78 | - sortFields = append(sortFields, orderby) | ||
79 | - } | ||
80 | - qs = qs.OrderBy(sortFields...) | ||
81 | - } else if len(sortby) != len(order) && len(order) == 1 { | ||
82 | - // 2) there is exactly one order, all the sorted fields will be sorted by this order | ||
83 | - for _, v := range sortby { | ||
84 | - orderby := "" | ||
85 | - if order[0] == "desc" { | ||
86 | - orderby = "-" + v | ||
87 | - } else if order[0] == "asc" { | ||
88 | - orderby = v | ||
89 | - } else { | ||
90 | - return nil, errors.New("Error: Invalid order. Must be either [asc|desc]") | ||
91 | - } | ||
92 | - sortFields = append(sortFields, orderby) | ||
93 | - } | ||
94 | - } else if len(sortby) != len(order) && len(order) != 1 { | ||
95 | - return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1") | ||
96 | - } | ||
97 | - } else { | ||
98 | - if len(order) != 0 { | ||
99 | - return nil, errors.New("Error: unused 'order' fields") | ||
100 | - } | ||
101 | - } | ||
102 | - | ||
103 | - var l []AchievementProvider | ||
104 | - qs = qs.OrderBy(sortFields...) | ||
105 | - if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil { | ||
106 | - if len(fields) == 0 { | ||
107 | - for _, v := range l { | ||
108 | - ml = append(ml, v) | ||
109 | - } | ||
110 | - } else { | ||
111 | - // trim unused fields | ||
112 | - for _, v := range l { | ||
113 | - m := make(map[string]interface{}) | ||
114 | - val := reflect.ValueOf(v) | ||
115 | - for _, fname := range fields { | ||
116 | - m[fname] = val.FieldByName(fname).Interface() | ||
117 | - } | ||
118 | - ml = append(ml, m) | ||
119 | - } | ||
120 | - } | ||
121 | - return ml, nil | ||
122 | - } | ||
123 | - return nil, err | ||
124 | -} | ||
125 | - | ||
126 | // UpdateAchievementProvider updates AchievementProvider by Id and returns error if | 45 | // UpdateAchievementProvider updates AchievementProvider by Id and returns error if |
127 | // the record to be updated doesn't exist | 46 | // the record to be updated doesn't exist |
128 | func UpdateAchievementProviderById(m *AchievementProvider) (err error) { | 47 | func UpdateAchievementProviderById(m *AchievementProvider) (err error) { |
@@ -140,7 +59,7 @@ func UpdateAchievementProviderById(m *AchievementProvider) (err error) { | @@ -140,7 +59,7 @@ func UpdateAchievementProviderById(m *AchievementProvider) (err error) { | ||
140 | 59 | ||
141 | // DeleteAchievementProvider deletes AchievementProvider by Id and returns error if | 60 | // DeleteAchievementProvider deletes AchievementProvider by Id and returns error if |
142 | // the record to be deleted doesn't exist | 61 | // the record to be deleted doesn't exist |
143 | -func DeleteAchievementProvider(id int) (err error) { | 62 | +func DeleteAchievementProvider(id int64) (err error) { |
144 | o := orm.NewOrm() | 63 | o := orm.NewOrm() |
145 | v := AchievementProvider{Id: id} | 64 | v := AchievementProvider{Id: id} |
146 | // ascertain id exists in the database | 65 | // ascertain id exists in the database |
@@ -156,8 +156,8 @@ func GetUserCompanyReal(ids []int64) ([]UserCompany, error) { | @@ -156,8 +156,8 @@ func GetUserCompanyReal(ids []int64) ([]UserCompany, error) { | ||
156 | func GetUserCompanyAll(companyId int64) (v []*UserCompany, err error) { | 156 | func GetUserCompanyAll(companyId int64) (v []*UserCompany, err error) { |
157 | o := orm.NewOrm() | 157 | o := orm.NewOrm() |
158 | sql := `select a.*,b.nick_name from ( | 158 | sql := `select a.*,b.nick_name from ( |
159 | -select id,user_id from user_company where company_id=? and enable=1 | ||
160 | -)a inner join user b on a.user_id = b.id` | 159 | + select id,user_id from user_company where company_id=? and enable=1 |
160 | + )a inner join user b on a.user_id = b.id` | ||
161 | if _, err = o.Raw(sql, companyId).QueryRows(&v); err == nil { | 161 | if _, err = o.Raw(sql, companyId).QueryRows(&v); err == nil { |
162 | return v, nil | 162 | return v, nil |
163 | } | 163 | } |
protocol/achievement.go
0 → 100644
1 | +package protocol | ||
2 | + | ||
3 | +//RequestAddAchievement 添加成果 | ||
4 | +type RequestAddAchievement struct { | ||
5 | + ChanceData []AchievementChance `json:"chance_data"` | ||
6 | + TypeA int `json:"type_a"` //机会一级分类 chance_type | ||
7 | + TypeB int `json:"type_b"` //机会二级分类 | ||
8 | + DepartmentId int64 `json:"department_id"` //把握人的部门 | ||
9 | + UserCompanyId int64 `json:"user_company_id"` //把握人的id | ||
10 | + GraspScore int `json:"grasp_score"` //把握分 | ||
11 | + UserGraspScore int `json:"user_grasp_score"` //把握人总得分 | ||
12 | + Provider []AchievementProvider `json:"provider"` //机会提供者 | ||
13 | + SourceContent string `json:"source_content"` //成果描述文本 | ||
14 | + Images []string `json:"image"` //图片 | ||
15 | +} | ||
16 | + | ||
17 | +//ProviderData 成果提供者 | ||
18 | +type AchievementProvider struct { | ||
19 | + UserCompanyId int64 `json:"user_company_id"` //用户的id | ||
20 | + UserName string `json:"user_name"` //用户名称 | ||
21 | + DepartmentId int64 `json:"department_id"` //部门id | ||
22 | + UserGraspScore int64 `json:"user_grasp_score"` //把握人得分 | ||
23 | +} | ||
24 | + | ||
25 | +//AchievementChance 成果的机会列表 | ||
26 | +type AchievementChance struct { | ||
27 | + Id int64 `json:"id"` | ||
28 | + Code string `json:"code"` | ||
29 | +} | ||
30 | + | ||
31 | +// ResponseRankSeasonList 赛季列表 | ||
32 | +type AchievementList struct { | ||
33 | + ResponsePageInfo | ||
34 | + List []AchievementListItem `json:"lists"` | ||
35 | +} | ||
36 | + | ||
37 | +//AchievementListItem 成果列表 | ||
38 | +type AchievementListItem struct { | ||
39 | + Id int64 `json:"id"` | ||
40 | + CreateTime string `json:"create_time"` | ||
41 | + TypeA string `json:"type_a"` | ||
42 | + TypeB string `json:"type_b"` | ||
43 | + GraspScore string `json:"grasp_score"` | ||
44 | + Status int `json:"status"` | ||
45 | + UserGrasp string `json:"user_grasp"` | ||
46 | +} |
@@ -26,6 +26,8 @@ type RankRangeItem struct { | @@ -26,6 +26,8 @@ type RankRangeItem struct { | ||
26 | Id int64 `json:"id" orm:"column(id)"` | 26 | Id int64 `json:"id" orm:"column(id)"` |
27 | Name string `json:"name" orm:"column(name)"` | 27 | Name string `json:"name" orm:"column(name)"` |
28 | RangeType int8 `json:"range_type" orm:"column(type)"` | 28 | RangeType int8 `json:"range_type" orm:"column(type)"` |
29 | + Status int8 `json:"status" orm:"column(status)"` | ||
30 | + RangeData string `json:"range_data" orm:"-"` | ||
29 | } | 31 | } |
30 | 32 | ||
31 | //ResponseRankRangeInfo 赛季参与人详情 | 33 | //ResponseRankRangeInfo 赛季参与人详情 |
@@ -120,7 +120,9 @@ func init() { | @@ -120,7 +120,9 @@ func init() { | ||
120 | beego.NSRouter("/item/list", &controllers.RankController{}, "post:RankItemList"), | 120 | beego.NSRouter("/item/list", &controllers.RankController{}, "post:RankItemList"), |
121 | beego.NSRouter("/item/edit", &controllers.RankController{}, "post:RankItemEdit"), | 121 | beego.NSRouter("/item/edit", &controllers.RankController{}, "post:RankItemEdit"), |
122 | ), | 122 | ), |
123 | - beego.NSNamespace("/achievement"), | 123 | + beego.NSNamespace("/achievement", |
124 | + beego.NSRouter("/list", &controllers.AchievementController{}, "post:List"), | ||
125 | + ), | ||
124 | ) | 126 | ) |
125 | 127 | ||
126 | nsAuth := beego.NewNamespace("/auth", | 128 | nsAuth := beego.NewNamespace("/auth", |
services/achievement/achievement.go
0 → 100644
1 | +package achievement | ||
2 | + | ||
3 | +import ( | ||
4 | + "fmt" | ||
5 | + "oppmg/common/log" | ||
6 | + "oppmg/models" | ||
7 | + "oppmg/protocol" | ||
8 | + "oppmg/utils" | ||
9 | +) | ||
10 | + | ||
11 | +func AddAchievement(addData *protocol.RequestAddAchievement, companyid int64) error { | ||
12 | + | ||
13 | + //操作achievement 成果表 | ||
14 | + //操作 achievement_chance 机会来源表 | ||
15 | + //操作achievement_provider 成果提供人表 | ||
16 | + | ||
17 | + return nil | ||
18 | +} | ||
19 | + | ||
20 | +func EditAchievement() error { | ||
21 | + return nil | ||
22 | +} | ||
23 | + | ||
24 | +func GetAchievementList(pageIndex int, pageSize int, companyId int64, status int) protocol.AchievementList { | ||
25 | + dataSql := `SELECT a.id,a.chance_type_id,a.grasp_score,user_company_id | ||
26 | + ,a.create_at,a.status,a.audit_template_id | ||
27 | + FROM achievement AS a WHERE a.company_id=? ` | ||
28 | + countSql := ` SELECT COUNT(*) FROM achievement AS a WHERE a.company_id=? ` | ||
29 | + pageStart := (pageIndex - 1) * pageSize | ||
30 | + cond := []interface{}{companyId} | ||
31 | + if status > 0 { | ||
32 | + dataSql += ` AND a.status=? ` | ||
33 | + countSql += ` AND a.status=? ` | ||
34 | + cond = append(cond, status) | ||
35 | + } else { | ||
36 | + dataSql += ` AND a.status>0 ` | ||
37 | + countSql += ` AND a.status>0 ` | ||
38 | + } | ||
39 | + dataSql = fmt.Sprintf("%s ORDER BY a.create_at LIMIT %d,%d", dataSql, pageStart, pageSize) | ||
40 | + type SqlData struct { | ||
41 | + Id int64 `orm:"column(id)"` | ||
42 | + ChanceTypeId int `orm:"column(chance_type_id)"` | ||
43 | + GraspScore string `orm:"column(grasp_score)"` | ||
44 | + UserCompanyId int64 `orm:"column(user_company_id)"` | ||
45 | + CreateAt string `orm:"column(create_at)"` | ||
46 | + Status int `orm:"column(status)"` | ||
47 | + AuditTemplateId int64 `orm:"column(audit_template_id)"` | ||
48 | + } | ||
49 | + var ( | ||
50 | + sqldata []SqlData | ||
51 | + cnt int | ||
52 | + err error | ||
53 | + ) | ||
54 | + rspData := protocol.AchievementList{ | ||
55 | + ResponsePageInfo: protocol.ResponsePageInfo{ | ||
56 | + TotalPage: 0, CurrentPage: pageIndex, | ||
57 | + }, | ||
58 | + List: make([]protocol.AchievementListItem, 0), | ||
59 | + } | ||
60 | + err = utils.ExecuteQueryOne(&cnt, countSql, cond...) | ||
61 | + if err != nil { | ||
62 | + log.Error("SQL EXECUTE ERR:%s", err) | ||
63 | + return rspData | ||
64 | + } | ||
65 | + if cnt == 0 { | ||
66 | + return rspData | ||
67 | + } | ||
68 | + err = utils.ExecuteQueryOne(&sqldata, dataSql, cond...) | ||
69 | + if err != nil { | ||
70 | + log.Error("SQL EXECUTE ERR:%s", err) | ||
71 | + return rspData | ||
72 | + } | ||
73 | + for i := range sqldata { | ||
74 | + m := protocol.AchievementListItem{ | ||
75 | + Id: sqldata[i].Id, | ||
76 | + CreateTime: sqldata[i].CreateAt, | ||
77 | + GraspScore: sqldata[i].GraspScore, | ||
78 | + Status: sqldata[i].Status, | ||
79 | + } | ||
80 | + var ( | ||
81 | + chanceTypeA *models.ChanceType //一级分类 | ||
82 | + chanceTypeB *models.AuditTemplate //二级分类 | ||
83 | + usercompany *models.UserCompany | ||
84 | + err error | ||
85 | + ) | ||
86 | + chanceTypeA, err = models.GetChanceTypeById(sqldata[i].ChanceTypeId) | ||
87 | + if err == nil { | ||
88 | + m.TypeA = chanceTypeA.Name | ||
89 | + } else { | ||
90 | + log.Error(err.Error()) | ||
91 | + } | ||
92 | + chanceTypeB, err = models.GetAuditTemplateById(sqldata[i].AuditTemplateId) | ||
93 | + if err == nil { | ||
94 | + m.TypeB = chanceTypeB.Name | ||
95 | + } else { | ||
96 | + log.Error(err.Error()) | ||
97 | + } | ||
98 | + usercompany, err = models.GetUserCompanyById(sqldata[i].UserCompanyId) | ||
99 | + if err == nil { | ||
100 | + usr, err := models.GetUserById(usercompany.UserId) | ||
101 | + if err == nil { | ||
102 | + m.UserGrasp = usr.NickName | ||
103 | + } else { | ||
104 | + log.Error(err.Error()) | ||
105 | + } | ||
106 | + } else { | ||
107 | + log.Error(err.Error()) | ||
108 | + } | ||
109 | + rspData.List = append(rspData.List, m) | ||
110 | + } | ||
111 | + | ||
112 | + return rspData | ||
113 | +} |
@@ -7,6 +7,7 @@ import ( | @@ -7,6 +7,7 @@ import ( | ||
7 | "oppmg/protocol" | 7 | "oppmg/protocol" |
8 | "oppmg/utils" | 8 | "oppmg/utils" |
9 | "sort" | 9 | "sort" |
10 | + "strings" | ||
10 | "time" | 11 | "time" |
11 | 12 | ||
12 | "github.com/astaxie/beego/orm" | 13 | "github.com/astaxie/beego/orm" |
@@ -252,14 +253,61 @@ func GetRankRangeList(companyid int64) []protocol.RankRangeItem { | @@ -252,14 +253,61 @@ func GetRankRangeList(companyid int64) []protocol.RankRangeItem { | ||
252 | err error | 253 | err error |
253 | rspData = make([]protocol.RankRangeItem, 0) | 254 | rspData = make([]protocol.RankRangeItem, 0) |
254 | ) | 255 | ) |
255 | - datasql := `SELECT a.id ,a.name,a.type FROM rank_range AS a WHERE company_id=?` | 256 | + datasql := `SELECT a.id ,a.name,a.type,a.status FROM rank_range AS a WHERE company_id=?` |
256 | err = utils.ExecuteQueryAll(&rspData, datasql, companyid) | 257 | err = utils.ExecuteQueryAll(&rspData, datasql, companyid) |
257 | if err != nil { | 258 | if err != nil { |
258 | log.Error("获取参与人列表失败:%s", err) | 259 | log.Error("获取参与人列表失败:%s", err) |
259 | } | 260 | } |
261 | + for i := range rspData { | ||
262 | + var nameList []string | ||
263 | + relations := getRangeDataRelationLsit(rspData[i].Id, rspData[i].RangeType) | ||
264 | + for ii := range relations { | ||
265 | + nameList = append(nameList, relations[ii].Name) | ||
266 | + } | ||
267 | + rspData[i].RangeData = strings.Join(nameList, ",") | ||
268 | + } | ||
260 | return rspData | 269 | return rspData |
261 | } | 270 | } |
262 | 271 | ||
272 | +//getRangeDataLsit 获取range_data的数据 | ||
273 | +func getRangeDataRelationLsit(rankRangeId int64, rangeType int8) []protocol.RankRangeRelation { | ||
274 | + rankRangeData, _ := models.GetRankRangeDataByRangeId(rankRangeId) | ||
275 | + var relationIds []int64 | ||
276 | + for i := range rankRangeData { | ||
277 | + relationIds = append(relationIds, rankRangeData[i].RelationId) | ||
278 | + } | ||
279 | + datalist := make([]protocol.RankRangeRelation, 0) | ||
280 | + switch rangeType { | ||
281 | + case models.RANK_RANGE_TYPE_DEPARTMENT: | ||
282 | + //员工 | ||
283 | + users, err := models.GetUserCompanyByIds(relationIds) | ||
284 | + if err != nil { | ||
285 | + log.Error("获取员工数据失败") | ||
286 | + } | ||
287 | + for i := range users { | ||
288 | + m := protocol.RankRangeRelation{ | ||
289 | + Id: users[i].Id, | ||
290 | + Name: users[i].NickName, | ||
291 | + } | ||
292 | + datalist = append(datalist, m) | ||
293 | + } | ||
294 | + case models.RANK_RANGE_TYPE_EMPLAYEE: | ||
295 | + //部门 | ||
296 | + departments, err := models.GetDepartmentByIds(relationIds) | ||
297 | + if err != nil { | ||
298 | + log.Error("获取部门数据失败") | ||
299 | + } | ||
300 | + for i := range departments { | ||
301 | + m := protocol.RankRangeRelation{ | ||
302 | + Id: departments[i].Id, | ||
303 | + Name: departments[i].Name, | ||
304 | + } | ||
305 | + datalist = append(datalist, m) | ||
306 | + } | ||
307 | + } | ||
308 | + return datalist | ||
309 | +} | ||
310 | + | ||
263 | func AddRankRange(rankTypeId int64, name string, rangetype int8, relationId []int64, companyid int64) error { | 311 | func AddRankRange(rankTypeId int64, name string, rangetype int8, relationId []int64, companyid int64) error { |
264 | var ( | 312 | var ( |
265 | rankRangeDatas []models.RankRangeData | 313 | rankRangeDatas []models.RankRangeData |
-
请 注册 或 登录 后发表评论