mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 15:43:27 +08:00
【调整】重写拼团前端列表,拼团详情,拼团首页组件,拼团海报等数据获取规则,减少不必要的数据查询,增加redis缓存,提升访问速度,调整拼团海报为新海报模式。
【优化】优化分享识别跳转页面【jump】代码。
This commit is contained in:
@@ -48,10 +48,10 @@ namespace CoreCms.Net.IRepository
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 根据商品id获取拼团规则信息
|
||||
/// 根据规则Id获取拼团相关信息
|
||||
/// </summary>
|
||||
/// <param name="goodId"></param>
|
||||
/// <param name="ruleId">规则序列</param>
|
||||
/// <returns></returns>
|
||||
Task<TagPinTuanResult> GetPinTuanInfo(int goodId);
|
||||
Task<TagPinTuanResult> GetPinTuanInfo(int ruleId);
|
||||
}
|
||||
}
|
||||
@@ -19,9 +19,15 @@ namespace CoreCms.Net.IServices
|
||||
public interface ICoreCmsPinTuanGoodsServices : IBaseServices<CoreCmsPinTuanGoods>
|
||||
{
|
||||
/// <summary>
|
||||
/// 取拼团的商品信息,增加拼团的一些属性,会显示优惠价
|
||||
/// 取拼团的商品信息,增加拼团的一些属性,会显示优惠价
|
||||
/// </summary>
|
||||
/// <param name="pinTuanRuleInfo">拼团规则</param>
|
||||
/// <param name="goodsId">商品id</param>
|
||||
/// <param name="userId">用户序列</param>
|
||||
/// <param name="needRecord">获取拼团记录</param>
|
||||
/// <param name="needCheckStock">校验库存</param>
|
||||
/// <param name="needGoodSku">获取商品sku</param>
|
||||
/// <returns></returns>
|
||||
Task<CoreCmsGoods> GetGoodsInfo(int id, int userId, int pinTuanStatus = 0);
|
||||
Task<CoreCmsGoods> GetGoodsInfo(CoreCmsPinTuanRule pinTuanRuleInfo, int goodsId, int userId, bool needRecord, bool needCheckStock, bool needGoodSku);
|
||||
}
|
||||
}
|
||||
@@ -37,7 +37,7 @@ namespace CoreCms.Net.IServices
|
||||
/// 接口上获取拼团所有商品
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<WebApiCallBack> GetPinTuanList(int id = 0, int userId = 0);
|
||||
Task<WebApiCallBack> GetPinTuanList(int userId = 0);
|
||||
|
||||
|
||||
/// <summary>
|
||||
@@ -55,10 +55,10 @@ namespace CoreCms.Net.IServices
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 根据商品id获取拼团规则信息
|
||||
/// 根据规则Id获取拼团相关信息
|
||||
/// </summary>
|
||||
/// <param name="goodId"></param>
|
||||
/// <param name="ruleId">规则序列</param>
|
||||
/// <returns></returns>
|
||||
Task<TagPinTuanResult> GetPinTuanInfo(int goodId);
|
||||
Task<TagPinTuanResult> GetPinTuanInfo(int ruleId);
|
||||
}
|
||||
}
|
||||
@@ -132,24 +132,24 @@ namespace CoreCms.Net.Repository
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 根据商品id获取拼团规则信息
|
||||
#region 根据规则Id获取拼团相关信息
|
||||
/// <summary>
|
||||
/// 根据商品id获取拼团规则信息
|
||||
/// 根据规则Id获取拼团相关信息
|
||||
/// </summary>
|
||||
/// <param name="goodId"></param>
|
||||
/// <param name="ruleId">规则序列</param>
|
||||
/// <returns></returns>
|
||||
public async Task<TagPinTuanResult> GetPinTuanInfo(int goodId)
|
||||
public async Task<TagPinTuanResult> GetPinTuanInfo(int ruleId)
|
||||
{
|
||||
var dt = DateTime.Now;
|
||||
var reuslt = await DbClient.Queryable<CoreCmsPinTuanGoods, CoreCmsPinTuanRule, CoreCmsGoods, CoreCmsProducts>(
|
||||
(pgModel, prModel, goodModel, productsModel) => new object[]
|
||||
var reuslt = await DbClient.Queryable<CoreCmsPinTuanRule, CoreCmsPinTuanGoods, CoreCmsGoods, CoreCmsProducts>(
|
||||
(prModel, pgModel, goodModel, productsModel) => new object[]
|
||||
{
|
||||
JoinType.Inner, pgModel.ruleId == prModel.id,
|
||||
JoinType.Inner, prModel.id ==pgModel.ruleId ,
|
||||
JoinType.Inner, pgModel.goodsId == goodModel.id,
|
||||
JoinType.Left, goodModel.id == productsModel.goodsId
|
||||
})
|
||||
.Where((pgModel, prModel, goodModel, productsModel) => prModel.isStatusOpen == true && pgModel.goodsId == goodId && prModel.endTime > dt && productsModel.isDefalut == true && productsModel.isDel == false)
|
||||
.Select((pgModel, prModel, goodModel, productsModel) => new TagPinTuanResult
|
||||
.Where((prModel, pgModel, goodModel, productsModel) => prModel.isStatusOpen == true && prModel.id == ruleId && prModel.endTime > dt && productsModel.isDefalut == true && productsModel.isDel == false)
|
||||
.Select((prModel, pgModel, goodModel, productsModel) => new TagPinTuanResult
|
||||
{
|
||||
id = prModel.id,
|
||||
name = prModel.name,
|
||||
|
||||
@@ -48,78 +48,83 @@ namespace CoreCms.Net.Services
|
||||
/// <summary>
|
||||
/// 取拼团的商品信息,增加拼团的一些属性,会显示优惠价
|
||||
/// </summary>
|
||||
/// <param name="pinTuanRuleInfo">拼团规则</param>
|
||||
/// <param name="goodsId">商品id</param>
|
||||
/// <param name="userId">用户序列</param>
|
||||
/// <param name="needRecord">获取拼团记录</param>
|
||||
/// <param name="needCheckStock">校验库存</param>
|
||||
/// <param name="needGoodSku">获取商品sku</param>
|
||||
/// <returns></returns>
|
||||
public async Task<CoreCmsGoods> GetGoodsInfo(int id, int userId, int pinTuanStatus = 0)
|
||||
public async Task<CoreCmsGoods> GetGoodsInfo(CoreCmsPinTuanRule pinTuanRuleInfo, int goodsId, int userId, bool needRecord, bool needCheckStock, bool needGoodSku)
|
||||
{
|
||||
using (var container = _serviceProvider.CreateScope())
|
||||
if (pinTuanRuleInfo == null) return null;
|
||||
if (goodsId == 0) return null;
|
||||
|
||||
using var container = _serviceProvider.CreateScope();
|
||||
|
||||
var goodsServices = container.ServiceProvider.GetService<ICoreCmsGoodsServices>();
|
||||
var pinTuanRuleServices = container.ServiceProvider.GetService<ICoreCmsPinTuanRuleServices>();
|
||||
var pinTuanRecordServices = container.ServiceProvider.GetService<ICoreCmsPinTuanRecordServices>();
|
||||
var pinTuanGoodsServices = container.ServiceProvider.GetService<ICoreCmsPinTuanGoodsServices>();
|
||||
var orderServices = container.ServiceProvider.GetService<ICoreCmsOrderServices>();
|
||||
|
||||
var goodsInfo = await goodsServices.GetGoodsDetail(goodsId, userId, false, "goods", 0, needGoodSku);
|
||||
if (goodsInfo == null) return null;
|
||||
|
||||
goodsInfo.pinTuanRule = pinTuanRuleInfo;
|
||||
goodsInfo.pinTuanPrice = goodsInfo.price - pinTuanRuleInfo.discountAmount;
|
||||
if (goodsInfo.pinTuanPrice < 0) goodsInfo.pinTuanPrice = 0;
|
||||
//取拼团记录
|
||||
goodsInfo.pinTuanRecordNums = await pinTuanRecordServices.GetCountAsync(p => p.ruleId == pinTuanRuleInfo.id && p.goodsId == goodsInfo.id, true);
|
||||
|
||||
//判断拼团状态
|
||||
var dt = DateTime.Now;
|
||||
if (goodsInfo.pinTuanRule.startTime > dt)
|
||||
{
|
||||
var goodsServices = container.ServiceProvider.GetService<ICoreCmsGoodsServices>();
|
||||
var pinTuanRuleServices = container.ServiceProvider.GetService<ICoreCmsPinTuanRuleServices>();
|
||||
var pinTuanRecordServices = container.ServiceProvider.GetService<ICoreCmsPinTuanRecordServices>();
|
||||
var orderServices = container.ServiceProvider.GetService<ICoreCmsOrderServices>();
|
||||
goodsInfo.pinTuanRule.pinTuanStartStatus = (int)GlobalEnumVars.PinTuanRuleStatus.notBegun;
|
||||
|
||||
var goodsInfo = await goodsServices.GetGoodsDetail(id, userId, false, "goods", 0, true);
|
||||
if (goodsInfo == null) return null;
|
||||
//把拼团的一些属性等加上
|
||||
var info =
|
||||
await pinTuanRuleServices
|
||||
.QueryMuchFirstAsync<CoreCmsPinTuanRule, CoreCmsPinTuanGoods, CoreCmsPinTuanRule>(
|
||||
(join1, join2) => new object[] { JoinType.Left, join1.id == join2.ruleId },
|
||||
(join1, join2) => join1, (join1, join2) => join2.goodsId == id && join1.isStatusOpen == true);
|
||||
TimeSpan ts = goodsInfo.pinTuanRule.startTime.Subtract(dt);
|
||||
goodsInfo.pinTuanRule.lastTime = (int)ts.TotalSeconds;
|
||||
}
|
||||
else if (goodsInfo.pinTuanRule.startTime <= dt && goodsInfo.pinTuanRule.endTime > dt)
|
||||
{
|
||||
goodsInfo.pinTuanRule.pinTuanStartStatus = (int)GlobalEnumVars.PinTuanRuleStatus.begin;
|
||||
|
||||
if (info == null) return null;
|
||||
|
||||
goodsInfo.pinTuanRule = info;
|
||||
goodsInfo.pinTuanPrice = goodsInfo.price - info.discountAmount;
|
||||
if (goodsInfo.pinTuanPrice < 0) goodsInfo.pinTuanPrice = 0;
|
||||
//取拼团记录
|
||||
goodsInfo.pinTuanRecordNums = await pinTuanRecordServices.GetCountAsync(p => p.ruleId == info.id && p.goodsId == id && p.status == pinTuanStatus);
|
||||
|
||||
//判断拼团状态
|
||||
var dt = DateTime.Now;
|
||||
if (goodsInfo.pinTuanRule.startTime > dt)
|
||||
{
|
||||
goodsInfo.pinTuanRule.pinTuanStartStatus = (int)GlobalEnumVars.PinTuanRuleStatus.notBegun;
|
||||
|
||||
TimeSpan ts = goodsInfo.pinTuanRule.startTime.Subtract(dt);
|
||||
goodsInfo.pinTuanRule.lastTime = (int)ts.TotalSeconds;
|
||||
}
|
||||
else if (goodsInfo.pinTuanRule.startTime <= dt && goodsInfo.pinTuanRule.endTime > dt)
|
||||
{
|
||||
goodsInfo.pinTuanRule.pinTuanStartStatus = (int)GlobalEnumVars.PinTuanRuleStatus.begin;
|
||||
|
||||
TimeSpan ts = goodsInfo.pinTuanRule.endTime.Subtract(dt);
|
||||
goodsInfo.pinTuanRule.lastTime = (int)ts.TotalSeconds;
|
||||
}
|
||||
else
|
||||
{
|
||||
goodsInfo.pinTuanRule.pinTuanStartStatus = (int)GlobalEnumVars.PinTuanRuleStatus.haveExpired;
|
||||
}
|
||||
//拼团记录
|
||||
//var re = await pinTuanRecordServices.GetRecord(info.id, goodsInfo.product.goodsId);
|
||||
var re = await pinTuanRecordServices.GetRecord(info.id, goodsInfo.id, pinTuanStatus);
|
||||
TimeSpan ts = goodsInfo.pinTuanRule.endTime.Subtract(dt);
|
||||
goodsInfo.pinTuanRule.lastTime = (int)ts.TotalSeconds;
|
||||
}
|
||||
else
|
||||
{
|
||||
goodsInfo.pinTuanRule.pinTuanStartStatus = (int)GlobalEnumVars.PinTuanRuleStatus.haveExpired;
|
||||
}
|
||||
//拼团记录
|
||||
if (needRecord)
|
||||
{
|
||||
var re = await pinTuanRecordServices.GetRecord(pinTuanRuleInfo.id, goodsInfo.id, (int)GlobalEnumVars.PinTuanRecordStatus.InProgress);
|
||||
if (re.status)
|
||||
{
|
||||
goodsInfo.pinTuanRecord = re.data as List<CoreCmsPinTuanRecord>;
|
||||
}
|
||||
|
||||
var checkOrder = orderServices.FindLimitOrder(goodsInfo.product.id, userId, info.startTime, info.endTime, 0);
|
||||
if (info.maxGoodsNums > 0)
|
||||
}
|
||||
//判断是否需要检测库存
|
||||
if (needCheckStock)
|
||||
{
|
||||
var checkOrder = orderServices.FindLimitOrder(goodsInfo.product.id, userId, pinTuanRuleInfo.startTime, pinTuanRuleInfo.endTime, 0);
|
||||
if (pinTuanRuleInfo.maxGoodsNums > 0)
|
||||
{
|
||||
goodsInfo.stock = info.maxGoodsNums;
|
||||
goodsInfo.stock = pinTuanRuleInfo.maxGoodsNums;
|
||||
//活动销售件数
|
||||
goodsInfo.product.stock = info.maxGoodsNums - checkOrder.TotalOrders;
|
||||
goodsInfo.product.stock = pinTuanRuleInfo.maxGoodsNums - checkOrder.TotalOrders;
|
||||
//goodsInfo.buyCount = info.maxGoodsNums - checkOrder.TotalOrders;
|
||||
goodsInfo.buyPinTuanCount = checkOrder.TotalOrders;
|
||||
}
|
||||
else
|
||||
{
|
||||
//goodsInfo.buyCount = info.maxGoodsNums - checkOrder.TotalOrders;
|
||||
goodsInfo.buyPinTuanCount = checkOrder.TotalOrders;
|
||||
|
||||
}
|
||||
return goodsInfo;
|
||||
}
|
||||
|
||||
return goodsInfo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace CoreCms.Net.Services
|
||||
/// 接口上获取拼团所有商品
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<WebApiCallBack> GetPinTuanList(int id = 0, int userId = 0)
|
||||
public async Task<WebApiCallBack> GetPinTuanList(int userId = 0)
|
||||
{
|
||||
var jm = new WebApiCallBack();
|
||||
|
||||
@@ -73,35 +73,32 @@ namespace CoreCms.Net.Services
|
||||
var pinTuanGoodsServices = container.ServiceProvider.GetService<ICoreCmsPinTuanGoodsServices>();
|
||||
var pinTuanRuleServices = container.ServiceProvider.GetService<ICoreCmsPinTuanRuleServices>();
|
||||
|
||||
var pinTuanRules = await pinTuanRuleServices.QueryListByClauseAsync(p => p.isStatusOpen == true, p => p.sort, OrderByType.Asc, true, true, 24 * 60);
|
||||
if (pinTuanRules == null && !pinTuanRules.Any())
|
||||
{
|
||||
jm.status = true;
|
||||
jm.data = null;
|
||||
return jm;
|
||||
}
|
||||
//获取开启的规则集序列
|
||||
var pinTuanRuleIds = pinTuanRules.Select(p => p.id).ToList();
|
||||
//获取下级商品数据
|
||||
var pinTuanGoods = await pinTuanGoodsServices.QueryListByClauseAsync(p => pinTuanRuleIds.Contains(p.ruleId), p => p.ruleId, OrderByType.Asc, true, true);
|
||||
//从缓存中获取有效的数据
|
||||
var dt = DateTime.Now;
|
||||
var where = PredicateBuilder.True<CoreCmsPinTuanRule>();
|
||||
@where = @where.And(p => p.startTime < dt);
|
||||
@where = @where.And(p => p.endTime > dt);
|
||||
if (id != 0)
|
||||
{
|
||||
@where = @where.And(p => p.id == id);
|
||||
}
|
||||
var list = pinTuanRules.Where(p => p.startTime < dt && p.endTime > dt).OrderBy(p => p.sort).ToList();
|
||||
|
||||
var list = await pinTuanRuleServices.QueryListByClauseAsync(@where, p => p.sort, OrderByType.Asc);
|
||||
var goodIds = new List<int>();
|
||||
if (list != null && list.Any())
|
||||
{
|
||||
var ruleIds = list.Select(p => p.id).ToList();
|
||||
var goods = await pinTuanGoodsServices.QueryListByClauseAsync(p => ruleIds.Contains(p.ruleId));
|
||||
if (goods != null && goods.Any())
|
||||
{
|
||||
goodIds = goods.Select(p => p.goodsId).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
if (goodIds.Any())
|
||||
if (list.Any())
|
||||
{
|
||||
var goods = new List<CoreCmsGoods>();
|
||||
foreach (var goodId in goodIds)
|
||||
foreach (var item in list)
|
||||
{
|
||||
var g = await pinTuanGoodsServices.GetGoodsInfo(goodId, userId);
|
||||
if (g != null)
|
||||
var pinTuanGood = pinTuanGoods.Find(p => p.ruleId == item.id);
|
||||
if (pinTuanGood != null)
|
||||
{
|
||||
var g = await pinTuanGoodsServices.GetGoodsInfo(item, pinTuanGood.goodsId, userId, false,
|
||||
false, false);
|
||||
if (g == null) continue;
|
||||
goods.Add(g);
|
||||
}
|
||||
}
|
||||
@@ -112,7 +109,6 @@ namespace CoreCms.Net.Services
|
||||
return jm;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 根据条件查询分页数据
|
||||
/// </summary>
|
||||
@@ -131,14 +127,14 @@ namespace CoreCms.Net.Services
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 根据商品id获取拼团规则信息
|
||||
/// 根据规则Id获取拼团相关信息
|
||||
/// </summary>
|
||||
/// <param name="goodId"></param>
|
||||
/// <param name="ruleId">规则序列</param>
|
||||
/// <returns></returns>
|
||||
|
||||
public async Task<TagPinTuanResult> GetPinTuanInfo(int goodId)
|
||||
public async Task<TagPinTuanResult> GetPinTuanInfo(int ruleId)
|
||||
{
|
||||
return await _dal.GetPinTuanInfo(goodId);
|
||||
return await _dal.GetPinTuanInfo(ruleId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -532,13 +532,13 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
break;
|
||||
case (int)GlobalEnumVars.UrlSharePageType.PinTuan:
|
||||
if (parameter.ContainsKey("goodsId") || parameter.ContainsKey("teamId"))
|
||||
if (parameter.ContainsKey("goodsId") && parameter.ContainsKey("teamId") && parameter.ContainsKey("groupId"))
|
||||
{
|
||||
str = parameter["goodsId"] + "_" + parameter["teamId"];
|
||||
str = parameter["goodsId"] + "_" + parameter["groupId"] + "_" + parameter["teamId"];
|
||||
}
|
||||
else
|
||||
{
|
||||
jm.msg = "参数必须传goodsId,teamId";
|
||||
jm.msg = "参数必须传goodsId,teamId,groupId";
|
||||
return jm;
|
||||
}
|
||||
break;
|
||||
@@ -565,7 +565,7 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
break;
|
||||
case (int)GlobalEnumVars.UrlSharePageType.AddPinTuan:
|
||||
if (parameter.ContainsKey("goodsId") || parameter.ContainsKey("groupId") || parameter.ContainsKey("teamId"))
|
||||
if (parameter.ContainsKey("goodsId") && parameter.ContainsKey("groupId") && parameter.ContainsKey("teamId"))
|
||||
{
|
||||
str = parameter["goodsId"] + "_" + parameter["groupId"] + "_" + parameter["teamId"];
|
||||
}
|
||||
@@ -678,27 +678,16 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
break;
|
||||
case (int)GlobalEnumVars.UrlSharePageType.PinTuan:
|
||||
//if (arr.Length == 3)
|
||||
//{
|
||||
// jm.data = new
|
||||
// {
|
||||
// goodsId = arr[0],
|
||||
// groupId = arr[1],
|
||||
// teamId = arr[2]
|
||||
// };
|
||||
// jm.status = true;
|
||||
//}
|
||||
|
||||
if (arr.Length == 2)
|
||||
if (arr.Length == 3)
|
||||
{
|
||||
jm.data = new
|
||||
{
|
||||
goodsId = arr[0],
|
||||
teamId = arr[1]
|
||||
groupId = arr[1],
|
||||
teamId = arr[2]
|
||||
};
|
||||
jm.status = true;
|
||||
}
|
||||
|
||||
break;
|
||||
case (int)GlobalEnumVars.UrlSharePageType.Inv:
|
||||
if (arr.Length == 1)
|
||||
|
||||
@@ -560,7 +560,7 @@ namespace CoreCms.Net.Services
|
||||
|
||||
if (promotionModel.startTime > dt)
|
||||
{
|
||||
startStatus = (int)GlobalEnumVars.PinTuanRuleStatus.notBegun;
|
||||
startStatus = (int)GlobalEnumVars.GroupSeckillStatus.Upcoming;
|
||||
|
||||
TimeSpan ts = promotionModel.startTime.Subtract(dt);
|
||||
lastTime = (int)ts.TotalSeconds;
|
||||
@@ -568,7 +568,7 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
else if (promotionModel.startTime <= dt && promotionModel.endTime > dt)
|
||||
{
|
||||
startStatus = (int)GlobalEnumVars.PinTuanRuleStatus.begin;
|
||||
startStatus = (int)GlobalEnumVars.GroupSeckillStatus.InProgress;
|
||||
|
||||
TimeSpan ts = promotionModel.endTime.Subtract(dt);
|
||||
lastTime = (int)ts.TotalSeconds;
|
||||
@@ -576,7 +576,7 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
else
|
||||
{
|
||||
startStatus = (int)GlobalEnumVars.PinTuanRuleStatus.haveExpired;
|
||||
startStatus = (int)GlobalEnumVars.GroupSeckillStatus.Finished;
|
||||
}
|
||||
|
||||
((JObject)ss).Add("startStatus", startStatus);
|
||||
@@ -610,10 +610,10 @@ namespace CoreCms.Net.Services
|
||||
{
|
||||
if (ss.ContainsKey("goodsId"))
|
||||
{
|
||||
var goodsId = ((JObject)ss)["goodsId"].ObjectToInt(0);
|
||||
if (goodsId > 0)
|
||||
var ruleId = ((JObject)ss)["id"].ObjectToInt(0);
|
||||
if (ruleId > 0)
|
||||
{
|
||||
var goodsInfo = await _pinTuanRuleServices.GetPinTuanInfo(goodsId);
|
||||
var goodsInfo = await _pinTuanRuleServices.GetPinTuanInfo(ruleId);
|
||||
if (goodsInfo != null)
|
||||
{
|
||||
var pinTuanStartStatus = 1;
|
||||
@@ -646,8 +646,6 @@ namespace CoreCms.Net.Services
|
||||
decimal pinTuanPrice = goodsInfo.goodsPrice - goodsInfo.discountAmount;
|
||||
if (pinTuanPrice < 0) pinTuanPrice = 0;
|
||||
|
||||
|
||||
|
||||
var obj = new JObject();
|
||||
((JObject)obj).Add("pinTuanStartStatus", pinTuanStartStatus);
|
||||
((JObject)obj).Add("lastTime", lastTime);
|
||||
@@ -733,8 +731,6 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
parameters.Remove("list");
|
||||
parameters.Add("list", result);
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
//拼团id
|
||||
//拼团Id/团购Id/秒杀Id
|
||||
groupId: {
|
||||
type: Number,
|
||||
default: 0
|
||||
@@ -83,6 +83,11 @@
|
||||
},
|
||||
// 生成海报
|
||||
createPoster() {
|
||||
uni.showLoading({
|
||||
title: '加载中',
|
||||
mask: true
|
||||
});
|
||||
this.close()
|
||||
let data = {};
|
||||
if (this.shareType == this.$globalConstVars.shareType.index) {
|
||||
data = {
|
||||
@@ -100,9 +105,10 @@
|
||||
}
|
||||
} else if (this.shareType == this.$globalConstVars.shareType.pinTuan) {
|
||||
data = {
|
||||
page: this.shareType, //拼团
|
||||
page: this.shareType,
|
||||
url: this.$globalConstVars.shareUrl,
|
||||
params: {
|
||||
groupId: this.groupId,
|
||||
goodsId: this.goodsId,
|
||||
teamId: this.teamId
|
||||
},
|
||||
@@ -117,7 +123,7 @@
|
||||
}
|
||||
else if (this.shareType == this.$globalConstVars.shareType.group || this.shareType == this.$globalConstVars.shareType.seckill) {
|
||||
data = {
|
||||
page: this.shareType, //拼团
|
||||
page: this.shareType,
|
||||
url: this.$globalConstVars.shareUrl,
|
||||
params: {
|
||||
goodsId: this.goodsId,
|
||||
@@ -182,9 +188,11 @@
|
||||
}
|
||||
this.$u.api.share(data).then(res => {
|
||||
if (res.status) {
|
||||
this.close()
|
||||
|
||||
if (this.shareType == this.$globalConstVars.shareType.goods) {
|
||||
uni.hideLoading();
|
||||
if (
|
||||
this.shareType == this.$globalConstVars.shareType.goods ||
|
||||
this.shareType == this.$globalConstVars.shareType.pinTuan
|
||||
) {
|
||||
//data.posterUrl = encodeURIComponent(res.data);
|
||||
data.params.posterUrl = res.data;
|
||||
data.params.shareType = this.shareType;
|
||||
@@ -194,6 +202,7 @@
|
||||
this.$u.route('/pages/share/sharePoster/sharePoster?poster=' + encodeURIComponent(res.data))
|
||||
}
|
||||
} else {
|
||||
uni.hideLoading();
|
||||
this.$u.toast(res.msg)
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
.group-wrap { background: url('/static/images/pinTuan/pinTuanListBg.png') no-repeat; background-size: 100% 186px; }
|
||||
.group-head { padding: 0 12.5px; height: 50px; line-height: 50px;
|
||||
.group-head { padding: 0 12.5px; height: 80px; line-height: 80px;
|
||||
.group-head__title { font-size: 16px; font-family: PingFang SC; font-weight: 500; color: rgba(255, 255, 255, 1); }
|
||||
.group-head__notice { font-size: 13px; font-family: PingFang SC; font-weight: 500; color: rgba(255, 255, 255, 1); }
|
||||
}
|
||||
@@ -19,29 +19,25 @@
|
||||
</view>
|
||||
<view class="group-box">
|
||||
<view class="goods-item" v-for="(item, index) in goodsList" :key="item.id" v-if="goodsList.length>0">
|
||||
<view class="activity-goods-box coreshop-flex coreshop-justify-start">
|
||||
<view class="img-box">
|
||||
<view class="coreshop-flex coreshop-justify-start coreshop-padding-left-10 coreshop-padding-top-10 coreshop-padding-bottom-10">
|
||||
<view>
|
||||
<view class="tag" v-if="index < 3">TOP{{ index + 1 }}</view>
|
||||
<u--image :src="item.image" mode="widthFix" width="100%" height="104px" radius="10"></u--image>
|
||||
<u--image :src="item.image" mode="widthFix" width="100px" height="100px" radius="10"></u--image>
|
||||
</view>
|
||||
<view class="goods-right coreshop-flex coreshop-flex-direction">
|
||||
<view class="title u-line-2">{{ item.name }}</view>
|
||||
<view class="tip u-line-1">{{ item.brief }}</view>
|
||||
<view class="slod-end">
|
||||
<view class="coreshop-flex coreshop-align-center">
|
||||
<view class="sell-box">
|
||||
<text class="cuIcon-hotfill"></text>
|
||||
<text class="sell-num">已拼{{ item.buyPinTuanCount }}件</text>
|
||||
</view>
|
||||
<text class="group-num">{{ item.pinTuanRule.peopleNumber || 0 }}人团</text>
|
||||
</view>
|
||||
<view class="goods-right coreshop-flex coreshop-flex-direction coreshop-padding-left-10 coreshop-padding-right-10">
|
||||
<view class="title u-line-2 coreshop-text-black">{{ item.pinTuanRule.name }}</view>
|
||||
<view class="tip u-line-2 coreshop-text-grey">{{ item.name }}</view>
|
||||
<view class="coreshop-flex coreshop-align-center coreshop-padding-top-10 coreshop-padding-bottom-10">
|
||||
<u-tag :text="'已拼'+item.pinTuanRecordNums+'单'" type="warning coreshop-margin-right-5 coreshop-font-10" shape="circle" size="mini"></u-tag>
|
||||
<u-tag :text="'已售'+item.buyCount+ item.unit" type="warning coreshop-margin-right-5 coreshop-font-10" shape="circle" size="mini"></u-tag>
|
||||
<u-tag :text="(item.pinTuanRule.peopleNumber || 0) +'人团'" type="success coreshop-font-10" shape="circle" size="mini"></u-tag>
|
||||
</view>
|
||||
<view class="coreshop-flex coreshop-justify-between coreshop-margin-top-2">
|
||||
<view class="coreshop-flex coreshop-justify-between coreshop-flex-direction-row coreshop-align-center">
|
||||
<view class="coreshop-flex coreshop-align-center">
|
||||
<view class="current">¥{{ item.pinTuanPrice }}</view>
|
||||
<view class="original">¥{{ item.price }}</view>
|
||||
</view>
|
||||
<button class="cu-btn buy-btn" @tap="goPinTuanDetail(item.id,item.pinTuanRule.id)">马上拼</button>
|
||||
<view class="cu-btn buy-btn" @tap="goPinTuanDetail(item.id,item.pinTuanRule.id)">马上拼</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -62,9 +58,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
var _this;
|
||||
export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
goodsList: [],
|
||||
@@ -79,14 +74,18 @@
|
||||
},
|
||||
//加载执行
|
||||
onShow: function () {
|
||||
this.getGoods();
|
||||
_this = this
|
||||
_this.getGoods();
|
||||
},
|
||||
methods: {
|
||||
//取得列表数据
|
||||
getGoods: function () {
|
||||
uni.showLoading({
|
||||
title: '加载中',
|
||||
mask: true
|
||||
});
|
||||
var _this = this;
|
||||
let data = {};
|
||||
_this.$u.api.pinTuanList(data).then(res => {
|
||||
_this.$u.api.pinTuanList().then(res => {
|
||||
if (res.status) {
|
||||
_this.goodsList = res.data;
|
||||
if (_this.goodsList) {
|
||||
@@ -94,10 +93,13 @@
|
||||
if (item.pinTuanPrice <= 0) {
|
||||
item.pinTuanPrice = '0.00';
|
||||
} else {
|
||||
item.pinTuanPrice = this.$common.moneySub(item.price, item.pinTuanRule.discountAmount);
|
||||
item.pinTuanPrice = _this.$common.moneySub(item.price, item.pinTuanRule.discountAmount);
|
||||
}
|
||||
});
|
||||
}
|
||||
uni.hideLoading();
|
||||
} else {
|
||||
uni.hideLoading();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
.groupHeight { height: 61px !important; }
|
||||
.groupHeight { height: 61px !important; }
|
||||
|
||||
.group-swiper-c { height: 121px; }
|
||||
.group-swiper-c .swiper-item .coreshop-cell-item { height: 50%; }
|
||||
|
||||
@@ -318,13 +318,13 @@
|
||||
<view class="coreshop-padding-0">
|
||||
<u-popup mode="bottom" :show="shareBox" ref="share">
|
||||
<!-- #ifdef H5 -->
|
||||
<coreshop-share-h5 :shareType='$globalConstVars.shareType.pinTuan' :goodsId="goodsInfo.id" :shareImg="goodsInfo.image" :shareTitle="goodsInfo.name" :shareContent="goodsInfo.brief" :shareHref="shareHref" @close="closeShare()"></coreshop-share-h5>
|
||||
<coreshop-share-h5 :shareType='$globalConstVars.shareType.pinTuan' :goodsId="goodsInfo.id" :groupId="pinTuanId" :shareImg="goodsInfo.image" :shareTitle="goodsInfo.name" :shareContent="goodsInfo.brief" :shareHref="shareHref" @close="closeShare()"></coreshop-share-h5>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<coreshop-share-wx :shareType='$globalConstVars.shareType.pinTuan' :goodsId="goodsInfo.id" :shareImg="goodsInfo.image" :shareTitle="goodsInfo.name" :shareContent="goodsInfo.brief" :shareHref="shareHref" @close="closeShare()"></coreshop-share-wx>
|
||||
<coreshop-share-wx :shareType='$globalConstVars.shareType.pinTuan' :goodsId="goodsInfo.id" :groupId="pinTuanId" :shareTitle="goodsInfo.name" :shareContent="goodsInfo.brief" :shareHref="shareHref" @close="closeShare()"></coreshop-share-wx>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef APP-PLUS || APP-PLUS-NVUE -->
|
||||
<coreshop-share-app :shareType='$globalConstVars.shareType.pinTuan' :goodsId="goodsInfo.id" :shareImg="goodsInfo.image" :shareTitle="goodsInfo.name" :shareContent="goodsInfo.brief" :shareHref="shareHref" @close="closeShare()"></coreshop-share-app>
|
||||
<coreshop-share-app :shareType='$globalConstVars.shareType.pinTuan' :goodsId="goodsInfo.id" :groupId="pinTuanId" :shareTitle="goodsInfo.name" :shareContent="goodsInfo.brief" :shareHref="shareHref" @close="closeShare()"></coreshop-share-app>
|
||||
<!-- #endif -->
|
||||
</u-popup>
|
||||
<div id="qrCode" ref="qrCodeDiv"></div>
|
||||
@@ -548,7 +548,7 @@
|
||||
discountsGoodsSkuInfo: {},
|
||||
|
||||
goodsId: 0, // 商品id
|
||||
pinTuanId: 0, // 团购ID
|
||||
pinTuanId: 0, // 拼团ID
|
||||
goodsInfo: {}, // 商品详情
|
||||
cartNums: 0, // 购物车数量
|
||||
product: {}, // 货品详情
|
||||
@@ -771,8 +771,8 @@
|
||||
// 获取商品详情
|
||||
getGoodsInfo() {
|
||||
let data = {
|
||||
id: this.goodsId,
|
||||
data: 1
|
||||
id: this.pinTuanId,
|
||||
data: true,
|
||||
};
|
||||
// 如果用户已经登录 要传用户token
|
||||
let userToken = this.$db.get('userToken');
|
||||
@@ -1003,14 +1003,11 @@
|
||||
type: 1,
|
||||
page: 3,
|
||||
params: {
|
||||
groupId: this.pinTuanId,
|
||||
goodsId: this.goodsId,
|
||||
teamId: this.teamId
|
||||
}
|
||||
};
|
||||
//let userToken = this.$db.get('userToken');
|
||||
//if (userToken && userToken != '') {
|
||||
// data['token'] = userToken;
|
||||
//}
|
||||
this.$u.api.share(data).then(res => {
|
||||
this.shareUrl = res.data
|
||||
});
|
||||
|
||||
@@ -4,69 +4,87 @@
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
var _this;
|
||||
export default {
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
onLoad(e) {
|
||||
_this = this;
|
||||
if (e.scene) {
|
||||
this.deshare(e.scene);
|
||||
_this.deshare(e.scene);
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
deshare(data) {
|
||||
this.$u.api.deshare({ code: data }).then(res => {
|
||||
//console.log("跳转接值", data);
|
||||
_this.$u.api.deshare({ code: data }).then(res => {
|
||||
//console.log("解密参数", data);
|
||||
if (res.status) {
|
||||
this.saveInviteCode(res.data.userShareCode); //存储邀请码
|
||||
switch (res.data.page) {
|
||||
case '1': //首页
|
||||
this.gotoIndex(); //正常
|
||||
_this.saveInviteCode(res.data.userShareCode); //存储邀请码
|
||||
var pageType = parseInt(res.data.page);
|
||||
switch (pageType) {
|
||||
//首页
|
||||
case _this.$globalConstVars.shareType.index:
|
||||
_this.gotoIndex();
|
||||
break;
|
||||
case '2': //商品
|
||||
this.gotoGoods(res.data.params.goodsId); //正常
|
||||
//商品
|
||||
case _this.$globalConstVars.shareType.goods:
|
||||
_this.gotoGoods(res.data.params.goodsId);
|
||||
break;
|
||||
case '3': //拼团
|
||||
this.gotoPinTuan(res.data.params.goodsId, res.data.params.teamId); //正常
|
||||
//拼团
|
||||
case _this.$globalConstVars.shareType.pinTuan:
|
||||
_this.gotoPinTuan(res.data.params.groupId, res.data.params.goodsId, res.data.params.teamId)
|
||||
break;
|
||||
case '4': //店铺邀请
|
||||
this.gotoStore(res.data.params.store); //正常
|
||||
//店铺邀请
|
||||
case _this.$globalConstVars.shareType.inv:
|
||||
_this.gotoStore(res.data.params.store);
|
||||
break;
|
||||
case '5': //文章页面
|
||||
this.gotoArticle(res.data.params.articleId, res.data.params.articleType); //正常
|
||||
//文章页面
|
||||
case _this.$globalConstVars.shareType.article:
|
||||
_this.gotoArticle(res.data.params.articleId, res.data.params.articleType);
|
||||
break;
|
||||
case '6': //参团页面
|
||||
this.gotoInvitationGroup(res.data.params.goodsId, res.data.params.groupId, res.data.params.teamId)
|
||||
//参团页面
|
||||
case _this.$globalConstVars.shareType.addPinTuan:
|
||||
_this.gotoInvitationGroup(res.data.params.groupId, res.data.params.goodsId, res.data.params.teamId)
|
||||
break;
|
||||
case '7': //自定义页面
|
||||
this.gotoCustom(res.data.params.pageCode);
|
||||
//自定义页面
|
||||
case _this.$globalConstVars.shareType.page:
|
||||
_this.gotoCustom(res.data.params.pageCode);
|
||||
break;
|
||||
case '8': //智能表单
|
||||
this.gotoForm(res.data.params.id)
|
||||
//智能表单
|
||||
case _this.$globalConstVars.shareType.form:
|
||||
_this.gotoForm(res.data.params.id)
|
||||
break;
|
||||
case '9': //团购
|
||||
this.gotoGroup(res.data.params.goodsId, res.data.params.groupId); //正常
|
||||
//团购
|
||||
case _this.$globalConstVars.shareType.group:
|
||||
_this.gotoGroup(res.data.params.goodsId, res.data.params.groupId);
|
||||
break;
|
||||
case '10': //秒杀
|
||||
this.gotoSeckill(res.data.params.goodsId, res.data.params.groupId); //正常
|
||||
//秒杀
|
||||
case _this.$globalConstVars.shareType.seckill:
|
||||
_this.gotoSeckill(res.data.params.goodsId, res.data.params.groupId);
|
||||
break;
|
||||
case '11': //代理商
|
||||
this.gotoAgentStore(res.data.params.store); //正常
|
||||
//代理商
|
||||
case _this.$globalConstVars.shareType.agent:
|
||||
_this.gotoAgentStore(res.data.params.store);
|
||||
break;
|
||||
case '12': //接龙
|
||||
this.gotoSolitaire(res.data.params.id); //正常
|
||||
//接龙
|
||||
case _this.$globalConstVars.shareType.solitaire:
|
||||
_this.gotoSolitaire(res.data.params.id);
|
||||
break;
|
||||
default:
|
||||
this.gotoIndex();//正常
|
||||
_this.gotoIndex();
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
this.$refs.uToast.show({
|
||||
message: '失败', type: 'error', complete: function () {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
});
|
||||
_this.$refs.uToast.show({
|
||||
message: '跳转失败', type: 'error', complete: function () {
|
||||
//uni.navigateBack({
|
||||
// delta: 1
|
||||
//});
|
||||
_this.gotoIndex();
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -75,108 +93,172 @@
|
||||
//存储邀请码
|
||||
saveInviteCode(invite) {
|
||||
if (invite && invite != '') {
|
||||
this.$db.set('invitecode', invite);
|
||||
_this.$db.set('invitecode', invite);
|
||||
}
|
||||
},
|
||||
//跳转到首页
|
||||
gotoIndex() {
|
||||
this.$u.route({ type: 'switchTab', url: '/pages/index/default/default' });
|
||||
_this.$u.route({ type: 'switchTab', url: '/pages/index/default/default' });
|
||||
},
|
||||
//跳转到商品
|
||||
gotoGoods(id) {
|
||||
if (id && id != '') {
|
||||
let url = '/pages/goods/goodDetails/goodDetails?id=' + id;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
if (id) {
|
||||
uni.$u.route({
|
||||
url: '/pages/goods/goodDetails/goodDetails',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转到文章
|
||||
gotoArticle(id, idType) {
|
||||
if (id && id != '') {
|
||||
let url = '/pages/article/details/details?id=' + id + '&idType=' + idType;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
if (id) {
|
||||
uni.$u.route({
|
||||
url: '/pages/article/details/details',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
id: id,
|
||||
idType: idType
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转到拼团
|
||||
gotoPinTuan(id, teamId) {
|
||||
if (id && id != '') {
|
||||
let url = '/pages/activity/pinTuan/pinTuanDetails/pinTuanDetails?id=' + id + '&teamId=' + teamId;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
gotoPinTuan(groupId, goodsId, teamId) {
|
||||
if (groupId && goodsId && teamId) {
|
||||
uni.$u.route({
|
||||
url: '/pages/activity/pinTuan/pinTuanDetails/pinTuanDetails',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
id: goodsId,
|
||||
teamId: teamId,
|
||||
pinTuanId: groupId,
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转到参团
|
||||
gotoInvitationGroup(groupId, goodsId, teamId) {
|
||||
if (groupId && goodsId && teamId) {
|
||||
uni.$u.route({
|
||||
url: '/pages/activity/pinTuan/pinTuanDetails/pinTuanDetails',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
id: goodsId,
|
||||
teamId: teamId,
|
||||
pinTuanId: groupId,
|
||||
}
|
||||
})
|
||||
} else {
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转到团购
|
||||
gotoGroup(id, groupId) {
|
||||
if (id && id != '') {
|
||||
let url = '/pages/activity/groupBuying/groupBuyingDetails/groupBuyingDetails?id=' + id + '&groupId=' + groupId;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
if (id && groupId) {
|
||||
uni.$u.route({
|
||||
url: '/pages/activity/groupBuying/groupBuyingDetails/groupBuyingDetails',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
id: id,
|
||||
groupId: groupId
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转到秒杀
|
||||
gotoSeckill(id, groupId) {
|
||||
if (id && id != '') {
|
||||
let url = '/pages/activity/seckill/seckillDetails/seckillDetails?id=' + id + '&groupId=' + groupId;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
if (id && groupId) {
|
||||
uni.$u.route({
|
||||
url: '/pages/activity/seckill/seckillDetails/seckillDetails',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
id: id,
|
||||
groupId: groupId
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转到参团
|
||||
gotoInvitationGroup(goodsId, groupId, teamId) {
|
||||
if (goodsId && groupId && teamId) {
|
||||
let url = '/pages/activity/pinTuan/pinTuanDetails/pinTuanDetails?id=' + goodsId + '&pinTuanId=' + groupId + '&teamId=' + teamId;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转到自定义页
|
||||
gotoCustom(pageCode) {
|
||||
if (pageCode && pageCode != '') {
|
||||
let url = '/pages/index/custom/custom?pageCode=' + pageCode;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
if (pageCode) {
|
||||
uni.$u.route({
|
||||
url: '/pages/index/custom/custom',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
pageCode: pageCode
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转分销商商家门店
|
||||
gotoStore(id) {
|
||||
if (id && id != '') {
|
||||
let url = '/pages/member/distribution/myStore/myStore?store=' + id;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
if (id) {
|
||||
uni.$u.route({
|
||||
url: '/pages/member/distribution/myStore/myStore',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转代理商商家门店
|
||||
gotoAgentStore(id) {
|
||||
if (id && id != '') {
|
||||
let url = '/pages/member/agent/myStore/myStore?store=' + id;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
if (id) {
|
||||
uni.$u.route({
|
||||
url: '/pages/member/agent/myStore/myStore',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转表单
|
||||
gotoForm(id) {
|
||||
if (id && id != '') {
|
||||
let url = '/pages/form/details/details?id=' + id;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
if (id) {
|
||||
uni.$u.route({
|
||||
url: '/pages/form/details/details',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
},
|
||||
//跳转表单
|
||||
//跳转接龙
|
||||
gotoSolitaire(id) {
|
||||
if (id && id != '') {
|
||||
let url = '/pages/activity/solitaire/solitaireDetails/solitaireDetails?id=' + id;
|
||||
this.$u.route({ type: 'redirectTo', url: url });
|
||||
if (id) {
|
||||
uni.$u.route({
|
||||
url: '/pages/activity/solitaire/solitaireDetails/solitaireDetails',
|
||||
type: 'redirectTo',
|
||||
params: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.gotoIndex();
|
||||
_this.gotoIndex();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,25 +18,27 @@
|
||||
<l-painter-image :src="userInfo.avatarImage" css="margin-left: 40rpx; margin-top: 40rpx; width: 84rpx; height: 84rpx; border-radius: 50%;" />
|
||||
<l-painter-view css="margin-top: 40rpx; padding-left: 20rpx; display: inline-block">
|
||||
<l-painter-text :text="userInfo.nickName" css="display: block; padding-bottom: 10rpx; color: #fff; font-size: 32rpx; fontWeight: bold" />
|
||||
<l-painter-text text="为您挑选了一个好物" css="color: rgba(255,255,255,.7); font-size: 24rpx" />
|
||||
<l-painter-text :text="showModel.describe" css="color: rgba(255,255,255,.7); font-size: 24rpx" />
|
||||
</l-painter-view>
|
||||
<l-painter-view css="margin-left: 40rpx; margin-top: 30rpx; padding: 32rpx; box-sizing: border-box; background: #fff; border-radius: 16rpx; width: 670rpx; box-shadow: 0 20rpx 58rpx rgba(0,0,0,.15)">
|
||||
<l-painter-image :src="goodsInfo.image" css="object-fit: cover; object-position: 50% 50%; width: 606rpx; height: 606rpx; border-radius: 12rpx;" />
|
||||
<l-painter-image :src="showModel.image" css="object-fit: cover; object-position: 50% 50%; width: 606rpx; height: 606rpx; border-radius: 12rpx;" />
|
||||
<l-painter-view css="margin-top: 32rpx; color: #FF0000; font-weight: bold; font-size: 28rpx; line-height: 1em;">
|
||||
<l-painter-text text="¥" css="vertical-align: bottom" />
|
||||
<l-painter-text :text="products.price" css="vertical-align: bottom; font-size: 58rpx" />
|
||||
<l-painter-text :text="showModel.price" css="vertical-align: bottom; font-size: 58rpx" />
|
||||
<l-painter-text text="元" css="vertical-align: bottom" />
|
||||
<l-painter-text :text="'¥'+ products.mktprice" css="vertical-align: bottom; padding-left: 10rpx; font-weight: normal; text-decoration: line-through; color: #999999" />
|
||||
<l-painter-text :text="'¥'+ showModel.mktprice" css="vertical-align: bottom; padding-left: 10rpx; font-weight: normal; text-decoration: line-through; color: #999999" />
|
||||
</l-painter-view>
|
||||
<l-painter-view css="margin-top: 32rpx; font-size: 26rpx; color: #8c5400" v-if="showPinTuanArguments">
|
||||
<l-painter-text :text="'截止:'+showModel.pinTuan.endTime" css="color: #212121; background: #ffb400;" />
|
||||
<l-painter-text :text="showModel.pinTuan.peopleNumber+'人团'" css="margin-left: 16rpx; background: #fff4d9; text-decoration: line-through;" />
|
||||
<!--<l-painter-text text="满减优惠" css="margin-left: 16rpx; background: #fff4d9" />-->
|
||||
</l-painter-view>
|
||||
<l-painter-view css="margin-top: 32rpx; font-size: 26rpx; color: #8c5400">
|
||||
<!--<l-painter-text text="自营" css="color: #212121; background: #ffb400;" />
|
||||
<l-painter-text text="30天最低价" css="margin-left: 16rpx; background: #fff4d9; text-decoration: line-through;" />
|
||||
<l-painter-text text="满减优惠" css="margin-left: 16rpx; background: #fff4d9" />-->
|
||||
<l-painter-text :text="goodsInfo.brief" css="margin-left: 16rpx; background: #fff4d9" />
|
||||
<l-painter-text :text="showModel.brief" css="margin-left: 16rpx; background: #fff4d9" />
|
||||
</l-painter-view>
|
||||
<l-painter-view css="margin-top: 30rpx">
|
||||
<l-painter-text css="line-clamp: 2; color: #333333; line-height: 1.8em; font-size: 36rpx; width: 478rpx; padding-right:32rpx; box-sizing: border-box"
|
||||
:text="goodsInfo.name"></l-painter-text>
|
||||
:text="showModel.name"></l-painter-text>
|
||||
<l-painter-image :src="poster" css="width: 128rpx; height: 128rpx;" />
|
||||
<!--<l-painter-qrcode css="width: 128rpx; height: 128rpx;" text="limeui.qcoon.cn"></l-painter-qrcode>-->
|
||||
</l-painter-view>
|
||||
@@ -65,40 +67,90 @@
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
var _this;
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
poster: '',
|
||||
path: '',
|
||||
userInfo: {},
|
||||
goodsInfo: {},
|
||||
products: {},
|
||||
priceSection:'',
|
||||
priceSection: '',
|
||||
showModel: {
|
||||
describe: '为您挑选了一个好物',
|
||||
price: 0.00,
|
||||
mktprice: 0.00,
|
||||
brief: '',
|
||||
image: '',
|
||||
name: '',
|
||||
pinTuan: {
|
||||
endTime: '',
|
||||
peopleNumber: 0,
|
||||
},
|
||||
},
|
||||
showPinTuanArguments: false
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
var _this = this;
|
||||
this.poster = decodeURIComponent(options.posterUrl);
|
||||
this.userInfo = this.$store.state.userInfo;
|
||||
console.log("接收传输数据:", options);
|
||||
_this = this;
|
||||
_this.poster = decodeURIComponent(options.posterUrl);
|
||||
_this.userInfo = this.$store.state.userInfo;
|
||||
|
||||
uni.showLoading({
|
||||
title: '加载中'
|
||||
});
|
||||
if (options.shareType == this.$globalConstVars.shareType.goods) {
|
||||
if (options.shareType == _this.$globalConstVars.shareType.goods) {
|
||||
let data = {
|
||||
id: parseInt(options.goodsId)
|
||||
}
|
||||
this.$u.api.goodsDetail(data).then(res => {
|
||||
_this.$u.api.goodsDetail(data).then(res => {
|
||||
if (res.status == true) {
|
||||
console.log(res.data);
|
||||
_this.goodsInfo = res.data;
|
||||
_this.products = res.data.product;
|
||||
_this.showModel.image = res.data.image;
|
||||
_this.showModel.brief = res.data.brief;
|
||||
_this.showModel.name = res.data.name;
|
||||
_this.showModel.price = res.data.product.price;
|
||||
_this.showModel.mktprice = res.data.product.mktprice;
|
||||
|
||||
setTimeout(function () {
|
||||
_this.canvasToTempFilePath();
|
||||
uni.hideLoading();
|
||||
}, 1000);
|
||||
|
||||
|
||||
} else {
|
||||
_this.$refs.uToast.show({
|
||||
message: res.msg, type: 'error', complete: function () {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
} else if (options.shareType == _this.$globalConstVars.shareType.pinTuan) {
|
||||
let data = {
|
||||
id: parseInt(options.groupId),
|
||||
data: false,
|
||||
}
|
||||
_this.$u.api.pinTuanGoodsInfo(data).then(res => {
|
||||
if (res.status == true) {
|
||||
console.log(res.data);
|
||||
_this.showModel.describe = "为您推荐了一个拼团活动";
|
||||
_this.showModel.image = res.data.image;
|
||||
_this.showModel.brief = res.data.name;
|
||||
_this.showModel.name = res.data.pinTuanRule.name;
|
||||
_this.showModel.price = res.data.pinTuanPrice;
|
||||
_this.showModel.mktprice = res.data.mktprice;
|
||||
|
||||
_this.showPinTuanArguments = true;
|
||||
_this.showModel.pinTuan.endTime = res.data.pinTuanRule.endTime;
|
||||
_this.showModel.pinTuan.peopleNumber = res.data.pinTuanRule.peopleNumber;
|
||||
|
||||
setTimeout(function () {
|
||||
_this.canvasToTempFilePath();
|
||||
uni.hideLoading();
|
||||
}, 1000);
|
||||
|
||||
} else {
|
||||
_this.$refs.uToast.show({
|
||||
message: res.msg, type: 'error', complete: function () {
|
||||
|
||||
@@ -616,13 +616,16 @@ u-icon { line-height: 0; }
|
||||
|
||||
/*拼团*/
|
||||
.group-box { background: linear-gradient(#fff, #f5f5f5); border-radius: 10px; margin: 0 10px 10px 10px; min-height: 500px;
|
||||
.goods-item { border-radius: 10px; overflow: hidden; position: relative; margin-bottom: 10px;
|
||||
.goods-item { border-radius: 10px; overflow: hidden; position: relative; margin-bottom: 10px; background: #fff;
|
||||
.tag { position: absolute; left: 0; top: 5px; z-index: 2; line-height: 17.5px; background: linear-gradient(132deg, rgba(255, 153, 93, 1), rgba(255, 99, 97, 1)); border-radius: 0px 9px 9px 0px; padding: 0 5px; font-size: 12px; font-family: PingFang SC; font-weight: bold; color: rgba(255, 255, 255, 0.8); }
|
||||
.goods-right {
|
||||
.title { color: $u-main-color }
|
||||
.tip { }
|
||||
.title { font-size: 14px; line-height: 20px; }
|
||||
.tip { font-size: 11px; color: #a8700d; padding: 3px 0; }
|
||||
.current { font-size: 14px; font-weight: 500; color: rgba(225, 33, 43, 1); }
|
||||
.original { font-size: 11px; font-weight: 400; text-decoration: line-through; color: rgba(153, 153, 153, 1); margin-left: 7px; }
|
||||
.u-tag__text { font-size: 11px; }
|
||||
}
|
||||
.buy-btn { width: 130px; height: 30px; background: linear-gradient(90deg, rgba(254, 131, 42, 1), rgba(255, 102, 0, 1)); box-shadow: 0px 3.5px 3px 0px rgba(255, 104, 4, 0.22); border-radius: 15px; font-size: 14px; font-family: PingFang SC; font-weight: 500; color: #fff; padding: 0; }
|
||||
.buy-btn { width: 130px; height: 30px; background: linear-gradient(90deg, rgba(254, 131, 42, 1), rgba(255, 102, 0, 1)); box-shadow: 0px 3.5px 3px 0px rgba(255, 104, 4, 0.22); border-radius: 15px; font-size: 14px; font-family: PingFang SC; font-weight: 500; color: #fff; padding: 0; text-align: center; line-height: 30px; }
|
||||
.group-num { font-size: 10px; font-family: PingFang SC; font-weight: 500; color: rgba(153, 153, 153, 1); margin-left: 10px; }
|
||||
.sell-box { background: rgba(255, 224, 226, 0.3); border-radius: 8px; line-height: 16px; padding: 0 5px;
|
||||
.sell-num { font-size: 10px; font-family: PingFang SC; font-weight: 400; color: rgba(247, 151, 156, 1); }
|
||||
@@ -637,7 +640,7 @@ u-icon { line-height: 0; }
|
||||
.img { width: 100px; height: 100px; background-color: #ccc; }
|
||||
}
|
||||
.goods-right { min-height: 100px; position: relative;
|
||||
.title { font-size: 14px; line-height: 20px; }
|
||||
.title { font-size: 15px; line-height: 20px; }
|
||||
.tip { font-size: 11px; color: #a8700d; padding: 3px 0; }
|
||||
.current { font-size: 14px; font-weight: 500; color: rgba(225, 33, 43, 1); }
|
||||
.original { font-size: 11px; font-weight: 400; text-decoration: line-through; color: rgba(153, 153, 153, 1); margin-left: 7px; }
|
||||
|
||||
@@ -616,13 +616,16 @@ u-icon { line-height: 0; }
|
||||
|
||||
/*拼团*/
|
||||
.group-box { background: linear-gradient(#fff, #f5f5f5); border-radius: 10px; margin: 0 10px 10px 10px; min-height: 500px;
|
||||
.goods-item { border-radius: 10px; overflow: hidden; position: relative; margin-bottom: 10px;
|
||||
.goods-item { border-radius: 10px; overflow: hidden; position: relative; margin-bottom: 10px; background: #fff;
|
||||
.tag { position: absolute; left: 0; top: 5px; z-index: 2; line-height: 17.5px; background: linear-gradient(132deg, rgba(255, 153, 93, 1), rgba(255, 99, 97, 1)); border-radius: 0px 9px 9px 0px; padding: 0 5px; font-size: 12px; font-family: PingFang SC; font-weight: bold; color: rgba(255, 255, 255, 0.8); }
|
||||
.goods-right {
|
||||
.title { color: $u-main-color }
|
||||
.tip { }
|
||||
.title { font-size: 14px; line-height: 20px; }
|
||||
.tip { font-size: 11px; color: #a8700d; padding: 3px 0; }
|
||||
.current { font-size: 14px; font-weight: 500; color: rgba(225, 33, 43, 1); }
|
||||
.original { font-size: 11px; font-weight: 400; text-decoration: line-through; color: rgba(153, 153, 153, 1); margin-left: 7px; }
|
||||
.u-tag__text { font-size: 11px; }
|
||||
}
|
||||
.buy-btn { width: 130px; height: 30px; background: linear-gradient(90deg, rgba(254, 131, 42, 1), rgba(255, 102, 0, 1)); box-shadow: 0px 3.5px 3px 0px rgba(255, 104, 4, 0.22); border-radius: 15px; font-size: 14px; font-family: PingFang SC; font-weight: 500; color: #fff; padding: 0; }
|
||||
.buy-btn { width: 130px; height: 30px; background: linear-gradient(90deg, rgba(254, 131, 42, 1), rgba(255, 102, 0, 1)); box-shadow: 0px 3.5px 3px 0px rgba(255, 104, 4, 0.22); border-radius: 15px; font-size: 14px; font-family: PingFang SC; font-weight: 500; color: #fff; padding: 0; text-align: center; line-height: 30px; }
|
||||
.group-num { font-size: 10px; font-family: PingFang SC; font-weight: 500; color: rgba(153, 153, 153, 1); margin-left: 10px; }
|
||||
.sell-box { background: rgba(255, 224, 226, 0.3); border-radius: 8px; line-height: 16px; padding: 0 5px;
|
||||
.sell-num { font-size: 10px; font-family: PingFang SC; font-weight: 400; color: rgba(247, 151, 156, 1); }
|
||||
@@ -637,7 +640,7 @@ u-icon { line-height: 0; }
|
||||
.img { width: 100px; height: 100px; background-color: #ccc; }
|
||||
}
|
||||
.goods-right { min-height: 100px; position: relative;
|
||||
.title { font-size: 14px; line-height: 20px; }
|
||||
.title { font-size: 15px; line-height: 20px; }
|
||||
.tip { font-size: 11px; color: #a8700d; padding: 3px 0; }
|
||||
.current { font-size: 14px; font-weight: 500; color: rgba(225, 33, 43, 1); }
|
||||
.original { font-size: 11px; font-weight: 400; text-decoration: line-through; color: rgba(153, 153, 153, 1); margin-left: 7px; }
|
||||
|
||||
@@ -226,25 +226,19 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
if (entity.peopleNumber < 2 || entity.peopleNumber > 10)
|
||||
if (entity.peopleNumber is < 2 or > 10)
|
||||
{
|
||||
jm.msg = "拼团人数只允许2至10人";
|
||||
return jm;
|
||||
}
|
||||
|
||||
entity.createTime = DateTime.Now;
|
||||
var id = await _coreCmsPinTuanRuleServices.InsertAsync(entity);
|
||||
var id = await _coreCmsPinTuanRuleServices.InsertAsync(entity, true);
|
||||
var bl = id > 0;
|
||||
if (bl && entity.goods.Any())
|
||||
{
|
||||
var list = new List<CoreCmsPinTuanGoods>();
|
||||
foreach (var good in entity.goods)
|
||||
list.Add(new CoreCmsPinTuanGoods
|
||||
{
|
||||
goodsId = good,
|
||||
ruleId = id
|
||||
});
|
||||
await _coreCmsPinTuanGoodsServices.InsertAsync(list);
|
||||
var list = entity.goods.Select(good => new CoreCmsPinTuanGoods { goodsId = good, ruleId = id }).ToList();
|
||||
await _coreCmsPinTuanGoodsServices.InsertAsync(list, true);
|
||||
}
|
||||
|
||||
jm.code = bl ? 0 : 1;
|
||||
@@ -333,18 +327,12 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
oldModel.updateTime = DateTime.Now;
|
||||
|
||||
//事物处理过程结束
|
||||
var bl = await _coreCmsPinTuanRuleServices.UpdateAsync(oldModel);
|
||||
var bl = await _coreCmsPinTuanRuleServices.UpdateAsync(oldModel, true);
|
||||
if (bl && entity.goods.Any())
|
||||
{
|
||||
await _coreCmsPinTuanGoodsServices.DeleteAsync(p => p.ruleId == oldModel.id);
|
||||
var list = new List<CoreCmsPinTuanGoods>();
|
||||
foreach (var good in entity.goods)
|
||||
list.Add(new CoreCmsPinTuanGoods
|
||||
{
|
||||
goodsId = good,
|
||||
ruleId = oldModel.id
|
||||
});
|
||||
await _coreCmsPinTuanGoodsServices.InsertAsync(list);
|
||||
await _coreCmsPinTuanGoodsServices.DeleteAsync(p => p.ruleId == oldModel.id, true);
|
||||
var list = entity.goods.Select(good => new CoreCmsPinTuanGoods { goodsId = good, ruleId = oldModel.id }).ToList();
|
||||
await _coreCmsPinTuanGoodsServices.InsertAsync(list, true);
|
||||
}
|
||||
|
||||
jm.code = bl ? 0 : 1;
|
||||
@@ -377,11 +365,10 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
return jm;
|
||||
}
|
||||
|
||||
var bl = await _coreCmsPinTuanRuleServices.DeleteByIdAsync(entity.id);
|
||||
var bl = await _coreCmsPinTuanRuleServices.DeleteByIdAsync(entity.id, true);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
return jm;
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -409,7 +396,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
|
||||
oldModel.isStatusOpen = entity.data;
|
||||
|
||||
var bl = await _coreCmsPinTuanRuleServices.UpdateAsync(oldModel);
|
||||
var bl = await _coreCmsPinTuanRuleServices.UpdateAsync(oldModel, true);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
|
||||
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
cols: [
|
||||
[
|
||||
{ type: 'checkbox' },
|
||||
{ field: 'id', title: '拼团序列', width: 70, sort: false },
|
||||
{ field: 'goodsId', title: '商品序列', width: 70, sort: false },
|
||||
{
|
||||
field: 'name', title: '活动名称', sort: false, templet: function (data) {
|
||||
@@ -130,19 +131,19 @@
|
||||
console.log(obj);
|
||||
if (obj.checked) {
|
||||
if (obj.type == 'one') {
|
||||
ids[obj.data.goodsId] = obj.data;
|
||||
ids[obj.data.id] = obj.data;
|
||||
} else {
|
||||
for (var i = 0; i < table_data.length; i++) {
|
||||
ids[table_data[i].goodsId] = table_data[i];
|
||||
ids[table_data[i].id] = table_data[i];
|
||||
}
|
||||
}
|
||||
//the_val[obj.data.id] = obj.data;
|
||||
} else {
|
||||
if (obj.type == 'one') {
|
||||
delete ids[obj.data.goodsId];
|
||||
delete ids[obj.data.id];
|
||||
} else {
|
||||
for (var i = 0; i < table_data.length; i++) {
|
||||
delete ids[table_data[i].goodsId];
|
||||
delete ids[table_data[i].id];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<WebApiCallBack> GetList([FromBody] FMIntId entity)
|
||||
public async Task<WebApiCallBack> GetList()
|
||||
{
|
||||
WebApiCallBack jm;
|
||||
|
||||
@@ -75,12 +75,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
{
|
||||
userId = _user.ID;
|
||||
}
|
||||
var id = 0;
|
||||
if (entity.id > 0)
|
||||
{
|
||||
id = entity.id;
|
||||
}
|
||||
jm = await _pinTuanRuleServices.GetPinTuanList(id, userId);
|
||||
jm = await _pinTuanRuleServices.GetPinTuanList(userId);
|
||||
return jm;
|
||||
}
|
||||
|
||||
@@ -101,11 +96,20 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
{
|
||||
userId = _user.ID;
|
||||
}
|
||||
var pinTuanStatus = entity.data.ObjectToInt(1);
|
||||
|
||||
var showSku = entity.data.ObjectToBool();
|
||||
|
||||
var pinTuanRule = await _pinTuanRuleServices.QueryByClauseAsync(p => p.id == entity.id, true, true);
|
||||
if (pinTuanRule == null)
|
||||
{
|
||||
jm.msg = "拼团获取失败";
|
||||
return jm;
|
||||
}
|
||||
var pinTuanGood = await _pinTuanGoodsServices.QueryByClauseAsync(p => p.ruleId == entity.id, true, true);
|
||||
|
||||
jm.status = true;
|
||||
jm.msg = "获取详情成功";
|
||||
jm.data = await _pinTuanGoodsServices.GetGoodsInfo(entity.id, userId, pinTuanStatus);
|
||||
jm.data = await _pinTuanGoodsServices.GetGoodsInfo(pinTuanRule, pinTuanGood.goodsId, userId, true, true, showSku);
|
||||
|
||||
return jm;
|
||||
|
||||
|
||||
@@ -379,6 +379,12 @@
|
||||
</summary>
|
||||
<param name="formServices"></param>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.FormController.GetList(CoreCms.Net.Model.FromBody.FMPageByIntId)">
|
||||
<summary>
|
||||
获取表单列表
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.FormController.GetFormDetial(CoreCms.Net.Model.FromBody.FmGetForm)">
|
||||
<summary>
|
||||
万能表单/获取活动商品详情
|
||||
@@ -522,7 +528,7 @@
|
||||
订单调用接口数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.OrderController.#ctor(CoreCms.Net.Auth.HttpContextUser.IHttpContextUser,CoreCms.Net.IServices.ICoreCmsOrderServices,CoreCms.Net.IServices.ICoreCmsBillAftersalesServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsAreaServices,CoreCms.Net.IServices.ICoreCmsBillReshipServices,CoreCms.Net.IServices.ICoreCmsShipServices,CoreCms.Net.IServices.ICoreCmsBillDeliveryServices,CoreCms.Net.IServices.ICoreCmsLogisticsServices,CoreCms.Net.IServices.ICoreCmsGoodsServices,CoreCms.Net.IServices.ICoreCmsStoreServices,CoreCms.Net.IServices.ICoreCmsOrderDistributionModelServices)">
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.OrderController.#ctor(CoreCms.Net.Auth.HttpContextUser.IHttpContextUser,CoreCms.Net.IServices.ICoreCmsOrderServices,CoreCms.Net.IServices.ICoreCmsBillAftersalesServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsAreaServices,CoreCms.Net.IServices.ICoreCmsBillReshipServices,CoreCms.Net.IServices.ICoreCmsShipServices,CoreCms.Net.IServices.ICoreCmsBillDeliveryServices,CoreCms.Net.IServices.ICoreCmsLogisticsServices,CoreCms.Net.IServices.ICoreCmsGoodsServices,CoreCms.Net.IServices.ICoreCmsStoreServices,CoreCms.Net.IServices.ICoreCmsOrderDistributionModelServices,CoreCms.Net.Caching.AutoMate.RedisCache.IRedisOperationRepository)">
|
||||
<summary>
|
||||
构造函数
|
||||
</summary>
|
||||
@@ -678,15 +684,22 @@
|
||||
</member>
|
||||
<member name="T:CoreCms.Net.Web.WebApi.Controllers.PayNotify.AliPayController">
|
||||
<summary>
|
||||
支付宝异步通知
|
||||
支付宝异步通知
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.PayNotify.AliPayController.#ctor(Essensoft.Paylink.Alipay.IAlipayNotifyClient,Microsoft.Extensions.Options.IOptions{Essensoft.Paylink.Alipay.AlipayOptions})">
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.PayNotify.AliPayController.#ctor(Essensoft.Paylink.Alipay.IAlipayNotifyClient,Microsoft.Extensions.Options.IOptions{Essensoft.Paylink.Alipay.AlipayOptions},CoreCms.Net.Caching.AutoMate.RedisCache.IRedisOperationRepository)">
|
||||
<summary>
|
||||
构造函数
|
||||
</summary>
|
||||
<param name="client"></param>
|
||||
<param name="optionsAccessor"></param>
|
||||
<param name="redisOperationRepository"></param>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.PayNotify.AliPayController.Unifiedorder">
|
||||
<summary>
|
||||
APP支付统一下单支付结果通知
|
||||
https://api.pro.coreshop.cn/Notify/AliPay/Unifiedorder
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.PayNotify.AliPayController.Gateway">
|
||||
<summary>
|
||||
@@ -744,7 +757,7 @@
|
||||
构造函数
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.PinTuanController.GetList(CoreCms.Net.Model.FromBody.FMIntId)">
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.PinTuanController.GetList">
|
||||
<summary>
|
||||
拼团列表
|
||||
</summary>
|
||||
@@ -944,7 +957,7 @@
|
||||
用户操作事件
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.UserController.#ctor(CoreCms.Net.Auth.HttpContextUser.IHttpContextUser,CoreCms.Net.IServices.ICoreCmsUserWeChatInfoServices,CoreCms.Net.IServices.ICoreCmsUserServices,CoreCms.Net.Auth.Policys.PermissionRequirement,CoreCms.Net.IServices.ICoreCmsSmsServices,CoreCms.Net.IServices.ICoreCmsUserGradeServices,CoreCms.Net.IServices.ICoreCmsUserLogServices,Microsoft.AspNetCore.Http.IHttpContextAccessor,CoreCms.Net.IServices.ICoreCmsGoodsServices,CoreCms.Net.IServices.ICoreCmsGoodsBrowsingServices,CoreCms.Net.IServices.ICoreCmsCartServices,CoreCms.Net.IServices.ICoreCmsGoodsCollectionServices,CoreCms.Net.IServices.ICoreCmsUserShipServices,CoreCms.Net.IServices.ICoreCmsAreaServices,CoreCms.Net.IServices.ICoreCmsBillPaymentsServices,CoreCms.Net.IServices.ICoreCmsGoodsCommentServices,CoreCms.Net.IServices.ICoreCmsUserBankCardServices,CoreCms.Net.IServices.ICoreCmsUserTocashServices,CoreCms.Net.IServices.ICoreCmsUserBalanceServices,CoreCms.Net.IServices.ICoreCmsInvoiceServices,CoreCms.Net.IServices.ICoreCmsUserPointLogServices,CoreCms.Net.IServices.ICoreCmsShareServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsServicesServices,Microsoft.Extensions.Options.IOptions{CoreCms.Net.WeChat.Service.Options.WeChatOptions},CoreCms.Net.IServices.ICoreCmsUserServicesOrderServices,CoreCms.Net.IServices.ICoreCmsUserServicesTicketServices,CoreCms.Net.IServices.ICoreCmsStoreServices,CoreCms.Net.IServices.ICoreCmsCouponServices,CoreCms.Net.IServices.ICoreCmsOrderServices,CoreCms.Net.WeChat.Service.HttpClients.IWeChatApiHttpClientFactory)">
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.UserController.#ctor(CoreCms.Net.Auth.HttpContextUser.IHttpContextUser,CoreCms.Net.IServices.ICoreCmsUserWeChatInfoServices,CoreCms.Net.IServices.ICoreCmsUserServices,CoreCms.Net.Auth.Policys.PermissionRequirement,CoreCms.Net.IServices.ICoreCmsSmsServices,CoreCms.Net.IServices.ICoreCmsUserGradeServices,CoreCms.Net.IServices.ICoreCmsUserLogServices,Microsoft.AspNetCore.Http.IHttpContextAccessor,CoreCms.Net.IServices.ICoreCmsGoodsServices,CoreCms.Net.IServices.ICoreCmsGoodsBrowsingServices,CoreCms.Net.IServices.ICoreCmsCartServices,CoreCms.Net.IServices.ICoreCmsGoodsCollectionServices,CoreCms.Net.IServices.ICoreCmsUserShipServices,CoreCms.Net.IServices.ICoreCmsAreaServices,CoreCms.Net.IServices.ICoreCmsBillPaymentsServices,CoreCms.Net.IServices.ICoreCmsGoodsCommentServices,CoreCms.Net.IServices.ICoreCmsUserBankCardServices,CoreCms.Net.IServices.ICoreCmsUserTocashServices,CoreCms.Net.IServices.ICoreCmsUserBalanceServices,CoreCms.Net.IServices.ICoreCmsInvoiceServices,CoreCms.Net.IServices.ICoreCmsUserPointLogServices,CoreCms.Net.IServices.ICoreCmsShareServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsServicesServices,Microsoft.Extensions.Options.IOptions{CoreCms.Net.WeChat.Service.Options.WeChatOptions},CoreCms.Net.IServices.ICoreCmsUserServicesOrderServices,CoreCms.Net.IServices.ICoreCmsUserServicesTicketServices,CoreCms.Net.IServices.ICoreCmsStoreServices,CoreCms.Net.IServices.ICoreCmsCouponServices,CoreCms.Net.IServices.ICoreCmsOrderServices,CoreCms.Net.WeChat.Service.HttpClients.IWeChatApiHttpClientFactory,CoreCms.Net.Caching.AutoMate.RedisCache.IRedisOperationRepository)">
|
||||
<summary>
|
||||
构造函数
|
||||
</summary>
|
||||
@@ -1067,6 +1080,12 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.UserController.GetCartNumberAndMoney">
|
||||
<summary>
|
||||
获取购物车商品数量
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.UserController.GoodsCollectionCreateOrDelete(CoreCms.Net.Model.FromBody.FMIntId)">
|
||||
<summary>
|
||||
商品取消/添加收藏
|
||||
@@ -1308,7 +1327,13 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.UserController.GetServicesTickets(CoreCms.Net.Model.FromBody.FMPageByStringId)">
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.UserController.GetServicesById(CoreCms.Net.Model.FromBody.FMStringId)">
|
||||
<summary>
|
||||
获取单个服务订单
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.UserController.GetServicesTickets(CoreCms.Net.Model.FromBody.FMPageByStringIdWhitStatus)">
|
||||
<summary>
|
||||
取得服务卡列表信息
|
||||
</summary>
|
||||
|
||||
Reference in New Issue
Block a user