|
|
@@ -54,64 +54,64 @@ namespace CallCenterApi.Interface.Controllers.tel
|
|
54
|
54
|
ActionResult res = NoToken("未知错误,请重新登录");
|
|
55
|
55
|
if (Request.IsAuthenticated)
|
|
56
|
56
|
{
|
|
57
|
|
-
|
|
58
|
|
- if (date != null && date != "")
|
|
|
57
|
+
|
|
|
58
|
+ if (date != null && date != "")
|
|
|
59
|
+ {
|
|
|
60
|
+ DateTime dt = new DateTime();
|
|
|
61
|
+ if (DateTime.TryParse(date, out dt))
|
|
59
|
62
|
{
|
|
60
|
|
- DateTime dt = new DateTime();
|
|
61
|
|
- if (DateTime.TryParse(date, out dt))
|
|
|
63
|
+ Model.T_Sys_WorkCalendar wc = new BLL.T_Sys_WorkCalendar().GetModel(dt);
|
|
|
64
|
+ if (wc != null)
|
|
62
|
65
|
{
|
|
63
|
|
- Model.T_Sys_WorkCalendar wc = new BLL.T_Sys_WorkCalendar().GetModel(dt);
|
|
64
|
|
- if (wc != null)
|
|
|
66
|
+ if (wc.F_EditFlag == false) //没有修改过
|
|
65
|
67
|
{
|
|
66
|
|
- if (wc.F_EditFlag == false) //没有修改过
|
|
|
68
|
+ if (wc.F_WorkingFlag)
|
|
67
|
69
|
{
|
|
68
|
|
- if (wc.F_WorkingFlag)
|
|
69
|
|
- {
|
|
70
|
|
- wc.F_WorkingFlag = false;
|
|
71
|
|
- }
|
|
72
|
|
- else
|
|
73
|
|
- {
|
|
74
|
|
- wc.F_WorkingFlag = true;
|
|
75
|
|
- }
|
|
76
|
|
- wc.F_EditFlag = true;
|
|
|
70
|
+ wc.F_WorkingFlag = false;
|
|
77
|
71
|
}
|
|
78
|
|
- else//修改过
|
|
|
72
|
+ else
|
|
79
|
73
|
{
|
|
80
|
|
- if (wc.F_WorkingFlag)
|
|
81
|
|
- {
|
|
82
|
|
- wc.F_WorkingFlag = false;
|
|
83
|
|
- }
|
|
84
|
|
- else
|
|
85
|
|
- {
|
|
86
|
|
- wc.F_WorkingFlag = true;
|
|
87
|
|
- }
|
|
88
|
|
- wc.F_EditFlag = false;
|
|
|
74
|
+ wc.F_WorkingFlag = true;
|
|
89
|
75
|
}
|
|
90
|
|
- bool rvalue = new BLL.T_Sys_WorkCalendar().Update(wc);
|
|
91
|
|
- if (rvalue)
|
|
|
76
|
+ wc.F_EditFlag = true;
|
|
|
77
|
+ }
|
|
|
78
|
+ else//修改过
|
|
|
79
|
+ {
|
|
|
80
|
+ if (wc.F_WorkingFlag)
|
|
92
|
81
|
{
|
|
93
|
|
- res = Success("设置成功!");
|
|
|
82
|
+ wc.F_WorkingFlag = false;
|
|
94
|
83
|
}
|
|
95
|
84
|
else
|
|
96
|
85
|
{
|
|
97
|
|
- res = Error("设置失败!");
|
|
|
86
|
+ wc.F_WorkingFlag = true;
|
|
98
|
87
|
}
|
|
|
88
|
+ wc.F_EditFlag = false;
|
|
|
89
|
+ }
|
|
|
90
|
+ bool rvalue = new BLL.T_Sys_WorkCalendar().Update(wc);
|
|
|
91
|
+ if (rvalue)
|
|
|
92
|
+ {
|
|
|
93
|
+ res = Success("设置成功!");
|
|
99
|
94
|
}
|
|
100
|
95
|
else
|
|
101
|
96
|
{
|
|
102
|
|
- res = Error("获取对象失败");
|
|
|
97
|
+ res = Error("设置失败!");
|
|
103
|
98
|
}
|
|
104
|
99
|
}
|
|
105
|
100
|
else
|
|
106
|
101
|
{
|
|
107
|
|
- res = Error("日期格式不正确");
|
|
|
102
|
+ res = Error("获取对象失败");
|
|
108
|
103
|
}
|
|
109
|
104
|
}
|
|
110
|
105
|
else
|
|
111
|
106
|
{
|
|
112
|
|
- res = Error("获取参数失败");
|
|
|
107
|
+ res = Error("日期格式不正确");
|
|
113
|
108
|
}
|
|
114
|
|
-
|
|
|
109
|
+ }
|
|
|
110
|
+ else
|
|
|
111
|
+ {
|
|
|
112
|
+ res = Error("获取参数失败");
|
|
|
113
|
+ }
|
|
|
114
|
+
|
|
115
|
115
|
}
|
|
116
|
116
|
return res;
|
|
117
|
117
|
}
|
|
|
@@ -124,51 +124,51 @@ namespace CallCenterApi.Interface.Controllers.tel
|
|
124
|
124
|
{
|
|
125
|
125
|
string sql = "";
|
|
126
|
126
|
DataTable dt = new DataTable();
|
|
127
|
|
-
|
|
128
|
127
|
|
|
129
|
|
- string keyword = HttpUtility.UrlDecode(RequestString.GetQueryString("keyword"));
|
|
130
|
|
- if (keyword.Trim() != "" && keyword != "undefined")
|
|
131
|
|
- {
|
|
132
|
|
- sql += " and (convert(varchar,F_WorkEndTimes,120) like '%" + keyword.Trim() + "%' or convert(varchar,F_WorkEndTimes,120) like '%" + keyword.Trim()
|
|
133
|
|
- + "%' or F_TimeName like '%" + keyword.Trim() + "%'or F_Remark like '%" + keyword.Trim() + "%')";
|
|
134
|
|
- }
|
|
135
|
128
|
|
|
136
|
|
- string strpageindex = RequestString.GetQueryString("page");
|
|
137
|
|
- int pageindex = 1;
|
|
138
|
|
- string strpagesize = RequestString.GetQueryString("pagesize");
|
|
139
|
|
- int pagesize = 10;
|
|
|
129
|
+ string keyword = HttpUtility.UrlDecode(RequestString.GetQueryString("keyword"));
|
|
|
130
|
+ if (keyword.Trim() != "" && keyword != "undefined")
|
|
|
131
|
+ {
|
|
|
132
|
+ sql += " and (convert(varchar,F_WorkEndTimes,120) like '%" + keyword.Trim() + "%' or convert(varchar,F_WorkEndTimes,120) like '%" + keyword.Trim()
|
|
|
133
|
+ + "%' or F_TimeName like '%" + keyword.Trim() + "%'or F_Remark like '%" + keyword.Trim() + "%')";
|
|
|
134
|
+ }
|
|
140
|
135
|
|
|
141
|
|
- if (strpageindex.Trim() != "")
|
|
142
|
|
- {
|
|
143
|
|
- pageindex = Convert.ToInt32(strpageindex);
|
|
144
|
|
- }
|
|
|
136
|
+ string strpageindex = RequestString.GetQueryString("page");
|
|
|
137
|
+ int pageindex = 1;
|
|
|
138
|
+ string strpagesize = RequestString.GetQueryString("pagesize");
|
|
|
139
|
+ int pagesize = 10;
|
|
145
|
140
|
|
|
146
|
|
- if (strpagesize.Trim() != "")
|
|
147
|
|
- {
|
|
148
|
|
- pagesize = Convert.ToInt32(strpagesize);
|
|
149
|
|
- }
|
|
150
|
|
- int recordCount = 0;
|
|
151
|
|
- dt = BLL.PagerBLL.GetListPager(
|
|
152
|
|
- "T_Sys_WorkTimes",
|
|
153
|
|
- "F_ID",
|
|
154
|
|
- "*",
|
|
155
|
|
- sql,
|
|
156
|
|
- "ORDER BY F_ID desc",
|
|
157
|
|
- pagesize,
|
|
158
|
|
- pageindex,
|
|
159
|
|
- true,
|
|
160
|
|
- out recordCount);
|
|
|
141
|
+ if (strpageindex.Trim() != "")
|
|
|
142
|
+ {
|
|
|
143
|
+ pageindex = Convert.ToInt32(strpageindex);
|
|
|
144
|
+ }
|
|
161
|
145
|
|
|
162
|
|
- var obj = new
|
|
163
|
|
- {
|
|
164
|
|
- state = "success",
|
|
165
|
|
- message = "成功",
|
|
166
|
|
- rows = dt,
|
|
167
|
|
- total = recordCount
|
|
168
|
|
- };
|
|
|
146
|
+ if (strpagesize.Trim() != "")
|
|
|
147
|
+ {
|
|
|
148
|
+ pagesize = Convert.ToInt32(strpagesize);
|
|
|
149
|
+ }
|
|
|
150
|
+ int recordCount = 0;
|
|
|
151
|
+ dt = BLL.PagerBLL.GetListPager(
|
|
|
152
|
+ "T_Sys_WorkTimes",
|
|
|
153
|
+ "F_ID",
|
|
|
154
|
+ "*",
|
|
|
155
|
+ sql,
|
|
|
156
|
+ "ORDER BY F_ID desc",
|
|
|
157
|
+ pagesize,
|
|
|
158
|
+ pageindex,
|
|
|
159
|
+ true,
|
|
|
160
|
+ out recordCount);
|
|
|
161
|
+
|
|
|
162
|
+ var obj = new
|
|
|
163
|
+ {
|
|
|
164
|
+ state = "success",
|
|
|
165
|
+ message = "成功",
|
|
|
166
|
+ rows = dt,
|
|
|
167
|
+ total = recordCount
|
|
|
168
|
+ };
|
|
|
169
|
+
|
|
|
170
|
+ res = Content(obj.ToJson());
|
|
169
|
171
|
|
|
170
|
|
- res = Content(obj.ToJson());
|
|
171
|
|
-
|
|
172
|
172
|
}
|
|
173
|
173
|
return res;
|
|
174
|
174
|
}
|
|
|
@@ -179,26 +179,26 @@ namespace CallCenterApi.Interface.Controllers.tel
|
|
179
|
179
|
ActionResult res = NoToken("未知错误,请重新登录");
|
|
180
|
180
|
if (Request.IsAuthenticated)
|
|
181
|
181
|
{
|
|
182
|
|
-
|
|
183
|
|
- if (id != null && id.Trim() != "")
|
|
|
182
|
+
|
|
|
183
|
+ if (id != null && id.Trim() != "")
|
|
|
184
|
+ {
|
|
|
185
|
+ BLL.T_Sys_WorkTimes dBLL = new BLL.T_Sys_WorkTimes();
|
|
|
186
|
+ Model.T_Sys_WorkTimes dModel = dBLL.GetModel(int.Parse(id.Trim()));
|
|
|
187
|
+ if (dModel != null)
|
|
184
|
188
|
{
|
|
185
|
|
- BLL.T_Sys_WorkTimes dBLL = new BLL.T_Sys_WorkTimes();
|
|
186
|
|
- Model.T_Sys_WorkTimes dModel = dBLL.GetModel(int.Parse(id.Trim()));
|
|
187
|
|
- if (dModel != null)
|
|
188
|
|
- {
|
|
189
|
|
- res = Success("获取成功", dModel);
|
|
190
|
|
- }
|
|
191
|
|
- else
|
|
192
|
|
- {
|
|
193
|
|
- res = Error("获取失败");
|
|
194
|
|
- }
|
|
|
189
|
+ res = Success("获取成功", dModel);
|
|
195
|
190
|
}
|
|
196
|
191
|
else
|
|
197
|
192
|
{
|
|
198
|
|
- res = Error("获取参数失败");
|
|
|
193
|
+ res = Error("获取失败");
|
|
199
|
194
|
}
|
|
200
|
|
-
|
|
201
|
|
-
|
|
|
195
|
+ }
|
|
|
196
|
+ else
|
|
|
197
|
+ {
|
|
|
198
|
+ res = Error("获取参数失败");
|
|
|
199
|
+ }
|
|
|
200
|
+
|
|
|
201
|
+
|
|
202
|
202
|
}
|
|
203
|
203
|
return res;
|
|
204
|
204
|
}
|
|
|
@@ -209,97 +209,94 @@ namespace CallCenterApi.Interface.Controllers.tel
|
|
209
|
209
|
ActionResult res = NoToken("未知错误,请重新登录");
|
|
210
|
210
|
if (Request.IsAuthenticated)
|
|
211
|
211
|
{
|
|
212
|
|
-
|
|
213
|
|
- int userId = CurrentUser.UserData.F_UserId;
|
|
214
|
|
- if (userId != 0)
|
|
|
212
|
+
|
|
|
213
|
+ int userId = CurrentUser.UserData.F_UserId;
|
|
|
214
|
+ if (userId != 0)
|
|
|
215
|
+ {
|
|
|
216
|
+ Model.T_Sys_UserAccount ua = new BLL.T_Sys_UserAccount().GetModel(userId);
|
|
|
217
|
+ if (ua != null)
|
|
215
|
218
|
{
|
|
216
|
|
- Model.T_Sys_UserAccount ua = new BLL.T_Sys_UserAccount().GetModel(userId);
|
|
217
|
|
- if (ua != null)
|
|
|
219
|
+ res = Error("操作失败");
|
|
|
220
|
+ if (workid != null && workid != "")
|
|
218
|
221
|
{
|
|
219
|
|
- res=Error("操作失败");
|
|
220
|
|
- if (workid != null && workid != "")
|
|
|
222
|
+ int id = 0;
|
|
|
223
|
+ if (int.TryParse(workid, out id))
|
|
221
|
224
|
{
|
|
222
|
|
- int id = 0;
|
|
223
|
|
- if (int.TryParse(workid, out id))
|
|
|
225
|
+ BLL.T_Sys_WorkTimes dBLL = new BLL.T_Sys_WorkTimes();
|
|
|
226
|
+ Model.T_Sys_WorkTimes dModel = dBLL.GetModel(id);
|
|
|
227
|
+ if (dModel != null)
|
|
224
|
228
|
{
|
|
225
|
|
- BLL.T_Sys_WorkTimes dBLL = new BLL.T_Sys_WorkTimes();
|
|
226
|
|
- Model.T_Sys_WorkTimes dModel = dBLL.GetModel(id);
|
|
227
|
|
- if (dModel != null)
|
|
|
229
|
+ if (!string.IsNullOrWhiteSpace(workstart.Trim()))
|
|
228
|
230
|
{
|
|
229
|
|
- if (!string.IsNullOrWhiteSpace(workstart.Trim()))
|
|
230
|
|
- {
|
|
231
|
|
- DateTime dt1 = new DateTime();
|
|
232
|
|
- if (DateTime.TryParse(workstart.Trim(), out dt1))
|
|
233
|
|
- dModel.F_WorkStartTimes = Convert.ToDateTime(dt1.ToString("1900-01-01 HH:mm:ss"));
|
|
234
|
|
- }
|
|
235
|
|
- if (!string.IsNullOrWhiteSpace(workend.Trim()))
|
|
236
|
|
- {
|
|
237
|
|
- DateTime dt1 = new DateTime();
|
|
238
|
|
- if (DateTime.TryParse(workend.Trim(), out dt1))
|
|
239
|
|
- dModel.F_WorkEndTimes = Convert.ToDateTime(dt1.ToString("1900-01-01 HH:mm:ss"));
|
|
240
|
|
- }
|
|
241
|
|
- if (!string.IsNullOrWhiteSpace(timename.Trim()))
|
|
242
|
|
- {
|
|
243
|
|
- dModel.F_TimeName = timename.Trim();
|
|
244
|
|
- }
|
|
245
|
|
- if (!string.IsNullOrWhiteSpace(remark.Trim()))
|
|
246
|
|
- {
|
|
247
|
|
- dModel.F_Remark = remark.Trim();
|
|
248
|
|
- }
|
|
|
231
|
+ DateTime dt1 = new DateTime();
|
|
|
232
|
+ if (DateTime.TryParse(workstart.Trim(), out dt1))
|
|
|
233
|
+ dModel.F_WorkStartTimes = Convert.ToDateTime(dt1.ToString("1900-01-01 HH:mm:ss"));
|
|
|
234
|
+ }
|
|
|
235
|
+ if (!string.IsNullOrWhiteSpace(workend.Trim()))
|
|
|
236
|
+ {
|
|
|
237
|
+ DateTime dt1 = new DateTime();
|
|
|
238
|
+ if (DateTime.TryParse(workend.Trim(), out dt1))
|
|
|
239
|
+ dModel.F_WorkEndTimes = Convert.ToDateTime(dt1.ToString("1900-01-01 HH:mm:ss"));
|
|
|
240
|
+ }
|
|
|
241
|
+ if (!string.IsNullOrWhiteSpace(timename.Trim()))
|
|
|
242
|
+ {
|
|
|
243
|
+ dModel.F_TimeName = timename.Trim();
|
|
|
244
|
+ }
|
|
|
245
|
+ if (!string.IsNullOrWhiteSpace(remark.Trim()))
|
|
|
246
|
+ {
|
|
|
247
|
+ dModel.F_Remark = remark.Trim();
|
|
|
248
|
+ }
|
|
249
|
249
|
|
|
250
|
|
- bool b = dBLL.Update(dModel);
|
|
251
|
|
- if (b)
|
|
252
|
|
- {
|
|
253
|
|
- res = Success("编辑成功");
|
|
254
|
|
- }
|
|
255
|
|
- else
|
|
256
|
|
- {
|
|
257
|
|
- res = Error("编辑失败");
|
|
258
|
|
- }
|
|
|
250
|
+ bool b = dBLL.Update(dModel);
|
|
|
251
|
+ if (b)
|
|
|
252
|
+ {
|
|
|
253
|
+ res = Success("编辑成功");
|
|
|
254
|
+ }
|
|
|
255
|
+ else
|
|
|
256
|
+ {
|
|
|
257
|
+ res = Error("编辑失败");
|
|
259
|
258
|
}
|
|
260
|
259
|
}
|
|
261
|
260
|
}
|
|
262
|
|
- else
|
|
|
261
|
+ }
|
|
|
262
|
+ else
|
|
|
263
|
+ {
|
|
|
264
|
+ Model.T_Sys_WorkTimes _model = new Model.T_Sys_WorkTimes();
|
|
|
265
|
+ if (!string.IsNullOrWhiteSpace(workstart.Trim()))
|
|
263
|
266
|
{
|
|
264
|
|
- Model.T_Sys_WorkTimes _model = new Model.T_Sys_WorkTimes();
|
|
265
|
|
- if (!string.IsNullOrWhiteSpace(workstart.Trim()))
|
|
266
|
|
- {
|
|
267
|
|
- DateTime dt2 = new DateTime();
|
|
268
|
|
- if (DateTime.TryParse("1900-01-01 " + workstart.Trim(), out dt2))
|
|
269
|
|
- _model.F_WorkStartTimes = Convert.ToDateTime(dt2.ToString("1900-01-01 HH:mm:ss"));
|
|
270
|
|
- }
|
|
271
|
|
- if (!string.IsNullOrWhiteSpace(workend.Trim()))
|
|
272
|
|
- {
|
|
273
|
|
- DateTime dt2 = new DateTime();
|
|
274
|
|
- if (DateTime.TryParse("1900-01-01 " + workend.Trim(), out dt2))
|
|
275
|
|
- _model.F_WorkEndTimes = Convert.ToDateTime(dt2.ToString("1900-01-01 HH:mm:ss"));
|
|
276
|
|
- }
|
|
277
|
|
- if (!string.IsNullOrWhiteSpace(timename.Trim()))
|
|
278
|
|
- {
|
|
279
|
|
- _model.F_TimeName = timename.Trim();
|
|
280
|
|
- }
|
|
281
|
|
- if (!string.IsNullOrWhiteSpace(remark.Trim()))
|
|
282
|
|
- {
|
|
283
|
|
- _model.F_Remark = remark.Trim();
|
|
284
|
|
- }
|
|
285
|
|
- _model.F_CreateOn = DateTime.Now;
|
|
286
|
|
- _model.F_UserID = ua.F_UserId;
|
|
287
|
|
- _model.F_UserName = ua.F_UserName;
|
|
288
|
|
- _model.F_UserCode = ua.F_UserCode;
|
|
|
267
|
+ DateTime dt2 = new DateTime();
|
|
|
268
|
+ if (DateTime.TryParse("1900-01-01 " + workstart.Trim(), out dt2))
|
|
|
269
|
+ _model.F_WorkStartTimes = Convert.ToDateTime(dt2.ToString("1900-01-01 HH:mm:ss"));
|
|
|
270
|
+ }
|
|
|
271
|
+ if (!string.IsNullOrWhiteSpace(workend.Trim()))
|
|
|
272
|
+ {
|
|
|
273
|
+ DateTime dt2 = new DateTime();
|
|
|
274
|
+ if (DateTime.TryParse("1900-01-01 " + workend.Trim(), out dt2))
|
|
|
275
|
+ _model.F_WorkEndTimes = Convert.ToDateTime(dt2.ToString("1900-01-01 HH:mm:ss"));
|
|
|
276
|
+ }
|
|
|
277
|
+ if (!string.IsNullOrWhiteSpace(timename.Trim()))
|
|
|
278
|
+ {
|
|
|
279
|
+ _model.F_TimeName = timename.Trim();
|
|
|
280
|
+ }
|
|
|
281
|
+ if (!string.IsNullOrWhiteSpace(remark.Trim()))
|
|
|
282
|
+ {
|
|
|
283
|
+ _model.F_Remark = remark.Trim();
|
|
|
284
|
+ }
|
|
|
285
|
+ _model.F_DeptId = CurrentUser.UserData.F_DeptId;
|
|
289
|
286
|
|
|
290
|
|
- int b = new BLL.T_Sys_WorkTimes().Add(_model);
|
|
291
|
|
- if (b > 0)
|
|
292
|
|
- {
|
|
293
|
|
- res = Success("添加成功");
|
|
294
|
|
- }
|
|
295
|
|
- else
|
|
296
|
|
- {
|
|
297
|
|
- res = Error("添加失败");
|
|
298
|
|
- }
|
|
|
287
|
+ int b = new BLL.T_Sys_WorkTimes().Add(_model);
|
|
|
288
|
+ if (b > 0)
|
|
|
289
|
+ {
|
|
|
290
|
+ res = Success("添加成功");
|
|
|
291
|
+ }
|
|
|
292
|
+ else
|
|
|
293
|
+ {
|
|
|
294
|
+ res = Error("添加失败");
|
|
299
|
295
|
}
|
|
300
|
296
|
}
|
|
301
|
297
|
}
|
|
302
|
|
-
|
|
|
298
|
+ }
|
|
|
299
|
+
|
|
303
|
300
|
}
|
|
304
|
301
|
return res;
|
|
305
|
302
|
}
|
|
|
@@ -310,26 +307,26 @@ namespace CallCenterApi.Interface.Controllers.tel
|
|
310
|
307
|
ActionResult res = NoToken("未知错误,请重新登录");
|
|
311
|
308
|
if (Request.IsAuthenticated)
|
|
312
|
309
|
{
|
|
313
|
|
-
|
|
314
|
|
- if (ids != null && ids.Length > 0)
|
|
|
310
|
+
|
|
|
311
|
+ if (ids != null && ids.Length > 0)
|
|
|
312
|
+ {
|
|
|
313
|
+ string idd = " ";
|
|
|
314
|
+ foreach (string str in ids)
|
|
315
|
315
|
{
|
|
316
|
|
- string idd = " ";
|
|
317
|
|
- foreach (string str in ids)
|
|
318
|
|
- {
|
|
319
|
|
- idd += "'" + str + "',";
|
|
320
|
|
- }
|
|
321
|
|
- if (new BLL.T_Sys_WorkTimes().DeleteList(idd.TrimEnd(',')))
|
|
322
|
|
- {
|
|
323
|
|
- res = Success("删除成功");
|
|
324
|
|
- }
|
|
325
|
|
- else
|
|
326
|
|
- res = Error("删除失败");
|
|
|
316
|
+ idd += "'" + str + "',";
|
|
327
|
317
|
}
|
|
328
|
|
- else
|
|
|
318
|
+ if (new BLL.T_Sys_WorkTimes().DeleteList(idd.TrimEnd(',')))
|
|
329
|
319
|
{
|
|
330
|
|
- res = Error("请选择要删除的记录");
|
|
|
320
|
+ res = Success("删除成功");
|
|
331
|
321
|
}
|
|
332
|
|
-
|
|
|
322
|
+ else
|
|
|
323
|
+ res = Error("删除失败");
|
|
|
324
|
+ }
|
|
|
325
|
+ else
|
|
|
326
|
+ {
|
|
|
327
|
+ res = Error("请选择要删除的记录");
|
|
|
328
|
+ }
|
|
|
329
|
+
|
|
333
|
330
|
}
|
|
334
|
331
|
return res;
|
|
335
|
332
|
}
|