username@email.com
2024-05-29 7a3a4f8012a72f80d8dd62064a76655c803da864
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
/***********************************************************************
 *            Project: baifenBinfa
 *        ProjectName: 百分兵法管理系统                               
 *                Web: http://chuanyin.com                     
 *             Author:                                        
 *              Email:                               
 *         CreateTime: 202403/02   
 *        Description: 暂无
 ***********************************************************************/
 
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.ViewModels.DTO;
using CoreCms.Net.Model.ViewModels.UI;
 
namespace CoreCms.Net.IServices
{
    /// <summary>
    ///     购物车表 服务工厂接口
    /// </summary>
    public interface ICoreCmsCartServices : IBaseServices<CoreCmsCart>
    {
        /// <summary>
        ///     设置购物车商品数量
        /// </summary>
        /// <param name="id"></param>
        /// <param name="nums"></param>
        /// <param name="userId"></param>
        /// <param name="numType"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        Task<WebApiCallBack> SetCartNum(int id, int nums, int userId, int numType, int type = 1);
 
 
        /// <summary>
        ///     重写删除指定ID集合的数据(批量删除)
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<WebApiCallBack> DeleteByIdsAsync(int id, int userId);
 
 
        /// <summary>
        ///     添加单个货品到购物车
        /// </summary>
        /// <param name="userId">用户id</param>
        /// <param name="productId">货品序号</param>
        /// <param name="nums">数量</param>
        /// <param name="numType">数量类型/1是直接增加/2是赋值</param>
        /// <param name="cartTypes">1普通购物/2拼团模式/3团购模式/4秒杀模式/6砍价模式/7赠品</param>
        /// <param name="objectId">关联对象类型</param>
        /// <returns></returns>
        Task<WebApiCallBack> Add(int userId, int productId, int nums, int numType, int cartTypes = 1, int objectId = 0,bool isCustomizable=false);
 
 
        /// <summary>
        ///     在加入购物车的时候,判断是否有参加拼团的商品
        /// </summary>
        /// <param name="productId"></param>
        /// <param name="userId">用户序列</param>
        /// <param name="nums">加入购物车数量</param>
        /// <param name="teamId">团队序列</param>
        Task<WebApiCallBack> AddCartHavePinTuan(int productId, int userId = 0, int nums = 1, int teamId = 0);
 
 
        /// <summary>
        ///     获取购物车列表
        /// </summary>
        /// <param name="userId">用户序号</param>
        /// <param name="ids">已选择货号</param>
        /// <param name="type">购物车类型/同订单类型</param>
        /// <param name="objectId">关联非订单类型数据序列</param>
        /// <param name="goodsId">goodsId</param>
        /// <returns></returns>
        Task<WebApiCallBack> GetCartDtoData(int userId, int[] ids = null, int type = 1, int objectId = 0, int goodsId = 0);
 
 
        /// <summary>
        ///     获取处理后的购物车信息
        /// </summary>
        /// <param name="userId">用户序列</param>
        /// <param name="ids">选中的购物车商品</param>
        /// <param name="orderType">订单类型</param>
        /// <param name="areaId">收货地址id</param>
        /// <param name="point">消费的积分</param>
        /// <param name="couponCode">优惠券码</param>
        /// <param name="deliveryType">关联上面的是否免运费/1=快递配送(要去算运费)生成订单记录快递方式,2=同城配送/3=门店自提(不需要计算运费)生成订单记录门店自提信息</param>
        /// <param name="userShipId">用户收货地址</param>
        /// <param name="objectId">关联非普通订单营销类型序列</param>
        /// <returns></returns>
        Task<WebApiCallBack> GetCartInfos(int userId, int[] ids, int orderType, int areaId, int point,
            string couponCode, int deliveryType = (int)GlobalEnumVars.OrderReceiptType.Logistics, int userShipId = 0, int objectId = 0, int goodsId = 0);
 
 
        /// <summary>
        ///     算运费
        /// </summary>
        /// <param name="cartDto">购物车信息</param>
        /// <param name="areaId">收货地址id</param>
        /// <returns></returns>
        Task<bool> CartFreight(CartDto cartDto, int areaId);
 
 
        /// <summary>
        ///     购物车中使用优惠券
        /// </summary>
        /// <param name="cartDto">购物车数据</param>
        /// <param name="couponCode">优惠券码</param>
        /// <returns></returns>
        Task<bool> CartCoupon(CartDto cartDto, string couponCode);
 
 
        /// <summary>
        ///     购物车中使用积分
        /// </summary>
        /// <param name="cartDto"></param>
        /// <param name="userId"></param>
        /// <param name="point"></param>
        /// <returns></returns>
        Task<WebApiCallBack> CartPoint(CartDto cartDto, int userId, int point);
 
 
        /// <summary>
        ///     获取购物车用户数据总数
        /// </summary>
        /// <returns></returns>
        Task<int> GetCountAsync(int userId);
 
        /// <summary>
        ///     获取购物车商品总价格
        /// </summary>
        /// <returns></returns>
        Task<decimal> GetMoneyAsync(int userId);
 
        /// <summary>
        ///     根据提交的数据判断哪些购物券可以使用
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="ids"></param>
        /// <param name="promotionId"></param>
        /// <returns></returns>
        Task<WebApiCallBack> GetCartAvailableCoupon(int userId, int[] ids = null);
    }
}