Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
ShopERP
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杜龙飞
ShopERP
Commits
c6f845dd
Commit
c6f845dd
authored
Aug 26, 2025
by
PC-20220610JUCQ\Administrator
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
<develop>:(ShopERP 端)<无> ShopERP 创建对外的 API 接口。
parent
8649c712
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
6 additions
and
755 deletions
+6
-755
CoreCms.Net.Configuration/GlobalEnumVars.cs
+1
-5
CoreCms.Net.IServices/Cart/ICoreCmsCartServices.cs
+4
-73
CoreCms.Net.Services/Cart/CoreCmsCartServices.cs
+1
-515
CoreCms.Net.Services/Order/CoreCmsOrderServices.cs
+0
-8
CoreCms.Net.Web.WebApi/Controllers/CartController.cs
+0
-41
CoreCms.Net.Web.WebApi/Controllers/OrderController.cs
+0
-83
CoreCms.Net.Web.WebApi/Doc.xml
+0
-30
No files found.
CoreCms.Net.Configuration/GlobalEnumVars.cs
View file @
c6f845dd
...
...
@@ -565,11 +565,7 @@ namespace CoreCms.Net.Configuration
/// </summary>
[
Description
(
"普通"
)]
Common
=
1
,
/// <summary>
/// 拼团
/// </summary>
[
Description
(
"拼团"
)]
PinTuan
=
2
,
/// <summary>
/// 团购
/// </summary>
...
...
CoreCms.Net.IServices/Cart/ICoreCmsCartServices.cs
View file @
c6f845dd
...
...
@@ -13,19 +13,7 @@ namespace CoreCms.Net.IServices
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集合的数据(批量删除)
///重写删除指定ID集合的数据(批量删除)
/// </summary>
/// <param name="id"></param>
/// <param name="userId"></param>
...
...
@@ -34,7 +22,7 @@ namespace CoreCms.Net.IServices
/// <summary>
///
添加单个货品到购物车
/// 添加单个货品到购物车
/// </summary>
/// <param name="userId">用户id</param>
/// <param name="productId">货品序号</param>
...
...
@@ -45,19 +33,8 @@ namespace CoreCms.Net.IServices
/// <returns></returns>
Task
<
WebApiCallBack
>
Add
(
int
userId
,
int
productId
,
int
nums
,
int
numType
,
int
cartTypes
=
1
,
int
objectId
=
0
);
/// <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>
...
...
@@ -69,7 +46,7 @@ namespace CoreCms.Net.IServices
/// <summary>
///
获取处理后的购物车信息
/// 获取处理后的购物车信息
/// </summary>
/// <param name="userId">用户序列</param>
/// <param name="ids">选中的购物车商品</param>
...
...
@@ -85,50 +62,5 @@ namespace CoreCms.Net.IServices
string
couponCode
,
bool
freeFreight
=
false
,
int
deliveryType
=
(
int
)
GlobalEnumVars
.
OrderReceiptType
.
Logistics
,
int
objectId
=
0
);
/// <summary>
/// 算运费
/// </summary>
/// <param name="cartDto">购物车信息</param>
/// <param name="areaId">收货地址id</param>
/// <param name="freeFreight">是否包邮,默认false</param>
/// <returns></returns>
bool
CartFreight
(
CartDto
cartDto
,
int
areaId
,
bool
freeFreight
=
false
);
/// <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>
/// <param name="userId"></param>
/// <param name="ids"></param>
/// <param name="promotionId"></param>
/// <returns></returns>
Task
<
WebApiCallBack
>
GetCartAvailableCoupon
(
int
userId
,
int
[]
ids
=
null
);
}
}
\ No newline at end of file
CoreCms.Net.Services/Cart/CoreCmsCartServices.cs
View file @
c6f845dd
...
...
@@ -80,7 +80,6 @@ namespace CoreCms.Net.Services
}
#
region
设置购物车商品数量
====================================================
/// <summary>
/// 设置购物车商品数量
/// </summary>
...
...
@@ -210,18 +209,6 @@ namespace CoreCms.Net.Services
case
(
int
)
GlobalEnumVars
.
OrderType
.
Common
:
break
;
case
(
int
)
GlobalEnumVars
.
OrderType
.
PinTuan
:
numType
=
(
int
)
GlobalEnumVars
.
OrderType
.
PinTuan
;
//拼团模式去判断是否开启拼团,是否存在
var
callBack
=
await
AddCartHavePinTuan
(
products
.
id
,
userId
,
nums
,
objectId
);
if
(
callBack
.
status
==
false
)
{
return
callBack
;
}
//此人的购物车中的所有购物车拼团商品都删掉,因为立即购买也是要加入购物车的,所以需要清空之前历史的加入过购物车的商品
await
_dal
.
DeleteAsync
(
p
=>
p
.
type
==
(
int
)
GlobalEnumVars
.
OrderType
.
PinTuan
&&
p
.
userId
==
userId
);
catInfo
=
null
;
break
;
case
(
int
)
GlobalEnumVars
.
OrderType
.
Group
or
(
int
)
GlobalEnumVars
.
OrderType
.
Skill
:
//标准模式不需要做什么判断
//判断商品是否做团购秒杀
...
...
@@ -310,96 +297,6 @@ namespace CoreCms.Net.Services
return
jm
;
}
#
endregion
#
region
在加入购物车的时候,判断是否有参加拼团的商品
/// <summary>
/// 在加入购物车的时候,判断是否有参加拼团的商品
/// </summary>
/// <param name="productId"></param>
/// <param name="userId">用户序列</param>
/// <param name="nums">加入购物车数量</param>
/// <param name="teamId">团队序列</param>
public
async
Task
<
WebApiCallBack
>
AddCartHavePinTuan
(
int
productId
,
int
userId
=
0
,
int
nums
=
1
,
int
teamId
=
0
)
{
var
jm
=
new
WebApiCallBack
();
var
products
=
await
_productsServices
.
QueryByIdAsync
(
productId
);
if
(
products
==
null
)
{
jm
.
data
=
10000
;
jm
.
msg
=
GlobalErrorCodeVars
.
Code10000
;
return
jm
;
}
var
pinTuanGoods
=
await
_pinTuanGoodsServices
.
QueryByClauseAsync
(
p
=>
p
.
goodsId
==
products
.
goodsId
);
if
(
pinTuanGoods
==
null
)
{
jm
.
data
=
10000
;
jm
.
msg
=
GlobalErrorCodeVars
.
Code10000
;
return
jm
;
}
var
pinTuanRule
=
await
_pinTuanRuleServices
.
QueryByClauseAsync
(
p
=>
p
.
id
==
pinTuanGoods
.
ruleId
);
if
(
pinTuanRule
==
null
)
{
jm
.
data
=
10000
;
jm
.
msg
=
GlobalErrorCodeVars
.
Code10000
;
return
jm
;
}
if
(
pinTuanRule
.
startTime
>
DateTime
.
Now
)
{
jm
.
data
=
15601
;
jm
.
msg
=
GlobalErrorCodeVars
.
Code15601
;
return
jm
;
}
if
(
pinTuanRule
.
endTime
<
DateTime
.
Now
)
{
jm
.
data
=
15602
;
jm
.
msg
=
GlobalErrorCodeVars
.
Code15602
;
return
jm
;
}
//查询是否存在已经开团,并且自己是队长的拼团
var
havaGroup
=
await
_pinTuanRecordServices
.
ExistsAsync
(
p
=>
p
.
id
==
p
.
teamId
&&
p
.
userId
==
userId
&&
p
.
goodsId
==
products
.
goodsId
&&
p
.
teamId
==
teamId
&&
p
.
status
==
(
int
)
GlobalEnumVars
.
PinTuanRecordStatus
.
InProgress
);
if
(
havaGroup
)
{
jm
.
data
=
15613
;
jm
.
msg
=
GlobalErrorCodeVars
.
Code15613
;
return
jm
;
}
using
var
container
=
_serviceProvider
.
CreateScope
();
var
orderRepository
=
container
.
ServiceProvider
.
GetService
<
ICoreCmsOrderRepository
>();
var
checkOrder
=
orderRepository
.
FindLimitOrder
(
products
.
id
,
userId
,
pinTuanRule
.
startTime
,
pinTuanRule
.
endTime
,
(
int
)
GlobalEnumVars
.
OrderType
.
PinTuan
);
if
(
pinTuanRule
.
maxGoodsNums
>
0
)
{
if
(
checkOrder
.
TotalOrders
+
nums
>
pinTuanRule
.
maxGoodsNums
)
{
jm
.
data
=
15610
;
jm
.
msg
=
GlobalErrorCodeVars
.
Code15610
;
return
jm
;
}
}
if
(
pinTuanRule
.
maxNums
>
0
)
{
if
(
checkOrder
.
TotalUserOrders
>
pinTuanRule
.
maxNums
)
{
jm
.
data
=
15611
;
jm
.
msg
=
GlobalErrorCodeVars
.
Code15611
;
return
jm
;
}
}
jm
.
status
=
true
;
return
jm
;
}
#
endregion
#
region
获取购物车原始列表
(
未核算
)
...
...
@@ -481,18 +378,6 @@ namespace CoreCms.Net.Services
case
(
int
)
GlobalEnumVars
.
OrderType
.
Common
:
//标准模式不需要修改订单数据和商品数据
break
;
case
(
int
)
GlobalEnumVars
.
OrderType
.
PinTuan
:
//拼团模式走拼团价,去修改商品价格
var
result
=
_pinTuanRuleServices
.
PinTuanInfo
(
cartDto
.
list
);
if
(
result
.
status
)
{
cartDto
.
list
=
result
.
data
as
List
<
CartProducts
>;
}
else
{
return
result
;
}
break
;
case
(
int
)
GlobalEnumVars
.
OrderType
.
Group
:
//团购模式不需要修改订单数据和商品数据
break
;
...
...
@@ -578,13 +463,6 @@ namespace CoreCms.Net.Services
{
freeFreight
=
true
;
}
//运费判断
if
(
CartFreight
(
cartDto
,
areaId
,
freeFreight
)
==
false
)
{
jm
.
data
=
cartDto
;
jm
.
msg
=
"运费判断"
;
return
jm
;
}
//接下来算订单促销金额,有些模式不需要计算促销信息,这里就增加判断
if
(
orderType
==
(
int
)
GlobalEnumVars
.
OrderType
.
Common
)
{
...
...
@@ -604,28 +482,6 @@ namespace CoreCms.Net.Services
return
jm
;
}
}
else
if
(
orderType
==
(
int
)
GlobalEnumVars
.
OrderType
.
PinTuan
)
{
jm
.
data
=
await
_promotionServices
.
ToPromotion
(
cartDto
);
jm
.
msg
=
"拼团也计算促销信息"
;
}
//使用优惠券,判断优惠券是否可用
var
bl
=
await
CartCoupon
(
cartDto
,
couponCode
);
if
(
bl
==
false
)
{
jm
.
status
=
false
;
jm
.
data
=
cartDto
.
error
.
data
;
jm
.
msg
=
cartDto
.
error
.
msg
;
return
jm
;
}
//使用积分
var
pointDto
=
await
CartPoint
(
cartDto
,
userId
,
point
);
if
(
pointDto
.
status
==
false
)
{
jm
.
status
=
false
;
jm
.
msg
=
pointDto
.
msg
;
return
jm
;
}
jm
.
status
=
true
;
jm
.
data
=
cartDto
;
...
...
@@ -636,385 +492,15 @@ namespace CoreCms.Net.Services
#
endregion
#
region
算运费
/// <summary>
/// 算运费
/// </summary>
/// <param name="cartDto">购物车信息</param>
/// <param name="areaId">收货地址id</param>
/// <param name="freeFreight">是否包邮,默认false</param>
/// <returns></returns>
public
bool
CartFreight
(
CartDto
cartDto
,
int
areaId
,
bool
freeFreight
=
false
)
{
if
(
freeFreight
==
false
)
{
if
(
areaId
>
0
)
{
cartDto
.
costFreight
=
_shipServices
.
GetShipCost
(
areaId
,
cartDto
.
weight
,
cartDto
.
goodsAmount
);
cartDto
.
amount
=
Math
.
Round
(
cartDto
.
amount
+
cartDto
.
costFreight
,
2
);
}
}
return
true
;
}
#
endregion
#
region
购物车中使用优惠券
/// <summary>
/// 购物车中使用优惠券
/// </summary>
/// <param name="cartDto"></param>
/// <param name="couponCode"></param>
/// <returns></returns>
public
async
Task
<
bool
>
CartCoupon
(
CartDto
cartDto
,
string
couponCode
)
{
if
(!
string
.
IsNullOrEmpty
(
couponCode
))
{
var
arr
=
couponCode
.
Split
(
","
);
//判断优惠券是否可用
var
couponInfo
=
await
_couponServices
.
CodeToInfo
(
arr
,
true
);
if
(
couponInfo
.
status
==
false
)
{
cartDto
.
error
=
couponInfo
;
return
false
;
}
//判断优惠券是否符合规格
var
res
=
await
_promotionServices
.
ToCoupon
(
cartDto
,
couponInfo
.
data
as
List
<
CoreCmsPromotion
>);
if
(
res
.
status
==
false
)
{
cartDto
.
error
=
res
;
return
false
;
}
}
return
true
;
}
#
endregion
#
region
购物车中使用积分
/// <summary>
/// 购物车中使用积分
/// </summary>
/// <param name="cartDto"></param>
/// <param name="userId"></param>
/// <param name="point"></param>
/// <returns></returns>
public
async
Task
<
WebApiCallBack
>
CartPoint
(
CartDto
cartDto
,
int
userId
,
int
point
)
{
var
jm
=
new
WebApiCallBack
()
{
status
=
true
};
if
(
point
>
0
)
{
var
getUserPointDto
=
await
_userServices
.
GetUserPoint
(
userId
,
0
);
if
(
getUserPointDto
.
point
<
point
)
{
jm
.
status
=
false
;
jm
.
msg
=
"积分不足,无法使用积分"
;
return
jm
;
}
//判断积分值多少钱
//计算可用积分
var
allConfigs
=
await
_settingServices
.
GetConfigDictionaries
();
var
ordersPointProportion
=
CommonHelper
.
GetConfigDictionary
(
allConfigs
,
SystemSettingConstVars
.
OrdersPointProportion
).
ObjectToInt
(
10
);
//订单积分使用比例
var
maxPointDeductedMoney
=
Math
.
Round
(
cartDto
.
amount
*
ordersPointProportion
/
100
,
2
);
//最大积分抵扣的钱
var
pointDiscountedProportion
=
CommonHelper
.
GetConfigDictionary
(
allConfigs
,
SystemSettingConstVars
.
PointDiscountedProportion
).
ObjectToInt
(
100
);
//积分兑换比例
var
pointDeductedMoney
=
point
/
pointDiscountedProportion
;
//积分可以抵扣的钱
if
(
maxPointDeductedMoney
<
pointDeductedMoney
)
{
jm
.
status
=
false
;
jm
.
msg
=
"积分超过订单可使用的积分数量"
;
return
jm
;
}
cartDto
.
point
=
point
;
cartDto
.
pointExchangeMoney
=
pointDeductedMoney
;
cartDto
.
amount
-=
pointDeductedMoney
;
}
jm
.
data
=
cartDto
;
return
jm
;
}
#
endregion
#
region
获取购物车用户数据总数
/// <summary>
///
获取购物车用户数据总数
/// 获取购物车用户数据总数
/// </summary>
/// <returns></returns>
public
async
Task
<
int
>
GetCountAsync
(
int
userId
)
{
return
await
_dal
.
GetCountAsync
(
userId
);
}
#
endregion
#
region
根据提交的数据判断哪些购物券可以使用
/// <summary>
/// 根据提交的数据判断哪些购物券可以使用
/// </summary>
/// <param name="userId"></param>
/// <param name="ids"></param>
/// <returns></returns>
public
async
Task
<
WebApiCallBack
>
GetCartAvailableCoupon
(
int
userId
,
int
[]
ids
=
null
)
{
var
jm
=
new
WebApiCallBack
();
var
dt
=
DateTime
.
Now
;
var
resultData
=
new
List
<
CoreCmsCoupon
>();
//取用户数据,如果用户没登录,都没意义。
var
user
=
await
_userServices
.
QueryByClauseAsync
(
p
=>
p
.
id
==
userId
);
if
(
user
==
null
)
{
return
jm
;
}
//先取购物车数据,如果购物车都没存购货品数据,优惠券就没意义
//获取货品数据
var
carts
=
await
_dal
.
QueryListByClauseAsync
(
p
=>
p
.
userId
==
userId
&&
p
.
type
==
(
int
)
GlobalEnumVars
.
OrderType
.
Common
);
if
(!
carts
.
Any
())
{
return
jm
;
}
var
productIds
=
carts
.
Select
(
p
=>
p
.
productId
).
ToList
();
var
products
=
await
_productsServices
.
QueryListByClauseAsync
(
p
=>
productIds
.
Contains
(
p
.
id
));
if
(!
products
.
Any
())
{
return
jm
;
}
var
cartProducts
=
new
List
<
CartProducts
>();
var
goodIds
=
new
List
<
int
>();
foreach
(
var
item
in
carts
)
{
var
cp
=
new
CartProducts
{
products
=
products
.
Find
(
p
=>
p
.
id
==
item
.
productId
)
};
if
(
cp
.
products
==
null
)
{
continue
;
}
//开始赋值
cp
.
id
=
item
.
id
;
cp
.
userId
=
userId
;
cp
.
productId
=
item
.
productId
;
cp
.
nums
=
item
.
nums
;
cp
.
type
=
item
.
type
;
//如果传过来了购物车数据,就算指定的购物车的数据,否则,就算全部购物车的数据
if
(
ids
!=
null
&&
ids
.
Any
())
{
if
(
ids
.
Contains
(
item
.
id
))
{
goodIds
.
Add
(
cp
.
products
.
goodsId
);
cartProducts
.
Add
(
cp
);
}
continue
;
}
goodIds
.
Add
(
cp
.
products
.
goodsId
);
cartProducts
.
Add
(
cp
);
}
//如果获取赛选后没了,就返回无
if
(!
cartProducts
.
Any
())
return
jm
;
//获取商品数据
var
goods
=
await
_goodsServices
.
QueryListByClauseAsync
(
p
=>
goodIds
.
Contains
(
p
.
id
));
//如果商品都被已下架或者删除,也没了。
if
(!
goods
.
Any
())
return
jm
;
cartProducts
.
ForEach
(
p
=>
{
p
.
good
=
goods
.
Find
(
g
=>
g
.
id
==
p
.
products
.
goodsId
);
});
//获取我的可用优惠券
var
wherec
=
PredicateBuilder
.
True
<
CoreCmsCoupon
>();
wherec
=
wherec
.
And
(
p
=>
p
.
userId
==
userId
);
wherec
=
wherec
.
And
(
p
=>
p
.
isUsed
==
false
);
wherec
=
wherec
.
And
(
p
=>
p
.
endTime
>
dt
);
var
userCoupon
=
await
_couponServices
.
QueryPageMapperAsync
(
wherec
,
p
=>
p
.
createTime
,
OrderByType
.
Desc
,
false
);
if
(!
userCoupon
.
Any
())
{
return
jm
;
}
//获取所有商品分类
var
goodsCategories
=
await
_goodsCategoryServices
.
GetCaChe
();
foreach
(
var
coupon
in
userCoupon
)
{
if
(
coupon
.
promotion
==
null
)
{
continue
;
}
//先判断优惠券是否可以使用
//判断规则是否开启
if
(
coupon
.
promotion
.
isEnable
==
false
)
continue
;
//判断优惠券规则是否到达开始时间
if
(
coupon
.
startTime
>
dt
)
continue
;
//判断优惠券规则是否已经到结束时间了,也就是是否过期了
if
(
coupon
.
endTime
<
dt
)
continue
;
//再来判断是否符合规格
//判断是哪个规则,并且确认是否符合|只要有一个规则不满足,就失效。
var
type
=
0
;
foreach
(
var
pc
in
coupon
.
conditions
)
{
type
=
0
;
JObject
parameters
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
pc
.
parameters
);
if
(
parameters
==
null
)
break
;
var
objNums
=
0
;
switch
(
pc
.
code
)
{
case
"GOODS_ALL"
:
//只要购物车有商品就支持,因为是购物车付款调用接口,所以不存在无商品情况
type
=
2
;
break
;
case
"GOODS_IDS"
:
//指定某些商品满足条件
if
(!
parameters
.
ContainsKey
(
"goodsId"
)
||
!
parameters
.
ContainsKey
(
"nums"
))
break
;
objNums
=
parameters
[
"nums"
].
ObjectToInt
(
0
);
var
goodsIds
=
CommonHelper
.
StringToIntArray
(
parameters
[
"goodsId"
].
ObjectToString
());
//只要有一个商品支持,此优惠券就可以使用。
if
(
goodsIds
.
Any
())
{
foreach
(
var
p
in
cartProducts
)
{
if
(!
goodsIds
.
Contains
(
p
.
products
.
goodsId
))
{
continue
;
}
if
(
p
.
nums
>=
objNums
)
{
type
=
2
;
break
;
}
}
}
break
;
case
"GOODS_CATS"
:
//指定商品是否满足分类
if
(!
parameters
.
ContainsKey
(
"catId"
)
||
!
parameters
.
ContainsKey
(
"nums"
))
break
;
var
objCatId
=
parameters
[
"catId"
].
ObjectToInt
(
0
);
objNums
=
parameters
[
"nums"
].
ObjectToInt
(
0
);
foreach
(
var
product
in
cartProducts
)
{
type
=
_goodsCategoryServices
.
IsHave
(
goodsCategories
,
objCatId
,
product
.
good
.
goodsCategoryId
)
?
product
.
nums
>=
objNums
?
2
:
1
:
0
;
if
(
type
==
2
)
{
break
;
}
}
break
;
case
"GOODS_BRANDS"
:
//指定商品品牌满足条件
if
(!
parameters
.
ContainsKey
(
"brandId"
)
||
!
parameters
.
ContainsKey
(
"nums"
))
break
;
var
objBrandId
=
parameters
[
"brandId"
].
ObjectToInt
(
0
);
objNums
=
parameters
[
"nums"
].
ObjectToInt
(
0
);
foreach
(
var
product
in
cartProducts
)
{
type
=
product
.
good
.
brandId
==
objBrandId
?
product
.
nums
>=
objNums
?
2
:
1
:
0
;
if
(
type
==
2
)
{
break
;
}
}
break
;
case
"ORDER_FULL"
:
//订单满XX金额满足条件
if
(!
parameters
.
ContainsKey
(
"money"
))
break
;
var
objMoney
=
parameters
[
"money"
].
ObjectToDecimal
();
//算订单总商品价格
decimal
goodsAmount
=
0
;
foreach
(
var
product
in
cartProducts
)
{
var
money
=
product
.
products
.
price
*
product
.
nums
;
goodsAmount
=
Math
.
Round
(
goodsAmount
+
money
,
2
);
}
if
(
goodsAmount
>=
objMoney
)
{
type
=
2
;
}
break
;
case
"USER_GRADE"
:
//用户符合指定等级
if
(!
parameters
.
ContainsKey
(
"grades"
))
break
;
var
arr
=
CommonHelper
.
StringToIntArray
(
parameters
[
"grades"
].
ObjectToString
());
if
(
arr
.
Contains
(
user
.
grade
))
{
type
=
2
;
}
break
;
default
:
break
;
}
//不满足条件,直接跳过
if
(
type
!=
2
)
{
break
;
}
}
if
(
type
==
2
)
{
resultData
.
Add
(
coupon
);
}
}
//结果集拼装
var
resutlList
=
new
List
<
GetMyCouponResultDto
>();
if
(
resultData
!=
null
&&
resultData
.
Any
())
{
foreach
(
var
item
in
resultData
)
{
var
expression1
=
string
.
Empty
;
var
expression2
=
string
.
Empty
;
foreach
(
var
condition
in
item
.
conditions
)
{
expression1
+=
PromotionHelper
.
GetConditionMsg
(
condition
.
code
,
condition
.
parameters
);
}
foreach
(
var
result
in
item
.
results
)
{
expression2
+=
PromotionHelper
.
GetResultMsg
(
result
.
code
,
result
.
parameters
);
}
var
dto
=
new
GetMyCouponResultDto
{
couponCode
=
item
.
couponCode
,
promotionId
=
item
.
promotionId
,
isUsed
=
item
.
isUsed
,
userId
=
item
.
userId
,
usedId
=
item
.
usedId
,
createTime
=
item
.
createTime
,
updateTime
=
item
.
updateTime
,
couponName
=
item
.
promotion
.
name
,
expression1
=
expression1
,
expression2
=
expression2
,
isExpire
=
item
.
endTime
>
dt
,
startTime
=
item
.
startTime
,
endTime
=
item
.
endTime
,
stime
=
item
.
startTime
.
ToString
(
"yyyy-MM-dd"
),
etime
=
item
.
endTime
.
ToString
(
"yyyy-MM-dd"
)
};
resutlList
.
Add
(
dto
);
}
}
jm
.
status
=
true
;
jm
.
data
=
new
{
list
=
resutlList
,
changeData
=
resultData
,
cartProducts
,
user
};
//jm.otherData = userCoupon;
return
jm
;
}
#
endregion
}
...
...
CoreCms.Net.Services/Order/CoreCmsOrderServices.cs
View file @
c6f845dd
...
...
@@ -334,14 +334,6 @@ namespace CoreCms.Net.Services
case
(
int
)
GlobalEnumVars
.
OrderType
.
Common
:
//标准模式不需要修改订单数据和商品数据
break
;
case
(
int
)
GlobalEnumVars
.
OrderType
.
PinTuan
:
//拼团模式去校验拼团是否存在,并添加拼团记录
var
pinTuanRes
=
await
_pinTuanRecordServices
.
OrderAdd
(
order
,
avaliableOrderItems
,
teamId
);
if
(
pinTuanRes
.
status
==
false
)
{
return
pinTuanRes
;
}
break
;
case
(
int
)
GlobalEnumVars
.
OrderType
.
Group
:
var
groupRes
=
await
_promotionRecordServices
.
OrderAdd
(
order
,
avaliableOrderItems
,
objectId
,
orderType
);
if
(
groupRes
.
status
==
false
)
...
...
CoreCms.Net.Web.WebApi/Controllers/CartController.cs
View file @
c6f845dd
...
...
@@ -31,10 +31,6 @@ namespace CoreCms.Net.Web.WebApi.Controllers
_cartServices
=
cartServices
;
}
//公共接口====================================================================================================
//验证接口====================================================================================================
#
region
添加单个货品到购物车
/// <summary>
...
...
@@ -53,7 +49,6 @@ namespace CoreCms.Net.Web.WebApi.Controllers
#
endregion
添加单个货品到购物车
#
region
获取购物车列表
======================================================================
/// <summary>
/// 获取购物车列表
/// </summary>
...
...
@@ -74,7 +69,6 @@ namespace CoreCms.Net.Web.WebApi.Controllers
#
endregion
获取购物车列表
======================================================================
#
region
删除购物车信息
/// <summary>
/// 获取购物车列表
/// </summary>
...
...
@@ -91,43 +85,9 @@ namespace CoreCms.Net.Web.WebApi.Controllers
return
jm
;
}
jm
=
await
_cartServices
.
DeleteByIdsAsync
(
entity
.
id
,
_user
.
ID
);
return
jm
;
}
#
endregion
删除购物车信息
#
region
设置购物车商品数量
/// <summary>
/// 设置购物车商品数量
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Authorize
]
public
async
Task
<
WebApiCallBack
>
SetCartNum
([
FromBody
]
FMSetCartNum
entity
)
{
var
jm
=
await
_cartServices
.
SetCartNum
(
entity
.
id
,
entity
.
nums
,
_user
.
ID
,
2
,
1
);
return
jm
;
}
#
endregion
设置购物车商品数量
#
region
根据提交的数据判断哪些购物券可以使用
==================================================
/// <summary>
/// 根据提交的数据判断哪些购物券可以使用
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Authorize
]
public
async
Task
<
WebApiCallBack
>
GetCartAvailableCoupon
([
FromBody
]
FMCouponForUserCouponPost
entity
)
{
var
ids
=
CommonHelper
.
StringToIntArray
(
entity
.
ids
);
var
jm
=
await
_cartServices
.
GetCartAvailableCoupon
(
_user
.
ID
,
ids
);
return
jm
;
}
#
endregion
根据提交的数据判断哪些购物券可以使用
==================================================
}
}
\ No newline at end of file
CoreCms.Net.Web.WebApi/Controllers/OrderController.cs
View file @
c6f845dd
...
...
@@ -125,7 +125,6 @@ namespace CoreCms.Net.Web.WebApi.Controllers
#
endregion
#
region
获取个人订单列表
=======================================================
/// <summary>
/// 获取个人订单列表
/// </summary>
...
...
@@ -164,86 +163,5 @@ namespace CoreCms.Net.Web.WebApi.Controllers
}
#
endregion
#
region
删除订单
====================================================
/// <summary>
/// 删除订单
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Authorize
]
public
async
Task
<
WebApiCallBack
>
DeleteOrder
([
FromBody
]
FMStringId
entity
)
{
var
jm
=
new
WebApiCallBack
();
if
(
string
.
IsNullOrEmpty
(
entity
.
id
))
{
jm
.
msg
=
"请提交要取消的订单号"
;
return
jm
;
}
var
ids
=
entity
.
id
.
Split
(
","
);
jm
.
status
=
await
_orderServices
.
DeleteAsync
(
p
=>
ids
.
Contains
(
p
.
orderId
)
&&
p
.
userId
==
_user
.
ID
);
jm
.
msg
=
jm
.
status
?
"删除成功"
:
"删除失败"
;
return
jm
;
}
#
endregion
#
region
确认签收订单
====================================================
/// <summary>
/// 确认签收订单
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Authorize
]
public
async
Task
<
WebApiCallBack
>
OrderConfirm
([
FromBody
]
FMStringId
entity
)
{
var
jm
=
new
WebApiCallBack
();
if
(
string
.
IsNullOrEmpty
(
entity
.
id
))
{
jm
.
msg
=
"请提交要确认签收的订单号"
;
return
jm
;
}
jm
=
await
_orderServices
.
ConfirmOrder
(
entity
.
id
,
Convert
.
ToInt32
(
entity
.
data
));
return
jm
;
}
#
endregion
#
region
前台物流查询接口
=======================================================
/// <summary>
/// 前台物流查询接口
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Authorize
]
public
async
Task
<
WebApiCallBack
>
LogisticsByApi
([
FromBody
]
FMApiLogisticsByApiPost
entity
)
{
var
jm
=
new
WebApiCallBack
();
if
(
string
.
IsNullOrEmpty
(
entity
.
code
)
||
string
.
IsNullOrEmpty
(
entity
.
no
))
{
jm
.
msg
=
GlobalErrorCodeVars
.
Code13225
;
return
jm
;
}
var
systemLogistics
=
SystemSettingDictionary
.
GetSystemLogistics
();
foreach
(
var
p
in
systemLogistics
)
{
if
(
entity
.
code
==
p
.
sKey
)
{
jm
.
msg
=
p
.
sDescription
+
"不支持轨迹查询"
;
return
jm
;
}
}
jm
=
await
_logisticsServices
.
ExpressPoll
(
entity
.
code
,
entity
.
no
,
entity
.
mobile
);
return
jm
;
}
#
endregion
}
}
\ No newline at end of file
CoreCms.Net.Web.WebApi/Doc.xml
View file @
c6f845dd
...
...
@@ -33,18 +33,6 @@
</summary>
<returns></returns>
</member>
<member
name=
"M:CoreCms.Net.Web.WebApi.Controllers.CartController.SetCartNum(CoreCms.Net.Model.ViewModels.DTO.FMSetCartNum)"
>
<summary>
设置购物车商品数量
</summary>
<returns></returns>
</member>
<member
name=
"M:CoreCms.Net.Web.WebApi.Controllers.CartController.GetCartAvailableCoupon(CoreCms.Net.Model.FromBody.FMCouponForUserCouponPost)"
>
<summary>
根据提交的数据判断哪些购物券可以使用
</summary>
<returns></returns>
</member>
<member
name=
"T:CoreCms.Net.Web.WebApi.Controllers.OrderController"
>
<summary>
订单调用接口数据
...
...
@@ -73,24 +61,6 @@
</summary>
<returns></returns>
</member>
<member
name=
"M:CoreCms.Net.Web.WebApi.Controllers.OrderController.DeleteOrder(CoreCms.Net.Model.FromBody.FMStringId)"
>
<summary>
删除订单
</summary>
<returns></returns>
</member>
<member
name=
"M:CoreCms.Net.Web.WebApi.Controllers.OrderController.OrderConfirm(CoreCms.Net.Model.FromBody.FMStringId)"
>
<summary>
确认签收订单
</summary>
<returns></returns>
</member>
<member
name=
"M:CoreCms.Net.Web.WebApi.Controllers.OrderController.LogisticsByApi(CoreCms.Net.Model.FromBody.FMApiLogisticsByApiPost)"
>
<summary>
前台物流查询接口
</summary>
<returns></returns>
</member>
<member
name=
"M:CoreCms.Net.Web.WebApi.Infrastructure.ApiExplorerIgnores.Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel)"
>
<summary>
自带的Controller与swagger3.0冲突,在此排除扫描
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment