作者 yangfu

我的审核修改

@@ -28,16 +28,20 @@ @@ -28,16 +28,20 @@
28 |功能|完成状态|时间|接口路径 28 |功能|完成状态|时间|接口路径
29 |---|---|----|----| 29 |---|---|----|----|
30 |我的机会-我提交的| | |/v1/chance/mySubmitChance| 30 |我的机会-我提交的| | |/v1/chance/mySubmitChance|
31 -|机会详情| | |v1/chance/detail|  
32 -|机会更新| | | |  
33 -|机会删除| | |/v1/chance/delete|  
34 -|我的机会-我的审核| | | |  
35 -|机会审核| | | /v1/chance/approve|  
36 -|机会修改评分| | |/v1/chance/changeScore|  
37 -|机会修改公开状态| | |/v1/chance/changePublish|  
38 -|计算发现分| | |/v1/chance/calculateScore|  
39 -|用户机会权限| | | | 31 +|我的机会-我的审核| | |/v1/chance/myApproveChance|
  32 +|机会-详情| | |v1/chance/detail|
  33 +|机会-更新| | | |
  34 +|机会-删除| | |/v1/chance/delete|
  35 +|机会-审核| | | /v1/chance/approve|
  36 +|机会-修改评分| | |/v1/chance/changeScore|
  37 +|机会-修改公开状态| | |/v1/chance/changePublish|
  38 +|机会-计算发现分| | |/v1/chance/calculateScore|
  39 +|配置-用户机会权限| | | |
  40 +|配置-评分| | |v1/config/score|
  41 +|消息-机会审核消息| | | |
40 |机会池| | | | 42 |机会池| | | |
  43 +|我的机会-我的收藏| | |/v1/chance/|
  44 +|我的机会-我的点赞| | |/v1/chance/|
41 |消息-点赞| | |v1/message/msgInteractive| 45 |消息-点赞| | |v1/message/msgInteractive|
42 |消息-评论| | |v1/message/msgInteractive| 46 |消息-评论| | |v1/message/msgInteractive|
43 |机会评论列表| | |/v1/chance/comments| 47 |机会评论列表| | |/v1/chance/comments|
@@ -51,10 +55,5 @@ @@ -51,10 +55,5 @@
51 |机会审核消息| | |v1/message/msgInteractive| 55 |机会审核消息| | |v1/message/msgInteractive|
52 |我提交的机会| | | v1/chance/chances| 56 |我提交的机会| | | v1/chance/chances|
53 |我审核的机会| | | v1/chance/chances| 57 |我审核的机会| | | v1/chance/chances|
54 -|机会详情| | | |  
55 -|待抓住机会列表| | |v1/chance/chances|  
56 -|配置-评分| | |v1/config/score|  
57 -|机会审核| | |v1/chance/audit|  
58 -|机会修改评分| | |v1/chance/editScore|  
59 -|机会修改公开状态| | |v1/chance/editStatus| 58 +
60 59
@@ -231,7 +231,7 @@ func (this *ChanceController) ChanceSubmit() { @@ -231,7 +231,7 @@ func (this *ChanceController) ChanceSubmit() {
231 msg = protocol.NewReturnResponse(chance.ChanceSubmit(header, request)) 231 msg = protocol.NewReturnResponse(chance.ChanceSubmit(header, request))
232 } 232 }
233 233
234 -//ChanceStatistics 234 +//ChanceStatistics 机会统计
235 //@router /statistics [post] 235 //@router /statistics [post]
236 func (this *ChanceController) ChanceStatistics() { 236 func (this *ChanceController) ChanceStatistics() {
237 var msg *protocol.ResponseMessage 237 var msg *protocol.ResponseMessage
@@ -150,7 +150,7 @@ func ExecuteQueryOneWithOrmer(o orm.Ormer, result interface{}, sqlstr string, pa @@ -150,7 +150,7 @@ func ExecuteQueryOneWithOrmer(o orm.Ormer, result interface{}, sqlstr string, pa
150 150
151 //ExecuteQuerySql 执行原生sql查询多条记录 151 //ExecuteQuerySql 执行原生sql查询多条记录
152 func ExecuteQueryAll(result interface{}, sqlstr string, param ...interface{}) error { 152 func ExecuteQueryAll(result interface{}, sqlstr string, param ...interface{}) error {
153 - PrintLogSql(sqlstr, param...) 153 + //PrintLogSql(sqlstr, param...)
154 var err error 154 var err error
155 o := orm.NewOrm() 155 o := orm.NewOrm()
156 err = ExecuteQueryAllWithOrmer(o, result, sqlstr, param) 156 err = ExecuteQueryAllWithOrmer(o, result, sqlstr, param)
@@ -109,12 +109,12 @@ order by create_at desc @@ -109,12 +109,12 @@ order by create_at desc
109 limit ? 109 limit ?
110 ) a left JOIN chance_data b on a.id =b.chance_id` 110 ) a left JOIN chance_data b on a.id =b.chance_id`
111 111
112 - sqlCount := `select count(0) from ( 112 + sqlCount := fmt.Sprintf(`select count(0) from (
113 select id,user_id,create_at,source_content from chance 113 select id,user_id,create_at,source_content from chance
114 -where user_id=? and company_id=? and review_status in (?) 114 +where user_id=? and company_id=? and review_status in (%v)
115 order by create_at desc 115 order by create_at desc
116 -) a left JOIN chance_data b on a.id =b.chance_id`  
117 - if err = utils.ExecuteQueryOne(&total, sqlCount, uid, cid, utils.JoinInt8s(reviewStatus, ",")); err != nil { 116 +) a left JOIN chance_data b on a.id =b.chance_id`, utils.JoinInt8s(reviewStatus, ","))
  117 + if err = utils.ExecuteQueryOne(&total, sqlCount, uid, cid); err != nil {
118 return 118 return
119 } 119 }
120 if v != nil { 120 if v != nil {
@@ -126,22 +126,22 @@ order by create_at desc @@ -126,22 +126,22 @@ order by create_at desc
126 } 126 }
127 127
128 func GetChanceMyApproveChance(uid, cid int64, reviewStatus []int8, lastId int64, pageSize int, v interface{}) (total int, err error) { 128 func GetChanceMyApproveChance(uid, cid int64, reviewStatus []int8, lastId int64, pageSize int, v interface{}) (total int, err error) {
129 - sql := `select a.*,b.images,b.speechs,b.videos from ( 129 + sql := fmt.Sprintf(`select a.*,b.images,b.speechs,b.videos from (
130 select a.*,b.user_id,b.source_content,b.enable_status from ( 130 select a.*,b.user_id,b.source_content,b.enable_status from (
131 select id,approve_time,approve_data,uid,chance_id,approve_message,create_at process_create_time 131 select id,approve_time,approve_data,uid,chance_id,approve_message,create_at process_create_time
132 -from audit_flow_process where uid=? and enable_status =1 and review_status in (?) and (?=0 or id>?) 132 +from audit_flow_process where uid=? and enable_status =1 and review_status in (%v) and (?=0 or id>?)
133 )a left outer join chance b on a.chance_id = b.id 133 )a left outer join chance b on a.chance_id = b.id
134 )a left outer join chance_data b on a.chance_id =b.chance_id 134 )a left outer join chance_data b on a.chance_id =b.chance_id
135 order by a.approve_time desc 135 order by a.approve_time desc
136 -LIMIT ?` 136 +LIMIT ?`, utils.JoinInt8s(reviewStatus, ","))
137 137
138 - sqlCount := `select count(0)  
139 -from audit_flow_process where uid=? and enable_status =1 and review_status in (?) `  
140 - if err = utils.ExecuteQueryOne(&total, sqlCount, uid, utils.JoinInt8s(reviewStatus, ",")); err != nil { 138 + sqlCount := fmt.Sprintf(`select count(0)
  139 +from audit_flow_process where uid=? and enable_status =1 and review_status in (%v) `, utils.JoinInt8s(reviewStatus, ","))
  140 + if err = utils.ExecuteQueryOne(&total, sqlCount, uid); err != nil {
141 return 141 return
142 } 142 }
143 if v != nil { 143 if v != nil {
144 - if err = utils.ExecuteQueryAll(v, sql, uid, utils.JoinInt8s(reviewStatus, ","), lastId, lastId, pageSize); err != nil { 144 + if err = utils.ExecuteQueryAll(v, sql, uid, lastId, lastId, pageSize); err != nil {
145 return 145 return
146 } 146 }
147 } 147 }
@@ -53,7 +53,7 @@ const ( @@ -53,7 +53,7 @@ const (
53 ChanceStatusClose = 2 //关闭 53 ChanceStatusClose = 2 //关闭
54 ) 54 )
55 55
56 -/*Favorite */ 56 +/*Favorite 我的收藏/点赞*/
57 type FavoriteRequest struct { 57 type FavoriteRequest struct {
58 ObjectType int `json:"object_type" valid:"Required"` //收藏 点赞 58 ObjectType int `json:"object_type" valid:"Required"` //收藏 点赞
59 ChanceType int `json:"chance_type" valid:"Required"` 59 ChanceType int `json:"chance_type" valid:"Required"`
@@ -66,29 +66,7 @@ type FavoriteResponse struct { @@ -66,29 +66,7 @@ type FavoriteResponse struct {
66 Lists []*ChanceFavorite `json:"lists"` 66 Lists []*ChanceFavorite `json:"lists"`
67 } 67 }
68 68
69 -type ChanceFavorite struct {  
70 - Id int64 `json:"id"`  
71 - Favorite interface{} `json:"favorite"`  
72 -}  
73 -  
74 -type ChanceDetail struct {  
75 - Id int64 `json:"id"`  
76 - Provider *BaseUserInfo `json:"provider"`  
77 - IsCollect bool `json:"is_collect"`  
78 - IsZan bool `json:"is_zan"`  
79 - Content string `json:"content"`  
80 - ChanceType int `json:"chance_type"`  
81 -  
82 - //图片  
83 - //视频  
84 - //语音  
85 -  
86 - ViewTotal int `json:"view_total"`  
87 - CommentTotal int `json:"comment_total"`  
88 - ZanTotal int `json:"zan_total"`  
89 -}  
90 -  
91 -/*SympathyAction */ 69 +/*SympathyAction 点赞,收藏*/
92 type SympathyActionRequest struct { 70 type SympathyActionRequest struct {
93 MarkType int `json:"mark_type" valid:"Required"` // 1.赞 2.收藏 71 MarkType int `json:"mark_type" valid:"Required"` // 1.赞 2.收藏
94 SourceType int `json:"source_type" valid:"Required"` //protocol.SourceType //机会 评论 72 SourceType int `json:"source_type" valid:"Required"` //protocol.SourceType //机会 评论
@@ -113,27 +91,7 @@ type TemplatesResponse struct { @@ -113,27 +91,7 @@ type TemplatesResponse struct {
113 Templates []*Template `json:"list"` 91 Templates []*Template `json:"list"`
114 } 92 }
115 93
116 -//模板  
117 -type Template struct {  
118 - Id int64 `json:"id"`  
119 - Name string `json:"name"`  
120 - Doc string `json:"doc"`  
121 - Icon string `json:"icon"`  
122 - FormList []*Form `json:"formList"`  
123 - Link string `json:"link"` //示例  
124 -}  
125 -  
126 -//表单  
127 -type Form struct {  
128 - Id int `json:"id"`  
129 - Label string `json:"label"`  
130 - InputType string `json:"inputType"`  
131 - SectionType int8 `json:"sectionType"`  
132 - Value string `json:"value"`  
133 - Required int8 `json:"required"`  
134 -}  
135 -  
136 -/*ChanceExample*/ 94 +/*ChanceExample 机会示例*/
137 type ChanceExampleRequest struct { 95 type ChanceExampleRequest struct {
138 TemplateId int `json:"templateId" valid:"Required"` 96 TemplateId int `json:"templateId" valid:"Required"`
139 } 97 }
@@ -141,6 +99,7 @@ type ChanceExampleResponse struct { @@ -141,6 +99,7 @@ type ChanceExampleResponse struct {
141 Content string `json:"content"` 99 Content string `json:"content"`
142 } 100 }
143 101
  102 +/*提交机会*/
144 type ChanceSubmitRequest struct { 103 type ChanceSubmitRequest struct {
145 Id int64 `json:"id"` // = 0添加 >0 编辑 104 Id int64 `json:"id"` // = 0添加 >0 编辑
146 AuditTemplateId int64 `json:"auditTemplateId" valid:"Required"` 105 AuditTemplateId int64 `json:"auditTemplateId" valid:"Required"`
@@ -151,29 +110,9 @@ type ChanceSubmitRequest struct { @@ -151,29 +110,9 @@ type ChanceSubmitRequest struct {
151 Videos []Video `json:"videos"` 110 Videos []Video `json:"videos"`
152 RelatedDepartment int64 `json:"relatedDepartments" valid:"Required"` 111 RelatedDepartment int64 `json:"relatedDepartments" valid:"Required"`
153 } 112 }
154 -  
155 type ChanceSubmitResponse struct { 113 type ChanceSubmitResponse struct {
156 } 114 }
157 115
158 -type Speech struct {  
159 - Path string `json:"path"`  
160 - Duration int `json:"duration"`  
161 -}  
162 -type Picture struct {  
163 - Path string `json:"path"`  
164 - W int `json:"w"`  
165 - H int `json:"h"`  
166 -}  
167 -type Video struct {  
168 - Path string `json:"path"`  
169 - Cover Cover `json:"cover"` //封面  
170 - Duration int `json:"duration"`  
171 -}  
172 -  
173 -type AuditConfig struct {  
174 - NoApprover int8 `json:"no_approver"` //审核人空时:【1:自动通过】【2:转交给管理员】  
175 -}  
176 -  
177 /*ChanceStatistics 首页-机会池统计*/ 116 /*ChanceStatistics 首页-机会池统计*/
178 type ChanceStatisticsRequest struct { 117 type ChanceStatisticsRequest struct {
179 } 118 }
@@ -182,12 +121,6 @@ type ChanceStatisticsResponse struct { @@ -182,12 +121,6 @@ type ChanceStatisticsResponse struct {
182 List []ChanceTotalItem `json:"list"` 121 List []ChanceTotalItem `json:"list"`
183 } 122 }
184 123
185 -type ChanceTotalItem struct {  
186 - Id int `json:"id"` //类型  
187 - Name string `json:"name"` //总数  
188 - Total int `json:"total"`  
189 -}  
190 -  
191 /*MyChance 我的机会*/ 124 /*MyChance 我的机会*/
192 type MySubmitChanceRequest struct { 125 type MySubmitChanceRequest struct {
193 LastId int64 `json:"lastId"` 126 LastId int64 `json:"lastId"`
@@ -199,31 +132,6 @@ type MySubmitChanceResponse struct { @@ -199,31 +132,6 @@ type MySubmitChanceResponse struct {
199 Total int `json:"total"` 132 Total int `json:"total"`
200 } 133 }
201 134
202 -/*MyApproveChance 我审核的机会*/  
203 -type MyApproveChanceRequest struct {  
204 - LastId int64 `json:"lastId"`  
205 - PageSize int `json:"pageSize" valid:"Required"`  
206 - ReviewStatus int8 `json:"reviewStatus"` //审核状态  
207 -}  
208 -type MyApproveChanceResponse struct {  
209 - List []CommonListItem `json:"list"`  
210 - Total int `json:"total"`  
211 -}  
212 -  
213 -//机会列表 通用项  
214 -type CommonListItem struct {  
215 - Chance ChanceItem `json:"chance,omitempty"` //机会详情  
216 - ChanceData interface{} `json:"chanceData,omitempty"` //机会数据(是否收藏/点赞 浏览数 点赞总数 评论数)ChanceData  
217 - Approve interface{} `json:"approve,omitempty"` //审核人 审核信息(时间) Approve  
218 - ApproveData interface{} `json:"approveData,omitempty"` //审核数据(公开状态 评分) ApproveData  
219 - Message interface{} `json:"message,omitempty"`  
220 - Comment interface{} `json:"comment,omitempty"`  
221 - ChanceStatus int `json:"chanceStatus"` //0:正常 1.删除 2.关闭  
222 -}  
223 -  
224 -type ChanceData struct {  
225 -}  
226 -  
227 //我的机会列表 135 //我的机会列表
228 type ChanceItemOrm struct { 136 type ChanceItemOrm struct {
229 Id int64 `orm:"column(id)"` 137 Id int64 `orm:"column(id)"`
@@ -236,14 +144,16 @@ type ChanceItemOrm struct { @@ -236,14 +144,16 @@ type ChanceItemOrm struct {
236 144
237 ApproveData string `json:"approveData"` //审核数据 145 ApproveData string `json:"approveData"` //审核数据
238 } 146 }
239 -type ChanceItem struct {  
240 - Id int64 `json:"id"`  
241 - CreateTime int64 `json:"createTime"`  
242 - Provider *BaseUserInfo `json:"provider"`  
243 - FormList []*Form `json:"formList" valid:"Required"`  
244 - Speechs []Speech `json:"speechs"`  
245 - Pictures []Picture `json:"pictures"`  
246 - Videos []Video `json:"videos"` 147 +
  148 +/*MyApproveChance 我审核的机会*/
  149 +type MyApproveChanceRequest struct {
  150 + LastId int64 `json:"lastId"`
  151 + PageSize int `json:"pageSize" valid:"Required"`
  152 + ReviewStatus int8 `json:"reviewStatus"` //审核状态
  153 +}
  154 +type MyApproveChanceResponse struct {
  155 + List []CommonListItem `json:"list"`
  156 + Total int `json:"total"`
247 } 157 }
248 158
249 //我的审核机会列表 159 //我的审核机会列表
@@ -270,18 +180,12 @@ type ChanceDetailRequest struct { @@ -270,18 +180,12 @@ type ChanceDetailRequest struct {
270 } 180 }
271 type ChanceDetailResponse struct { 181 type ChanceDetailResponse struct {
272 ChanceDetail ChanceItem `json:"chance"` 182 ChanceDetail ChanceItem `json:"chance"`
273 - ApproveData *ApproveData `json:"publicData"` 183 + ChanceData interface{} `json:"chanceData,omitempty"` //机会数据(是否收藏/点赞 浏览数 点赞总数 评论数)ChanceData
  184 + ApproveData *ApproveData `json:"approveData"`
274 ApproveProcess []*ProcessItem `json:"approveProcess"` 185 ApproveProcess []*ProcessItem `json:"approveProcess"`
275 ApproveAccess *ApproveAccess `json:"approveAccess"` // 186 ApproveAccess *ApproveAccess `json:"approveAccess"` //
276 } 187 }
277 188
278 -/*ChanceDelete 机会删除*/  
279 -type ChanceDeleteRequest struct {  
280 - Id int64 `json:"id"` //机会编号  
281 -}  
282 -type ChanceDeleteResponse struct {  
283 -}  
284 -  
285 /*ChanceChangePublish 修改公开状态*/ 189 /*ChanceChangePublish 修改公开状态*/
286 type ChanceChangePublishRequest struct { 190 type ChanceChangePublishRequest struct {
287 ChanceId int64 `json:"chanceId"` //机会编号 191 ChanceId int64 `json:"chanceId"` //机会编号
@@ -305,3 +209,113 @@ type ChanceCalculateScoreRequest struct { @@ -305,3 +209,113 @@ type ChanceCalculateScoreRequest struct {
305 type ChanceCalculateScoreResponse struct { 209 type ChanceCalculateScoreResponse struct {
306 DiscoveryScore float64 `json:"discoveryScore"` //发现分 210 DiscoveryScore float64 `json:"discoveryScore"` //发现分
307 } 211 }
  212 +
  213 +/*ChanceDelete 机会删除*/
  214 +type ChanceDeleteRequest struct {
  215 + Id int64 `json:"id"` //机会编号
  216 +}
  217 +type ChanceDeleteResponse struct {
  218 +}
  219 +
  220 +type ChanceFavorite struct {
  221 + Id int64 `json:"id"`
  222 + Favorite interface{} `json:"favorite"`
  223 +}
  224 +
  225 +//机会详情
  226 +type ChanceDetail struct {
  227 + Id int64 `json:"id"`
  228 + Provider *BaseUserInfo `json:"provider"`
  229 + IsCollect bool `json:"is_collect"`
  230 + IsZan bool `json:"is_zan"`
  231 + Content string `json:"content"`
  232 + ChanceType int `json:"chance_type"`
  233 +
  234 + //图片
  235 + //视频
  236 + //语音
  237 +
  238 + ViewTotal int `json:"view_total"`
  239 + CommentTotal int `json:"comment_total"`
  240 + ZanTotal int `json:"zan_total"`
  241 +}
  242 +
  243 +//模板
  244 +type Template struct {
  245 + Id int64 `json:"id"`
  246 + Name string `json:"name"`
  247 + Doc string `json:"doc"`
  248 + Icon string `json:"icon"`
  249 + FormList []*Form `json:"formList"`
  250 + Link string `json:"link"` //示例
  251 +}
  252 +
  253 +//表单
  254 +type Form struct {
  255 + Id int `json:"id"`
  256 + Label string `json:"label"`
  257 + InputType string `json:"inputType"`
  258 + SectionType int8 `json:"sectionType"`
  259 + Value string `json:"value"`
  260 + Required int8 `json:"required"`
  261 +}
  262 +
  263 +//语音
  264 +type Speech struct {
  265 + Path string `json:"path"`
  266 + Duration int `json:"duration"`
  267 +}
  268 +
  269 +//图片
  270 +type Picture struct {
  271 + Path string `json:"path"`
  272 + W int `json:"w"`
  273 + H int `json:"h"`
  274 +}
  275 +
  276 +//视频
  277 +type Video struct {
  278 + Path string `json:"path"`
  279 + Cover Cover `json:"cover"` //封面
  280 + Duration int `json:"duration"`
  281 +}
  282 +
  283 +//审批配置
  284 +type AuditConfig struct {
  285 + NoApprover int8 `json:"no_approver"` //审核人空时:【1:自动通过】【2:转交给管理员】
  286 +}
  287 +
  288 +//机会池 - 统计
  289 +type ChanceTotalItem struct {
  290 + Id int `json:"id"` //类型
  291 + Name string `json:"name"` //总数
  292 + Total int `json:"total"`
  293 +}
  294 +
  295 +//机会列表 通用项
  296 +type CommonListItem struct {
  297 + Chance ChanceItem `json:"chance,omitempty"` //机会详情
  298 + ChanceData interface{} `json:"chanceData,omitempty"` //机会数据(是否收藏/点赞 浏览数 点赞总数 评论数)ChanceData
  299 + Approve interface{} `json:"approve,omitempty"` //审核人 审核信息(时间) Approve
  300 + ApproveData interface{} `json:"approveData,omitempty"` //审核数据(公开状态 评分) ApproveData
  301 + Message interface{} `json:"message,omitempty"` //消息
  302 + Comment interface{} `json:"comment,omitempty"` //评论
  303 + ChanceStatus int `json:"chanceStatus"` //0:正常 1.删除 2.关闭
  304 +}
  305 +type ChanceItem struct {
  306 + Id int64 `json:"id"`
  307 + CreateTime int64 `json:"createTime"`
  308 + Provider *BaseUserInfo `json:"provider"`
  309 + FormList []*Form `json:"formList" valid:"Required"`
  310 + Speechs []Speech `json:"speechs"`
  311 + Pictures []Picture `json:"pictures"`
  312 + Videos []Video `json:"videos"`
  313 +}
  314 +type ChanceData struct {
  315 + ThumbsUpTotal int `json:"thumbsUpTotal"` //点赞总数
  316 + CommentTotal int `json:"commentTotal"` //评论总数
  317 + PageViewTotal int `json:"pageViewTotal"` //评论总数
  318 +
  319 + IsThumbsUp int `json:"isThumbsUp"` //是否点赞 1 点赞, 0 没有点赞
  320 + IsCollect int `json:"isCollect"` //是否收藏 1 是 0 否
  321 +}
@@ -37,35 +37,7 @@ type ChanceApproveProcessResponse struct { @@ -37,35 +37,7 @@ type ChanceApproveProcessResponse struct {
37 ApproveAccess *ApproveAccess `json:"approveOperate"` 37 ApproveAccess *ApproveAccess `json:"approveOperate"`
38 } 38 }
39 39
40 -//进程项  
41 -type ProcessItem struct {  
42 - Id int64 `json:"id"`  
43 - ReviewStatus int `json:"reviewStatus"` //当前步骤审批状态 0-待处理 1- 待审核 2- 退回 3-通过 4-提交 6-撤销  
44 - ApproveWay int `json:"approveWay"` //审批方式 1 会签 2 或签  
45 - ApproveType int `json:"approveType"` //审批类型 1 业务区域负责人 2 指定成员 3 角色  
46 - ApproveTime int64 `json:"approveTime"` //审核时间  
47 - //Role Role `json:"role"` //角色  
48 - Uid int64 `json:"uid"`  
49 - Name string `json:"name"`  
50 - RoleName string `json:"roleName"`  
51 - Role int `json:"-"`  
52 - ApproveData ApproveData `json:"ApproveData"` //审核数据  
53 - //ApproveUser UserItem `json:"approveUser"` //审核人 //状态不是审核中  
54 - ApproveUsers []UserItem `json:"approveUsers"` //审核人员 //1 会签 2 或签 //审核中 1.部门长 2.角色  
55 -}  
56 -  
57 -//用户项  
58 -type UserItem struct {  
59 - Uid int64 `json:"uid"`  
60 - Name string `json:"name"`  
61 -}  
62 -  
63 -//角色项  
64 -type Role struct {  
65 - Id int `json:"id"`  
66 - Name string `json:"name"`  
67 -}  
68 - 40 +//审批数据
69 type Approve struct { 41 type Approve struct {
70 //Provider *BaseUserInfo `json:"provider"` 42 //Provider *BaseUserInfo `json:"provider"`
71 ProcessId int64 `json:"processId"` 43 ProcessId int64 `json:"processId"`
@@ -73,12 +45,36 @@ type Approve struct { @@ -73,12 +45,36 @@ type Approve struct {
73 ApproveTime int64 `json:"approveTime"` 45 ApproveTime int64 `json:"approveTime"`
74 } 46 }
75 47
  48 +//审核操作权限
  49 +type ApproveAccess struct {
  50 + ProcessId int64 `json:"processId"`
  51 + AllowApprove int `json:"allowApprove"`
  52 + AllowReject int `json:"allowReject"`
  53 +}
  54 +
76 //审核数据 审核通过 55 //审核数据 审核通过
77 type ApproveData struct { 56 type ApproveData struct {
78 PublicData PublicData `json:"publicData"` // 公开数据 57 PublicData PublicData `json:"publicData"` // 公开数据
79 Score Score `json:"score"` 58 Score Score `json:"score"`
80 } 59 }
81 60
  61 +//进程项
  62 +type ProcessItem struct {
  63 + Id int64 `json:"id"`
  64 + ReviewStatus int `json:"reviewStatus"` //当前步骤审批状态 0-待处理 1- 待审核 2- 退回 3-通过 4-提交 6-撤销
  65 + ApproveWay int `json:"approveWay"` //审批方式 1 会签 2 或签
  66 + ApproveType int `json:"approveType"` //审批类型 1 业务区域负责人 2 指定成员 3 角色
  67 + ApproveTime int64 `json:"approveTime"` //审核时间
  68 + //Role Role `json:"role"` //角色
  69 + Uid int64 `json:"uid"`
  70 + Name string `json:"name"`
  71 + RoleName string `json:"roleName"`
  72 + Role int `json:"-"`
  73 + ApproveData *ApproveData `json:"approveData"` //审核数据
  74 + //ApproveUser UserItem `json:"approveUser"` //审核人 //状态不是审核中
  75 + ApproveUsers []UserItem `json:"approveUsers"` //审核人员 //1 会签 2 或签 //审核中 1.部门长 2.角色
  76 +}
  77 +
82 //公开数据 78 //公开数据
83 type PublicData struct { 79 type PublicData struct {
84 PublishStatus int `json:"publishStatus"` //公开状态 0未公开、1部门公开、2公司公开 80 PublishStatus int `json:"publishStatus"` //公开状态 0未公开、1部门公开、2公司公开
@@ -99,10 +95,3 @@ type Score struct { @@ -99,10 +95,3 @@ type Score struct {
99 ValueScore float64 `json:"valueScore"` //价值分 95 ValueScore float64 `json:"valueScore"` //价值分
100 DiscoveryScore float64 `json:"discoveryScore"` //发现分 96 DiscoveryScore float64 `json:"discoveryScore"` //发现分
101 } 97 }
102 -  
103 -//审核操作权限  
104 -type ApproveAccess struct {  
105 - ProcessId int64 `json:"processId"`  
106 - AllowApprove int `json:"allowApprove"`  
107 - AllowReject int `json:"allowReject"`  
108 -}  
@@ -36,3 +36,32 @@ const ( @@ -36,3 +36,32 @@ const (
36 MyAuditChancePass //我审核的机会-已通过 36 MyAuditChancePass //我审核的机会-已通过
37 MyAuditChanceReturn //我审核的机会-已退回 37 MyAuditChanceReturn //我审核的机会-已退回
38 ) 38 )
  39 +
  40 +var MapStaticName map[int64]string
  41 +
  42 +func init() {
  43 + MapStaticName = make(map[int64]string)
  44 + MapStaticName[CollectStatic] = "收藏"
  45 + MapStaticName[ZanStatic] = "点赞"
  46 + MapStaticName[CommentStatic] = "评论"
  47 + MapStaticName[MyCommitChance] = "我提交的机会"
  48 + MapStaticName[MyCommitChanceWait] = "我提交的机会-待审批"
  49 + MapStaticName[MyCommitChanceReturn] = "我提交的机会-退回"
  50 + MapStaticName[MyCommitChancePass] = "我提交的机会-已通过"
  51 + MapStaticName[MyAuditChance] = "我审核的机会"
  52 + MapStaticName[MyAuditChanceWait] = "我审核的机会-待我审批"
  53 + MapStaticName[MyAuditChancePass] = "我审核的机会-已通过"
  54 + MapStaticName[MyAuditChanceReturn] = "我审核的机会-已退回"
  55 +}
  56 +
  57 +//用户项
  58 +type UserItem struct {
  59 + Uid int64 `json:"uid"`
  60 + Name string `json:"name"`
  61 +}
  62 +
  63 +//角色项
  64 +type Role struct {
  65 + Id int `json:"id"`
  66 + Name string `json:"name"`
  67 +}
@@ -54,6 +54,15 @@ type UserInfoResponse struct { @@ -54,6 +54,15 @@ type UserInfoResponse struct {
54 User User `json:"user"` 54 User User `json:"user"`
55 } 55 }
56 56
  57 +//用户统计信息
  58 +/*UserStatistics */
  59 +type UserStatisticsRequest struct {
  60 + TypeTotal int64 `json:"typeTotal" valid:"Required"`
  61 +}
  62 +type UserStatisticsResponse struct {
  63 + Totals []TypeTotalItem `json:"totals"`
  64 +}
  65 +
57 type User struct { 66 type User struct {
58 UserId int64 `json:"uid"` 67 UserId int64 `json:"uid"`
59 Name string `json:"uname"` 68 Name string `json:"uname"`
@@ -89,14 +98,6 @@ type Job struct { @@ -89,14 +98,6 @@ type Job struct {
89 Level int `json:"level"` 98 Level int `json:"level"`
90 } 99 }
91 100
92 -//用户统计信息  
93 -/*UserStatistics */  
94 -type UserStatisticsRequest struct {  
95 - TypeTotal int64 `json:"typeTotal" valid:"Required"`  
96 -}  
97 -type UserStatisticsResponse struct {  
98 - Totals []TypeTotalItem `json:"totals"`  
99 -}  
100 type TypeTotalItem struct { 101 type TypeTotalItem struct {
101 Type int64 `json:"type"` //类型 102 Type int64 `json:"type"` //类型
102 Total int `json:"total"` //总数 103 Total int `json:"total"` //总数
@@ -20,3 +20,16 @@ func MyChanceStatic(header *protocol.RequestHeader, reviewStatus ...int8) (total @@ -20,3 +20,16 @@ func MyChanceStatic(header *protocol.RequestHeader, reviewStatus ...int8) (total
20 } 20 }
21 return 21 return
22 } 22 }
  23 +
  24 +func MyApproveStatic(header *protocol.RequestHeader, reviewStatus ...int8) (total int, err error) {
  25 + var ()
  26 + if total, err = models.GetChanceMyApproveChance(header.UserId, header.CompanyId, reviewStatus, 0, 0, nil); err != nil {
  27 + if err == orm.ErrNoRows {
  28 + err = nil
  29 + return
  30 + }
  31 + log.Error(err)
  32 + return
  33 + }
  34 + return
  35 +}
@@ -291,6 +291,11 @@ func ChanceApprove(header *protocol.RequestHeader, request *protocol.ChanceAppro @@ -291,6 +291,11 @@ func ChanceApprove(header *protocol.RequestHeader, request *protocol.ChanceAppro
291 err = protocol.NewErrWithMessage(5101) 291 err = protocol.NewErrWithMessage(5101)
292 return 292 return
293 } 293 }
  294 + if chance.EnableStatus == 0 {
  295 + log.Error(fmt.Sprintf("chance_id:%v enable_status:%v", chance.Id, chance.EnableStatus))
  296 + err = protocol.NewErrWithMessage(5101)
  297 + return
  298 + }
294 if process, err = models.GetAuditFlowProcessBy(request.ProcessId, header.UserId); err != nil { 299 if process, err = models.GetAuditFlowProcessBy(request.ProcessId, header.UserId); err != nil {
295 log.Error(request.ProcessId, header.UserId, err) 300 log.Error(request.ProcessId, header.UserId, err)
296 err = protocol.NewErrWithMessage(5202) 301 err = protocol.NewErrWithMessage(5202)
@@ -507,8 +512,10 @@ func ChanceApproveProcess(header *protocol.RequestHeader, chance *models.Chance) @@ -507,8 +512,10 @@ func ChanceApproveProcess(header *protocol.RequestHeader, chance *models.Chance)
507 checkApprovePermission(p) 512 checkApprovePermission(p)
508 //机会已经审核通过的直接添加到审核人列表 513 //机会已经审核通过的直接添加到审核人列表
509 if chance.ReviewStatus == protocol.ReviewStatusPass { 514 if chance.ReviewStatus == protocol.ReviewStatusPass {
510 - if e := json.Unmarshal([]byte(p.ApproveData), &item.ApproveData); e != nil {  
511 - log.Error(e) 515 + if len(p.ApproveData) > 0 {
  516 + if e := json.Unmarshal([]byte(p.ApproveData), &item.ApproveData); e != nil {
  517 + log.Error("data", p.ApproveData, e)
  518 + }
512 } 519 }
513 rsp.ApproveProcess = append(rsp.ApproveProcess, item) 520 rsp.ApproveProcess = append(rsp.ApproveProcess, item)
514 continue 521 continue
@@ -368,40 +368,67 @@ func UserStatistics(header *protocol.RequestHeader, request *protocol.UserStatis @@ -368,40 +368,67 @@ func UserStatistics(header *protocol.RequestHeader, request *protocol.UserStatis
368 total int 368 total int
369 ) 369 )
370 rsp = &protocol.UserStatisticsResponse{} 370 rsp = &protocol.UserStatisticsResponse{}
371 - isMark := func(v int64) bool {  
372 - if flag != v {  
373 - return false  
374 - }  
375 - return (request.TypeTotal & v) > 0  
376 - }  
377 - for flag = 1; flag < (1 << 20); flag = flag << 1 { 371 + //buf :=bytes.NewBuffer(nil)
  372 + //buf.WriteString(fmt.Sprintf("用户中心-统计信息 user:%v type_total:%v \n",header.UserId,request.TypeTotal))
  373 + for flag = 1; flag <= (protocol.MyAuditChanceReturn); flag = flag << 1 {
378 total = 0 374 total = 0
379 - if isMark(protocol.MyCommitChance) { 375 + switch flag {
  376 + case protocol.MyCommitChance:
380 if total, err = agg.MyChanceStatic(header, protocol.ReviewStatusAuditging, protocol.ReviewStatusReturn, protocol.ReviewStatusPass); err != nil { 377 if total, err = agg.MyChanceStatic(header, protocol.ReviewStatusAuditging, protocol.ReviewStatusReturn, protocol.ReviewStatusPass); err != nil {
381 log.Error(err) 378 log.Error(err)
382 } 379 }
383 - }  
384 - if isMark(protocol.MyCommitChanceWait) { 380 + break
  381 + case protocol.MyCommitChanceWait:
385 if total, err = agg.MyChanceStatic(header, protocol.ReviewStatusAuditging); err != nil { 382 if total, err = agg.MyChanceStatic(header, protocol.ReviewStatusAuditging); err != nil {
386 log.Error(err) 383 log.Error(err)
387 } 384 }
388 - }  
389 - if isMark(protocol.MyAuditChanceReturn) { 385 + break
  386 + case protocol.MyCommitChancePass:
  387 + if total, err = agg.MyChanceStatic(header, protocol.ReviewStatusPass); err != nil {
  388 + log.Error(err)
  389 + }
  390 + break
  391 + case protocol.MyCommitChanceReturn:
390 if total, err = agg.MyChanceStatic(header, protocol.ReviewStatusReturn); err != nil { 392 if total, err = agg.MyChanceStatic(header, protocol.ReviewStatusReturn); err != nil {
391 log.Error(err) 393 log.Error(err)
392 } 394 }
393 - }  
394 - if isMark(protocol.MyCommitChancePass) {  
395 - if total, err = agg.MyChanceStatic(header, protocol.ReviewStatusPass); err != nil { 395 + break
  396 + case protocol.MyAuditChance:
  397 + if total, err = agg.MyApproveStatic(header, protocol.ReviewStatusAuditging, protocol.ReviewStatusReturn, protocol.ReviewStatusPass); err != nil {
  398 + log.Error(err)
  399 + }
  400 + break
  401 + case protocol.MyAuditChanceWait:
  402 + if total, err = agg.MyApproveStatic(header, protocol.ReviewStatusAuditging); err != nil {
  403 + log.Error(err)
  404 + }
  405 + break
  406 + case protocol.MyAuditChancePass:
  407 + if total, err = agg.MyApproveStatic(header, protocol.ReviewStatusPass); err != nil {
  408 + log.Error(err)
  409 + }
  410 + break
  411 + case protocol.MyAuditChanceReturn:
  412 + if total, err = agg.MyApproveStatic(header, protocol.ReviewStatusReturn); err != nil {
396 log.Error(err) 413 log.Error(err)
397 } 414 }
  415 + break
  416 +
398 } 417 }
399 if flag&request.TypeTotal > 0 { 418 if flag&request.TypeTotal > 0 {
400 rsp.Totals = append(rsp.Totals, protocol.TypeTotalItem{ 419 rsp.Totals = append(rsp.Totals, protocol.TypeTotalItem{
401 Type: flag, 420 Type: flag,
402 Total: total, 421 Total: total,
403 }) 422 })
  423 + log.Debug(fmt.Sprintf("用户中心-统计信息 user:%v name:%v type:%v total:%v ", header.UserId, protocol.MapStaticName[flag], flag, total))
  424 + //buf.WriteString(fmt.Sprintf("user:%v name:%v type:%v total:%v ",header.UserId,protocol.MapStaticName[flag],flag,total))
  425 + //if err!=nil{
  426 + // buf.WriteString("err:%v \n")
  427 + //}else{
  428 + // buf.WriteString("\n")
  429 + //}
404 } 430 }
405 } 431 }
  432 + //log.Debug(buf.String())
406 return 433 return
407 } 434 }