mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2026-02-05 10:29:50 +08:00
【新增】新增微信扫码支付功能,对接PC端。
【新增】增加DTO类库,将逐步完善dto层。 【修复】修复【分类】切换后,切换回来未清零原始数据,导致更新数据重复的问题。 【调整】移除模板库功能,防止出现审核因为模板库页面存在而导致的审核失败。暂将模板库的代码存放到会员QQ群内,方便下载使用。 【调整】代码生成器【Repository.tpl】移除Cache手动增删改,【SqlSugarSetup】增加sqlsugar自动检测增删改后清理二级缓存。 【调整】后端新增秒杀独立组件,用于区分团购及秒杀的差异,首页新增秒杀组件。 【优化】重写首页所有组件样式及接口数据获取效率。 【优化】优化拼团,秒杀,团购,接龙数据获取逻辑,提升列表及详情页面数据获取效率。 【优化】调整拼团,秒杀,团购,服务商品推广海报为新式海报效果。增加服务商品推广海报。 【优化】清理h5相关代码判断,移除h5支付组件,提高响应速度。 【优化】移除小程序前端冗余代码。加快代码执行效率。
This commit is contained in:
@@ -34,17 +34,15 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
|
||||
private readonly IHttpContextUser _user;
|
||||
private readonly ICoreCmsPromotionServices _coreCmsPromotionServices;
|
||||
private ICoreCmsGoodsServices _goodsServices;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
public GroupController(IHttpContextUser user, ICoreCmsPromotionServices coreCmsPromotionServices, ICoreCmsGoodsServices goodsServices)
|
||||
public GroupController(IHttpContextUser user, ICoreCmsPromotionServices coreCmsPromotionServices)
|
||||
{
|
||||
_user = user;
|
||||
_coreCmsPromotionServices = coreCmsPromotionServices;
|
||||
_goodsServices = goodsServices;
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +56,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
[HttpPost]
|
||||
public async Task<WebApiCallBack> GetList([FromBody] FMGroupGetListPost entity)
|
||||
{
|
||||
var jm = await _coreCmsPromotionServices.GetGroupList(entity.type, _user.ID, entity.status, entity.page, entity.limit);
|
||||
var jm = await _coreCmsPromotionServices.GetGroupList(entity.type, entity.status, entity.page, entity.limit);
|
||||
|
||||
return jm;
|
||||
}
|
||||
@@ -72,7 +70,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
[HttpPost]
|
||||
public async Task<WebApiCallBack> GetGoodsDetial([FromBody] FMGetGoodsDetial entity)
|
||||
{
|
||||
var jm = await _coreCmsPromotionServices.GetGroupDetail(entity.id, 0, entity.type, entity.groupId, entity.needSku);
|
||||
var jm = await _coreCmsPromotionServices.GetGroupDetail(entity.id, 0, entity.type, entity.needSku);
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -16,6 +16,7 @@ using CoreCms.Net.Auth.HttpContextUser;
|
||||
using CoreCms.Net.Caching.AutoMate.RedisCache;
|
||||
using CoreCms.Net.Configuration;
|
||||
using CoreCms.Net.IServices;
|
||||
using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.Entities.Expression;
|
||||
using CoreCms.Net.Model.FromBody;
|
||||
@@ -25,6 +26,7 @@ using CoreCms.Net.Utility.Extensions;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
using SqlSugar;
|
||||
|
||||
namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
@@ -48,6 +50,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
private readonly ICoreCmsGoodsServices _goodsServices;
|
||||
private readonly ICoreCmsStoreServices _storeServices;
|
||||
private readonly ICoreCmsOrderDistributionModelServices _orderDistributionModelServices;
|
||||
private readonly ICoreCmsBillPaymentsServices _billPaymentsServices;
|
||||
private readonly IRedisOperationRepository _redisOperationRepository;
|
||||
|
||||
|
||||
@@ -61,7 +64,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
, ICoreCmsSettingServices settingServices
|
||||
, ICoreCmsAreaServices areaServices
|
||||
, ICoreCmsBillReshipServices reshipServices, ICoreCmsShipServices shipServices
|
||||
, ICoreCmsBillDeliveryServices billDeliveryServices, ICoreCmsLogisticsServices logisticsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsStoreServices storeServices, ICoreCmsOrderDistributionModelServices orderDistributionModelServices, IRedisOperationRepository redisOperationRepository)
|
||||
, ICoreCmsBillDeliveryServices billDeliveryServices, ICoreCmsLogisticsServices logisticsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsStoreServices storeServices, ICoreCmsOrderDistributionModelServices orderDistributionModelServices, IRedisOperationRepository redisOperationRepository, ICoreCmsBillPaymentsServices billPaymentsServices)
|
||||
{
|
||||
_user = user;
|
||||
_orderServices = orderServices;
|
||||
@@ -76,6 +79,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
_storeServices = storeServices;
|
||||
_orderDistributionModelServices = orderDistributionModelServices;
|
||||
_redisOperationRepository = redisOperationRepository;
|
||||
_billPaymentsServices = billPaymentsServices;
|
||||
}
|
||||
|
||||
|
||||
@@ -269,6 +273,52 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 订单是否支付状态查询==================================================
|
||||
/// <summary>
|
||||
/// 订单预览
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Authorize]
|
||||
public async Task<WebApiCallBack> CheckOrderIsPaid([FromBody] FMStringId entity)
|
||||
{
|
||||
var jm = new WebApiCallBack();
|
||||
|
||||
var lockKey = "LOCK_CheckOrderIsPaid:user_" + _user.ID;
|
||||
var lockHolder = Guid.NewGuid().ToString("N"); //锁持有者
|
||||
var redisUserLock = await _redisOperationRepository.LockTakeAsync(lockKey, lockHolder, TimeSpan.FromSeconds(5));
|
||||
if (redisUserLock)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(entity.id))
|
||||
{
|
||||
jm.msg = "支付单编号不能为空";
|
||||
return jm;
|
||||
}
|
||||
var bl = await _orderServices.ExistsAsync(p => p.orderId == entity.id && (p.payStatus == (int)GlobalEnumVars.OrderPayStatus.Yes || p.payStatus == (int)GlobalEnumVars.OrderPayStatus.PartialYes), true);
|
||||
jm.status = true;
|
||||
jm.data = bl;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
jm.msg = "数据处理异常";
|
||||
jm.otherData = e;
|
||||
NLogUtil.WriteFileLog(NLog.LogLevel.Error, LogType.ApiRequest, "用户支付支付", JsonConvert.SerializeObject(jm));
|
||||
}
|
||||
finally
|
||||
{
|
||||
await _redisOperationRepository.LockReleaseAsync(lockKey, lockHolder);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
jm.msg = "当前请求太频繁_请稍后再试";
|
||||
}
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 获取订单不同状态的数量==================================================
|
||||
/// <summary>
|
||||
/// 获取订单不同状态的数量
|
||||
@@ -610,5 +660,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -84,45 +84,24 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
/// </summary>
|
||||
[HttpPost]
|
||||
[Description("获取用户购买记录")]
|
||||
public async Task<WebApiCallBack> GetRecod([FromBody] FMGetRecodPost entity)
|
||||
public async Task<WebApiCallBack> GetRecord([FromBody] FMGetRecodPost entity)
|
||||
{
|
||||
var jm = new WebApiCallBack() { status = true, msg = "获取成功", otherData = entity };
|
||||
|
||||
/***
|
||||
* 随机数
|
||||
* 其它随机数据,需要自己补充
|
||||
*/
|
||||
//logo作为头像
|
||||
Random rand = new Random();
|
||||
|
||||
//随机数
|
||||
var rand = new Random();
|
||||
//获取配置项
|
||||
var allConfigs = await _settingServices.GetConfigDictionaries();
|
||||
|
||||
//logo作为头像
|
||||
var avatar = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopLogo);
|
||||
var names = new string[] { "无人像你", "啭裑①羣豞", "朕射妳无罪", "骑着蜗牛狂奔", "残孤星", "上网可以,别开QVOD", "请把QQ留下!", "蹭网可以,一小时两块钱", "I~在。哭泣", "不倾国倾城只倾他一人", "你再发光我就拔你插头", "家,世间最温暖的地方", "挥着鸡翅膀的女孩", "难不难过都是一个人过", "原谅我盛装出席只为错过你", "残孤星", "只适合被遗忘", "爱情,算个屁丶", "执子辶掱", "朕今晚翻你牌子", "①苆兜媞命", "中华一样的高傲", "始于心动止于枯骨", "我们幸福呢", "表白失败,勿扰", "髮型吥能亂", "陽咣丅啲憂喐", "你棺材是翻盖的还是滑盖的", "孤枕", "泪颜葬相思", "喵星人", "超拽霸气的微博名字", "晚安晚安晚晚难安", "却输给了秒", "为什么我吃德芙没有黑丝飘", "请输入我大" };
|
||||
var listUsers = new List<RandUser>();
|
||||
|
||||
foreach (var itemName in names)
|
||||
{
|
||||
var min = rand.Next(100, 1000);
|
||||
var createTime = DateTime.Now.AddMinutes(-min);
|
||||
listUsers.Add(new RandUser()
|
||||
{
|
||||
avatar = avatar,
|
||||
createTime = CommonHelper.TimeAgo(createTime),
|
||||
nickname = itemName,
|
||||
desc = "下单成功",
|
||||
dt = createTime
|
||||
});
|
||||
}
|
||||
|
||||
if (entity.type == "home")
|
||||
{
|
||||
//数据库里面随机取出来几条数据
|
||||
var orders = await _orderServices.QueryListByClauseAsync(p => p.isdel == false, 20, p => p.createTime,
|
||||
OrderByType.Desc);
|
||||
var orders = await _orderServices.QueryListByClauseAsync(p => p.isdel == false, 20, p => p.createTime, OrderByType.Desc, true, true, 60);
|
||||
if (orders != null && orders.Any())
|
||||
{
|
||||
Random rd = new Random();
|
||||
var rd = new Random();
|
||||
var index = rd.Next(orders.Count);
|
||||
var orderItem = orders[index];
|
||||
if (orderItem != null)
|
||||
@@ -143,7 +122,24 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
Random rd = new Random();
|
||||
var names = new[] { "无人像你", "啭裑①羣豞", "朕射妳无罪", "骑着蜗牛狂奔", "残孤星", "上网可以,别开QVOD", "请把QQ留下!", "蹭网可以,一小时两块钱", "I~在。哭泣", "不倾国倾城只倾他一人", "你再发光我就拔你插头", "家,世间最温暖的地方", "挥着鸡翅膀的女孩", "难不难过都是一个人过", "原谅我盛装出席只为错过你", "残孤星", "只适合被遗忘", "爱情,算个屁丶", "执子辶掱", "朕今晚翻你牌子", "①苆兜媞命", "中华一样的高傲", "始于心动止于枯骨", "我们幸福呢", "表白失败,勿扰", "髮型吥能亂", "陽咣丅啲憂喐", "你棺材是翻盖的还是滑盖的", "孤枕", "泪颜葬相思", "喵星人", "超拽霸气的微博名字", "晚安晚安晚晚难安", "却输给了秒", "为什么我吃德芙没有黑丝飘", "请输入我大" };
|
||||
var listUsers = new List<RandUser>();
|
||||
|
||||
foreach (var itemName in names)
|
||||
{
|
||||
var min = rand.Next(100, 1000);
|
||||
var createTime = DateTime.Now.AddMinutes(-min);
|
||||
listUsers.Add(new RandUser()
|
||||
{
|
||||
avatar = avatar,
|
||||
createTime = CommonHelper.TimeAgo(createTime),
|
||||
nickname = itemName,
|
||||
desc = "下单成功",
|
||||
dt = createTime
|
||||
});
|
||||
}
|
||||
|
||||
var rd = new Random();
|
||||
var listI = rd.Next(listUsers.Count);
|
||||
jm.data = listUsers[listI];
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<WebApiCallBack> GetList()
|
||||
public async Task<WebApiCallBack> GetList([FromBody] FMPageByIntId entity)
|
||||
{
|
||||
WebApiCallBack jm;
|
||||
|
||||
@@ -75,7 +75,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
{
|
||||
userId = _user.ID;
|
||||
}
|
||||
jm = await _pinTuanRuleServices.GetPinTuanList(userId);
|
||||
jm = await _pinTuanRuleServices.GetPinTuanList(userId, entity.page, entity.limit);
|
||||
return jm;
|
||||
}
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
|
||||
where = where.And(p => p.status == (int)GlobalEnumVars.ServicesStatus.Shelve);
|
||||
where = where.And(p => p.amount > 0);
|
||||
where = where.And(p => p.startTime < dt && p.endTime > dt);
|
||||
//where = where.And(p => p.startTime < dt && p.endTime > dt);
|
||||
|
||||
var list = await _servicesServices.QueryPageAsync(where, p => p.createTime, OrderByType.Desc, entity.page, entity.limit);
|
||||
|
||||
@@ -101,30 +101,45 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
var storesAll = await _storeServices.QueryAsync();
|
||||
var userGradesAll = await _userGradeServices.QueryAsync();
|
||||
|
||||
foreach (var data in list)
|
||||
foreach (var item in list)
|
||||
{
|
||||
TimeSpan ts = data.endTime.Subtract(dt);
|
||||
data.timestamp = (int)ts.TotalSeconds;
|
||||
|
||||
if (!string.IsNullOrEmpty(data.consumableStore))
|
||||
if (item.startTime > dt)
|
||||
{
|
||||
var consumableStoreStr = CommonHelper.GetCaptureInterceptedText(data.consumableStore, ",");
|
||||
item.openStatus = (int)GlobalEnumVars.ServicesOpenStatus.notBegun;
|
||||
TimeSpan ts = item.startTime.Subtract(dt);
|
||||
item.timestamp = (int)ts.TotalSeconds;
|
||||
}
|
||||
else if (item.startTime <= dt && item.endTime > dt)
|
||||
{
|
||||
item.openStatus = (int)GlobalEnumVars.ServicesOpenStatus.begin;
|
||||
TimeSpan ts = item.endTime.Subtract(dt);
|
||||
item.timestamp = (int)ts.TotalSeconds;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.openStatus = (int)GlobalEnumVars.ServicesOpenStatus.haveExpired;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(item.consumableStore))
|
||||
{
|
||||
var consumableStoreStr = CommonHelper.GetCaptureInterceptedText(item.consumableStore, ",");
|
||||
var consumableStoreIds = CommonHelper.StringToIntArray(consumableStoreStr);
|
||||
if (consumableStoreIds.Any())
|
||||
{
|
||||
var stores = storesAll.Where(p => consumableStoreIds.Contains(p.id)).ToList();
|
||||
data.consumableStores = stores.Select(p => p.storeName).ToList();
|
||||
item.consumableStores = stores.Select(p => p.storeName).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(data.allowedMembership))
|
||||
if (!string.IsNullOrEmpty(item.allowedMembership))
|
||||
{
|
||||
var allowedMembershipStr = CommonHelper.GetCaptureInterceptedText(data.allowedMembership, ",");
|
||||
var allowedMembershipStr = CommonHelper.GetCaptureInterceptedText(item.allowedMembership, ",");
|
||||
var allowedMembershipIds = CommonHelper.StringToIntArray(allowedMembershipStr);
|
||||
if (allowedMembershipIds.Any())
|
||||
{
|
||||
var userGrades = userGradesAll.Where(p => allowedMembershipIds.Contains(p.id)).ToList();
|
||||
data.allowedMemberships = userGrades.Select(p => p.title).ToList();
|
||||
item.allowedMemberships = userGrades.Select(p => p.title).ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -184,35 +199,25 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
int openStatus;
|
||||
var lastTime = 0;
|
||||
if (serviceInfo.startTime > dt)
|
||||
{
|
||||
openStatus = (int)GlobalEnumVars.ServicesOpenStatus.notBegun;
|
||||
serviceInfo.openStatus = (int)GlobalEnumVars.ServicesOpenStatus.notBegun;
|
||||
var ts = serviceInfo.startTime.Subtract(dt);
|
||||
lastTime = (int)ts.TotalSeconds;
|
||||
serviceInfo.timestamp = (int)ts.TotalSeconds;
|
||||
}
|
||||
else if (serviceInfo.startTime <= dt && serviceInfo.endTime > dt)
|
||||
{
|
||||
openStatus = (int)GlobalEnumVars.ServicesOpenStatus.begin;
|
||||
serviceInfo.openStatus = (int)GlobalEnumVars.ServicesOpenStatus.begin;
|
||||
var ts = serviceInfo.endTime.Subtract(dt);
|
||||
lastTime = (int)ts.TotalSeconds;
|
||||
serviceInfo.timestamp = (int)ts.TotalSeconds;
|
||||
}
|
||||
else
|
||||
{
|
||||
openStatus = (int)GlobalEnumVars.ServicesOpenStatus.haveExpired;
|
||||
serviceInfo.openStatus = (int)GlobalEnumVars.ServicesOpenStatus.haveExpired;
|
||||
}
|
||||
|
||||
|
||||
jm.status = true;
|
||||
jm.data = new
|
||||
{
|
||||
serviceInfo,
|
||||
timer=new
|
||||
{
|
||||
openStatus,
|
||||
lastTime,
|
||||
}
|
||||
};
|
||||
jm.data = serviceInfo;
|
||||
return jm;
|
||||
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
{
|
||||
var jm = new WebApiCallBack();
|
||||
|
||||
var ship = await _storeServices.QueryByClauseAsync(p => p.isDefault == true);
|
||||
var ship = await _storeServices.QueryByClauseAsync(p => p.isDefault == true, true, true);
|
||||
jm.status = true;
|
||||
jm.data = ship;
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
item.distanceStr = "未知";
|
||||
item.distanceStr = "";
|
||||
}
|
||||
}
|
||||
jm.data = data;
|
||||
@@ -243,7 +243,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
||||
var store = await _storeServices.GetStoreByUserId(_user.ID);
|
||||
if (store != null)
|
||||
{
|
||||
jm = await _orderServices.GetOrderPageByMerchant(entity.dateType, entity.date, entity.status,entity.receiptType, entity.storeId, entity.page, entity.limit);
|
||||
jm = await _orderServices.GetOrderPageByMerchant(entity.dateType, entity.date, entity.status, entity.receiptType, entity.storeId, entity.page, entity.limit);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user