正在显示
12 个修改的文件
包含
631 行增加
和
32 行删除
@@ -2,10 +2,13 @@ package controllers | @@ -2,10 +2,13 @@ package controllers | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "encoding/json" | 4 | "encoding/json" |
5 | + "fmt" | ||
5 | "oppmg/common/log" | 6 | "oppmg/common/log" |
6 | "oppmg/models" | 7 | "oppmg/models" |
7 | "oppmg/protocol" | 8 | "oppmg/protocol" |
8 | serverank "oppmg/services/rank" | 9 | serverank "oppmg/services/rank" |
10 | + "strings" | ||
11 | + "time" | ||
9 | ) | 12 | ) |
10 | 13 | ||
11 | type RankController struct { | 14 | type RankController struct { |
@@ -57,7 +60,7 @@ func (c RankController) RankTypeForbidAllow() { | @@ -57,7 +60,7 @@ func (c RankController) RankTypeForbidAllow() { | ||
57 | }() | 60 | }() |
58 | type Parameter struct { | 61 | type Parameter struct { |
59 | Id int64 `json:"id"` | 62 | Id int64 `json:"id"` |
60 | - status int `json:"status"` | 63 | + Status int `json:"status"` |
61 | } | 64 | } |
62 | var param Parameter | 65 | var param Parameter |
63 | if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { | 66 | if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { |
@@ -67,11 +70,13 @@ func (c RankController) RankTypeForbidAllow() { | @@ -67,11 +70,13 @@ func (c RankController) RankTypeForbidAllow() { | ||
67 | } | 70 | } |
68 | var err error | 71 | var err error |
69 | companyid := c.GetCompanyId() | 72 | companyid := c.GetCompanyId() |
70 | - switch param.status { | 73 | + switch param.Status { |
71 | case 1: | 74 | case 1: |
72 | err = serverank.ForbidRank(param.Id, companyid) | 75 | err = serverank.ForbidRank(param.Id, companyid) |
73 | case 2: | 76 | case 2: |
74 | err = serverank.AllowRank(param.Id, companyid) | 77 | err = serverank.AllowRank(param.Id, companyid) |
78 | + default: | ||
79 | + err = protocol.NewErrWithMessage("1") | ||
75 | } | 80 | } |
76 | msg = protocol.NewReturnResponse(nil, err) | 81 | msg = protocol.NewReturnResponse(nil, err) |
77 | return | 82 | return |
@@ -116,12 +121,29 @@ func (c RankController) RankSeasonAdd() { | @@ -116,12 +121,29 @@ func (c RankController) RankSeasonAdd() { | ||
116 | msg = protocol.BadRequestParam("1") | 121 | msg = protocol.BadRequestParam("1") |
117 | return | 122 | return |
118 | } | 123 | } |
124 | + param.Name = strings.TrimSpace(param.Name) | ||
125 | + if len(param.Name) == 0 { | ||
126 | + msg = protocol.BadRequestParam("1") | ||
127 | + return | ||
128 | + } | ||
119 | var ( | 129 | var ( |
120 | beginTime int64 | 130 | beginTime int64 |
121 | endTime int64 | 131 | endTime int64 |
122 | ) | 132 | ) |
133 | + t1, err := time.ParseInLocation("2006-01-02", param.BeginTime, time.Local) | ||
134 | + if err != nil { | ||
135 | + msg = protocol.BadRequestParam("1") | ||
136 | + return | ||
137 | + } | ||
138 | + beginTime = t1.Unix() | ||
139 | + t2, err := time.ParseInLocation("2006-01-02", param.EndTime, time.Local) | ||
140 | + if err != nil { | ||
141 | + msg = protocol.BadRequestParam("1") | ||
142 | + return | ||
143 | + } | ||
144 | + endTime = t2.Unix() + 86399 //60*60*24-1 | ||
123 | companyid := c.GetCompanyId() | 145 | companyid := c.GetCompanyId() |
124 | - err := serverank.AddRankPeriod(param.RankTypeId, beginTime, endTime, param.Name, companyid) | 146 | + err = serverank.AddRankPeriod(param.RankTypeId, beginTime, endTime, param.Name, companyid) |
125 | msg = protocol.NewReturnResponse(nil, err) | 147 | msg = protocol.NewReturnResponse(nil, err) |
126 | return | 148 | return |
127 | } | 149 | } |
@@ -145,12 +167,31 @@ func (c RankController) RankSeasonEdit() { | @@ -145,12 +167,31 @@ func (c RankController) RankSeasonEdit() { | ||
145 | msg = protocol.BadRequestParam("1") | 167 | msg = protocol.BadRequestParam("1") |
146 | return | 168 | return |
147 | } | 169 | } |
170 | + param.Name = strings.TrimSpace(param.Name) | ||
171 | + if len(param.Name) == 0 { | ||
172 | + msg = protocol.BadRequestParam("1") | ||
173 | + return | ||
174 | + } | ||
148 | var ( | 175 | var ( |
149 | beginTime int64 | 176 | beginTime int64 |
150 | endTime int64 | 177 | endTime int64 |
151 | ) | 178 | ) |
179 | + t1, err := time.ParseInLocation("2006-01-02", param.BeginTime, time.Local) | ||
180 | + if err != nil { | ||
181 | + msg = protocol.BadRequestParam("1") | ||
182 | + return | ||
183 | + } | ||
184 | + beginTime = t1.Unix() | ||
185 | + t2, err := time.ParseInLocation("2006-01-02", param.EndTime, time.Local) | ||
186 | + if err != nil { | ||
187 | + msg = protocol.BadRequestParam("1") | ||
188 | + return | ||
189 | + } | ||
190 | + | ||
191 | + endTime = t2.Unix() + 86399 //60*60*24-1 | ||
152 | companyid := c.GetCompanyId() | 192 | companyid := c.GetCompanyId() |
153 | - err := serverank.EditRankPeriod(param.Id, beginTime, endTime, param.Name, companyid) | 193 | + fmt.Println(beginTime, endTime) |
194 | + err = serverank.EditRankPeriod(param.Id, beginTime, endTime, param.Name, companyid) | ||
154 | msg = protocol.NewReturnResponse(nil, err) | 195 | msg = protocol.NewReturnResponse(nil, err) |
155 | return | 196 | return |
156 | } | 197 | } |
@@ -259,6 +300,37 @@ func (c RankController) RankRangeEdit() { | @@ -259,6 +300,37 @@ func (c RankController) RankRangeEdit() { | ||
259 | return | 300 | return |
260 | } | 301 | } |
261 | 302 | ||
303 | +//RankRangeForbidAllow ... | ||
304 | +//@router /rank/range/forbid_allow | ||
305 | +func (c RankController) RankRangeForbidAllow() { | ||
306 | + var msg *protocol.ResponseMessage | ||
307 | + defer func() { | ||
308 | + c.ResposeJson(msg) | ||
309 | + }() | ||
310 | + type Parameter struct { | ||
311 | + Id int64 `json:"id"` | ||
312 | + Status int `json:"status"` | ||
313 | + } | ||
314 | + var param Parameter | ||
315 | + if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { | ||
316 | + log.Error("json 解析失败 err:%s", err) | ||
317 | + msg = protocol.BadRequestParam("1") | ||
318 | + return | ||
319 | + } | ||
320 | + var err error | ||
321 | + companyid := c.GetCompanyId() | ||
322 | + switch param.Status { | ||
323 | + case 1: | ||
324 | + err = serverank.ForbidRankRange(param.Id, companyid) | ||
325 | + case 2: | ||
326 | + err = serverank.AllowRankRange(param.Id, companyid) | ||
327 | + default: | ||
328 | + err = protocol.NewErrWithMessage("1") | ||
329 | + } | ||
330 | + msg = protocol.NewReturnResponse(nil, err) | ||
331 | + return | ||
332 | +} | ||
333 | + | ||
262 | //RankRangeInfo ... | 334 | //RankRangeInfo ... |
263 | //@router /rank/range/info | 335 | //@router /rank/range/info |
264 | func (c RankController) RankRangeInfo() { | 336 | func (c RankController) RankRangeInfo() { |
models/achievement.go
0 → 100644
1 | +package models | ||
2 | + | ||
3 | +import ( | ||
4 | + "errors" | ||
5 | + "fmt" | ||
6 | + "reflect" | ||
7 | + "strings" | ||
8 | + "time" | ||
9 | + | ||
10 | + "github.com/astaxie/beego/orm" | ||
11 | +) | ||
12 | + | ||
13 | +type Achievement struct { | ||
14 | + Id int `orm:"column(id);pk" description:"id 主键"` | ||
15 | + CompanyId int64 `orm:"column(company_id);null" description:"公司编号 表company.id"` | ||
16 | + DepartmentId int64 `orm:"column(department_id);null" description:"表department.id 部门id (创建成果指定的部门)"` | ||
17 | + UserCompanyId int64 `orm:"column(user_company_id)" description:"把握人 表user_company.id id"` | ||
18 | + ChanceTypeId int `orm:"column(chance_type_id);null" description:"表chance_type.id 机会类型 "` | ||
19 | + AuditTemplateId int `orm:"column(audit_template_id);null" description:"表audit_template.id 所属审批模板编号"` | ||
20 | + SourceContent string `orm:"column(source_content);null" description:"成果详情文本"` | ||
21 | + GraspScore float64 `orm:"column(grasp_score);digits(4);decimals(1)" description:"把握分"` | ||
22 | + UserGraspScore float64 `orm:"column(user_grasp_score);digits(4);decimals(1)" description:"把握人得分"` | ||
23 | + UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"` | ||
24 | + CreateAt time.Time `orm:"column(create_at);type(timestamp)" description:"创建时间"` | ||
25 | + ViewTotal int `orm:"column(view_total);null" description:"查看总数"` | ||
26 | + CommentTotal int `orm:"column(comment_total);null" description:"评论总数"` | ||
27 | + ZanTotal int `orm:"column(zan_total);null" description:"点赞总数"` | ||
28 | + Status int8 `orm:"column(status);null" description:"机会状态 1:开启 2:关闭 0:删除"` | ||
29 | + Images string `orm:"column(images);null" description:"图片 json"` | ||
30 | +} | ||
31 | + | ||
32 | +func (t *Achievement) TableName() string { | ||
33 | + return "achievement" | ||
34 | +} | ||
35 | + | ||
36 | +func init() { | ||
37 | + orm.RegisterModel(new(Achievement)) | ||
38 | +} | ||
39 | + | ||
40 | +// AddAchievement insert a new Achievement into database and returns | ||
41 | +// last inserted Id on success. | ||
42 | +func AddAchievement(m *Achievement) (id int64, err error) { | ||
43 | + o := orm.NewOrm() | ||
44 | + id, err = o.Insert(m) | ||
45 | + return | ||
46 | +} | ||
47 | + | ||
48 | +// GetAchievementById retrieves Achievement by Id. Returns error if | ||
49 | +// Id doesn't exist | ||
50 | +func GetAchievementById(id int) (v *Achievement, err error) { | ||
51 | + o := orm.NewOrm() | ||
52 | + v = &Achievement{Id: id} | ||
53 | + if err = o.Read(v); err == nil { | ||
54 | + return v, nil | ||
55 | + } | ||
56 | + return nil, err | ||
57 | +} | ||
58 | + | ||
59 | +// GetAllAchievement retrieves all Achievement matches certain condition. Returns empty list if | ||
60 | +// no records exist | ||
61 | +func GetAllAchievement(query map[string]string, fields []string, sortby []string, order []string, | ||
62 | + offset int64, limit int64) (ml []interface{}, err error) { | ||
63 | + o := orm.NewOrm() | ||
64 | + qs := o.QueryTable(new(Achievement)) | ||
65 | + // query k=v | ||
66 | + for k, v := range query { | ||
67 | + // rewrite dot-notation to Object__Attribute | ||
68 | + k = strings.Replace(k, ".", "__", -1) | ||
69 | + if strings.Contains(k, "isnull") { | ||
70 | + qs = qs.Filter(k, (v == "true" || v == "1")) | ||
71 | + } else { | ||
72 | + qs = qs.Filter(k, v) | ||
73 | + } | ||
74 | + } | ||
75 | + // order by: | ||
76 | + var sortFields []string | ||
77 | + if len(sortby) != 0 { | ||
78 | + if len(sortby) == len(order) { | ||
79 | + // 1) for each sort field, there is an associated order | ||
80 | + for i, v := range sortby { | ||
81 | + orderby := "" | ||
82 | + if order[i] == "desc" { | ||
83 | + orderby = "-" + v | ||
84 | + } else if order[i] == "asc" { | ||
85 | + orderby = v | ||
86 | + } else { | ||
87 | + return nil, errors.New("Error: Invalid order. Must be either [asc|desc]") | ||
88 | + } | ||
89 | + sortFields = append(sortFields, orderby) | ||
90 | + } | ||
91 | + qs = qs.OrderBy(sortFields...) | ||
92 | + } else if len(sortby) != len(order) && len(order) == 1 { | ||
93 | + // 2) there is exactly one order, all the sorted fields will be sorted by this order | ||
94 | + for _, v := range sortby { | ||
95 | + orderby := "" | ||
96 | + if order[0] == "desc" { | ||
97 | + orderby = "-" + v | ||
98 | + } else if order[0] == "asc" { | ||
99 | + orderby = v | ||
100 | + } else { | ||
101 | + return nil, errors.New("Error: Invalid order. Must be either [asc|desc]") | ||
102 | + } | ||
103 | + sortFields = append(sortFields, orderby) | ||
104 | + } | ||
105 | + } else if len(sortby) != len(order) && len(order) != 1 { | ||
106 | + return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1") | ||
107 | + } | ||
108 | + } else { | ||
109 | + if len(order) != 0 { | ||
110 | + return nil, errors.New("Error: unused 'order' fields") | ||
111 | + } | ||
112 | + } | ||
113 | + | ||
114 | + var l []Achievement | ||
115 | + qs = qs.OrderBy(sortFields...) | ||
116 | + if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil { | ||
117 | + if len(fields) == 0 { | ||
118 | + for _, v := range l { | ||
119 | + ml = append(ml, v) | ||
120 | + } | ||
121 | + } else { | ||
122 | + // trim unused fields | ||
123 | + for _, v := range l { | ||
124 | + m := make(map[string]interface{}) | ||
125 | + val := reflect.ValueOf(v) | ||
126 | + for _, fname := range fields { | ||
127 | + m[fname] = val.FieldByName(fname).Interface() | ||
128 | + } | ||
129 | + ml = append(ml, m) | ||
130 | + } | ||
131 | + } | ||
132 | + return ml, nil | ||
133 | + } | ||
134 | + return nil, err | ||
135 | +} | ||
136 | + | ||
137 | +// UpdateAchievement updates Achievement by Id and returns error if | ||
138 | +// the record to be updated doesn't exist | ||
139 | +func UpdateAchievementById(m *Achievement) (err error) { | ||
140 | + o := orm.NewOrm() | ||
141 | + v := Achievement{Id: m.Id} | ||
142 | + // ascertain id exists in the database | ||
143 | + if err = o.Read(&v); err == nil { | ||
144 | + var num int64 | ||
145 | + if num, err = o.Update(m); err == nil { | ||
146 | + fmt.Println("Number of records updated in database:", num) | ||
147 | + } | ||
148 | + } | ||
149 | + return | ||
150 | +} | ||
151 | + | ||
152 | +// DeleteAchievement deletes Achievement by Id and returns error if | ||
153 | +// the record to be deleted doesn't exist | ||
154 | +func DeleteAchievement(id int) (err error) { | ||
155 | + o := orm.NewOrm() | ||
156 | + v := Achievement{Id: id} | ||
157 | + // ascertain id exists in the database | ||
158 | + if err = o.Read(&v); err == nil { | ||
159 | + var num int64 | ||
160 | + if num, err = o.Delete(&Achievement{Id: id}); err == nil { | ||
161 | + fmt.Println("Number of records deleted in database:", num) | ||
162 | + } | ||
163 | + } | ||
164 | + return | ||
165 | +} |
models/achievement_chance.go
0 → 100644
1 | +package models | ||
2 | + | ||
3 | +import ( | ||
4 | + "errors" | ||
5 | + "fmt" | ||
6 | + "reflect" | ||
7 | + "strings" | ||
8 | + "time" | ||
9 | + | ||
10 | + "github.com/astaxie/beego/orm" | ||
11 | +) | ||
12 | + | ||
13 | +type AchievementChance struct { | ||
14 | + Id int `orm:"column(id);pk"` | ||
15 | + AchievementId int64 `orm:"column(achievement_id);null" description:"成果编号 表achievement.id"` | ||
16 | + ChanceId int64 `orm:"column(chance_id);null" description:"机会编号 表chance.id"` | ||
17 | + ChanceCode string `orm:"column(chance_code);size(255);null" description:"机会编号 表chance.code"` | ||
18 | + CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"` | ||
19 | +} | ||
20 | + | ||
21 | +func (t *AchievementChance) TableName() string { | ||
22 | + return "achievement_chance" | ||
23 | +} | ||
24 | + | ||
25 | +func init() { | ||
26 | + orm.RegisterModel(new(AchievementChance)) | ||
27 | +} | ||
28 | + | ||
29 | +// AddAchievementChance insert a new AchievementChance into database and returns | ||
30 | +// last inserted Id on success. | ||
31 | +func AddAchievementChance(m *AchievementChance) (id int64, err error) { | ||
32 | + o := orm.NewOrm() | ||
33 | + id, err = o.Insert(m) | ||
34 | + return | ||
35 | +} | ||
36 | + | ||
37 | +// GetAchievementChanceById retrieves AchievementChance by Id. Returns error if | ||
38 | +// Id doesn't exist | ||
39 | +func GetAchievementChanceById(id int) (v *AchievementChance, err error) { | ||
40 | + o := orm.NewOrm() | ||
41 | + v = &AchievementChance{Id: id} | ||
42 | + if err = o.Read(v); err == nil { | ||
43 | + return v, nil | ||
44 | + } | ||
45 | + return nil, err | ||
46 | +} | ||
47 | + | ||
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 | ||
127 | +// the record to be updated doesn't exist | ||
128 | +func UpdateAchievementChanceById(m *AchievementChance) (err error) { | ||
129 | + o := orm.NewOrm() | ||
130 | + v := AchievementChance{Id: m.Id} | ||
131 | + // ascertain id exists in the database | ||
132 | + if err = o.Read(&v); err == nil { | ||
133 | + var num int64 | ||
134 | + if num, err = o.Update(m); err == nil { | ||
135 | + fmt.Println("Number of records updated in database:", num) | ||
136 | + } | ||
137 | + } | ||
138 | + return | ||
139 | +} | ||
140 | + | ||
141 | +// DeleteAchievementChance deletes AchievementChance by Id and returns error if | ||
142 | +// the record to be deleted doesn't exist | ||
143 | +func DeleteAchievementChance(id int) (err error) { | ||
144 | + o := orm.NewOrm() | ||
145 | + v := AchievementChance{Id: id} | ||
146 | + // ascertain id exists in the database | ||
147 | + if err = o.Read(&v); err == nil { | ||
148 | + var num int64 | ||
149 | + if num, err = o.Delete(&AchievementChance{Id: id}); err == nil { | ||
150 | + fmt.Println("Number of records deleted in database:", num) | ||
151 | + } | ||
152 | + } | ||
153 | + return | ||
154 | +} |
models/achievement_provider.go
0 → 100644
1 | +package models | ||
2 | + | ||
3 | +import ( | ||
4 | + "errors" | ||
5 | + "fmt" | ||
6 | + "reflect" | ||
7 | + "strings" | ||
8 | + "time" | ||
9 | + | ||
10 | + "github.com/astaxie/beego/orm" | ||
11 | +) | ||
12 | + | ||
13 | +type AchievementProvider struct { | ||
14 | + Id int `orm:"column(id);pk" description:"主键id"` | ||
15 | + AchievementId int64 `orm:"column(achievement_id);null" description:"表achievement.id"` | ||
16 | + 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:"把握人得分"` | ||
18 | + CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"` | ||
19 | +} | ||
20 | + | ||
21 | +func (t *AchievementProvider) TableName() string { | ||
22 | + return "achievement_provider" | ||
23 | +} | ||
24 | + | ||
25 | +func init() { | ||
26 | + orm.RegisterModel(new(AchievementProvider)) | ||
27 | +} | ||
28 | + | ||
29 | +// AddAchievementProvider insert a new AchievementProvider into database and returns | ||
30 | +// last inserted Id on success. | ||
31 | +func AddAchievementProvider(m *AchievementProvider) (id int64, err error) { | ||
32 | + o := orm.NewOrm() | ||
33 | + id, err = o.Insert(m) | ||
34 | + return | ||
35 | +} | ||
36 | + | ||
37 | +// GetAchievementProviderById retrieves AchievementProvider by Id. Returns error if | ||
38 | +// Id doesn't exist | ||
39 | +func GetAchievementProviderById(id int) (v *AchievementProvider, err error) { | ||
40 | + o := orm.NewOrm() | ||
41 | + v = &AchievementProvider{Id: id} | ||
42 | + if err = o.Read(v); err == nil { | ||
43 | + return v, nil | ||
44 | + } | ||
45 | + return nil, err | ||
46 | +} | ||
47 | + | ||
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 | ||
127 | +// the record to be updated doesn't exist | ||
128 | +func UpdateAchievementProviderById(m *AchievementProvider) (err error) { | ||
129 | + o := orm.NewOrm() | ||
130 | + v := AchievementProvider{Id: m.Id} | ||
131 | + // ascertain id exists in the database | ||
132 | + if err = o.Read(&v); err == nil { | ||
133 | + var num int64 | ||
134 | + if num, err = o.Update(m); err == nil { | ||
135 | + fmt.Println("Number of records updated in database:", num) | ||
136 | + } | ||
137 | + } | ||
138 | + return | ||
139 | +} | ||
140 | + | ||
141 | +// DeleteAchievementProvider deletes AchievementProvider by Id and returns error if | ||
142 | +// the record to be deleted doesn't exist | ||
143 | +func DeleteAchievementProvider(id int) (err error) { | ||
144 | + o := orm.NewOrm() | ||
145 | + v := AchievementProvider{Id: id} | ||
146 | + // ascertain id exists in the database | ||
147 | + if err = o.Read(&v); err == nil { | ||
148 | + var num int64 | ||
149 | + if num, err = o.Delete(&AchievementProvider{Id: id}); err == nil { | ||
150 | + fmt.Println("Number of records deleted in database:", num) | ||
151 | + } | ||
152 | + } | ||
153 | + return | ||
154 | +} |
@@ -29,6 +29,11 @@ func init() { | @@ -29,6 +29,11 @@ func init() { | ||
29 | // AddRankItem insert a new NewRankItem into database and returns | 29 | // AddRankItem insert a new NewRankItem into database and returns |
30 | // last inserted Id on success. | 30 | // last inserted Id on success. |
31 | func AddRankItem(m []RankItem, om orm.Ormer) (successSum int64, err error) { | 31 | func AddRankItem(m []RankItem, om orm.Ormer) (successSum int64, err error) { |
32 | + nowTime := time.Now() | ||
33 | + for i := range m { | ||
34 | + m[i].CreateAt = nowTime | ||
35 | + m[i].UpdateAt = nowTime | ||
36 | + } | ||
32 | successSum, err = om.InsertMulti(10, &m) | 37 | successSum, err = om.InsertMulti(10, &m) |
33 | return | 38 | return |
34 | } | 39 | } |
@@ -52,7 +57,7 @@ func GetRankItemByCompanyid(companyid int64, rankTypeId int64) ([]RankItem, erro | @@ -52,7 +57,7 @@ func GetRankItemByCompanyid(companyid int64, rankTypeId int64) ([]RankItem, erro | ||
52 | o := orm.NewOrm() | 57 | o := orm.NewOrm() |
53 | _, err = o.QueryTable(&RankItem{}). | 58 | _, err = o.QueryTable(&RankItem{}). |
54 | Filter("company_id", companyid). | 59 | Filter("company_id", companyid). |
55 | - Filter("rank_yype_id", rankTypeId). | 60 | + Filter("rank_type_id", rankTypeId). |
56 | All(&data) | 61 | All(&data) |
57 | if err == orm.ErrNoRows { | 62 | if err == orm.ErrNoRows { |
58 | return data, nil | 63 | return data, nil |
@@ -74,7 +79,7 @@ func UpdateRankItemById(m *RankItem, cols []string, om orm.Ormer) (err error) { | @@ -74,7 +79,7 @@ func UpdateRankItemById(m *RankItem, cols []string, om orm.Ormer) (err error) { | ||
74 | m.UpdateAt = time.Now() | 79 | m.UpdateAt = time.Now() |
75 | var num int64 | 80 | var num int64 |
76 | if num, err = om.Update(m, cols...); err == nil { | 81 | if num, err = om.Update(m, cols...); err == nil { |
77 | - log.Info("Number of records updated in database:", num) | 82 | + log.Info("Number of records updated in database:%d", num) |
78 | } | 83 | } |
79 | return | 84 | return |
80 | } | 85 | } |
1 | package models | 1 | package models |
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | - "fmt" | 4 | + "oppmg/common/log" |
5 | "time" | 5 | "time" |
6 | 6 | ||
7 | "github.com/astaxie/beego/orm" | 7 | "github.com/astaxie/beego/orm" |
@@ -40,6 +40,8 @@ const ( | @@ -40,6 +40,8 @@ const ( | ||
40 | // last inserted Id on success. | 40 | // last inserted Id on success. |
41 | func AddRankPeriod(m *RankPeriod) (id int64, err error) { | 41 | func AddRankPeriod(m *RankPeriod) (id int64, err error) { |
42 | o := orm.NewOrm() | 42 | o := orm.NewOrm() |
43 | + m.CreateAt = time.Now() | ||
44 | + m.UpdateAt = time.Now() | ||
43 | id, err = o.Insert(m) | 45 | id, err = o.Insert(m) |
44 | return | 46 | return |
45 | } | 47 | } |
@@ -57,15 +59,16 @@ func GetRankPeriodById(id int64) (v *RankPeriod, err error) { | @@ -57,15 +59,16 @@ func GetRankPeriodById(id int64) (v *RankPeriod, err error) { | ||
57 | 59 | ||
58 | // UpdateNewRankPeriod updates RankPeriod by Id and returns error if | 60 | // UpdateNewRankPeriod updates RankPeriod by Id and returns error if |
59 | // the record to be updated doesn't exist | 61 | // the record to be updated doesn't exist |
60 | -func UpdateRankPeriodById(m *RankPeriod) (err error) { | 62 | +func UpdateRankPeriodById(m *RankPeriod, cols []string) (err error) { |
61 | o := orm.NewOrm() | 63 | o := orm.NewOrm() |
62 | - v := RankPeriod{Id: m.Id} | ||
63 | - // ascertain id exists in the database | ||
64 | - if err = o.Read(&v); err == nil { | ||
65 | - var num int64 | ||
66 | - if num, err = o.Update(m); err == nil { | ||
67 | - fmt.Println("Number of records updated in database:", num) | 64 | + m.UpdateAt = time.Now() |
65 | + if len(cols) > 0 { | ||
66 | + cols = append(cols, "UpdateAt") | ||
68 | } | 67 | } |
68 | + var num int64 | ||
69 | + if num, err = o.Update(m, cols...); err == nil { | ||
70 | + log.Info("Number of records updated in database:", num) | ||
69 | } | 71 | } |
72 | + | ||
70 | return | 73 | return |
71 | } | 74 | } |
@@ -18,6 +18,7 @@ type RankRange struct { | @@ -18,6 +18,7 @@ type RankRange struct { | ||
18 | CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"` | 18 | CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"` |
19 | UpdateAt time.Time `orm:"column(update_at);type(timestamp);null" description:"更新时间"` | 19 | UpdateAt time.Time `orm:"column(update_at);type(timestamp);null" description:"更新时间"` |
20 | SortNum int `orm:"column(sort_num)"` | 20 | SortNum int `orm:"column(sort_num)"` |
21 | + Status int8 `orm:"column(status)"` | ||
21 | } | 22 | } |
22 | 23 | ||
23 | func (t *RankRange) TableName() string { | 24 | func (t *RankRange) TableName() string { |
@@ -13,7 +13,7 @@ type RankType struct { | @@ -13,7 +13,7 @@ type RankType struct { | ||
13 | Name string `orm:"column(name)"` | 13 | Name string `orm:"column(name)"` |
14 | EnableStatus int8 `orm:"column(enable_status)"` | 14 | EnableStatus int8 `orm:"column(enable_status)"` |
15 | CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"` | 15 | CreateAt time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间"` |
16 | - UpdataAt time.Time `orm:"column(update_at);type(timestamp);null" description:"更新时间"` | 16 | + UpdateAt time.Time `orm:"column(update_at);type(timestamp);null" description:"更新时间"` |
17 | Type int8 `orm:"column(type)"` | 17 | Type int8 `orm:"column(type)"` |
18 | } | 18 | } |
19 | 19 | ||
@@ -43,7 +43,7 @@ func AddRank(m *RankType) (id int64, err error) { | @@ -43,7 +43,7 @@ func AddRank(m *RankType) (id int64, err error) { | ||
43 | o := orm.NewOrm() | 43 | o := orm.NewOrm() |
44 | nowTime := time.Now() | 44 | nowTime := time.Now() |
45 | m.CreateAt = nowTime | 45 | m.CreateAt = nowTime |
46 | - m.UpdataAt = nowTime | 46 | + m.UpdateAt = nowTime |
47 | id, err = o.Insert(m) | 47 | id, err = o.Insert(m) |
48 | return | 48 | return |
49 | } | 49 | } |
@@ -68,7 +68,7 @@ func UpdateRankById(m *RankType, cols []string, om ...orm.Ormer) (err error) { | @@ -68,7 +68,7 @@ func UpdateRankById(m *RankType, cols []string, om ...orm.Ormer) (err error) { | ||
68 | } else { | 68 | } else { |
69 | o = orm.NewOrm() | 69 | o = orm.NewOrm() |
70 | } | 70 | } |
71 | - m.UpdataAt = time.Now() | 71 | + m.UpdateAt = time.Now() |
72 | if len(cols) > 0 { | 72 | if len(cols) > 0 { |
73 | cols = append(cols, "UpdateAt") | 73 | cols = append(cols, "UpdateAt") |
74 | } | 74 | } |
@@ -4,8 +4,8 @@ package protocol | @@ -4,8 +4,8 @@ package protocol | ||
4 | type ResponseRankType struct { | 4 | type ResponseRankType struct { |
5 | Id int `json:"id" orm:"column(id)"` | 5 | Id int `json:"id" orm:"column(id)"` |
6 | Name string `json:"name" orm:"column(name)"` | 6 | Name string `json:"name" orm:"column(name)"` |
7 | - Status int8 `json:"status" orm:"column(status)"` | ||
8 | - RankType int8 `json:"rank_type" orm:"column(rank_type)"` | 7 | + EnableStatus int8 `json:"enable_status" orm:"column(enable_status)"` |
8 | + Type int8 `json:"type" orm:"column(type)"` | ||
9 | } | 9 | } |
10 | 10 | ||
11 | // ResponseRankSeasonList 赛季列表 | 11 | // ResponseRankSeasonList 赛季列表 |
@@ -15,7 +15,7 @@ type ResponseRankSeasonList struct { | @@ -15,7 +15,7 @@ type ResponseRankSeasonList struct { | ||
15 | } | 15 | } |
16 | type RankSeasonItem struct { | 16 | type RankSeasonItem struct { |
17 | Id int64 `json:"id" orm:"column(id)"` | 17 | Id int64 `json:"id" orm:"column(id)"` |
18 | - SeasonName string `json:"season_name" orm:"column(season_name)"` | 18 | + Name string `json:"name" orm:"column(name)"` |
19 | BeginTime string `json:"begin_time" orm:"column(begin_time)"` | 19 | BeginTime string `json:"begin_time" orm:"column(begin_time)"` |
20 | EndTime string `json:"end_time" orm:"column(end_time)"` | 20 | EndTime string `json:"end_time" orm:"column(end_time)"` |
21 | Status int8 `json:"status" orm:"column(status)"` | 21 | Status int8 `json:"status" orm:"column(status)"` |
@@ -104,15 +104,16 @@ func init() { | @@ -104,15 +104,16 @@ func init() { | ||
104 | beego.NSRouter("/allow_forbid", &controllers.AuditController{}, "post:AllowForbidAudit"), | 104 | beego.NSRouter("/allow_forbid", &controllers.AuditController{}, "post:AllowForbidAudit"), |
105 | ), | 105 | ), |
106 | beego.NSNamespace("/rank", | 106 | beego.NSNamespace("/rank", |
107 | - beego.NSRouter("/list", &controllers.RankController{}, "post:GetRankType"), | ||
108 | - beego.NSRouter("/edit", &controllers.RankController{}, "post:EditRankType"), | ||
109 | - beego.NSRouter("/forbid_allow", &controllers.RankController{}, "post:RankTypeForbidAllow"), | 107 | + beego.NSRouter("/type/list", &controllers.RankController{}, "post:GetRankType"), |
108 | + beego.NSRouter("/type/edit", &controllers.RankController{}, "post:EditRankType"), | ||
109 | + beego.NSRouter("/type/forbid_allow", &controllers.RankController{}, "post:RankTypeForbidAllow"), | ||
110 | beego.NSRouter("/season/add", &controllers.RankController{}, "post:RankSeasonAdd"), | 110 | beego.NSRouter("/season/add", &controllers.RankController{}, "post:RankSeasonAdd"), |
111 | beego.NSRouter("/season/list", &controllers.RankController{}, "post:RankSeasonList"), | 111 | beego.NSRouter("/season/list", &controllers.RankController{}, "post:RankSeasonList"), |
112 | beego.NSRouter("/season/edit", &controllers.RankController{}, "post:RankSeasonEdit"), | 112 | beego.NSRouter("/season/edit", &controllers.RankController{}, "post:RankSeasonEdit"), |
113 | beego.NSRouter("/range/list", &controllers.RankController{}, "post:RankRangeList"), | 113 | beego.NSRouter("/range/list", &controllers.RankController{}, "post:RankRangeList"), |
114 | beego.NSRouter("/range/edit", &controllers.RankController{}, "post:RankRangeEdit"), | 114 | beego.NSRouter("/range/edit", &controllers.RankController{}, "post:RankRangeEdit"), |
115 | beego.NSRouter("/range/add", &controllers.RankController{}, "post:RankRangeAdd"), | 115 | beego.NSRouter("/range/add", &controllers.RankController{}, "post:RankRangeAdd"), |
116 | + beego.NSRouter("/range/forbid_allow", &controllers.RankController{}, "post:RankRangeForbidAllow"), | ||
116 | beego.NSRouter("/range/info", &controllers.RankController{}, "post:RankRangeInfo"), | 117 | beego.NSRouter("/range/info", &controllers.RankController{}, "post:RankRangeInfo"), |
117 | beego.NSRouter("/range/sort", &controllers.RankController{}, "post:RankRangeSort"), | 118 | beego.NSRouter("/range/sort", &controllers.RankController{}, "post:RankRangeSort"), |
118 | beego.NSRouter("/item/list", &controllers.RankController{}, "post:RankItemList"), | 119 | beego.NSRouter("/item/list", &controllers.RankController{}, "post:RankItemList"), |
@@ -18,7 +18,7 @@ func GetRankList(companyid int64) []protocol.ResponseRankType { | @@ -18,7 +18,7 @@ func GetRankList(companyid int64) []protocol.ResponseRankType { | ||
18 | rspData = make([]protocol.ResponseRankType, 0) | 18 | rspData = make([]protocol.ResponseRankType, 0) |
19 | err error | 19 | err error |
20 | ) | 20 | ) |
21 | - sqlString := `SELECT id,name,status,rank_type FROM rank WHERE company_id=?` | 21 | + sqlString := `SELECT id,name,enable_status,type FROM rank_type WHERE company_id=?` |
22 | err = utils.ExecuteQueryAll(&rspData, sqlString, companyid) | 22 | err = utils.ExecuteQueryAll(&rspData, sqlString, companyid) |
23 | if err != nil { | 23 | if err != nil { |
24 | log.Error("获取榜单列表失败,err%s", err) | 24 | log.Error("获取榜单列表失败,err%s", err) |
@@ -148,7 +148,7 @@ func RankSeasonList(pageindex int, pagesize int, companyid int64) (protocol.Resp | @@ -148,7 +148,7 @@ func RankSeasonList(pageindex int, pagesize int, companyid int64) (protocol.Resp | ||
148 | var ( | 148 | var ( |
149 | err error | 149 | err error |
150 | listdata []protocol.RankSeasonItem | 150 | listdata []protocol.RankSeasonItem |
151 | - cnt int64 | 151 | + cnt int |
152 | ) | 152 | ) |
153 | rspData := protocol.ResponseRankSeasonList{ | 153 | rspData := protocol.ResponseRankSeasonList{ |
154 | ResponsePageInfo: protocol.ResponsePageInfo{ | 154 | ResponsePageInfo: protocol.ResponsePageInfo{ |
@@ -173,6 +173,8 @@ func RankSeasonList(pageindex int, pagesize int, companyid int64) (protocol.Resp | @@ -173,6 +173,8 @@ func RankSeasonList(pageindex int, pagesize int, companyid int64) (protocol.Resp | ||
173 | log.Error("EXCUTE SQL ERR:%s", err) | 173 | log.Error("EXCUTE SQL ERR:%s", err) |
174 | return rspData, nil | 174 | return rspData, nil |
175 | } | 175 | } |
176 | + rspData.TotalPage = cnt | ||
177 | + rspData.List = listdata | ||
176 | return rspData, err | 178 | return rspData, err |
177 | } | 179 | } |
178 | 180 | ||
@@ -184,8 +186,8 @@ func AddRankPeriod(rankTypeId int64, beginTime int64, endTime int64, name string | @@ -184,8 +186,8 @@ func AddRankPeriod(rankTypeId int64, beginTime int64, endTime int64, name string | ||
184 | CompanyId: companyid, | 186 | CompanyId: companyid, |
185 | SeasonName: name, | 187 | SeasonName: name, |
186 | RankTypeId: rankTypeId, | 188 | RankTypeId: rankTypeId, |
187 | - BeginTime: time.Unix(beginTime, 0), | ||
188 | - EndTime: time.Unix(endTime, 0), | 189 | + BeginTime: time.Unix(beginTime, 0).Local(), |
190 | + EndTime: time.Unix(endTime, 0).Local(), | ||
189 | Status: 0, | 191 | Status: 0, |
190 | } | 192 | } |
191 | _, err = models.AddRankPeriod(m) | 193 | _, err = models.AddRankPeriod(m) |
@@ -212,7 +214,7 @@ func EditRankPeriod(id int64, beginTime int64, endTime int64, name string, compa | @@ -212,7 +214,7 @@ func EditRankPeriod(id int64, beginTime int64, endTime int64, name string, compa | ||
212 | m.SeasonName = name | 214 | m.SeasonName = name |
213 | m.BeginTime = time.Unix(beginTime, 0) | 215 | m.BeginTime = time.Unix(beginTime, 0) |
214 | m.EndTime = time.Unix(endTime, 0) | 216 | m.EndTime = time.Unix(endTime, 0) |
215 | - err = models.UpdateRankPeriodById(m) | 217 | + err = models.UpdateRankPeriodById(m, []string{"SeasonName", "BeginTime", "EndTime"}) |
216 | if err != nil { | 218 | if err != nil { |
217 | log.Error("更新赛季失败;%s", err) | 219 | log.Error("更新赛季失败;%s", err) |
218 | } | 220 | } |
@@ -226,7 +228,7 @@ func GetRankRangeList(companyid int64) []protocol.RankRangeItem { | @@ -226,7 +228,7 @@ func GetRankRangeList(companyid int64) []protocol.RankRangeItem { | ||
226 | rspData = make([]protocol.RankRangeItem, 0) | 228 | rspData = make([]protocol.RankRangeItem, 0) |
227 | ) | 229 | ) |
228 | datasql := `SELECT a.id ,a.name,a.type FROM rank_range AS a WHERE company_id=?` | 230 | datasql := `SELECT a.id ,a.name,a.type FROM rank_range AS a WHERE company_id=?` |
229 | - err = utils.ExecuteQueryAll(rspData, datasql, companyid) | 231 | + err = utils.ExecuteQueryAll(&rspData, datasql, companyid) |
230 | if err != nil { | 232 | if err != nil { |
231 | log.Error("获取参与人列表失败:%s", err) | 233 | log.Error("获取参与人列表失败:%s", err) |
232 | } | 234 | } |
@@ -497,6 +499,7 @@ func GetRankItemEdit(companyid int64, rankTypeid int64, itemKey []string) error | @@ -497,6 +499,7 @@ func GetRankItemEdit(companyid int64, rankTypeid int64, itemKey []string) error | ||
497 | RankTypeId: rankTypeid, | 499 | RankTypeId: rankTypeid, |
498 | ItemName: AllRankItem[ii].ItemName, | 500 | ItemName: AllRankItem[ii].ItemName, |
499 | SortNum: i, | 501 | SortNum: i, |
502 | + ItemKey: itemKey[i], | ||
500 | } | 503 | } |
501 | newItems = append(newItems, m) | 504 | newItems = append(newItems, m) |
502 | break | 505 | break |
@@ -526,7 +529,7 @@ func GetRankItemEdit(companyid int64, rankTypeid int64, itemKey []string) error | @@ -526,7 +529,7 @@ func GetRankItemEdit(companyid int64, rankTypeid int64, itemKey []string) error | ||
526 | for i := range newItems { | 529 | for i := range newItems { |
527 | var has bool = false | 530 | var has bool = false |
528 | for ii := range rankitemData { | 531 | for ii := range rankitemData { |
529 | - if rankitemData[i].ItemKey == newItems[ii].ItemKey { | 532 | + if rankitemData[ii].ItemKey == newItems[i].ItemKey { |
530 | has = true | 533 | has = true |
531 | break | 534 | break |
532 | } | 535 | } |
@@ -538,15 +541,17 @@ func GetRankItemEdit(companyid int64, rankTypeid int64, itemKey []string) error | @@ -538,15 +541,17 @@ func GetRankItemEdit(companyid int64, rankTypeid int64, itemKey []string) error | ||
538 | o := orm.NewOrm() | 541 | o := orm.NewOrm() |
539 | o.Begin() | 542 | o.Begin() |
540 | //添加 | 543 | //添加 |
544 | + if len(addItems) > 0 { | ||
541 | _, err = models.AddRankItem(addItems, o) | 545 | _, err = models.AddRankItem(addItems, o) |
542 | if err != nil { | 546 | if err != nil { |
543 | o.Rollback() | 547 | o.Rollback() |
544 | log.Error("添加rank_item记录失败:%s", err) | 548 | log.Error("添加rank_item记录失败:%s", err) |
545 | return protocol.NewErrWithMessage("1") | 549 | return protocol.NewErrWithMessage("1") |
546 | } | 550 | } |
551 | + } | ||
547 | //更新 | 552 | //更新 |
548 | for i := range updateItems { | 553 | for i := range updateItems { |
549 | - err = models.UpdateRankItemById(&updateItems[i], []string{"SortNum"}, o) | 554 | + err = models.UpdateRankItemById(&updateItems[i], []string{"SortNum", "ItemName", "ItemKey"}, o) |
550 | if err != nil { | 555 | if err != nil { |
551 | o.Rollback() | 556 | o.Rollback() |
552 | log.Error("更新rank_item记录失败:%s", err) | 557 | log.Error("更新rank_item记录失败:%s", err) |
@@ -554,12 +559,51 @@ func GetRankItemEdit(companyid int64, rankTypeid int64, itemKey []string) error | @@ -554,12 +559,51 @@ func GetRankItemEdit(companyid int64, rankTypeid int64, itemKey []string) error | ||
554 | } | 559 | } |
555 | } | 560 | } |
556 | //删除 | 561 | //删除 |
562 | + if len(delItemIds) > 0 { | ||
557 | err = models.DeleteRanKItemByIds(delItemIds, o) | 563 | err = models.DeleteRanKItemByIds(delItemIds, o) |
558 | if err != nil { | 564 | if err != nil { |
559 | o.Rollback() | 565 | o.Rollback() |
560 | log.Error("删除rank_item记录失败:%s", err) | 566 | log.Error("删除rank_item记录失败:%s", err) |
561 | return protocol.NewErrWithMessage("1") | 567 | return protocol.NewErrWithMessage("1") |
562 | } | 568 | } |
569 | + } | ||
570 | + | ||
563 | o.Commit() | 571 | o.Commit() |
564 | return nil | 572 | return nil |
565 | } | 573 | } |
574 | + | ||
575 | +func ForbidRankRange(id int64, companyid int64) error { | ||
576 | + var ( | ||
577 | + err error | ||
578 | + rankRange *models.RankRange | ||
579 | + ) | ||
580 | + rankRange, err = models.GetRankRangeById(id) | ||
581 | + if err != nil { | ||
582 | + log.Error("获取rank_range数据失败:%s", err) | ||
583 | + return protocol.NewErrWithMessage("1") | ||
584 | + } | ||
585 | + rankRange.Status = 1 | ||
586 | + err = models.UpdateRankRangeById(rankRange, []string{"Status"}) | ||
587 | + if err != nil { | ||
588 | + log.Error("更新rank_range数据失败:%s", err) | ||
589 | + } | ||
590 | + return nil | ||
591 | +} | ||
592 | + | ||
593 | +func AllowRankRange(id int64, companyid int64) error { | ||
594 | + var ( | ||
595 | + err error | ||
596 | + rankRange *models.RankRange | ||
597 | + ) | ||
598 | + rankRange, err = models.GetRankRangeById(id) | ||
599 | + if err != nil { | ||
600 | + log.Error("获取rank_range数据失败:%s", err) | ||
601 | + return protocol.NewErrWithMessage("1") | ||
602 | + } | ||
603 | + rankRange.Status = 0 | ||
604 | + err = models.UpdateRankRangeById(rankRange, []string{"Status"}) | ||
605 | + if err != nil { | ||
606 | + log.Error("更新rank_range数据失败:%s", err) | ||
607 | + } | ||
608 | + return nil | ||
609 | +} |
-
请 注册 或 登录 后发表评论