Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mall.oytour.com
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
mall.oytour.com
Commits
3b26418c
Commit
3b26418c
authored
Oct 28, 2020
by
吴春
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交代码
parent
ab943911
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
318 additions
and
1 deletion
+318
-1
EncryptionHelper.cs
Mall.Common/Encrypt/EncryptionHelper.cs
+36
-0
RB_Reserve_ServiceTargetDate.cs
Mall.Model/Entity/Reserve/RB_Reserve_ServiceTargetDate.cs
+6
-0
RB_Member_User.cs
Mall.Model/Entity/User/RB_Member_User.cs
+5
-0
RB_Reserve_ServicePersonal_Extend.cs
...Model/Extend/Reserve/RB_Reserve_ServicePersonal_Extend.cs
+8
-1
RB_Reserve_ServiceTargetDate_Extend.cs
...del/Extend/Reserve/RB_Reserve_ServiceTargetDate_Extend.cs
+2
-0
ReserveModule.cs
Mall.Module.Reserve/ReserveModule.cs
+78
-0
MemberUserModule.cs
Mall.Module.User/MemberUserModule.cs
+11
-0
ReserveController.cs
Mall.WebApi/Controllers/Reserve/ReserveController.cs
+86
-0
AppletLoginController.cs
Mall.WebApi/Controllers/User/AppletLoginController.cs
+74
-0
MemberUserController.cs
Mall.WebApi/Controllers/User/MemberUserController.cs
+12
-0
No files found.
Mall.Common/Encrypt/EncryptionHelper.cs
View file @
3b26418c
...
...
@@ -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
Mall.Model/Entity/Reserve/RB_Reserve_ServiceTargetDate.cs
View file @
3b26418c
...
...
@@ -39,5 +39,11 @@ namespace Mall.Model.Entity.Reserve
/// 是否可以预定 1是 2否
/// </summary>
public
int
IsReserve
{
get
;
set
;
}
/// <summary>
/// 预约人数
/// </summary>
public
int
ReserveNum
{
get
;
set
;
}
}
}
Mall.Model/Entity/User/RB_Member_User.cs
View file @
3b26418c
...
...
@@ -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
;
}
}
}
Mall.Model/Extend/Reserve/RB_Reserve_ServicePersonal_Extend.cs
View file @
3b26418c
...
...
@@ -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>
...
...
Mall.Model/Extend/Reserve/RB_Reserve_ServiceTargetDate_Extend.cs
View file @
3b26418c
...
...
@@ -34,5 +34,7 @@ namespace Mall.Model.Extend.Reserve
/// 结束时间
/// </summary>
public
string
EndTime
{
get
;
set
;
}
}
}
Mall.Module.Reserve/ReserveModule.cs
View file @
3b26418c
...
...
@@ -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
...
...
Mall.Module.User/MemberUserModule.cs
View file @
3b26418c
...
...
@@ -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
));
}
}
}
Mall.WebApi/Controllers/Reserve/ReserveController.cs
View file @
3b26418c
...
...
@@ -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
...
...
Mall.WebApi/Controllers/User/AppletLoginController.cs
View file @
3b26418c
...
...
@@ -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
Mall.WebApi/Controllers/User/MemberUserController.cs
View file @
3b26418c
...
...
@@ -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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment