Procházet zdrojové kódy

营销活动媒体投放

duhongyu %!s(int64=5) %!d(string=před) roky
rodič
revize
564c093065

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

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

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

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

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

@@ -162,16 +162,16 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Marketing
162 162
             {
163 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 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 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 176
                 //conModels.Add(new ConditionalModel() { FieldName = "F_Process", ConditionalType = ConditionalType.Equal , FieldValue = process });
177 177
             }
@@ -184,7 +184,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Marketing
184 184
                 state = "success",
185 185
                 message = "成功",
186 186
                 rows = await ConvertAsync(list),
187
-                total = list.Rows .Count ,
187
+                total = list.Totals ,
188 188
             };
189 189
 
190 190
             return  Content(obj.ToJson());

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

@@ -18,10 +18,19 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.MediaCente
18 18
     {
19 19
         private readonly ISys_MediaCenteRepository  _sys_mediacenter_Repository;
20 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 28
             _sys_mediacenter_Repository = sys_mediacenter_Repository;
24 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 35
         /// <summary>
27 36
         /// 添加媒体投放
@@ -140,13 +149,180 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.MediaCente
140 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 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 320
         /// <summary>
145 321
         /// Input转Model
146 322
         /// </summary>
147 323
         /// <param name="input"></param>
148 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 327
             model.F_Type = input.F_Type;//投放类型    字典MTTFLX
152 328
             model.F_Name = input.F_Name;//媒体名称   中央一套、中央二套等 下拉
@@ -264,6 +440,25 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.MediaCente
264 440
             model.F_IsDelete = 0;
265 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 462
         #endregion
268 463
 
269 464
 

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

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

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

@@ -57,7 +57,7 @@ namespace TVShoppingCallCenter_ZLJ.Models.Inputs
57 57
         /// <summary>
58 58
         /// 绑定商品
59 59
         /// </summary>
60
-        public int? F_Commodity
60
+        public string  F_Commodity
61 61
         {
62 62
             get; set;
63 63
         }

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

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