Pārlūkot izejas kodu

营销活动媒体投放

duhongyu 5 gadi atpakaļ
vecāks
revīzija
564c093065

+ 2 - 2
代码/System.Model/T_Sys_MediaCente.cs

18
         private int? _f_name;
18
         private int? _f_name;
19
         private string _f_tel;
19
         private string _f_tel;
20
         private string _f_phone;
20
         private string _f_phone;
21
-        private int? _f_commodity;
21
+        private string _f_commodity;
22
         private DateTime? _f_launchtime;
22
         private DateTime? _f_launchtime;
23
         private decimal? _f_dailyexpenses;
23
         private decimal? _f_dailyexpenses;
24
         private string _f_playplan;
24
         private string _f_playplan;
77
         /// <summary>
77
         /// <summary>
78
         /// 绑定商品
78
         /// 绑定商品
79
         /// </summary>
79
         /// </summary>
80
-        public int? F_Commodity
80
+        public string  F_Commodity
81
         {
81
         {
82
             set { _f_commodity = value; }
82
             set { _f_commodity = value; }
83
             get { return _f_commodity; }
83
             get { return _f_commodity; }

+ 2 - 2
代码/System.Model/T_Sys_PlanManagemen.cs

20
         private string _f_playdate;
20
         private string _f_playdate;
21
         private string _f_broadcasttime;
21
         private string _f_broadcasttime;
22
         private int? _f_name;
22
         private int? _f_name;
23
-        private decimal? _f_broadcastduration;
23
+        private float  _f_broadcastduration;
24
         private int? _f_playcount;
24
         private int? _f_playcount;
25
         private int? _f_state;
25
         private int? _f_state;
26
         private int? _f_changetype;
26
         private int? _f_changetype;
92
         /// <summary>
92
         /// <summary>
93
         /// 播出时长
93
         /// 播出时长
94
         /// </summary>
94
         /// </summary>
95
-        public decimal? F_BroadcastDuration
95
+        public float  F_BroadcastDuration
96
         {
96
         {
97
             set { _f_broadcastduration = value; }
97
             set { _f_broadcastduration = value; }
98
             get { return _f_broadcastduration; }
98
             get { return _f_broadcastduration; }

+ 5 - 5
代码/TVShoppingCallCenter_ZLJ/Controllers/Marketing/MarketingController.cs

162
             {
162
             {
163
                 if (process=="0")
163
                 if (process=="0")
164
                 {
164
                 {
165
-                    conModels.Add(new ConditionalModel() { FieldName = "F_StartTime", ConditionalType = ConditionalType.LessThanOrEqual, FieldValue = DateTime .Now .ToString () });
165
+                    conModels.Add(new ConditionalModel() { FieldName = "F_StartTime", ConditionalType = ConditionalType.GreaterThan, FieldValue = DateTime .Now .ToString () });
166
                 }
166
                 }
167
                 else if (process == "1")
167
                 else if (process == "1")
168
                 {
168
                 {
169
-                    conModels.Add(new ConditionalModel() { FieldName = "F_StartTime", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = DateTime.Now.ToString() });
170
-                    conModels.Add(new ConditionalModel() { FieldName = "F_EndTime", ConditionalType = ConditionalType.LessThanOrEqual, FieldValue = DateTime.Now.ToString() });
169
+                    conModels.Add(new ConditionalModel() { FieldName = "F_StartTime", ConditionalType = ConditionalType.LessThanOrEqual, FieldValue = DateTime.Now.ToString() });
170
+                    conModels.Add(new ConditionalModel() { FieldName = "F_EndTime", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = DateTime.Now.ToString() });
171
                 }
171
                 }
172
                 else
172
                 else
173
                 {
173
                 {
174
-                    conModels.Add(new ConditionalModel() { FieldName = "F_EndTime", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = DateTime.Now.ToString() });
174
+                    conModels.Add(new ConditionalModel() { FieldName = "F_EndTime", ConditionalType = ConditionalType.LessThan, FieldValue = DateTime.Now.ToString() });
175
                 }
175
                 }
176
                 //conModels.Add(new ConditionalModel() { FieldName = "F_Process", ConditionalType = ConditionalType.Equal , FieldValue = process });
176
                 //conModels.Add(new ConditionalModel() { FieldName = "F_Process", ConditionalType = ConditionalType.Equal , FieldValue = process });
177
             }
177
             }
184
                 state = "success",
184
                 state = "success",
185
                 message = "成功",
185
                 message = "成功",
186
                 rows = await ConvertAsync(list),
186
                 rows = await ConvertAsync(list),
187
-                total = list.Rows .Count ,
187
+                total = list.Totals ,
188
             };
188
             };
189
 
189
 
190
             return  Content(obj.ToJson());
190
             return  Content(obj.ToJson());

+ 197 - 2
代码/TVShoppingCallCenter_ZLJ/Controllers/MediaCente/MediaCenteController.cs

18
     {
18
     {
19
         private readonly ISys_MediaCenteRepository  _sys_mediacenter_Repository;
19
         private readonly ISys_MediaCenteRepository  _sys_mediacenter_Repository;
20
         private readonly ISys_PlanManagemenRepository _sys_planmanagemenRepository;
20
         private readonly ISys_PlanManagemenRepository _sys_planmanagemenRepository;
21
-        public MediaCenteController(ISys_MediaCenteRepository sys_mediacenter_Repository, ISys_PlanManagemenRepository sys_planmanagemenRepository)
21
+        private readonly ISys_DictionaryValueRepository _sys_dictionaryRepository;
22
+        private readonly ISys_MediaManagementRepository _sys_mediaManagement_Repository;
23
+        private readonly IBus_ProductRepository _productRepository;
24
+        private readonly ISys_DepartmentRepository _sys_departmentRepository;
25
+        public MediaCenteController(ISys_MediaCenteRepository sys_mediacenter_Repository, ISys_PlanManagemenRepository sys_planmanagemenRepository,
26
+            ISys_DictionaryValueRepository sys_dictionaryRepository, ISys_MediaManagementRepository sys_mediaManagement_Repository, IBus_ProductRepository productRepository, ISys_DepartmentRepository sys_departmentRepository)
22
         {
27
         {
23
             _sys_mediacenter_Repository = sys_mediacenter_Repository;
28
             _sys_mediacenter_Repository = sys_mediacenter_Repository;
24
             _sys_planmanagemenRepository = sys_planmanagemenRepository;
29
             _sys_planmanagemenRepository = sys_planmanagemenRepository;
30
+            _sys_dictionaryRepository = sys_dictionaryRepository;
31
+            _sys_mediaManagement_Repository = sys_mediaManagement_Repository;
32
+            _productRepository = productRepository;
33
+            _sys_departmentRepository = sys_departmentRepository;
25
         }
34
         }
26
         /// <summary>
35
         /// <summary>
27
         /// 添加媒体投放
36
         /// 添加媒体投放
140
                 return Error("请选择要删除的记录");
149
                 return Error("请选择要删除的记录");
141
         }
150
         }
142
 
151
 
152
+        /// <summary>
153
+        /// 获取营销政策列表
154
+        /// </summary>
155
+        /// <param name="keyword"></param>
156
+        /// <param name="pageindex"></param>
157
+        /// <param name="pagesize"></param>
158
+        /// <returns></returns>
159
+        [HttpGet("getlist")]
160
+        public async Task<IActionResult> GetListAsync(string type,string name,string tel,string phone,string commodity,  int pageindex = 1, int pagesize = 20)
161
+        {
162
+            List<IConditionalModel> conModels = new List<IConditionalModel>();
163
+            #region 条件筛选
164
+            conModels.Add(new ConditionalModel() { FieldName = "F_IsDelete", ConditionalType = ConditionalType.Equal, FieldValue = ((int)EnumUserCountState.Enabled).ToString() });
165
+            if (!string.IsNullOrEmpty(name))
166
+            {
167
+                conModels.Add(new ConditionalModel() { FieldName = "F_Name", ConditionalType = ConditionalType.Like, FieldValue = name });
168
+            }
169
+           
170
+            if (!string.IsNullOrEmpty(commodity))
171
+            {
172
+                conModels.Add(new ConditionalModel() { FieldName = "F_Commodit", ConditionalType = ConditionalType.Like, FieldValue = commodity });
173
+            }
174
+            if (!string.IsNullOrEmpty(type))
175
+            {
176
+                conModels.Add(new ConditionalModel() { FieldName = "F_Type", ConditionalType = ConditionalType.Like, FieldValue = type });
177
+            }
178
+            if (!string.IsNullOrEmpty(tel))
179
+            {
180
+                conModels.Add(new ConditionalModel() { FieldName = "F_Tel", ConditionalType = ConditionalType.Like, FieldValue = tel });
181
+            }
182
+            if (!string.IsNullOrEmpty(phone))
183
+            {
184
+                conModels.Add(new ConditionalModel() { FieldName = "F_Phone", ConditionalType = ConditionalType.Like, FieldValue = phone });
185
+            }
186
+            #endregion
187
+            int recordCount = 0;
188
+            var list = await _sys_mediacenter_Repository.GetListByPage(conModels, new MyPageModel() { PageIndex = pageindex, PageSize = pagesize, PageCount = recordCount });
189
+            var obj = new
190
+            {
191
+                state = "success",
192
+                message = "成功",
193
+                rows =  ConvertAsync(list),
194
+                total = list.Totals,
195
+            };
196
+
197
+            return Content(obj.ToJson());
198
+        }
199
+        /// <summary>
200
+        /// 获取营销政策详情
201
+        /// </summary>
202
+        /// <param name="id">id</param>
203
+        /// <returns></returns>
204
+        [HttpGet("getdetails")]
205
+        public async Task<IActionResult> GetDetailsAsync(int id)
206
+        {
207
+            if (id <= 0)
208
+                return Error("参数错误");
209
+
210
+            var model = await _sys_mediacenter_Repository.GetSingle(x => x.F_ID == id);
211
+            if (model == null)
212
+            {
213
+                return Error("获取失败");
214
+            }
215
+            return Success("获取成功!",  Convert(model,1));
216
+        }
217
+
218
+
143
         #region 私有方法
219
         #region 私有方法
220
+        private  MediaCenteInput  Convert(T_Sys_MediaCente it,int type=0)
221
+        {
222
+            MediaCenteInput MediaCente = new MediaCenteInput();
223
+            MediaCente.F_ID = it.F_ID;
224
+            MediaCente.F_Type =(int ) it.F_Type; //  投放类型od    字典MTTFLX
225
+            MediaCente.F_TypeName= _sys_dictionaryRepository.GetSingle(x => x.F_ValueId  == it.F_Type ).Result.F_Value;//  投放类型
226
+            MediaCente.F_Name = (int)it.F_Name; // 媒体名称id   中央一套、中央二套等
227
+            MediaCente.F_Name_MT = _sys_mediaManagement_Repository.GetSingle(x => x.F_ID == it.F_Name).Result.F_Name;// 媒体名称
228
+            MediaCente.F_Tel = it.F_Tel; //刊登号码 
229
+            MediaCente.F_Phone = it.F_Phone; //400号码
230
+            MediaCente.F_Commodity = it.F_Commodity; //绑定商品id
231
+            MediaCente.F_CommodityName = "";//绑定商品
232
+            if (!string .IsNullOrEmpty (it.F_Commodity))
233
+            {
234
+                string[] spritcom = it.F_Commodity.Split(',');
235
+                try
236
+                {
237
+                    foreach (var ib in spritcom)
238
+                    {
239
+                        if (MediaCente.F_CommodityName == "")
240
+                            MediaCente.F_CommodityName = _productRepository.GetSingle(x => x.F_ProductId == int.Parse(ib)).Result.F_ProductName;
241
+                        else
242
+                            MediaCente.F_CommodityName+=","+ _productRepository.GetSingle(x => x.F_ProductId == int.Parse(ib)).Result.F_ProductName;
243
+                    }
244
+                }
245
+                catch
246
+                {
247
+
248
+                }
249
+               
250
+            }
251
+            MediaCente.F_LaunchTime = it.F_LaunchTime; //投放日期
252
+            MediaCente.F_DailyExpenses = it.F_DailyExpenses; //日费用
253
+            MediaCente.F_PlayPlan = it.F_PlayPlan; //日费用
254
+            if (type >0)
255
+            {
256
+                MediaCente.F_PlayPlanList = new List<PlanManagemenInput>();
257
+                string[] spritplay= it.F_PlayPlan.Split(',');
258
+                try
259
+                {
260
+                    foreach (var ib in spritplay)
261
+                    {
262
+                        PlanManagemenInput t_Sys_PlanManagemen = new PlanManagemenInput();
263
+                        var planplay = _sys_planmanagemenRepository.GetSingle(x => x.F_Id == int.Parse(ib)).Result ;
264
+                        t_Sys_PlanManagemen.F_Type =(int ) planplay.F_Type;//0计划1媒体变更 
265
+                        t_Sys_PlanManagemen.F_StartTime = planplay.F_StartTime;//计划开始时间
266
+                        t_Sys_PlanManagemen.F_EndTime = planplay.F_EndTime;// 计划结束时间
267
+                        t_Sys_PlanManagemen.F_PlayDate = planplay.F_PlayDate;// 播放日期
268
+                        t_Sys_PlanManagemen.F_BroadcastTime = planplay.F_BroadcastTime;//播出时间
269
+                        t_Sys_PlanManagemen.F_Name = planplay.F_Name;//广告名称(字典)
270
+                        t_Sys_PlanManagemen.F_Name_MT = _sys_dictionaryRepository.GetSingle(x => x.F_ValueId == planplay.F_Name).Result.F_Value;//  广告名称
271
+                        t_Sys_PlanManagemen.F_BroadcastDuration = planplay.F_BroadcastDuration;//播出时长
272
+                        t_Sys_PlanManagemen.F_PlayCount = planplay.F_PlayCount;//播放次数
273
+                        t_Sys_PlanManagemen.F_State = planplay.F_State;//状态
274
+                        MediaCente.F_PlayPlanList.Add(t_Sys_PlanManagemen);
275
+                    }
276
+                }
277
+                catch
278
+                {
279
+
280
+                }
281
+            }
282
+            if (type >0)
283
+            {
284
+                MediaCente.F_IsRemind = (int)it.F_IsRemind; //是否提醒
285
+                MediaCente.F_DeptId = it.F_DeptId; //提醒部门
286
+                if (it.F_DeptId != null)
287
+                    MediaCente.F_DeptName = _sys_departmentRepository.GetSingle(x => x.F_DeptId  == (int )it.F_DeptId).Result.F_DeptName ;
288
+                MediaCente.F_ReminderTime = it.F_ReminderTime; //提醒时间
289
+            }
290
+            MediaCente.F_MediaChange = it.F_MediaChange; //媒体变更  ID
291
+            if (type > 0)
292
+            {
293
+                MediaCente.F_MediaChangeList = new List<PlanManagemenInput>();
294
+                string[] spritplay = it.F_MediaChange.Split(',');
295
+                try
296
+                {
297
+                    foreach (var ib in spritplay)
298
+                    {
299
+                        PlanManagemenInput t_Sys_PlanManagemen = new PlanManagemenInput();
300
+                        var planplay = _sys_planmanagemenRepository.GetSingle(x => x.F_Id == int.Parse(ib)).Result;
301
+                        t_Sys_PlanManagemen.F_Type =(int ) planplay.F_Type;//0计划1媒体变更 
302
+                        t_Sys_PlanManagemen.F_State = planplay.F_State;//状态
303
+                        t_Sys_PlanManagemen.F_ChangeType = (int)planplay.F_ChangeType;//变更类型字典
304
+                        t_Sys_PlanManagemen.F_ChangeTypeName= _sys_dictionaryRepository.GetSingle(x => x.F_ValueId == planplay.F_ChangeType).Result.F_Value;//  /变更类型
305
+                        t_Sys_PlanManagemen.F_ChangeTime = planplay.F_ChangeTime;//变更时间
306
+                        t_Sys_PlanManagemen.F_Describe = planplay.F_Describe;//变更说明
307
+                        MediaCente.F_MediaChangeList.Add(t_Sys_PlanManagemen);
308
+                    }
309
+                }
310
+                catch
311
+                {
312
+
313
+                }
314
+            }
315
+            MediaCente.F_CreateTime = it.F_CreateTime; //创建时间
316
+            MediaCente.F_CreateUser = it.F_CreateUser; //
317
+            MediaCente.F_State = it.F_State; //
318
+            return MediaCente;
319
+        }
144
         /// <summary>
320
         /// <summary>
145
         /// Input转Model
321
         /// Input转Model
146
         /// </summary>
322
         /// </summary>
147
         /// <param name="input"></param>
323
         /// <param name="input"></param>
148
         /// <returns></returns>
324
         /// <returns></returns>
149
-        private  T_Sys_MediaCente Transformation(T_Sys_MediaCente model, MediaCenteInput input,string user ,int type=0)
325
+        private T_Sys_MediaCente Transformation(T_Sys_MediaCente model, MediaCenteInput input,string user ,int type=0)
150
         {
326
         {
151
             model.F_Type = input.F_Type;//投放类型    字典MTTFLX
327
             model.F_Type = input.F_Type;//投放类型    字典MTTFLX
152
             model.F_Name = input.F_Name;//媒体名称   中央一套、中央二套等 下拉
328
             model.F_Name = input.F_Name;//媒体名称   中央一套、中央二套等 下拉
264
             model.F_IsDelete = 0;
440
             model.F_IsDelete = 0;
265
             return model;
441
             return model;
266
         }
442
         }
443
+        /// model转input
444
+        /// </summary>
445
+        /// <param name="input"></param>
446
+        /// <returns></returns>
447
+        private  List<MediaCenteInput> ConvertAsync(PageData<T_Sys_MediaCente> model)
448
+        {
449
+            List<MediaCenteInput> input = new List<MediaCenteInput>();
450
+            if (model != null)
451
+            {
452
+
453
+                foreach (var it in model.Rows)
454
+                {
455
+                    MediaCenteInput marketing = new MediaCenteInput();
456
+                    marketing =  Convert(it);
457
+                    input.Add(marketing);
458
+                }
459
+            }
460
+            return input;
461
+        }
267
         #endregion
462
         #endregion
268
 
463
 
269
 
464
 

+ 1 - 1
代码/TVShoppingCallCenter_ZLJ/Controllers/MediaCente/MediaManagementController.cs

148
                 state = "success",
148
                 state = "success",
149
                 message = "成功",
149
                 message = "成功",
150
                 rows = result,
150
                 rows = result,
151
-                total = list.Rows.Count ,
151
+                total = list.Totals,
152
             };
152
             };
153
 
153
 
154
             return Content(obj.ToJson());
154
             return Content(obj.ToJson());

+ 1 - 1
代码/TVShoppingCallCenter_ZLJ/Models/Inputs/MediaCenteInput.cs

57
         /// <summary>
57
         /// <summary>
58
         /// 绑定商品
58
         /// 绑定商品
59
         /// </summary>
59
         /// </summary>
60
-        public int? F_Commodity
60
+        public string  F_Commodity
61
         {
61
         {
62
             get; set;
62
             get; set;
63
         }
63
         }

+ 14 - 1
代码/TVShoppingCallCenter_ZLJ/Models/Inputs/PlanManagemenInput.cs

57
             get; set;
57
             get; set;
58
         }
58
         }
59
         /// <summary>
59
         /// <summary>
60
+        /// 广告名称(字典)
61
+        /// </summary>
62
+        public string  F_Name_MT
63
+        {
64
+            get; set;
65
+        }
66
+        /// <summary>
60
         /// 播出时长
67
         /// 播出时长
61
         /// </summary>
68
         /// </summary>
62
-        public decimal? F_BroadcastDuration
69
+        public float  F_BroadcastDuration
63
         {
70
         {
64
             get; set;
71
             get; set;
65
         }
72
         }
83
         public int F_ChangeType
90
         public int F_ChangeType
84
         {
91
         {
85
             get; set;
92
             get; set;
93
+        }/// <summary>
94
+         /// 变更类型
95
+         /// </summary>
96
+        public string  F_ChangeTypeName
97
+        {
98
+            get; set;
86
         }
99
         }
87
         /// <summary>
100
         /// <summary>
88
         /// 变更时间
101
         /// 变更时间