【调整】移除后台设置是否会员绑定手机号码的设置。

【新增】新增商城小程序前端商家管理员功能,商家管理员可以通过商家中心查看所有信息。
【调整】商家中心按门店进行过滤,提货单,服务券,订单等,本门店只能处理本门店业务及查看相应数据。
【调整】后台商城配置移除【会员设置】tab,增加【商家设置】tab,将商家相关设置归集到一起。
This commit is contained in:
大灰灰
2022-12-03 01:44:19 +08:00
parent 201586ab4f
commit 0422df5552
24 changed files with 471 additions and 184 deletions

View File

@@ -52,6 +52,8 @@ namespace CoreCms.Net.Web.WebApi.Controllers
private readonly ICoreCmsOrderDistributionModelServices _orderDistributionModelServices;
private readonly ICoreCmsBillPaymentsServices _billPaymentsServices;
private readonly IRedisOperationRepository _redisOperationRepository;
private readonly ICoreCmsUserServices _userServices;
private readonly ICoreCmsClerkServices _clerkServices;
@@ -64,7 +66,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, ICoreCmsBillPaymentsServices billPaymentsServices)
, ICoreCmsBillDeliveryServices billDeliveryServices, ICoreCmsLogisticsServices logisticsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsStoreServices storeServices, ICoreCmsOrderDistributionModelServices orderDistributionModelServices, IRedisOperationRepository redisOperationRepository, ICoreCmsBillPaymentsServices billPaymentsServices, ICoreCmsUserServices userServices, ICoreCmsClerkServices clerkServices)
{
_user = user;
_orderServices = orderServices;
@@ -80,6 +82,8 @@ namespace CoreCms.Net.Web.WebApi.Controllers
_orderDistributionModelServices = orderDistributionModelServices;
_redisOperationRepository = redisOperationRepository;
_billPaymentsServices = billPaymentsServices;
_userServices = userServices;
_clerkServices = clerkServices;
}
@@ -256,11 +260,23 @@ namespace CoreCms.Net.Web.WebApi.Controllers
var userId = _user.ID;
if ((string)entity.data == "merchant")
{
var store = await _storeServices.GetStoreByUserId(_user.ID);
if (store == null)
var allConfigs = await _settingServices.GetConfigDictionaries();
var shopManagerMobile = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopManagerMobile);
var user = await _userServices.QueryByClauseAsync(p => p.id == userId);
if (user == null)
{
jm.status = false;
jm.msg = "你不是店员";
jm.msg = "用户获取失败";
return jm;
}
var isShopManager = !string.IsNullOrEmpty(shopManagerMobile) && shopManagerMobile.Contains(user.mobile);
var store = await _clerkServices.QueryByClauseAsync(p => p.userId == userId);
if (store == null && isShopManager == false)
{
jm.status = false;
jm.msg = "你不是店员或管理员";
return jm;
}
else

View File

@@ -46,6 +46,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
private readonly ICoreCmsClerkServices _clerkServices;
private readonly ICoreCmsStoreServices _storeServices;
private readonly ICoreCmsUserGradeServices _userGradeServices;
private readonly ICoreCmsSettingServices _settingServices;
private readonly IHttpContextUser _user;
@@ -53,16 +54,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
/// <summary>
/// 构造函数
/// </summary>
/// <param name="servicesServices"></param>
/// <param name="user"></param>
/// <param name="userServicesOrderServices"></param>
/// <param name="userServicesTicketServices"></param>
/// <param name="userServices"></param>
/// <param name="clerkServices"></param>
/// <param name="ticketVerificationLogServices"></param>
/// <param name="storeServices"></param>
/// <param name="userGradeServices"></param>
public ServiceController(ICoreCmsServicesServices servicesServices, IHttpContextUser user, ICoreCmsUserServicesOrderServices userServicesOrderServices, ICoreCmsUserServicesTicketServices userServicesTicketServices, ICoreCmsUserServices userServices, ICoreCmsClerkServices clerkServices, ICoreCmsUserServicesTicketVerificationLogServices ticketVerificationLogServices, ICoreCmsStoreServices storeServices, ICoreCmsUserGradeServices userGradeServices)
public ServiceController(ICoreCmsServicesServices servicesServices, IHttpContextUser user, ICoreCmsUserServicesOrderServices userServicesOrderServices, ICoreCmsUserServicesTicketServices userServicesTicketServices, ICoreCmsUserServices userServices, ICoreCmsClerkServices clerkServices, ICoreCmsUserServicesTicketVerificationLogServices ticketVerificationLogServices, ICoreCmsStoreServices storeServices, ICoreCmsUserGradeServices userGradeServices, ICoreCmsSettingServices settingServices)
{
_servicesServices = servicesServices;
_user = user;
@@ -73,6 +65,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
_ticketVerificationLogServices = ticketVerificationLogServices;
_storeServices = storeServices;
_userGradeServices = userGradeServices;
_settingServices = settingServices;
}
@@ -287,7 +280,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
[Authorize]
public async Task<WebApiCallBack> VerificationPageList([FromBody] FMPageByIntId entity)
{
var jm = await _ticketVerificationLogServices.GetVerificationLogs(_user.ID, entity.page, entity.limit);
var jm = await _ticketVerificationLogServices.GetVerificationLogs(_user.ID, entity.id, entity.page, entity.limit);
return jm;
}
#endregion
@@ -406,23 +399,30 @@ namespace CoreCms.Net.Web.WebApi.Controllers
return jm;
}
var clerk = await _clerkServices.QueryByClauseAsync(p => p.userId == user.id);
if (clerk == null)
{
jm.msg = "非门店店员无权限核验";
return jm;
}
var allConfigs = await _settingServices.GetConfigDictionaries();
var shopManagerMobile = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopManagerMobile);
if (!service.consumableStore.Contains("," + clerk.storeId + ","))
var isManager = !string.IsNullOrEmpty(shopManagerMobile) && shopManagerMobile.Contains(user.mobile);
var clerk = await _clerkServices.QueryByClauseAsync(p => p.userId == user.id);
if (!isManager)
{
jm.msg = "您所在的门店无权核销此券";
return jm;
if (clerk == null)
{
jm.msg = "非门店店员无权限核验";
return jm;
}
if (!service.consumableStore.Contains("," + clerk.storeId + ","))
{
jm.msg = "您所在的门店无权核销此券";
return jm;
}
}
//开始更新数据
var log = new CoreCmsUserServicesTicketVerificationLog
{
storeId = clerk.storeId,
storeId = clerk?.storeId ?? 0,
verificationUserId = _user.ID,
ticketId = ticket.id,
ticketRedeemCode = ticket.redeemCode,

View File

@@ -43,6 +43,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
private readonly ICoreCmsSettingServices _settingServices;
private readonly ICoreCmsBillLadingServices _billLadingServices;
private readonly ICoreCmsOrderServices _orderServices;
private readonly ICoreCmsUserServices _userServices;
/// <summary>
@@ -52,7 +53,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
, ICoreCmsStoreServices storeServices
, ICoreCmsClerkServices clerkServices
, ICoreCmsSettingServices settingServices
, ICoreCmsBillLadingServices billLadingServices, ICoreCmsOrderServices orderServices)
, ICoreCmsBillLadingServices billLadingServices, ICoreCmsOrderServices orderServices, ICoreCmsUserServices userServices)
{
_user = user;
_storeServices = storeServices;
@@ -60,6 +61,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
_settingServices = settingServices;
_billLadingServices = billLadingServices;
_orderServices = orderServices;
_userServices = userServices;
}
//公共接口======================================================================================================
@@ -195,9 +197,9 @@ namespace CoreCms.Net.Web.WebApi.Controllers
//验证接口======================================================================================================
#region 访
#region
/// <summary>
/// 判断访问用户是否是店员
/// 判断是否是商家,店员,开启商家中心
/// </summary>
/// <returns></returns>
[HttpPost]
@@ -216,14 +218,129 @@ namespace CoreCms.Net.Web.WebApi.Controllers
/// <returns></returns>
[HttpPost]
[Authorize]
public async Task<WebApiCallBack> GetStoreByUserId()
public async Task<WebApiCallBack> GetStoreByUserId([FromBody] FMIntId entity)
{
var jm = new WebApiCallBack
var jm = new WebApiCallBack();
var allConfigs = await _settingServices.GetConfigDictionaries();
var shopManagerMobile = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopManagerMobile);
var user = await _userServices.QueryByClauseAsync(p => p.id == _user.ID);
if (user == null)
{
status = true,
msg = "获取成功",
data = await _storeServices.GetStoreByUserId(_user.ID)
};
jm.status = false;
jm.msg = "用户获取失败";
return jm;
}
var isManager = !string.IsNullOrEmpty(shopManagerMobile) && shopManagerMobile.Contains(user.mobile);
if (entity.id == 0 && isManager)
{
var latlong = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ReshipCoordinate);
var latLongArray = !string.IsNullOrEmpty(latlong) ? latlong.Split(",") : new string[2];
jm.status = true;
jm.data = new CoreCmsStore
{
id = 0,
storeName = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopName),
//mobile = p.mobile,
//linkMan = p.linkMan,
//logoImage = p.logoImage,
//areaId = p.areaId,
address = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ReshipAddress),
//coordinate = p.coordinate,
latitude = latLongArray[0],
longitude = latLongArray[1],
//isDefault = p.isDefault,
//createTime = p.createTime,
//updateTime = p.updateTime,
};
}
else if (entity.id > 0 && isManager)
{
jm.status = true;
jm.data = await _storeServices.QueryByClauseAsync(p => p.id == entity.id);
}
else
{
jm.status = true;
jm.data = await _storeServices.GetStoreByUserId(_user.ID, entity.id);
}
return jm;
}
#endregion
#region
/// <summary>
/// 获取单个用户能管理的门店列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Authorize]
public async Task<WebApiCallBack> GetStoreListForUser([FromBody] FMGetStoreQueryPageByCoordinate entity)
{
var jm = new WebApiCallBack();
try
{
var where = PredicateBuilder.True<CoreCmsStore>();
var allConfigs = await _settingServices.GetConfigDictionaries();
var shopManagerMobile = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopManagerMobile);
var user = await _userServices.QueryByClauseAsync(p => p.id == _user.ID);
if (user == null)
{
jm.status = false;
jm.msg = "用户获取失败";
return jm;
}
var isManager = !string.IsNullOrEmpty(shopManagerMobile) && shopManagerMobile.Contains(user.mobile);
if (!isManager)
{
var stroes = await _clerkServices.QueryListByClauseAsync(p => p.userId == _user.ID);
var stroeIds = stroes.Select(p => p.storeId).ToList();
where = where.And(p => stroeIds.Contains(p.id));
}
jm.status = true;
var data = await _storeServices.QueryPageAsyncByCoordinate(where, p => p.distance, OrderByType.Asc, entity.page, entity.limit, entity.latitude, entity.longitude);
foreach (var item in data)
{
if (item.distance > 0)
{
if (item.distance > 1000)
{
item.distanceStr = Math.Round(item.distance / 1000, 2) + "km";
}
else
{
item.distanceStr = Math.Round(item.distance, 2) + "m";
}
}
else
{
item.distanceStr = "";
}
}
jm.data = data;
jm.otherData = new
{
totalCount = data.TotalCount,
totalPages = data.TotalPages,
};
}
catch (Exception e)
{
jm.msg = GlobalConstVars.DataHandleEx;
jm.data = e.ToString();
}
return jm;
}
#endregion
@@ -240,8 +357,8 @@ namespace CoreCms.Net.Web.WebApi.Controllers
{
var jm = new WebApiCallBack();
var store = await _storeServices.GetStoreByUserId(_user.ID);
if (store != null)
var store = await _clerkServices.IsClerk(_user.ID);
if (store != null && store.otherData.ObjectToBool())
{
jm = await _orderServices.GetOrderPageByMerchant(entity.dateType, entity.date, entity.status, entity.receiptType, entity.storeId, entity.page, entity.limit);
}
@@ -268,8 +385,8 @@ namespace CoreCms.Net.Web.WebApi.Controllers
{
var jm = new WebApiCallBack();
var store = await _storeServices.GetStoreByUserId(_user.ID);
if (store != null)
var store = await _clerkServices.IsClerk(_user.ID);
if (store != null && store.otherData.ObjectToBool())
{
jm = await _orderServices.GetOrderPageByMerchantSearch(entity.keyword, entity.status, entity.receiptType, entity.storeId, entity.page, entity.limit);
}
@@ -294,7 +411,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
[Authorize]
public async Task<WebApiCallBack> StoreLadingList([FromBody] FMPageByIntId entity)
{
var jm = await _billLadingServices.GetStoreLadingList(_user.ID, entity.page, entity.limit);
var jm = await _billLadingServices.GetStoreLadingList(_user.ID, entity.id, entity.page, entity.limit);
return jm;
}
#endregion