duhongyu 5 vuotta sitten
vanhempi
commit
525c55b359

+ 13 - 0
代码/System.IRepositories/Cus/ICus_MembershipRepository.cs

@@ -0,0 +1,13 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Common;
4
+using System.Model.Cus;
5
+using System.Text;
6
+
7
+namespace System.IRepositories.Cus
8
+{
9
+   
10
+    public interface ICus_MembershipRepository : IRepository<T_Cus_Membership>
11
+    {
12
+    }
13
+}

+ 11 - 3
代码/System.Model/Bus/T_Bus_Order.cs

@@ -70,7 +70,7 @@ namespace System.Model
70 70
 		private string _f_tag = "";
71 71
         private int _f_ispayment = 0;
72 72
 
73
-       
73
+        private string _f_membernotes = "";
74 74
         private string _f_recommendName = "";
75 75
       
76 76
 
@@ -560,8 +560,16 @@ namespace System.Model
560 560
             set { _f_ispayment = value; }
561 561
             get { return _f_ispayment; }
562 562
         }
563
-    
564
-      
563
+
564
+        /// <summary>
565
+        /// 会员备注
566
+        /// </summary>
567
+        public string F_MemberNotes
568
+        {
569
+            set { _f_membernotes = value; }
570
+            get { return _f_membernotes; }
571
+
572
+        }
565 573
         #endregion Model
566 574
 
567 575
     }

+ 97 - 0
代码/System.Model/Cus/T_Cus_Membership.cs

@@ -0,0 +1,97 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Text;
4
+
5
+namespace System.Model.Cus
6
+{
7
+    [Serializable]
8
+    public partial class T_Cus_Membership
9
+    {
10
+        public T_Cus_Membership()
11
+        { }
12
+        #region Model
13
+        private int _f_id;
14
+        private string _f_name;
15
+        private int? _f_minmoney=0;
16
+        private int? _f_maxmoney=0;
17
+        private string _f_adduser;
18
+        private DateTime? _f_addtime;
19
+        private DateTime? _f_modifyon;
20
+        private string _f_modifyby;
21
+        private int? _f_state;
22
+        /// <summary>
23
+        /// auto_increment
24
+        /// </summary>
25
+        public int F_ID
26
+        {
27
+            set { _f_id = value; }
28
+            get { return _f_id; }
29
+        }
30
+        /// <summary>
31
+        /// 会员等级名称
32
+        /// </summary>
33
+        public string F_Name
34
+        {
35
+            set { _f_name = value; }
36
+            get { return _f_name; }
37
+        }
38
+        /// <summary>
39
+        /// 最低金额
40
+        /// </summary>
41
+        public int? F_MinMoney
42
+        {
43
+            set { _f_minmoney = value; }
44
+            get { return _f_minmoney; }
45
+        }
46
+        /// <summary>
47
+        /// 最大金额
48
+        /// </summary>
49
+        public int? F_MaxMoney
50
+        {
51
+            set { _f_maxmoney = value; }
52
+            get { return _f_maxmoney; }
53
+        }
54
+        /// <summary>
55
+        /// 添加人
56
+        /// </summary>
57
+        public string F_AddUser
58
+        {
59
+            set { _f_adduser = value; }
60
+            get { return _f_adduser; }
61
+        }
62
+        /// <summary>
63
+        /// 添加时间
64
+        /// </summary>
65
+        public DateTime? F_AddTime
66
+        {
67
+            set { _f_addtime = value; }
68
+            get { return _f_addtime; }
69
+        }
70
+        /// <summary>
71
+        /// 修改时间
72
+        /// </summary>
73
+        public DateTime? F_ModifyOn
74
+        {
75
+            set { _f_modifyon = value; }
76
+            get { return _f_modifyon; }
77
+        }
78
+        /// <summary>
79
+        /// 修改人
80
+        /// </summary>
81
+        public string F_ModifyBy
82
+        {
83
+            set { _f_modifyby = value; }
84
+            get { return _f_modifyby; }
85
+        }
86
+        /// <summary>
87
+        /// 
88
+        /// </summary>
89
+        public int? F_State
90
+        {
91
+            set { _f_state = value; }
92
+            get { return _f_state; }
93
+        }
94
+        #endregion Model
95
+
96
+    }
97
+}

+ 14 - 0
代码/System.Repositories/Cus/Cus_MembershipRepository.cs

@@ -0,0 +1,14 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Common;
4
+
5
+using System.Model.Cus;
6
+using System.IRepositories.Cus;
7
+
8
+namespace System.Repositories.Cus
9
+{
10
+   
11
+    public class Cus_MembershipRepository : BaseRepository<T_Cus_Membership>, ICus_MembershipRepository
12
+    {
13
+    }
14
+}

+ 156 - 0
代码/TVShoppingCallCenter_ZLJ/Controllers/Customer/MembershipController.cs

@@ -0,0 +1,156 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Common;
4
+using System.IRepositories.Cus;
5
+using System.Linq;
6
+using System.Model.Cus;
7
+using System.Security.Claims;
8
+using System.Threading.Tasks;
9
+using Microsoft.AspNetCore.Mvc;
10
+using SqlSugar;
11
+
12
+namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
13
+{
14
+    [Produces("application/json")]
15
+    [Route("api/[controller]")]
16
+    public class MembershipController : BaseController
17
+    {
18
+        private readonly ICus_MembershipRepository _cus_membershiprepository;
19
+       
20
+        public MembershipController(ICus_MembershipRepository cus_membershiprepository)
21
+        {
22
+            _cus_membershiprepository = cus_membershiprepository;
23
+           
24
+        }
25
+        /// <summary>
26
+        /// 添加
27
+        /// </summary>
28
+        /// <param name="input"></param>
29
+        /// <returns></returns>
30
+        [HttpPost("add")]
31
+        public async Task<IActionResult> AddAsync(T_Cus_Membership input)
32
+        {
33
+            if (string.IsNullOrEmpty(input.F_Name))
34
+                return Error("请输入会员类型");
35
+            //  input.F_CreateUser = "8000";
36
+            input.F_AddTime  = DateTime.Now;
37
+            input.F_State  = 1;
38
+            input.F_AddUser  = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
39
+            var res = await _cus_membershiprepository.Add(input);
40
+            if (res > 0)
41
+            {
42
+                return Success("添加成功");
43
+            }
44
+            else
45
+            {
46
+                return Error("添加失败");
47
+            }
48
+        }
49
+        /// <summary>
50
+        /// 修改
51
+        /// </summary>
52
+        [HttpPost("update")]
53
+        public async Task<IActionResult> UpdateAsync(T_Cus_Membership input)
54
+        {
55
+            if (input.F_ID <= 0)
56
+                return Error("请选择正确的会员类型xz");
57
+            if (string.IsNullOrEmpty(input.F_Name))
58
+                return Error("请输入会员类型");
59
+            var model = await _cus_membershiprepository.GetSingle(x => x.F_ID == input.F_ID);
60
+            if (model == null)
61
+                return Error("操作失败");
62
+            input.F_State  = model .F_State ;
63
+            input.F_AddUser  = model.F_AddUser ;
64
+            input.F_AddTime  = model.F_AddTime ;
65
+            model = input;
66
+            model.F_ModifyOn  = DateTime.Now;
67
+            // model.F_UpdateUser = "8000";
68
+            model.F_ModifyBy  = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
69
+            var b = await _cus_membershiprepository.Update(model);
70
+            if (b)
71
+                return Success("修改成功");
72
+            return Error("修改失败");
73
+        }
74
+        /// <summary>
75
+        /// 删除
76
+        /// </summary>
77
+        /// <param name="ids"></param>
78
+        /// <returns></returns>
79
+        [HttpPost("delete")]
80
+        public async Task<IActionResult> Remove(int[] ids,int  state=1)
81
+        {
82
+            var res = 0;
83
+            if (ids != null && ids.Length > 0)
84
+            {
85
+                foreach (var item in ids)
86
+                {
87
+                    var model = await _cus_membershiprepository.GetSingle(x => x.F_ID == item);
88
+                    model.F_State  = state;
89
+                    if (_cus_membershiprepository.Update(model).Result)
90
+                        res += 1;
91
+                }
92
+                if (res == ids.Length)
93
+                    return Success("操作成功");
94
+                else if (res > 0 && res < ids.Length)
95
+                    return Error("部分删除失败,请查看后重新操作");
96
+                else
97
+                    return Error("删除失败,请查看后重新操作");
98
+            }
99
+            else
100
+                return Error("请选择要删除的记录");
101
+        }
102
+
103
+        /// <summary>
104
+        /// 获取列表
105
+        /// </summary>
106
+        /// <param name="keyword"></param>
107
+        /// <param name="pageindex"></param>
108
+        /// <param name="pagesize"></param>
109
+        /// <returns></returns>
110
+        [HttpGet("getlist")]
111
+        public async Task<IActionResult> GetLisAsync(string name, string province, string city, string county, string region, int pageindex = 1, int pagesize = 20)
112
+        {
113
+            List<IConditionalModel> conModels = new List<IConditionalModel>();
114
+            #region 条件筛选
115
+            conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.NoEqual, FieldValue = ((int)EnumDelState.Delete).ToString() });
116
+            if (!string.IsNullOrEmpty(name))
117
+            {
118
+                conModels.Add(new ConditionalModel() { FieldName = "F_Name", ConditionalType = ConditionalType.Like, FieldValue = name });
119
+            }
120
+            #endregion
121
+            int recordCount = 0;
122
+            var list = await _cus_membershiprepository.GetListByPage(conModels, new MyPageModel() { PageIndex = pageindex, PageSize = pagesize, PageCount = recordCount });
123
+
124
+
125
+            var obj = new
126
+            {
127
+                state = "success",
128
+                message = "成功",
129
+                rows = list,
130
+                total = list.Totals,
131
+            };
132
+
133
+            return Content(obj.ToJson());
134
+        }
135
+
136
+        /// <summary>
137
+        /// 获取详情
138
+        /// </summary>
139
+        /// <param name="id">id</param>
140
+        /// <returns></returns>
141
+        [HttpGet("getdetails")]
142
+        public async Task<IActionResult> GetDetailsAsync(int id)
143
+        {
144
+            if (id <= 0)
145
+                return Error("参数错误");
146
+
147
+            var model = await _cus_membershiprepository.GetSingle(x => x.F_ID == id);
148
+            if (model == null)
149
+            {
150
+                return Error("获取失败");
151
+            }
152
+
153
+            return Success("获取成功!", model);
154
+        }
155
+    }
156
+}

+ 73 - 3
代码/TVShoppingCallCenter_ZLJ/Controllers/Customer/VIPInfoController.cs

@@ -17,6 +17,7 @@ using System.Reflection;
17 17
 using System.Text.RegularExpressions;
18 18
 using System.IRepositories.Call;
19 19
 using System.Model.Call;
20
+using System.Utility.Encrypt;
20 21
 
21 22
 namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
22 23
 {
@@ -156,10 +157,12 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
156 157
             if (model != null)
157 158
             {
158 159
                 var modellist = await _cus_msgRepository.GetListALL(x => x.F_VipInfoID == model.F_ID);
160
+                var viplist = await _cus_vip_infoRepository.GetListALL(x => x.F_State == 1&& x.F_Recommender == model.F_Name&&(x .F_RecommenderTel ==model .F_Phone || x.F_RecommenderTel == model.F_Mobile &&x.F_RecommenderTel == model.F_Mobile1));
159 161
                 var obj =new 
160 162
                 {
161 163
                     model,
162
-                    modellist
164
+                    modellist,
165
+                    viplist
163 166
                 };
164 167
              return   Content(obj.ToJson());
165 168
 
@@ -168,6 +171,61 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
168 171
            
169 172
         }
170 173
         /// <summary>
174
+        /// 号码加密
175
+        /// </summary>
176
+        /// <param name="id"></param>
177
+        /// <param name="type"></param>
178
+        /// <returns></returns>
179
+        [HttpGet("encryptphone")]
180
+        public async Task<IActionResult> GetEncrypt(int id,int type=0)
181
+        {
182
+            var model = await _cus_vip_infoRepository.GetSingleV(x => x.F_ID == id && x.F_State == (int)EnumDelState.Enabled);
183
+            if (model == null)
184
+                return Error("获取失败");
185
+            string date = "";
186
+            if (type == 0)
187
+                date = model.F_Phone;
188
+            else if (type == 1)
189
+                date = model.F_Mobile;
190
+            else if (type == 2)
191
+                date = model.F_Mobile1;
192
+            if (string.IsNullOrEmpty(date))
193
+                return Error("请输入要加密的内容!");
194
+            var aes = EncryptHelper.EncryptAES(date);
195
+            if (!string.IsNullOrEmpty(aes))
196
+            {
197
+                var des = EncryptHelper.EncryptDES(aes);
198
+                if (!string.IsNullOrEmpty(des))
199
+                    return Success("加密成功!", des);
200
+            }
201
+            return Error("加密失败!");
202
+
203
+        }
204
+        /// <summary>
205
+        /// 号码解密
206
+        /// </summary>
207
+        /// <param name="id"></param>
208
+        /// <param name="type"></param>
209
+        /// <returns></returns>
210
+        [HttpGet("decryptphone")]
211
+        public async Task<IActionResult> Decrypt(string  date)
212
+        {
213
+         
214
+           if (!string.IsNullOrEmpty(date))
215
+                {
216
+                    var des = EncryptHelper.DecryptDES(date.Trim());
217
+                    if (!string.IsNullOrEmpty(des))
218
+                    {
219
+                        var aes = EncryptHelper.DecryptAES(des);
220
+                    return Success("获取成功", aes);
221
+                       
222
+                    }
223
+                }
224
+            
225
+            return Error("获取失败");
226
+
227
+        }
228
+        /// <summary>
171 229
         /// 根据电话号码获取会员详情
172 230
         /// </summary>
173 231
         /// <param name="id">id</param>
@@ -207,7 +265,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
207 265
             if (string.IsNullOrEmpty(input.phone))
208 266
                 return Error("请输入联系方式");
209 267
 
210
-            if (await _cus_vip_infoRepository.GetCount(q => q.F_Phone == input.phone&&q.F_State== (int)EnumDelState.Enabled) >0)
268
+            if (await _cus_vip_infoRepository.GetCount(q => q.F_Phone   == input.phone  && q.F_State== (int)EnumDelState.Enabled) >0)
211 269
             {
212 270
                 return Error("手机号已存在");
213 271
             }
@@ -215,6 +273,12 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
215 273
             var model = new T_Cus_VipInfo();
216 274
             //model.F_VIPCode = input.vipcode;//会员卡号
217 275
             model.F_Name = input.name;
276
+            if (input.birthday!=null)
277
+            {
278
+                DateTime time = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
279
+                if (input.birthday > time)
280
+                    return Error("会员生日必须小于今天");
281
+            }
218 282
             model.F_Birthday = input.birthday;
219 283
             if(!valtel(input.phone))
220 284
                 return Error("手机号必须为11位数字");
@@ -352,7 +416,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
352 416
             if (string.IsNullOrEmpty(input.phone))
353 417
                 return Error("请输入联系方式");
354 418
 
355
-            if (await _cus_vip_infoRepository.GetCount(q => q.F_Phone == input.phone&&q.F_ID!= input.id && q.F_State == (int)EnumDelState.Enabled) > 0)
419
+            if (await _cus_vip_infoRepository.GetCount(q => q.F_Phone == input.phone && q.F_ID!= input.id && q.F_State == (int)EnumDelState.Enabled) > 0)
356 420
             {
357 421
                 return Error("手机号已存在");
358 422
             }
@@ -362,6 +426,12 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
362 426
                 return Error("操作失败");
363 427
             //model.F_VIPCode = input.vipcode;//会员卡号
364 428
             model.F_Name = input.name;
429
+            if (input.birthday != null)
430
+            {
431
+                DateTime time = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
432
+                if (input.birthday > time)
433
+                    return Error("会员生日必须小于今天");
434
+            }
365 435
             model.F_Birthday = input.birthday;
366 436
             if (!valtel(input.phone))
367 437
                 return Error("手机号必须为11位数字");

+ 25 - 2
代码/TVShoppingCallCenter_ZLJ/Controllers/ManagementCenter/ManagementCenterController.cs

@@ -172,6 +172,29 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.ManagementCenter
172 172
             return conModels;
173 173
         }
174 174
         /// <summary>
175
+        /// 会员生日
176
+        /// </summary>
177
+        /// <param name="time"></param>
178
+        /// <returns></returns>
179
+        [HttpGet("realtimesales")]
180
+        public async Task<IActionResult > Birthday(string time)
181
+        {
182
+            string user = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
183
+            DateTime dateTime = DateTime.Now;
184
+            if (!string.IsNullOrEmpty(time))
185
+                dateTime = DateTime.Parse(time);
186
+            List<IConditionalModel> cosModels = new List<IConditionalModel>();
187
+            int days = Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(dateTime.Year, dateTime.Month);
188
+            cosModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.Equal, FieldValue = ((int)EnumDelState.Enabled).ToString() });
189
+            cosModels.Add(new ConditionalModel() { FieldName = "F_Birthday", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = dateTime.ToString("yyyy-MM")+"-01" + " 00:00:00" });
190
+            cosModels.Add(new ConditionalModel() { FieldName = "F_Birthday", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = dateTime.ToString("yyyy-MM") + "-"+ days + " 23:59:59" });
191
+            cosModels.Add(new ConditionalModel() { FieldName = "F_Saleperson", ConditionalType = ConditionalType.Equal, FieldValue = user });
192
+            var todaycustomer = _cus_vip_infoRepository.GetListALL(cosModels, "F_CreateOn asc").Result;
193
+            return Success("获取成功", todaycustomer);
194
+           
195
+        }
196
+
197
+        /// <summary>
175 198
         /// 当月任务总量
