Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
starsw001
ShopXO
提交
6a461c54
ShopXO
项目概览
starsw001
/
ShopXO
与 Fork 源项目一致
Fork自
纵之格 / ShopXO
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6a461c54
编写于
12月 27, 2018
作者:
D
devil_gong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
支付宝小程序用户绑定
上级
f69c77c9
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
407 addition
and
21 deletion
+407
-21
application/api/controller/Common.php
application/api/controller/Common.php
+6
-6
application/api/controller/User.php
application/api/controller/User.php
+174
-0
application/service/UserService.php
application/service/UserService.php
+210
-4
public/appmini/old/alipay/app.js
public/appmini/old/alipay/app.js
+1
-4
public/appmini/old/alipay/pages/goods-detail/goods-detail.js
public/appmini/old/alipay/pages/goods-detail/goods-detail.js
+10
-1
public/appmini/old/alipay/pages/login/login.acss
public/appmini/old/alipay/pages/login/login.acss
+4
-4
public/appmini/old/alipay/pages/login/login.js
public/appmini/old/alipay/pages/login/login.js
+2
-2
未找到文件。
application/api/controller/Common.php
浏览文件 @
6a461c54
...
...
@@ -44,6 +44,11 @@ class Common extends Controller
exit
(
json_encode
(
DataReturn
(
'非法访问'
,
-
500
)));
}
// 输入参数
$this
->
data_post
=
input
(
'post.'
);
$this
->
data_get
=
input
(
'get.'
);
$this
->
data_request
=
input
();
// 系统初始化
$this
->
SystemInit
();
...
...
@@ -52,11 +57,6 @@ class Common extends Controller
// 公共数据初始化
$this
->
CommonInit
();
// 输入参数
$this
->
data_post
=
input
(
'post.'
);
$this
->
data_get
=
input
(
'get.'
);
$this
->
data_request
=
input
();
}
/**
...
...
@@ -118,7 +118,7 @@ class Common extends Controller
// 用户数据
if
(
!
empty
(
$this
->
data_request
[
'user_id'
]))
{
$this
->
user
=
UserService
::
UserLoginRecord
(
$this
->
data_request
[
'user_id'
]);
$this
->
user
=
UserService
::
UserLoginRecord
(
$this
->
data_request
[
'user_id'
]
,
true
);
}
}
...
...
application/api/controller/User.php
0 → 100644
浏览文件 @
6a461c54
<?php
namespace
app\api\controller
;
use
app\service\UserService
;
use
app\service\OrderService
;
use
app\service\GoodsService
;
use
app\service\MessageService
;
/**
* 首页
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class
User
extends
Common
{
/**
* [__construct 构造方法]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-03T12:39:08+0800
*/
public
function
__construct
()
{
// 调用父类前置方法
parent
::
__construct
();
}
/**
* [Reg 用户注册-数据添加]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-03-07T00:08:36+0800
*/
public
function
Reg
()
{
// 是否ajax请求
if
(
!
IS_AJAX
)
{
return
$this
->
error
(
'非法访问'
);
}
// 调用服务层
$ret
=
UserService
::
AppReg
(
input
(
'post.'
));
return
json
(
$ret
);
}
/**
* [RegVerifySend 用户注册-验证码发送]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-03-05T19:17:10+0800
*/
public
function
RegVerifySend
()
{
// 是否ajax请求
if
(
!
IS_AJAX
)
{
return
$this
->
error
(
'非法访问'
);
}
// 调用服务层
$ret
=
UserService
::
AppUserBindVerifySend
(
input
(
'post.'
));
return
json
(
$ret
);
}
/**
* [GetAlipayUserInfo 获取支付宝用户信息]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2017-09-23T21:52:49+0800
*/
public
function
AlipayUserAuth
()
{
// 参数
if
(
empty
(
$this
->
data_post
[
'authcode'
]))
{
return
json
(
DataReturn
(
'授权码不能为空'
,
-
1
));
}
// 授权
$result
=
(
new
\
base\AlipayAuth
())
->
GetAlipayUserInfo
(
$this
->
data_post
[
'authcode'
],
MyC
(
'common_app_mini_alipay_appid'
));
if
(
$result
===
false
)
{
return
json
(
DataReturn
(
'获取授权信息失败'
,
-
10
));
}
else
{
$result
[
'openid'
]
=
$result
[
'user_id'
];
$result
[
'referrer'
]
=
isset
(
$this
->
data_post
[
'referrer'
])
?
intval
(
$this
->
data_post
[
'referrer'
])
:
0
;
$ret
=
UserService
::
AuthUserProgram
(
$result
,
'alipay_openid'
);
return
json
(
$ret
);
}
}
/**
* 百度小程序获取用户信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-11-06
* @desc description
*/
public
function
BaiduUserAuth
()
{
return
json
(
DataReturn
(
'暂未开放'
,
-
1
));
$_POST
[
'config'
]
=
MyC
(
'baidu_mini_program_config'
);
$result
=
(
new
\
Library\BaiduAuth
())
->
GetAuthUserInfo
(
$_POST
);
if
(
$result
[
'status'
]
==
0
)
{
$ret
=
UserService
::
AuthUserProgram
(
$result
,
'alipay_openid'
);
return
json
(
$ret
);
}
else
{
return
json
(
DataReturn
(
$result
[
'msg'
],
-
10
));
}
}
/**
* [ClientCenter 用户中心]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-05-21T15:21:52+0800
*/
public
function
Center
()
{
// 登录校验
$this
->
Is_Login
();
// 订单总数
$where
=
[
'user_id'
=>
$this
->
user
[
'id'
],
'is_delete_time'
=>
0
,
'user_is_delete_time'
=>
0
];
$user_order_count
=
OrderService
::
OrderTotal
(
$where
);
// 商品收藏总数
$where
=
[
'user_id'
=>
$this
->
user
[
'id'
]];
$user_goods_favor_count
=
GoodsService
::
GoodsFavorTotal
(
$where
);
// 商品浏览总数
$where
=
[
'user_id'
=>
$this
->
user
[
'id'
]];
$user_goods_browse_count
=
GoodsService
::
GoodsBrowseTotal
(
$where
);
// 未读消息总数
$params
=
[
'user'
=>
$this
->
user
,
'is_more'
=>
1
,
'is_read'
=>
0
];
$common_message_total
=
MessageService
::
UserMessageTotal
(
$params
);
$common_message_total
=
(
$common_message_total
>
99
)
?
'99+'
:
$common_message_total
;
// 用户订单状态
$user_order_status
=
OrderService
::
OrderStatusStepTotal
([
'user_type'
=>
'user'
,
'user'
=>
$this
->
user
,
'is_comments'
=>
1
]);
// 初始化数据
$result
=
array
(
'integral'
=>
(
int
)
$this
->
user
[
'integral'
],
'avatar'
=>
$this
->
user
[
'avatar'
],
'nickname'
=>
$this
->
user
[
'nickname'
],
'username'
=>
$this
->
user
[
'username'
],
'customer_service_tel'
=>
MyC
(
'common_app_customer_service_tel'
,
null
,
true
),
'common_user_center_notice'
=>
MyC
(
'common_user_center_notice'
,
null
,
true
),
'user_order_status'
=>
$user_order_status
[
'data'
],
'user_order_count'
=>
$user_order_count
,
'user_goods_favor_count'
=>
$user_goods_favor_count
,
'user_goods_browse_count'
=>
$user_goods_browse_count
,
'common_message_total'
=>
$common_message_total
,
'common_app_is_enable_answer'
=>
(
int
)
MyC
(
'common_app_is_enable_answer'
,
0
),
);
// 返回数据
return
json
(
DataReturn
(
'success'
,
0
,
$result
));
}
}
?>
\ No newline at end of file
application/service/UserService.php
浏览文件 @
6a461c54
...
...
@@ -602,9 +602,10 @@ class UserService
* @version 0.0.1
* @datetime 2017-03-09T11:37:43+0800
* @param [int] $user_id [用户id]
* @param [boolean] $is_app [是否为app]
* @return [boolean] [记录成功true, 失败false]
*/
public
static
function
UserLoginRecord
(
$user_id
=
0
)
public
static
function
UserLoginRecord
(
$user_id
=
0
,
$is_app
=
false
)
{
if
(
!
empty
(
$user_id
))
{
...
...
@@ -645,9 +646,14 @@ class UserService
$user
[
'avatar'
]
=
config
(
'images_host'
)
.
'/static/index/'
.
strtolower
(
config
(
'DEFAULT_THEME'
,
'default'
))
.
'/images/default-user-avatar.jpg'
;
}
// 存储session
session
(
'user'
,
$user
);
return
(
session
(
'user'
)
!==
null
);
if
(
$is_app
==
true
)
{
return
$user
;
}
else
{
// 存储session
session
(
'user'
,
$user
);
return
(
session
(
'user'
)
!==
null
);
}
}
}
return
false
;
...
...
@@ -1343,5 +1349,205 @@ class UserService
return
DataReturn
(
'编辑失败或数据未改变'
,
-
100
);
}
/**
* 用户授权数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-11-06
* @desc description
* @param [array] $params [用户数据]
* @param [string] $field [平台字段名称]
*/
public
static
function
AuthUserProgram
(
$params
,
$field
)
{
$data
=
[
$field
=>
$params
[
'openid'
],
'nickname'
=>
empty
(
$params
[
'nick_name'
])
?
''
:
$params
[
'nick_name'
],
'avatar'
=>
empty
(
$params
[
'avatar'
])
?
''
:
$params
[
'avatar'
],
'gender'
=>
empty
(
$params
[
'gender'
])
?
0
:
(
$params
[
'gender'
]
==
'm'
)
?
2
:
1
,
'province'
=>
empty
(
$params
[
'province'
])
?
''
:
$params
[
'province'
],
'city'
=>
empty
(
$params
[
'city'
])
?
''
:
$params
[
'city'
],
'referrer'
=>
isset
(
$params
[
'referrer'
])
?
intval
(
$params
[
'referrer'
])
:
0
,
];
$where
=
[
$field
=>
$params
[
'openid'
],
'is_delete_time'
=>
0
];
$user
=
Db
::
name
(
'User'
)
->
where
(
$where
)
->
find
();
if
(
!
empty
(
$user
))
{
$data
=
$user
;
}
// 返回成功
return
DataReturn
(
'授权成功'
,
0
,
$data
);
}
/**
* app用户注册
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-27
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
AppReg
(
$params
=
[])
{
// 数据验证
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'mobile'
,
'error_msg'
=>
'手机号码不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'app_type'
,
'error_msg'
=>
'终端用户类型不能为空'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 手机号码格式
if
(
!
CheckMobile
(
$params
[
'mobile'
]))
{
return
DataReturn
(
'手机号码格式错误'
,
-
2
);
}
// 验证码校验
$verify_param
=
array
(
'key_prefix'
=>
'bind'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
)
);
$obj
=
new
\
base\Sms
(
$verify_param
);
// 是否已过期
if
(
!
$obj
->
CheckExpire
())
{
return
DataReturn
(
'验证码已过期'
,
-
10
);
}
// 是否正确
if
(
!
$obj
->
CheckCorrect
(
$params
[
'verify'
]))
{
return
DataReturn
(
'验证码错误'
,
-
11
);
}
// 用户信息
$accounts_field
=
$params
[
'app_type'
]
.
'_openid'
;
if
(
empty
(
$params
[
$accounts_field
]))
{
return
DataReturn
(
'用户openid不能为空'
,
-
20
);
}
$data
=
array
(
$accounts_field
=>
$params
[
$accounts_field
],
'mobile'
=>
$params
[
'mobile'
],
);
// 获取用户信息
$where
=
[
'mobile'
=>
$data
[
'mobile'
],
'is_delete_time'
=>
0
];
$temp_user
=
Db
::
name
(
'User'
)
->
where
(
$where
)
->
find
();
// 额外信息
if
(
empty
(
$temp_user
[
'nickname'
])
&&
!
empty
(
$params
[
'nickname'
]))
{
$data
[
'nickname'
]
=
$params
[
'nickname'
];
}
if
(
empty
(
$temp_user
[
'avatar'
])
&&
!
empty
(
$params
[
'avatar'
]))
{
$data
[
'avatar'
]
=
$params
[
'avatar'
];
}
if
(
empty
(
$temp_user
[
'province'
])
&&
!
empty
(
$params
[
'province'
]))
{
$data
[
'province'
]
=
$params
[
'province'
];
}
if
(
empty
(
$temp_user
[
'city'
])
&&
!
empty
(
$params
[
'city'
]))
{
$data
[
'city'
]
=
$params
[
'city'
];
}
if
(
empty
(
$temp_user
)
&&
isset
(
$params
[
'gender'
]))
{
$data
[
'gender'
]
=
intval
(
$params
[
'gender'
]);
}
// 不存在添加/则更新
if
(
empty
(
$temp_user
))
{
$data
[
'referrer'
]
=
isset
(
$params
[
'referrer'
])
?
intval
(
$params
[
'referrer'
])
:
0
;
$data
[
'add_time'
]
=
time
();
$user_id
=
Db
::
name
(
'User'
)
->
insertGetId
(
$data
);
}
else
{
$data
[
'upd_time'
]
=
time
();
if
(
Db
::
name
(
'User'
)
->
where
(
$where
)
->
update
(
$data
))
{
$user_id
=
$temp_user
[
'id'
];
}
}
if
(
isset
(
$user_id
)
&&
$user_id
>
0
)
{
// 清除验证码
$obj
->
Remove
();
return
DataReturn
(
'绑定成功'
,
0
,
self
::
UserLoginRecord
(
$user_id
,
true
));
}
else
{
return
DataReturn
(
'绑定失败'
,
-
100
);
}
}
/**
* app用户绑定验证码发送
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-27
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
AppUserBindVerifySend
(
$params
=
[])
{
// 数据验证
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'mobile'
,
'error_msg'
=>
'手机号码不能为空'
,
],
[
'checked_type'
=>
'fun'
,
'key_name'
=>
'mobile'
,
'checked_data'
=>
'CheckMobile'
,
'error_msg'
=>
'手机号码格式错误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 验证码公共基础参数
$verify_param
=
array
(
'key_prefix'
=>
'bind'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
);
// 发送验证码
$obj
=
new
\
base\Sms
(
$verify_param
);
$code
=
GetNumberCode
(
6
);
$status
=
$obj
->
SendCode
(
$params
[
'mobile'
],
$code
,
MyC
(
'home_sms_user_mobile_binding'
));
// 状态
if
(
$status
)
{
return
DataReturn
(
'发送成功'
,
0
);
}
else
{
return
DataReturn
(
'发送失败'
.
'['
.
$obj
->
error
.
']'
,
-
100
);
}
}
}
?>
\ No newline at end of file
public/appmini/old/alipay/app.js
浏览文件 @
6a461c54
...
...
@@ -164,7 +164,6 @@ App({
var
user
=
this
.
GetUserCacheInfo
();
var
app_client_user_id
=
user
==
false
?
""
:
user
.
alipay_openid
;
var
user_id
=
user
==
false
?
0
:
user
.
id
;
var
nickname
=
user
==
false
?
""
:
user
.
nickname
;
return
(
this
.
data
.
request_url
+
"
/
"
+
m
+
"
/
"
+
c
+
"
/
"
+
a
+
...
...
@@ -172,8 +171,6 @@ App({
app_client_user_id
+
"
&user_id=
"
+
user_id
+
"
&nickname=
"
+
nickname
+
"
&ajax=ajax
"
+
params
);
...
...
@@ -227,7 +224,7 @@ App({
success
:
res
=>
{
if
(
res
.
authCode
)
{
my
.
httpRequest
({
url
:
this
.
get_request_url
(
"
GetAlipayUserInfo
"
,
"
U
ser
"
),
url
:
this
.
get_request_url
(
"
alipayuserauth
"
,
"
u
ser
"
),
method
:
"
POST
"
,
data
:
{
authcode
:
res
.
authCode
,
...
...
public/appmini/old/alipay/pages/goods-detail/goods-detail.js
浏览文件 @
6a461c54
...
...
@@ -460,6 +460,11 @@ Page({
}
if
(
spec
.
length
<=
0
||
active_count
<
sku_count
)
{
this
.
setData
({
goods_spec_base_price
:
this
.
data
.
goods
.
price
,
goods_spec_base_original_price
:
this
.
data
.
goods
.
original_price
,
goods_spec_base_inventory
:
this
.
data
.
goods
.
inventory
,
});
return
false
;
}
...
...
@@ -471,7 +476,11 @@ Page({
dataType
:
'
json
'
,
success
:
(
res
)
=>
{
if
(
res
.
data
.
code
==
0
)
{
this
.
setData
({
goods_spec_base_price
:
res
.
data
.
data
.
price
,
goods_spec_base_original_price
:
res
.
data
.
data
.
original_price
,
goods_spec_base_inventory
:
res
.
data
.
data
.
inventory
,
});
}
else
{
my
.
showToast
({
type
:
'
fail
'
,
...
...
public/appmini/old/alipay/pages/login/login.acss
浏览文件 @
6a461c54
...
...
@@ -12,7 +12,7 @@ page{
.content .mobile{
width: 100%;
margin: 20rpx 0;
border-bottom: solid 1
rpx #a6a6a6
;
border-bottom: solid 1
px #eee
;
}
.content input{
font-size: 28rpx;
...
...
@@ -22,13 +22,13 @@ page{
}
.content .code{
margin: 20rpx 0;
border-bottom: solid 1
rpx #a6a6a6
;
border-bottom: solid 1
px #eee
;
}
.content .code .verify{
width: 63%;
}
.content .code .verify-sub{
border: solid 1
r
px #ff6482;
border: solid 1px #ff6482;
color: #ff6482;
width: 35%;
height: 35px;
...
...
@@ -36,7 +36,7 @@ page{
border-radius: 10rpx;
}
.content .code .verify-sub.sub-disabled{
border: solid 1
rpx #a6a6a6
;
border: solid 1
px #eee
;
color: #a6a6a6
}
.content .submit{
...
...
public/appmini/old/alipay/pages/login/login.js
浏览文件 @
6a461c54
...
...
@@ -46,7 +46,7 @@ Page({
this
.
setData
({
verify_submit_text
:
'
发送中
'
,
verify_loading
:
true
,
verify_disabled
:
true
});
my
.
httpRequest
({
url
:
app
.
get_request_url
(
'
RegVerifySend
'
,
'
U
ser
'
),
url
:
app
.
get_request_url
(
'
regverifysend
'
,
'
u
ser
'
),
method
:
'
POST
'
,
data
:
{
mobile
:
this
.
data
.
mobile
},
dataType
:
'
json
'
,
...
...
@@ -115,7 +115,7 @@ Page({
// 网络请求
my
.
httpRequest
({
url
:
app
.
get_request_url
(
'
Reg
'
,
'
U
ser
'
),
url
:
app
.
get_request_url
(
'
reg
'
,
'
u
ser
'
),
method
:
'
POST
'
,
data
:
e
.
detail
.
value
,
dataType
:
'
json
'
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录