username@email.com
2024-09-20 a4f39526873f45396bf778413979293eabb3be07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
/**  
* EC_OrderBLL.cs
*
* 功 能: 订单业务逻辑
* 类 名: EC_OrderBLL
*
* Ver    变更日期             负责人  变更内容
* ───────────────────────────────────
* V0.01  2013-4-24 13:19      吴崎均    初版
* V0.02  2013-4-26 9:53       吴崎均    修改NewOrder方法 增加订单收货方式参数
* V0.03  2013-4-27 14:21      吴崎均    增加批量修改订单状态方法
* V0.04  2013-4-28 11:00      吴崎均    修改NewOrder方法增加受理佣金参数使订单在新建时可以直接受理 
* V0.05  2013-4-28 11:16      吴崎均    增加orderBasicDal几个方法的转调
* V0.06  2013-4-28 11:41      吴崎均    增加根据编号获取订单基本信息方法
* V0.07  2013-5-2 11:48       吴崎均    修改NewOrder方法增加秒杀订单编号使秒杀下单扣除秒杀数量能与下单同步进行,重载一般新建订单方法
* V0.08  2013-5-6 15:52       吴崎均    修改NewOrder方法增加参数“订单印刷参数对象”
* V0.09  2013-5-27 9:52       吴崎均  增加方法:订单退款(OrderRefund)
*
*
*
*
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AbstractFactory;
using CY.IDAL;
using CY.Model;
using CY.Model.Pay;
using System.Data.SqlClient;
 
namespace CY.BLL.EC
{
 
    /// <summary>
    /// 订单业务逻辑
    /// </summary>
    public class EC_OrderBLL
    {
        IEC_OrderDAL _iEC_OrderDAL = null;
        IOA_CorporateClientsDAL _iIOA_CorporateClientsDAL = null;
        /// <summary>
        /// 初始化
        /// </summary>
        public EC_OrderBLL()
        {
            _iEC_OrderDAL = Factory.GetDALByInterfaceName(DALInterface.IEC_OrderDAL) as IEC_OrderDAL;
            _iIOA_CorporateClientsDAL = Factory.GetDALByInterfaceName(DALInterface.IOA_CorporateClientsDAL) as IOA_CorporateClientsDAL;
        }
 
        /// <summary>
        /// 新建订单(全,含秒杀)
        /// </summary>
        /// <param name="orderBasic">订单基础信息</param>
        /// <param name="orderExtend">订单扩展信息</param>
        /// <param name="tradingSingle">交易单</param>
        /// <param name="acceptWayByOrder">订单收货方式</param>
        /// <param name="payRequest">支付请求(可空)</param>
        /// <param name="commission">订单受理佣金(传入值大于0时最后会调用受理订单进行受理)</param>
        /// <param name="seckillId">秒杀业务编号(传入值大于0时会减少秒杀数量1)</param>
        /// <param name="orderPrintParameter">订单印刷参数(选填)</param> 
        /// <returns></returns>
        public bool NewOrder(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, Pay_TradingSingle tradingSingle, EC_AcceptWayByOrder acceptWayByOrder, Pay_Request payRequest = null, double commission = 0, int seckillId = 0, EC_OrderPrintParameter orderPrintParameter = null)
        {
            return _iEC_OrderDAL.NewOrder(orderBasic, orderExtend, tradingSingle, acceptWayByOrder, payRequest, commission, seckillId, orderPrintParameter);
        }
 
        /// <summary>
        /// 新建订单(一般)
        /// </summary>
        /// <param name="orderBasic">订单基础信息</param>
        /// <param name="orderExtend">订单扩展信息</param>
        /// <param name="tradingSingle">交易单</param>
        /// <param name="acceptWayByOrder">订单收货方式</param>
        /// <param name="orderPrintParameter">订单印刷参数</param>
        ///  
        /// <returns></returns>
        public bool NewOrder(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, Pay_TradingSingle tradingSingle, EC_AcceptWayByOrder acceptWayByOrder, EC_OrderPrintParameter orderPrintParameter)
        {
            return _iEC_OrderDAL.NewOrder(orderBasic, orderExtend, tradingSingle, acceptWayByOrder, orderPrintParameter);
        }
 
        /// <summary>
        /// 修改订单信息
        /// </summary>
        /// <param name="orderBasic">订单主信息</param>
        /// <param name="orderExtend">订单扩展信息</param>
        /// <param name="orderParam">订单印刷选项</param>
        /// <returns></returns>
        public bool UpdateOrderInfo(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, EC_OrderPrintParameter orderParam = null)
        {
            return _iEC_OrderDAL.UpdateOrderInfo(orderBasic, orderExtend, orderParam);
        }
 
        ///// <summary>
        ///// 修改订单状态
        ///// </summary>
        ///// <param name="stateId">状态编号</param>
        ///// <param name="orderIds">订单编号集合</param>
        ///// <returns></returns>
        //public bool UpdataOrderState(int stateId, params int[] orderIds)
        //{
        //    return _iEC_OrderDAL.UpdataOrderState(stateId, orderIds);
        //}
 
        /// <summary>
        /// 更新订单支付状态
        /// </summary>
        /// <param name="orderId">订单编号</param>
        /// <returns></returns>
        public bool UpdateOrderPayState(int orderId)
        {
            return _iEC_OrderDAL.UpdateOrderPayState(orderId);
        }
 
        /// <summary>
        /// 更新订单支付金额
        /// </summary>
        /// <param name="orderId">订单编号</param>
        /// <param name="payWay">支付方式(-1:收款、1:付款)</param>
        /// <param name="payRequest">支付请求</param>
        /// <returns></returns>
        internal bool UpdateOrderPayedMoney(int orderId, int payWay, Pay_Request payRequest)
        {
            return _iEC_OrderDAL.UpdateOrderPayedMoney(orderId, payWay, payRequest);
        }
 
        /// <summary>
        /// 支付订单
        /// </summary>
        /// <param name="orderId">订单编号</param>
        /// <param name="payRequest">支付请求</param>
        /// <param name="commission">受理手续费</param>
        /// <param name="OutAllMoney">外协金额</param>
        /// <returns></returns>
        public bool PayOrder(int orderId, Pay_Request payRequest, double commission, decimal OutAllMoney = 0)
        {
            return _iEC_OrderDAL.PayOrder(orderId, payRequest, commission, OutAllMoney);
        }
 
        /// <summary>
        /// 受理订单
        /// </summary>
        /// <param name="orderId">订单编号</param>
        /// <param name="commission">受理佣金(受理订单时站方收取的服务费)</param>
        /// <returns></returns>
        public bool AcceptOrder(int orderId, double commission)
        {
            return _iEC_OrderDAL.AcceptOrder(orderId, commission);
        }
 
        /// <summary>
        /// 根据订单编号获取订单 
        /// </summary>
        /// <param name="orderId">订单编号</param>
        /// <returns></returns>
        public EC_OrderBasic GetOrderById(int orderId)
        {
            return _iEC_OrderDAL.GetOrderById(orderId);
        }
 
        /// <summary>
        /// 根据订单编号获取订单 
        /// </summary>
        /// <param name="orderIds">订单编号</param>
        /// <returns></returns>
        public IEnumerable<EC_OrderBasic> GetOrderByIds(string orderIds)
        {
            return _iEC_OrderDAL.GetOrderByIds(orderIds);
        }
 
        /// <summary>
        /// 订单退款
        /// </summary>
        /// <param name="orderOperate">要更新的订单状态</param>
        /// <param name="payRequests">支付请求</param>
        /// <returns></returns>
        public bool OrderRefund(EC_OrderOperate orderOperate, params Pay_Request[] payRequests)
        {
            return _iEC_OrderDAL.OrderRefund(orderOperate, payRequests);
        }
 
        /// <summary>
        /// 后道,整单外协
        /// </summary>
        /// <param name="orderBasic"></param>
        /// <param name="acceptWayByOrder"></param>
        /// <param name="orderPrintParameter"></param>
        /// <param name="m_EC_OrderOperate"></param>
        /// <param name="RelationTypeid"></param>
        /// <returns></returns>
        public bool OutOrder(EC_OrderBasic orderBasic, EC_AcceptWayByOrder acceptWayByOrder, EC_OrderPrintParameter orderPrintParameter, EC_OrderOperate m_EC_OrderOperate, int? RelationTypeid, string orderIds)
        {
            return _iEC_OrderDAL.OutOrder(orderBasic, acceptWayByOrder, orderPrintParameter, m_EC_OrderOperate, RelationTypeid, orderIds);
        }
 
        /// <summary>
        /// 修改外协订单
        /// </summary>
        /// <param name="orderBasic"></param>
        /// <param name="orderExtend"></param>
        /// <param name="orderParam"></param>
        /// <returns></returns>
        public bool UpdateOutOrderInfo(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, EC_OrderPrintParameter orderParam = null)
        {
            return _iEC_OrderDAL.UpdateOutOrderInfo(orderBasic, orderExtend, orderParam);
        }
 
        /// <summary>
        /// 获取已支付订单的明细
        /// </summary>
        /// <returns></returns>
        public IEnumerable<EC_OrderBasic> GetOrderListByFinish(Infrastructure.Query.Pagination pagination, string startDate, string endDate, string province, string city, string county)
        {
            return _iEC_OrderDAL.GetOrderListByFinish(pagination,startDate,endDate,province,city,county);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="orderid"></param>
        /// <returns></returns>
        public OA_OrderWorkListRelation GetModelById(int orderid)
        {
            return _iEC_OrderDAL.GetModelById(orderid);
        }
 
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool OldUpdate(EC_OrderExtend model)
        {
 
            return _iEC_OrderDAL.OldUpdate(model);
        }
 
 
 
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool OldUpdateDelayTime(EC_OrderExtend model)
        {
 
            return _iEC_OrderDAL.OldUpdateDelayTime(model);
        }
 
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool OldUpdateProductionprogress(EC_OrderExtend model)
        {
 
            return _iEC_OrderDAL.OldUpdateProductionprogress(model);
        }
 
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool OldUpdateQuchudingdan(EC_OrderExtend model)
        {
 
            return _iEC_OrderDAL.OldUpdateQuchudingdan(model);
        }
 
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool OldUpdateKaipiaoshenqing(EC_OrderExtend model)
        {
 
            return _iEC_OrderDAL.OldUpdateKaipiaoshenqing(model);
        }
 
 
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <param name="ids"></param>
        /// <returns></returns>
        public bool OldUpdateKaipiaoshenqings(EC_OrderExtend model,string ids)
        {
 
            return _iEC_OrderDAL.OldUpdateKaipiaoshenqings(model, ids);
        }
 
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool OldUpdateKaipiaoqueren(EC_OrderExtend model)
        {
 
            return _iEC_OrderDAL.OldUpdateKaipiaoqueren(model);
        }
 
 
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool OldUpdateKehuqianshou(EC_OrderExtend model)
        {
 
            return _iEC_OrderDAL.OldUpdateKehuqianshou(model);
        }
 
 
 
        /// <summary>
        /// 获取收款提醒
        /// </summary>
        /// <returns></returns>
        public IEnumerable<OA_DeliverPlan> GetshoukuantixingList(Infrastructure.Query.Pagination pagination, Guid FirmId, string province, string city, string county, string CustomerTypeId, string CompanyName, string BusinessManagerId, string AccountManagerId)
        {
            return _iEC_OrderDAL.GetshoukuantixingList(pagination, FirmId, province, city, county, CustomerTypeId, CompanyName, BusinessManagerId, AccountManagerId);
        }
 
 
        /// <summary>
        /// 获取收款订单号集合
        /// </summary>
        /// <returns></returns>
        public IEnumerable<OA_DeliverPlan> GetshoukuantixingorderidList(Guid FirmId, string shoukuanshijian, string Paytime, string BuyerId)
        {
            return _iEC_OrderDAL.GetshoukuantixingorderidList(  FirmId, shoukuanshijian, Paytime, BuyerId);
        }
 
 
 
        /// <summary>
        /// 获取绩效查询
        /// </summary>
        /// <returns></returns>
        public IEnumerable<OA_DeliverPlan> GetxiaoshouchaxunList(Infrastructure.Query.Pagination pagination, Guid FirmId, string province, string city, string county, string DegreeImportanId, string CompanyName, string BusinessManagerId, string CreditId, string Shifouwanjie
            , string selLastOrderTime, string selOrderCount, string selOrderMoney, string OrderCount, string OrderMoney, string LastOrderTime)
        {
            return _iEC_OrderDAL.GetxiaoshouchaxunList(pagination, FirmId, province, city, county, DegreeImportanId, CompanyName, BusinessManagerId, CreditId, Shifouwanjie
                , selLastOrderTime,   selOrderCount,   selOrderMoney,   OrderCount,   OrderMoney,   LastOrderTime);
        }
 
 
        /// <summary>
        /// 获取业绩查询
        /// </summary>
        /// <returns></returns>
        public IEnumerable<OA_DeliverPlan> GetxiaoshouyejiList(Infrastructure.Query.Pagination pagination, Guid FirmId, string BusinessManagerId, string chaxuntime)
        {
            return _iEC_OrderDAL.GetxiaoshouyejiList(pagination, FirmId, BusinessManagerId, chaxuntime);
        }
 
 
        /// <summary>
        /// 获取业绩查询
        /// </summary>
        /// <returns></returns>
        public IEnumerable<OA_DeliverPlan> GetyewurenportList(Infrastructure.Query.Pagination pagination, Guid FirmId, string BusinessManagerId, string chaxuntimestart, string chaxuntimeend)
        {
            return _iEC_OrderDAL.GetyewurenportList(pagination, FirmId, BusinessManagerId, chaxuntimestart, chaxuntimeend);
        }
    }
}