176 199
         /// </summary>
177 200
         /// <param name="time"></param>
@@ -231,7 +254,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.ManagementCenter
231 254
             if (!string.IsNullOrEmpty(time))
232 255
                 dateTime = DateTime.Parse (time);
233 256
             List<IConditionalModel> orderModels = new List<IConditionalModel>();
234
-            int days = Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(dateTime.Year, dateTime.Month - 1);//获取天数
257
+            int days = Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(dateTime.Year, dateTime.Month);//获取天数
235 258
             orderModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = dateTime.ToString("yyyy-MM-01") });
236 259
             orderModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.LessThanOrEqual, FieldValue = dateTime.ToString("yyyy-MM") + "-" + days + " 23:59:59" });
237 260
             orderModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue ="0" });
@@ -471,7 +494,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.ManagementCenter
471 494
             if (!string.IsNullOrEmpty(month))
472 495
                 time = DateTime.Parse (month);
473 496
            
474
-            int   days = Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(time.Year, time.Month - 1);//获取天数
497
+            int   days = Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(time.Year, time.Month );//获取天数
475 498
             if (time.Month == DateTime.Now.Month)
476 499
             {
477 500
                 days = DateTime.Now.Day;

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

@@ -158,7 +158,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.MediaCente
158 158
         }
159 159
 
160 160
         /// <summary>
161
-        /// 获取营销政策详情
161
+        /// 获取详情
162 162
         /// </summary>
163 163
         /// <param name="id">id</param>
164 164
         /// <returns></returns>

+ 3 - 3
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/KFOrderController.cs

@@ -206,7 +206,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
206 206
             return Success("导入成功");
207 207
         }
208 208
         /// <summary>
209
-        /// 分仓
209
+        /// 批量退回
210 210
         /// </summary>
211 211
         /// <param name="orderids"></param>
212 212
         /// <param name="stock"></param>
@@ -254,7 +254,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
254 254
         /// 订单二审 审完 走发货
255 255
         /// </summary>
256 256
         /// <param name="orderid">订单号</param>
257
-        /// <param name="state">订单状态 -1无效 0暂存 1提交  2KF退回  3通过 4KG退回 5已分拣 6已发货</param>
257
+        /// <param name="state">订单状态 -1无效 0暂存 1提交  2KF退回  3通过 4KG退回 5已分拣 6已发货7,8分仓</param>
258 258
         /// <param name="remark">客服备注</param>
259 259
         /// <returns></returns>
260 260
         [HttpPost("/api/order/checkorderbykf")]
@@ -806,7 +806,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
806 806
                 }
807 807
                else
808 808
                 {
809
-                    modelOrder.F_State = 3;
809
+                    modelOrder.F_State = 8;
810 810
                 }
811 811
                 orderLIst.Add(modelOrder);
812 812
             }

+ 89 - 20
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/OrderController.cs

@@ -417,7 +417,6 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
417 417
             {
418 418
                 T_Cus_VipInfo modelvip = new T_Cus_VipInfo();
419 419
                 #region 验证参数 必填项  
420
-
421 420
                 if (string.IsNullOrEmpty(input.F_ADFrom))
422 421
                     return Error("请输入选择广告来源");
423 422
                 if (string.IsNullOrEmpty(input.F_Type))
@@ -431,24 +430,19 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
431 430
                 if (input.F_Type == "售后订单")
432 431
                     return Error("售后订单只能根据售后单自动创建");
433 432
                 #endregion
434
-
435
-
436 433
                 int exist = await bus_OrderRepository.GetCount(q => q.F_Id == input.F_Id);
437 434
                 if (exist > 0)
438 435
                 {
439 436
                     return Error("此订单号已存在");
440 437
                 }
441
-
442 438
                 T_Bus_Order modelOrder = new T_Bus_Order();
443 439
                 #region 订单属性
444 440
                 //必填
445 441
                 modelOrder.F_ADFrom = input.F_ADFrom;
446 442
                 modelOrder.F_Type = input.F_Type;
447 443
                 modelOrder.F_Id = input.F_Id;
448
-
449 444
                 modelOrder.F_Customer = input.F_Customer;
450 445
                 modelOrder.F_CustomerPhone = input.F_CustomerPhone;
451
-
452 446
                 if (input.F_RecommendId > 0)
453 447
                 {
454 448
                     modelOrder.F_RecommendId = input.F_RecommendId;
@@ -473,7 +467,6 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
473 467
                 { modelOrder.F_AddArea = input.F_AddArea; }
474 468
                 if (!string.IsNullOrEmpty(input.F_AddTown))
475 469
                 { modelOrder.F_AddTown = input.F_AddTown; }
476
-
477 470
                 if (!string.IsNullOrEmpty(input.F_AddDes))
478 471
                 { modelOrder.F_AddDes = input.F_AddDes; }
479 472
                 if (!string.IsNullOrEmpty(input.F_Address))
@@ -509,14 +502,11 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
509 502
                     modelOrder.F_Belong = UserLogin.UserId.ObjToInt();
510 503
                     modelOrder.F_BelongName = UserLogin.UserName;
511 504
                 }
512
-
513
-
514 505
                 modelOrder.F_ExpressFee = input.F_ExpressFee;
515 506
                 //  modelOrder.F_Stock = input.F_Stock;
516
-
517 507
                 modelOrder.F_IsExpress = 0;
518
-              
519 508
                 modelOrder.F_RealPrice = input.F_RealPrice;
509
+                modelOrder.F_MemberNotes = input.F_MemberNotes;//会员备注
520 510
                 modelOrder.F_UseScore = input.F_UseScore;
521 511
                 if (input.F_IsPayment > 0)
522 512
                 {
@@ -528,14 +518,14 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
528 518
                             return Error("请输入订单号");
529 519
                         if (string.IsNullOrEmpty(input.OrderMoney.F_PayUser))
530 520
                             return Error("请输入打款人");
531
-                        if (string.IsNullOrEmpty(input.OrderMoney.F_PayType))
532
-                            return Error("请输入打款方式");
521
+                        if (string.IsNullOrEmpty(input.F_PayType))
522
+                            return Error("请选择付款方式");
533 523
                         if (string.IsNullOrEmpty(input.OrderMoney.F_RemarkKF))
534 524
                             input.OrderMoney.F_RemarkKF = "";
535 525
                         if (string.IsNullOrEmpty(input.OrderMoney.F_RemarkXS))
536 526
                             input.OrderMoney.F_RemarkXS = "";
537 527
                         if (input.OrderMoney.F_PayTime == null)
538
-                            return Error("请输入打款时间");
528
+                            return Error("请选择打款时间");
539 529
                         if (input.OrderMoney.F_Money <= 0)
540 530
                             return Error("请输入金额");
541 531
 
@@ -559,9 +549,9 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
559 549
                 //选填 关联属性
560 550
                
561 551
                 modelOrder.F_Status = 0;
562
-
552
+               
563 553
                 modelOrder.F_IsPayment = input.F_IsPayment;
564
-           
554
+               
565 555
                 //必须属性 系统生成
566 556
                 modelOrder.F_AddTime = DateTime.Now;
567 557
                 modelOrder.F_AddUser = UserLogin.UserId.ObjToInt();
@@ -727,9 +717,9 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
727 717
                 #endregion
728 718
 
729 719
                 //订单完成后也不计算积分
730
-              
731 720
 
732 721
 
722
+                modelOrder.F_TotlePrice += input.F_ExpressFee;//订单总额(包括快递费)
733 723
 
734 724
                 modelOrder.F_PayState = 0;
735 725
 
@@ -755,6 +745,83 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
755 745
             { return Error(ex.Message); }
756 746
         }
757 747
         /// <summary>
748
+        /// 获取总金额
749
+        /// </summary>
750
+        /// <param name="OrderDetailList"></param>
751
+        /// <param name="UseActList"></param>
752
+        /// <returns></returns>
753
+        [HttpPost("getPrice")]
754
+        public async Task<IActionResult> GetPrice(List<OrderDetailInput> OrderDetailList
755
+            , List<UseActInput> UseActList,int F_ExpressFee=0)
756
+        {
757
+            decimal totle = 0.00M;
758
+            decimal ActivityMoney = 0.00M;
759
+            string UseActivity = "";
760
+            string UseActivity4 = ",";
761
+            string UseActivity2 = ",";
762
+            if (OrderDetailList != null && OrderDetailList.Count > 0)
763
+            {
764
+                int n = 1;
765
+                int n2 = OrderDetailList.Count + 1;
766
+                #region 活动核算
767
+                if (UseActList != null && UseActList.Count > 0)
768
+                {
769
+                    //遍历所有选中的活动
770
+                    foreach (UseActInput act in UseActList)
771
+                    {
772
+                        UseActivity += act.id + ",";
773
+                        
774
+                        if (act.type == 2)
775
+                        {
776
+                            UseActivity2 += act.gift + ",";
777
+                        }
778
+                        //满减
779
+                        else if (act.type == 3)
780
+                        {
781
+                            ActivityMoney += act.money;
782
+                        }
783
+                        else if (act.type == 4)
784
+                        {
785
+                            UseActivity4 += act.gift + ",";
786
+                        }
787
+                    }
788
+                    UseActivity = UseActivity.Trim(',');
789
+                }
790
+                #endregion
791
+
792
+                #region 商品核算
793
+                foreach (OrderDetailInput m in OrderDetailList)
794
+                {
795
+                    T_Bus_Product modelProduct = await bus_productRepository.GetSingle(b => b.F_ProductId == m.F_ProductId);
796
+                    if (modelProduct == null)
797
+                        return Error("商品不存在:" + m.F_ProductId);
798
+                    T_Bus_OrderDetail modelDetail = new T_Bus_OrderDetail();
799
+                    //参加活动特价
800
+                    if (UseActivity4.Contains("," + modelProduct.F_ProductId + ","))
801
+                        modelDetail.F_DealPrice = modelProduct.F_SpecialPrice;
802
+                    else
803
+                        modelDetail.F_DealPrice = modelProduct.F_MemberPrice;
804
+                    //参加生日
805
+                    if (UseActivity2.Contains("," + modelProduct.F_ProductId + ","))
806
+                    {
807
+                        modelDetail.F_DealPrice = 0.00M;
808
+                        modelDetail.F_Remark = "生日赠品-活动:";
809
+                    }
810
+                    modelDetail.F_TotlePrice = modelDetail.F_DealPrice * modelDetail.F_Count;
811
+                    totle += modelDetail.F_TotlePrice;
812
+                    n++;
813
+                }
814
+                #endregion
815
+               
816
+            }
817
+            else
818
+            {
819
+                //不改变订单
820
+            }
821
+            totle += F_ExpressFee;
822
+            return Success("获取成功", totle);
823
+        }
824
+        /// <summary>
758 825
         /// 提交订单 Audit payment
759 826
         /// </summary>
760 827
         /// <param name="input"></param>
@@ -990,7 +1057,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
990 1057
 
991 1058
 
992 1059
         }
993
-    
1060
+
994 1061
         #region 
995 1062
         /// <summary>
996 1063
         /// 修改订单 
@@ -1109,7 +1176,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
1109 1176
             modelOrder.F_IsPayment = input.F_IsPayment;
1110 1177
             if (input.F_IsPayment > 0 && input.F_PaymentMoney <= 0)
1111 1178
                 return Error("付款金额不能小于0");
1112
-
1179
+           
1113 1180
             //必须属性 系统生成
1114 1181
             modelOrder.F_AddTime = DateTime.Now;
1115 1182
             modelOrder.F_AddUser = UserLogin.UserId.ObjToInt();
@@ -1456,7 +1523,9 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
1456 1523
             modelOrder.F_ExpressFee = input.F_ExpressFee;
1457 1524
             //    modelOrder.F_Stock = input.F_Stock;//仓库
1458 1525
             modelOrder.F_IsExpress = 0;
1459
-       
1526
+            modelOrder.F_MemberNotes = input.F_MemberNotes;//会员备注
1527
+
1528
+
1460 1529
             modelOrder.F_RealPrice = input.F_RealPrice;
1461 1530
             modelOrder.F_UseScore = input.F_UseScore;
1462 1531
             //选填 关联属性

+ 13 - 5
代码/TVShoppingCallCenter_ZLJ/Models/Inputs/Order/OrderInput.cs

@@ -40,7 +40,7 @@ namespace TVShoppingCallCenter_ZLJ.Models.Inputs
40 40
         private string _f_addusername;
41 41
         private int _f_belong;
42 42
         private string _f_belongname;
43
-        private decimal? _f_totleprice;
43
+        private decimal _f_totleprice;
44 44
         private string _f_useactivity = "";
45 45
         private decimal? _f_shouldprice;
46 46
         private decimal _f_realprice;
@@ -71,8 +71,8 @@ namespace TVShoppingCallCenter_ZLJ.Models.Inputs
71 71
         private string _f_recommendName = "";
72 72
         private int _f_isExpress = -1;
73 73
         private int _f_ispayment = -1;
74
-       
75
-       
74
+        private string _f_membernotes;
75
+
76 76
         /// <summary>
77 77
         /// 客服是否选择快递 1已分配 0未分配
78 78
         /// </summary>
@@ -407,7 +407,7 @@ namespace TVShoppingCallCenter_ZLJ.Models.Inputs
407 407
         /// <summary>
408 408
         /// 订单总额
409 409
         /// </summary>
410
-        public decimal? F_TotlePrice
410
+        public decimal F_TotlePrice
411 411
         {
412 412
             set { _f_totleprice = value; }
413 413
             get { return _f_totleprice; }
@@ -550,7 +550,15 @@ namespace TVShoppingCallCenter_ZLJ.Models.Inputs
550 550
             get { return _f_ispayment; }
551 551
             
552 552
         }
553
-      
553
+        /// <summary>
554
+        /// 会员备注
555
+        /// </summary>
556
+      public string  F_MemberNotes
557
+        {
558
+            set { _f_membernotes = value; }
559
+            get { return _f_membernotes; }
560
+
561
+        }
554 562
         public OrderMoneyInput OrderMoney { get; set; }
555 563
         #endregion Model
556 564
 

+ 3 - 0
代码/TVShoppingCallCenter_ZLJ/Startup.cs

@@ -34,6 +34,8 @@ using System.Repositories.Sys;
34 34
 using System.IRepositories.Sys;
35 35
 using System.IRepositories.Call;
36 36
 using System.Repositories.Call;
37
+using System.IRepositories.Cus;
38
+using System.Repositories.Cus;
37 39
 
38 40
 namespace TVShoppingCallCenter_ZLJ
39 41
 {
@@ -210,6 +212,7 @@ namespace TVShoppingCallCenter_ZLJ
210 212
             services.AddTransient<ICall_CallOutboundRepository, Call_CallOutboundRepository>();
211 213
             services.AddTransient<Ipoint_agentRepository, point_agentRepository>();
212 214
             services.AddTransient<ISys_BottomNumberRepository, Sys_BottomNumberRepository>();
215
+            services.AddTransient<ICus_MembershipRepository, Cus_MembershipRepository>();
213 216
             
214 217
             #endregion
215 218