Commit 3b26418c authored by 吴春's avatar 吴春

提交代码

parent ab943911
......@@ -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
......@@ -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; }
}
}
......@@ -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; }
}
}
......@@ -205,8 +205,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));
}
}
}
......@@ -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;
......@@ -218,6 +219,91 @@ 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
......
......@@ -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