Commit 92a5c5a8 authored by 黄奎's avatar 黄奎

Merge branch 'sdzq' of http://gitlab.oytour.com/Kui2/mall.oytour.com into HK

parents 4c56af02 29429cc1
......@@ -836,5 +836,41 @@ namespace Mall.Common
return Encoding.UTF8.GetString(cipherbytes);
}
#endregion
/// <summary>
/// 解析手机号码
/// </summary>
/// <param name="encryptedDataStr"></param>
/// <param name="key"></param>
/// <param name="iv"></param>
/// <returns></returns>
public static string AES_decrypt(string encryptedDataStr, string key, string iv)
{
RijndaelManaged rijalg = new RijndaelManaged();
//-----------------
//设置 cipher 格式 AES-128-CBC
rijalg.KeySize = 128;
rijalg.Padding = PaddingMode.PKCS7;
rijalg.Mode = CipherMode.CBC;
rijalg.Key = Convert.FromBase64String(key);
rijalg.IV = Convert.FromBase64String(iv);
byte[] encryptedData = Convert.FromBase64String(encryptedDataStr);
//解密
ICryptoTransform decryptor = rijalg.CreateDecryptor(rijalg.Key, rijalg.IV);
string result;
using (MemoryStream msDecrypt = new MemoryStream(encryptedData))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
result = srDecrypt.ReadToEnd();
}
}
}
return result;
}
}
}
\ No newline at end of file
using VT.FW.DB;
using Mall.Common.Enum.MallBase;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Reserve
{
/// <summary>
/// 预约专区基础
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_Base
{
/// <summary>
/// id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 提前预定分钟
/// </summary>
public int AdvanceMinute { get; set; }
/// <summary>
/// 订单状态变更
/// </summary>
public string OrderStateJson { get; set; }
/// <summary>
/// 营业时间
/// </summary>
public string BusinessHoursJson { get; set; }
/// <summary>
/// 付款方式
/// </summary>
public string PayTypeJson { get; set; }
/// <summary>
/// 商户id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateDate { get; set; }
/// <summary>
/// 修改人(员工id)
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime UpdateDate { get; set; }
}
}
......@@ -39,5 +39,11 @@ namespace Mall.Model.Entity.Reserve
/// 是否可以预定 1是 2否
/// </summary>
public int IsReserve { get; set; }
/// <summary>
/// 预约人数
/// </summary>
public int ReserveNum { get; set; }
}
}
......@@ -224,5 +224,10 @@ namespace Mall.Model.Entity.User
/// 类型
/// </summary>
public Common.Enum.Goods.GoodsPageTypeEnum? UserPageType { get; set; }
/// <summary>
/// 2020-10-28号新增 (微信小程序获取的手机号码)
/// </summary>
public string PhoneNum { get; set; }
}
}
......@@ -2301,7 +2301,7 @@ namespace Mall.Model.Extend.MarketingCenter
/// </summary>
public int listStyle { get; set; }
/// <summary>
/// 背景颜色
......@@ -2422,7 +2422,7 @@ namespace Mall.Model.Extend.MarketingCenter
/// </summary>
public int listStyle { get; set; }
/// <summary>
/// 背景颜色
/// </summary>
......@@ -2466,4 +2466,286 @@ namespace Mall.Model.Extend.MarketingCenter
#endregion
#region 门店
/// <summary>
/// 门店
/// </summary>
public class StoreGoodsItem
{
/// <summary>
/// 显示分类
/// </summary>
public bool showCat { get; set; }
/// <summary>
/// 分类栏位置
/// </summary>
public string catPosition { get; set; }
/// <summary>
/// 分类样式
/// </summary>
public int catStyle { get; set; }
/// <summary>
/// 商品添加方式【0-自动添加,1-手动添加】
/// </summary>
public int addGoodsType { get; set; }
/// <summary>
/// 商品数量
/// </summary>
public int goodsLength { get; set; }
/// <summary>
/// 列表样式[-1-列表模式,0-左右滑动,1-一行一个,2-一行两个3-一行三个 4-教育模式]
/// </summary>
public int listStyle { get; set; }
/// <summary>
/// 商品封面图宽高比例[1-1]
/// </summary>
public string goodsCoverProportion { get; set; }
/// <summary>
/// 商品封面图填充
/// </summary>
public int fill { get; set; }
/// <summary>
/// 商品样式
/// </summary>
public int goodsStyle { get; set; }
/// <summary>
/// 文本样式
/// </summary>
public int textStyle { get; set; }
/// <summary>
/// 显示商品名称
/// </summary>
public bool showGoodsName { get; set; }
/// <summary>
/// 显示商品价格
/// </summary>
public bool showGoodsPrice { get; set; }
/// <summary>
/// 显示购买按钮
/// </summary>
public bool showBuyBtn { get; set; }
/// <summary>
/// 购买按钮样式[cart]
/// </summary>
public string buyBtn { get; set; }
/// <summary>
/// 购买按钮文字样式
/// </summary>
public int buyBtnStyle { get; set; }
/// <summary>
/// 购买按钮文字
/// </summary>
public string buyBtnText { get; set; }
/// <summary>
/// 购买按钮颜色
/// </summary>
public string buttonColor { get; set; }
/// <summary>
/// 显示评分 ld 2020-10-13
/// </summary>
public bool showScore { get; set; }
/// <summary>
/// 评分颜色
/// </summary>
public string scoreColor { get; set; }
/// <summary>
/// 显示商品角标
/// </summary>
public bool showGoodsTag { get; set; }
/// <summary>
/// 商品角标自定义
/// </summary>
public bool customizeGoodsTag { get; set; }
/// <summary>
/// 商品角标链接
/// </summary>
public string goodsTagPicUrl { get; set; }
/// <summary>
/// 是否显示图片背景
/// </summary>
public bool showImg { get; set; }
/// <summary>
/// 背景颜色
/// </summary>
public string backgroundColor { get; set; }
/// <summary>
/// 背景链接
/// </summary>
public string backgroundPicUrl { get; set; }
/// <summary>
///
/// </summary>
public int position { get; set; }
/// <summary>
/// 图片位置
/// </summary>
public int mode { get; set; }
/// <summary>
/// 背景高
/// </summary>
public int backgroundHeight { get; set; }
/// <summary>
/// 背景宽
/// </summary>
public int backgroundWidth { get; set; }
/// <summary>
/// 分类列表
/// </summary>
public List<StoreCatItem> catList { get; set; }
/// <summary>
/// 商品列表
/// </summary>
public List<StoreGoodsDetailsItem2> list { get; set; }
}
/// <summary>
/// 门店商品分类
/// </summary>
public class StoreCatItem
{
/// <summary>
/// 分类编号
/// </summary>
public int id { get; set; }
/// <summary>
/// 商品分类
/// </summary>
public string name { get; set; }
/// <summary>
/// 菜单名称
/// </summary>
public string menuName { get; set; }
/// <summary>
/// 商品数量
/// </summary>
public int goodsNum { get; set; }
/// <summary>
/// 是否显示自定义商品
/// </summary>
public bool staticGoods { get; set; }
/// <summary>
/// 商品列表
/// </summary>
public List<GoodsDetailsItem2> goodsList { get; set; }
}
/// <summary>
/// 门店商品详情项
/// </summary>
public class StoreGoodsDetailsItem2
{
/// <summary>
/// 商品编号
/// </summary>
public int id { get; set; }
/// <summary>
/// 商品名称
/// </summary>
public string name { get; set; }
/// <summary>
/// 商品图片
/// </summary>
public string picUrl { get; set; }
/// <summary>
/// 售价
/// </summary>
public decimal price { get; set; }
/// <summary>
/// 【原价】前端使用
/// </summary>
public decimal OriginalPrice { get; set; }
/// <summary>
/// 课程评分 2020-10-13 ld
/// </summary>
public decimal courseScore { get; set; }
}
/// <summary>
/// 门店
/// </summary>
public class ReserveStoreItem
{
/// <summary>
/// 上边距
/// </summary>
public string PaddingTop { get; set; }
/// <summary>
/// 下边距
/// </summary>
public string PaddingBottom { get; set; }
/// <summary>
/// 左边距
/// </summary>
public string PaddingLeft { get; set; }
/// <summary>
/// 右边距
/// </summary>
public string PaddingRight { get; set; }
/// <summary>
/// 搜索圆角像素
/// </summary>
public int SearchFilletPX
{
get;
set;
}
/// <summary>
/// 是否显示封面图
/// </summary>
public bool IsShowStoreImg { get; set; }
}
#endregion
}
\ No newline at end of file
using Mall.Model.Entity.Reserve;
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Mall.Model.Extend.Reserve
{
/// <summary>
///基础设置扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_Base_Extend : RB_Reserve_Base
{
/// <summary>
/// 订单状态列表
/// </summary>
public List<ReserveStateModel> OrderStateList { get; set; }
public List<BusinessHoursModel> BusinessHoursList { get; set; }
/// <summary>
/// 付款方式
/// </summary>
public List<int> PayTypeList { get; set; }
}
/// <summary>
/// 线下服务行业订单状态
/// </summary>
public class ReserveStateModel
{
/// <summary>
/// id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 状态名称
/// </summary>
public string Name { get; set; }
}
/// <summary>
/// 线下服务行业订单状态
/// </summary>
public class BusinessHoursModel
{
/// <summary>
/// 营业开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 营业结束时间
/// </summary>
public string EndTime { get; set; }
/// <summary>
/// 0-否,1-是
/// </summary>
public int IsNextDay { get; set; }
}
}
......@@ -40,11 +40,18 @@ namespace Mall.Model.Extend.Reserve
/// </summary>
public string StoreName { get; set; }
/// <summary>
/// 日期
/// </summary>
public List<string> TargetDateStrList { get; set; }
/// <summary>
/// 可预约时间
/// </summary>
public List<RB_Reserve_ServiceTargetDate> ServiceTargetDateList { get; set; }
public List<RB_Reserve_ServiceTargetDate_Extend> ServiceTargetDateList { get; set; }
/// <summary>
/// 商品/分类id
/// </summary>
......
......@@ -34,5 +34,7 @@ namespace Mall.Model.Extend.Reserve
/// 结束时间
/// </summary>
public string EndTime { get; set; }
}
}
......@@ -161,11 +161,11 @@ namespace Mall.Module.MarketingCenter
h = h_root,
hotspot = new List<hotspotItem>(),
list = new List<rubikDetailItem>(),
left=jObj.ContainsKey("left")? jObj["left"].ToString():"0",
right = jObj.ContainsKey("right") ? jObj["right"].ToString():"0",
top = jObj.ContainsKey("top") ? jObj["top"].ToString():"0",
bottom = jObj.ContainsKey("bottom") ? jObj["bottom"].ToString():"0",
background= jObj.ContainsKey("background") ? jObj["background"].ToString():"",
left = jObj.ContainsKey("left") ? jObj["left"].ToString() : "0",
right = jObj.ContainsKey("right") ? jObj["right"].ToString() : "0",
top = jObj.ContainsKey("top") ? jObj["top"].ToString() : "0",
bottom = jObj.ContainsKey("bottom") ? jObj["bottom"].ToString() : "0",
background = jObj.ContainsKey("background") ? jObj["background"].ToString() : "",
};
if (!string.IsNullOrWhiteSpace(jObj["hotspot"].ToString()))
......@@ -186,7 +186,7 @@ namespace Mall.Module.MarketingCenter
int zIndex = 0;
if (subItem["zIndex"] != null && !string.IsNullOrWhiteSpace(subItem["zIndex"].ToString()))
{
Int32.TryParse(subItem["zIndex"].ToString(), out zIndex);
Int32.TryParse(subItem["zIndex"].ToString(), out zIndex);
}
var links = new List<rubikLinkItem>();
if (subItem["link"] != null && !string.IsNullOrWhiteSpace(subItem["link"].ToString()))
......@@ -253,7 +253,7 @@ namespace Mall.Module.MarketingCenter
}
catch
{
}
}
try
......@@ -397,12 +397,12 @@ namespace Mall.Module.MarketingCenter
}
}
catch
{
{
}
item.data = shopModel;
break;
//司导插件
//司导插件
case "drive-guide":
driveGuideItem driveModel = new driveGuideItem();
try
......@@ -513,6 +513,29 @@ namespace Mall.Module.MarketingCenter
}
item.data = educationArticleModel;
break;
//商品插件
case "storeGoods": item.data = JsonHelper.DeserializeObject<StoreGoodsItem>(item.data.ToString()); break;
case "reservestore":
ReserveStoreItem storeModel = new ReserveStoreItem();
try
{
var driveData = JsonHelper.DeserializeObject<ReserveStoreItem>(item.data.ToString());
if (driveData != null)
{
storeModel.PaddingTop = driveData?.PaddingTop ?? "0";
storeModel.PaddingBottom = driveData?.PaddingBottom ?? "0";
storeModel.PaddingLeft = driveData?.PaddingLeft ?? "0";
storeModel.PaddingRight = driveData?.PaddingRight ?? "0";
storeModel.SearchFilletPX = driveData?.SearchFilletPX ?? 0;
storeModel.IsShowStoreImg = driveData?.IsShowStoreImg ?? false;
}
}
catch
{
}
item.data = storeModel;
break;
}
}
......
......@@ -3,6 +3,7 @@ using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
using Mall.Repository.Reserve;
using Mall.Repository.User;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -37,6 +38,103 @@ namespace Mall.Module.Reserve
#endregion
#region 基础设置
private readonly RB_Reserve_BaseRepository reserveBaseRepository = new RB_Reserve_BaseRepository();
#endregion
#region 基础配置
/// <summary>
/// 获取基础配置
/// </summary>
/// <param name="tenantId"></param>
/// <param name="mallBaseId"></param>
/// <returns></returns>
public RB_Reserve_Base_Extend GetReserveBaseInfo(int tenantId, int mallBaseId)
{
var model = reserveBaseRepository.GetList(new RB_Reserve_Base_Extend() { TenantId = tenantId, MallBaseId = mallBaseId }).FirstOrDefault();
if (model == null)
{
model = new RB_Reserve_Base_Extend()
{
MallBaseId = mallBaseId,
AdvanceMinute = 30,
Id = 0,
TenantId = tenantId,
};
}
if (model.OrderStateJson == null || model.OrderStateJson == "" || model.OrderStateJson == "[]")
{
var list = EnumHelper.GetEnumList(typeof(Common.Enum.Goods.OrderStatusEnum));
model.OrderStateList = list.OrderBy(x => Convert.ToInt32(x.Value)).Select(x => new ReserveStateModel
{
Name = x.Key,
Id = Convert.ToInt32(x.Value)
}).ToList();
}
else
{
model.OrderStateList = JsonConvert.DeserializeObject<List<ReserveStateModel>>(model.OrderStateJson);
}
if (!string.IsNullOrWhiteSpace(model.BusinessHoursJson))
{
try
{
model.BusinessHoursList = JsonConvert.DeserializeObject<List<BusinessHoursModel>>(model.BusinessHoursJson);
}
catch (Exception)
{
model.BusinessHoursList = new List<BusinessHoursModel>();
}
}
else
{
model.BusinessHoursList = new List<BusinessHoursModel>();
}
if (!string.IsNullOrWhiteSpace(model.PayTypeJson))
{
try
{
model.PayTypeList = JsonConvert.DeserializeObject<List<int>>(model.PayTypeJson);
}
catch (Exception)
{
model.PayTypeList = new List<int>();
}
}
else
{
model.PayTypeList = new List<int>();
}
return model;
}
/// <summary>
/// 保存
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public bool SetReserveBaseInfo(RB_Reserve_Base_Extend demodel)
{
var model = reserveBaseRepository.GetList(new RB_Reserve_Base_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }).FirstOrDefault();
if (model == null)
{
return reserveBaseRepository.Insert(demodel) > 0;
}
else
{
model.UpdateBy = demodel.UpdateBy;
model.AdvanceMinute = demodel.AdvanceMinute;
model.OrderStateJson = demodel.OrderStateJson;
model.BusinessHoursJson = demodel.BusinessHoursJson;
model.PayTypeJson = demodel.PayTypeJson;
model.OrderStateJson = demodel.OrderStateJson;
model.UpdateDate = demodel.UpdateDate;
return reserveBaseRepository.Update(model);
}
}
#endregion
#region 服务人员信息
/// <summary>
......@@ -205,8 +303,86 @@ namespace Mall.Module.Reserve
/// <summary>
/// 获取服务人员的工作时间
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_ServiceTargetDate_Extend> GetServiceTargetDateList(RB_Reserve_ServiceTargetDate_Extend dmodel)
{
return serviceTargetDateRepository.GetList(dmodel);
}
/// <summary>
/// 服务人员的排班
/// </summary>
/// <param name="serviceId"></param>
/// <param name="list"></param>
/// <returns></returns>
public bool AddOrUpdateServiceTargetDate(int serviceId, List<RB_Reserve_ServiceTargetDate_Extend> list)
{
try
{
#region 修改可预定日期
var tdlist = serviceTargetDateRepository.GetList(new RB_Reserve_ServiceTargetDate_Extend() { ServiceId = serviceId });
var tdinsertList = list.Where(x => !tdlist.Select(y => y.Date).Contains(x.Date)).ToList();
var tddeleteList = tdlist.Where(x => !list.Select(y => y.Date).Contains(x.Date)).ToList();
foreach (var item in tdinsertList)
{
serviceTargetDateRepository.Insert(new RB_Reserve_ServiceTargetDate()
{
Id = 0,
ServiceId = serviceId,
Date = item.Date,
IsReserve = 1,
ReserveNum = 0
});
}
if (tdlist != null && tdlist.Any())
{
foreach (var item in tddeleteList)
{
serviceTargetDateRepository.Delete(item);
}
}
return true;
#endregion
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// 验证可预定日期是否可以修改
/// </summary>
/// <param name="goodsIs"></param>
/// <param name="tdlist"></param>
/// <returns></returns>
public string ValidateServiceTargetDate(int serviceId, List<RB_Reserve_ServiceTargetDate_Extend> tdlist)
{
var oldtdlist = serviceTargetDateRepository.GetList(new RB_Reserve_ServiceTargetDate_Extend() { ServiceId = serviceId });
var tddeleteList = oldtdlist.Where(x => !tdlist.Select(y => y.Date).Contains(x.Date)).ToList();
string msg = "";
foreach (var item in tddeleteList)
{
//看是否有不可预约的 / 有预定人数的
if (item.IsReserve == 2 || item.ReserveNum > 0)
{
msg += item.Date.Value.ToString("yyyy-MM-dd") + ",";
}
}
if (msg != "")
{
msg = msg[..1];
msg += " 已有订单预定,无法修改当前日期";
}
return msg;
}
#endregion
......
......@@ -29,5 +29,16 @@ namespace Mall.Module.User
};
return member_UserRepository.Update(fileds, new WhereHelper(nameof(RB_Member_User_Extend.Id), extModel.Id));
}
public bool SetMemberUserPhoneNum(RB_Member_User_Extend extModel)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Member_User_Extend.PhoneNum),extModel.PhoneNum},
};
return member_UserRepository.Update(fileds, new WhereHelper(nameof(RB_Member_User_Extend.Id), extModel.Id));
}
}
}
using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_BaseRepository : BaseRepository<RB_Reserve_Base>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Base_Extend> GetList(RB_Reserve_Base_Extend dmodel)
{
string where = $" 1=1 ";
if (dmodel.TenantId > 0)
{
where += $@" and {nameof(RB_Reserve_Base.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and {nameof(RB_Reserve_Base.MallBaseId)}={dmodel.MallBaseId}";
}
string sql = $@"
select * from RB_Reserve_Base where {where}
";
return Get<RB_Reserve_Base_Extend>(sql).ToList();
}
}
}
This diff is collapsed.
......@@ -531,6 +531,17 @@ namespace Mall.WebApi.Controllers.MarketingCenter
}
item.data = noticeData;
break;
//商品插件
case "storeGoods":
var storeGoodData = Common.Plugin.JsonHelper.DeserializeObject<StoreGoodsItem>(item.data.ToString());
if (!string.IsNullOrWhiteSpace(storeGoodData.goodsTagPicUrl))
{
Common.Plugin.FileHelper.CreateImage(storeGoodData.goodsTagPicUrl);
storeGoodData.goodsTagPicUrl = Common.Plugin.FileHelper.GetFileUrl(storeGoodData.goodsTagPicUrl);
storeGoodData.goodsTagPicUrl = Common.Config.GetFileUrl(storeGoodData.goodsTagPicUrl);
}
item.data = storeGoodData;
break;
}
}
}
......
......@@ -5,6 +5,7 @@ using System.Threading.Tasks;
using Mall.Common.API;
using Mall.Common.Enum.Reserve;
using Mall.Common.Plugin;
using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
using Mall.Model.Extend.User;
using Mall.Module.Reserve;
......@@ -26,6 +27,66 @@ namespace Mall.WebApi.Controllers.Reserve
private readonly ReserveModule reserveModule = new ReserveModule();
private Module.User.UserModule UserModule = new Module.User.UserModule();
#region 基础配置
/// <summary>
/// 获取线下服务行业基础配置
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetReserveBaseInfo()
{
var req = RequestParm;
var model = reserveModule.GetReserveBaseInfo(req.TenantId, req.MallBaseId);
return ApiResult.Success("", model);
}
/// <summary>
/// 保存线下服务行业基础配置
/// </summary>
/// <returns></returns>
public ApiResult SetReserveBaseInfo()
{
var req = RequestParm;
RB_Reserve_Base_Extend demodel = JsonConvert.DeserializeObject<RB_Reserve_Base_Extend>(req.msg.ToString());
demodel.OrderStateJson = "";
if (demodel.OrderStateList != null && demodel.OrderStateList.Any())
{
demodel.OrderStateJson = JsonConvert.SerializeObject(demodel.OrderStateList);
}
demodel.BusinessHoursJson = "";
if (demodel.BusinessHoursList != null && demodel.BusinessHoursList.Any())
{
demodel.BusinessHoursJson = JsonConvert.SerializeObject(demodel.BusinessHoursList);
}
if (demodel.PayTypeList==null||!demodel.PayTypeList.Any())
{
return ApiResult.Failed("请选择付款方式");
}
demodel.PayTypeJson = "";
if (demodel.PayTypeList != null && demodel.PayTypeList.Any())
{
demodel.PayTypeJson = JsonConvert.SerializeObject(demodel.PayTypeList);
}
demodel.TenantId = req.TenantId;
demodel.MallBaseId = req.MallBaseId;
demodel.UpdateBy = req.EmpId;
demodel.CreateDate = DateTime.Now;
demodel.UpdateDate = DateTime.Now;
bool flag = reserveModule.SetReserveBaseInfo(demodel);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
#endregion
#region 服务人员
/// <summary>
/// 获取服务人员列表
......@@ -218,10 +279,93 @@ namespace Mall.WebApi.Controllers.Reserve
Id = Convert.ToInt32(x.Value)
}));
}
#region 服务人员的排班计划
/// <summary>
/// 获取全部服务人员
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetServiceTargetDateList()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_ServiceTargetDate_Extend>(RequestParm.msg.ToString());
var list = reserveModule.GetServiceTargetDateList(query);
List<string> result = new List<string>();
foreach (var item in list)
{
if (item.Date.HasValue)
{
result.Add(item.Date.Value.ToString("yyyy-MM-dd"));
}
}
return ApiResult.Success("", result);
}
/// <summary>
/// 保存服务人员信息
/// </summary>
/// <returns></returns>
public ApiResult AddOrUpdateServiceTargetDate()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_ServicePersonal_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入服务人员信息");
}
else
{
if (query.TargetDateStrList == null || !query.TargetDateStrList.Any())
{
return ApiResult.Failed("请传入服务人员排班信息");
}
if (query.TargetDateStrList != null && query.TargetDateStrList.Any())
{
if (query.TargetDateStrList.Count() != query.TargetDateStrList.Distinct().Count())
{
return ApiResult.ParamIsNull("可预定日期有重复");
}
query.ServiceTargetDateList = new List<RB_Reserve_ServiceTargetDate_Extend>();
foreach (var item in query.TargetDateStrList)
{
query.ServiceTargetDateList.Add(new RB_Reserve_ServiceTargetDate_Extend()
{
Date = Convert.ToDateTime(item)
});
}
}
string vmsg = reserveModule.ValidateServiceTargetDate(query.ID, query.ServiceTargetDateList);
if (vmsg != "")
{
return ApiResult.Failed(vmsg);
}
bool result = reserveModule.AddOrUpdateServiceTargetDate(query.ID, query.ServiceTargetDateList);
if (result)
{
return ApiResult.Success("服务人员信息保存成功");
}
else
{
return ApiResult.Failed("服务人员信息保存失败");
}
}
}
#endregion
#endregion
#region 套餐卡
......
......@@ -326,5 +326,79 @@ namespace Mall.WebApi.Controllers.User
}
#endregion
#region 小程序获取手机号码
/// <summary>
/// 获取手机号码
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public ApiResult GetGuestWeiXinMobile(object requestMsg)
{
var requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
JObject parms = JObject.Parse(requestParm.msg.ToString());
string code = parms.GetStringValue("code");
string encryptedData = parms.GetStringValue("encryptedData");
string iv = parms.GetStringValue("iv");
if (requestParm.TenantId <= 0)
{
return ApiResult.ParamIsNull("请传递商户号");
}
if (requestParm.MallBaseId <= 0)
{
return ApiResult.ParamIsNull("请传递小程序id");
}
var appletWeChatModel = programModule.GetMiniProgramModule(new RB_MiniProgram_Extend() { MallBaseId = requestParm.MallBaseId });
if (appletWeChatModel == null)
{
return ApiResult.ParamIsNull("小程序不存在");
}
if (appletWeChatModel.TenantId != requestParm.TenantId)
{
return ApiResult.ParamIsNull("商户号错误");
}
string Appid = appletWeChatModel.MiniAppId;
var Secret = appletWeChatModel.MiniAppSecret;
string grant_type = "authorization_code";
//向微信服务端 使用登录凭证 code 获取 session_key 和 openid
string url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + Appid + "&secret=" + Secret + "&js_code=" + code + "&grant_type=" + grant_type;
string type = "utf-8";
GetUsersHelper GetUsersHelper = new GetUsersHelper();
JObject jo = null;
string _telPhone = "";
try
{
string j = GetUsersHelper.GetUrltoHtml(url, type);//获取微信服务器返回字符串
//将字符串转换为json格式
jo = (JObject)JsonConvert.DeserializeObject(j);
Common.Plugin.result res = new Common.Plugin.result
{
//微信服务器验证成功
openid = jo["openid"].ToString(),
session_key = jo["session_key"].ToString()
};
if (!string.IsNullOrWhiteSpace(jo["openid"].ToString()))
{
if (!String.IsNullOrEmpty(encryptedData) && !string.IsNullOrEmpty(iv))
{
//解析手机号码
_telPhone = Common.EncryptionHelper.AES_decrypt(encryptedData, jo["session_key"].ToString(), iv);
}
}
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, string.Format("GetGuestWeiXinMobile:msg:{0},request:{1},URL:{2}", Common.Plugin.JsonHelper.Serialize(jo), requestMsg.ToString(), url));
return ApiResult.Failed("获取失败");
}
return ApiResult.Success("", _telPhone);
}
#endregion
}
}
\ No newline at end of file
......@@ -32,5 +32,17 @@ namespace Mall.WebApi.Controllers.User
var flag = MemberUserModule.SetMemberUserNameAndPhoto(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 更改用户的手机号码 add by:W 2020-10-28
/// </summary>
/// <returns></returns>
public ApiResult SetMemberUserPhoneNum()
{
var extModel = JsonConvert.DeserializeObject<RB_Member_User_Extend>(RequestParm.msg.ToString());
var flag = MemberUserModule.SetMemberUserPhoneNum(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment