Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jcy2004x
ShopXO
提交
54764fe7
ShopXO
项目概览
jcy2004x
/
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(gitcode.net)2024年7月9日维护升级公告
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
54764fe7
编写于
9月 21, 2020
作者:
D
devil
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
用户地址数据服务层分离,新增百度小程序地址导入
上级
0f1ed149
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
718 addition
and
380 deletion
+718
-380
application/api/controller/Useraddress.php
application/api/controller/Useraddress.php
+20
-6
application/index/controller/Buy.php
application/index/controller/Buy.php
+2
-1
application/index/controller/Useraddress.php
application/index/controller/Useraddress.php
+6
-6
application/service/BuyService.php
application/service/BuyService.php
+2
-1
application/service/GoodsService.php
application/service/GoodsService.php
+34
-4
application/service/UserAddressService.php
application/service/UserAddressService.php
+590
-0
application/service/UserService.php
application/service/UserService.php
+0
-350
sourcecode/alipay/app.js
sourcecode/alipay/app.js
+1
-1
sourcecode/baidu/app.js
sourcecode/baidu/app.js
+1
-1
sourcecode/baidu/pages/user-address/user-address.css
sourcecode/baidu/pages/user-address/user-address.css
+8
-0
sourcecode/baidu/pages/user-address/user-address.js
sourcecode/baidu/pages/user-address/user-address.js
+43
-2
sourcecode/baidu/pages/user-address/user-address.swan
sourcecode/baidu/pages/user-address/user-address.swan
+8
-5
sourcecode/qq/app.js
sourcecode/qq/app.js
+1
-1
sourcecode/toutiao/app.js
sourcecode/toutiao/app.js
+1
-1
sourcecode/weixin/app.js
sourcecode/weixin/app.js
+1
-1
未找到文件。
application/api/controller/Useraddress.php
浏览文件 @
54764fe7
...
...
@@ -10,7 +10,7 @@
// +----------------------------------------------------------------------
namespace
app\api\controller
;
use
app\service\UserService
;
use
app\service\User
Address
Service
;
use
app\service\ConfigService
;
/**
...
...
@@ -50,7 +50,7 @@ class UserAddress extends Common
{
$params
=
$this
->
data_post
;
$params
[
'user'
]
=
$this
->
user
;
return
UserService
::
UserAddressRow
(
$params
);
return
User
Address
Service
::
UserAddressRow
(
$params
);
}
/**
...
...
@@ -63,7 +63,7 @@ class UserAddress extends Common
*/
public
function
Index
()
{
return
UserService
::
UserAddressList
([
'user'
=>
$this
->
user
]);
return
User
Address
Service
::
UserAddressList
([
'user'
=>
$this
->
user
]);
}
...
...
@@ -79,7 +79,7 @@ class UserAddress extends Common
{
$params
=
$this
->
data_post
;
$params
[
'user'
]
=
$this
->
user
;
return
UserService
::
UserAddressSave
(
$params
);
return
User
Address
Service
::
UserAddressSave
(
$params
);
}
/**
...
...
@@ -94,7 +94,7 @@ class UserAddress extends Common
{
$params
=
$this
->
data_post
;
$params
[
'user'
]
=
$this
->
user
;
return
UserService
::
UserAddressDelete
(
$params
);
return
User
Address
Service
::
UserAddressDelete
(
$params
);
}
/**
...
...
@@ -109,7 +109,7 @@ class UserAddress extends Common
{
$params
=
$this
->
data_post
;
$params
[
'user'
]
=
$this
->
user
;
return
UserService
::
UserAddressDefault
(
$params
);
return
User
Address
Service
::
UserAddressDefault
(
$params
);
}
/**
...
...
@@ -125,5 +125,19 @@ class UserAddress extends Common
return
ConfigService
::
SiteTypeExtractionAddressList
();
}
/**
* 外部系统地址添加
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-09-21
* @desc description
*/
public
function
OutSystemAdd
()
{
$params
=
$this
->
data_post
;
$params
[
'user'
]
=
$this
->
user
;
return
UserAddressService
::
OutSystemUserAddressAdd
(
$params
);
}
}
?>
\ No newline at end of file
application/index/controller/Buy.php
浏览文件 @
54764fe7
...
...
@@ -13,6 +13,7 @@ namespace app\index\controller;
use
think\facade\Hook
;
use
app\service\GoodsService
;
use
app\service\UserService
;
use
app\service\UserAddressService
;
use
app\service\PaymentService
;
use
app\service\BuyService
;
...
...
@@ -83,7 +84,7 @@ class Buy extends Common
$buy_goods
=
$buy_ret
[
'data'
][
'goods'
];
// 用户地址
$address
=
UserService
::
UserAddressList
([
'user'
=>
$this
->
user
]);
$address
=
User
Address
Service
::
UserAddressList
([
'user'
=>
$this
->
user
]);
$this
->
assign
(
'user_address_list'
,
$address
[
'data'
]);
// 支付方式
...
...
application/index/controller/Useraddress.php
浏览文件 @
54764fe7
...
...
@@ -11,7 +11,7 @@
namespace
app\index\controller
;
use
app\service\SeoService
;
use
app\service\UserService
;
use
app\service\User
Address
Service
;
/**
* 用户地址管理
...
...
@@ -48,7 +48,7 @@ class UserAddress extends Common
public
function
Index
()
{
// 用户地址列表
$data
=
UserService
::
UserAddressList
([
'user'
=>
$this
->
user
]);
$data
=
User
Address
Service
::
UserAddressList
([
'user'
=>
$this
->
user
]);
$this
->
assign
(
'user_address_list'
,
$data
[
'data'
]);
// 浏览器名称
...
...
@@ -74,7 +74,7 @@ class UserAddress extends Common
{
$params
=
$this
->
data_request
;
$params
[
'user'
]
=
$this
->
user
;
$ret
=
UserService
::
UserAddressRow
(
$params
);
$ret
=
User
Address
Service
::
UserAddressRow
(
$params
);
$data
=
$ret
[
'data'
];
}
...
...
@@ -95,7 +95,7 @@ class UserAddress extends Common
{
$params
=
input
(
'post.'
);
$params
[
'user'
]
=
$this
->
user
;
return
UserService
::
UserAddressSave
(
$params
);
return
User
Address
Service
::
UserAddressSave
(
$params
);
}
/**
...
...
@@ -110,7 +110,7 @@ class UserAddress extends Common
{
$params
=
$_POST
;
$params
[
'user'
]
=
$this
->
user
;
return
UserService
::
UserAddressDelete
(
$params
);
return
User
Address
Service
::
UserAddressDelete
(
$params
);
}
/**
...
...
@@ -125,7 +125,7 @@ class UserAddress extends Common
{
$params
=
$_POST
;
$params
[
'user'
]
=
$this
->
user
;
return
UserService
::
UserAddressDefault
(
$params
);
return
User
Address
Service
::
UserAddressDefault
(
$params
);
}
}
?>
\ No newline at end of file
application/service/BuyService.php
浏览文件 @
54764fe7
...
...
@@ -14,6 +14,7 @@ use think\Db;
use
think\facade\Hook
;
use
app\service\GoodsService
;
use
app\service\UserService
;
use
app\service\UserAddressService
;
use
app\service\ResourcesService
;
use
app\service\PaymentService
;
use
app\service\ConfigService
;
...
...
@@ -723,7 +724,7 @@ class BuyService
{
$address_params
[
'where'
]
=
[
'id'
=>
$params
[
'address_id'
]];
}
$ads
=
UserService
::
UserDefaultAddress
(
$address_params
);
$ads
=
User
Address
Service
::
UserDefaultAddress
(
$address_params
);
if
(
!
empty
(
$ads
[
'data'
]))
{
$address
=
$ads
[
'data'
];
...
...
application/service/GoodsService.php
浏览文件 @
54764fe7
...
...
@@ -1007,6 +1007,7 @@ class GoodsService
}
// 是否成功
$status
=
false
;
if
(
isset
(
$goods_id
)
&&
$goods_id
>
0
)
{
// 分类
...
...
@@ -1063,13 +1064,33 @@ class GoodsService
return
$ret
;
}
// 提交事务
// 操作成功
$status
=
true
;
}
// 事务处理
if
(
$status
)
{
Db
::
commit
();
return
DataReturn
(
'操作成功'
,
0
);
}
else
{
Db
::
rollback
();
}
// 回滚事务
Db
::
rollback
();
// 商品保存后钩子
$hook_name
=
'plugins_service_goods_save_end'
;
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'params'
=>
$params
,
'data'
=>
$data
,
'goods_id'
=>
$goods_id
,
]);
// 返回信息
if
(
$status
)
{
return
DataReturn
(
'操作成功'
,
0
);
}
return
DataReturn
(
'操作失败'
,
-
100
);
}
...
...
@@ -1687,6 +1708,15 @@ class GoodsService
return
DataReturn
(
'相册删除失败'
,
-
100
);
}
// 商品删除钩子
$hook_name
=
'plugins_service_goods_delete'
;
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'params'
=>
$params
,
'data_ids'
=>
$params
[
'ids'
],
]);
// 提交事务
Db
::
commit
();
return
DataReturn
(
'删除成功'
,
0
);
...
...
application/service/UserAddressService.php
0 → 100644
浏览文件 @
54764fe7
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace
app\service
;
use
think\Db
;
use
think\facade\Hook
;
use
app\service\RegionService
;
/**
* 用户地址服务层
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-09-21
* @desc description
*/
class
UserAddressService
{
/**
* 用户地址列表列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
UserAddressList
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
$where
=
(
!
empty
(
$params
[
'where'
])
&&
is_array
(
$params
[
'where'
]))
?
$params
[
'where'
]
:
[];
$where
[
'user_id'
]
=
$params
[
'user'
][
'id'
];
$where
[
'is_delete_time'
]
=
0
;
// 获取用户地址
$field
=
'id,alias,name,tel,province,city,county,address,lng,lat,is_default'
;
$data
=
Db
::
name
(
'UserAddress'
)
->
where
(
$where
)
->
field
(
$field
)
->
order
(
'id desc'
)
->
select
();
if
(
!
empty
(
$data
))
{
$is_default
=
false
;
foreach
(
$data
as
&
$v
)
{
// 地区
$v
[
'province_name'
]
=
RegionService
::
RegionName
(
$v
[
'province'
]);
$v
[
'city_name'
]
=
RegionService
::
RegionName
(
$v
[
'city'
]);
$v
[
'county_name'
]
=
RegionService
::
RegionName
(
$v
[
'county'
]);
// 是否有默认地址
if
(
$is_default
===
false
&&
$v
[
'is_default'
]
==
1
)
{
$is_default
=
true
;
}
}
// 是否处理默认地址,没有默认地址将第一个设置为默认地址
$is_default_handle
=
isset
(
$params
[
'is_default_handle'
])
?
intval
(
$params
[
'is_default_handle'
])
:
1
;
if
(
$is_default
===
false
&&
$is_default_handle
==
1
)
{
$data
[
0
][
'is_default'
]
=
true
;
}
}
// 用户地址列表钩子
$hook_name
=
'plugins_service_user_address_list'
;
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'params'
=>
$params
,
'data'
=>
&
$data
,
'user_id'
=>
$params
[
'user'
][
'id'
],
]);
return
DataReturn
(
'操作成功'
,
0
,
$data
);
}
/**
* 获取地址详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
UserAddressRow
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'id'
,
'error_msg'
=>
'地址id不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 获取用户地址
$params
[
'where'
]
=
[
'id'
=>
intval
(
$params
[
'id'
]),
];
$params
[
'is_default_handle'
]
=
0
;
$ret
=
self
::
UserAddressList
(
$params
);
if
(
!
empty
(
$ret
[
'data'
][
0
]))
{
$ret
[
'data'
]
=
$ret
[
'data'
][
0
];
}
return
$ret
;
}
/**
* 用户默认地址
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
UserDefaultAddress
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 获取用户地址
$params
[
'where'
]
=
empty
(
$params
[
'where'
])
?
[
'is_default'
=>
1
]
:
$params
[
'where'
];
$ret
=
self
::
UserAddressList
(
$params
);
$data
=
[];
if
(
!
empty
(
$ret
[
'data'
][
0
]))
{
$data
=
$ret
[
'data'
][
0
];
}
else
{
// 没有默认地址则读取第一条作为默认地址
unset
(
$params
[
'where'
]);
$ret
=
self
::
UserAddressList
(
$params
);
if
(
!
empty
(
$ret
[
'data'
][
0
]))
{
$data
=
$ret
[
'data'
][
0
];
}
}
// 用户默认地址钩子
$hook_name
=
'plugins_service_user_address_default_row'
;
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'params'
=>
$params
,
'data'
=>
&
$data
,
'user_id'
=>
$params
[
'user'
][
'id'
],
]);
return
DataReturn
(
'获取成功'
,
0
,
$data
);
}
/**
* 用户地址保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
UserAddressSave
(
$params
=
[])
{
// 参数校验
$ret
=
self
::
UserAddressSaveParamsCheck
(
$params
);
if
(
$ret
[
'code'
]
!=
0
)
{
return
$ret
;
}
if
(
!
empty
(
$params
[
'id'
]))
{
$where
=
[
'user_id'
=>
$params
[
'user'
][
'id'
],
'id'
=>
$params
[
'id'
]];
$temp
=
Db
::
name
(
'UserAddress'
)
->
where
(
$where
)
->
find
();
}
// 操作数据
$is_default
=
isset
(
$params
[
'is_default'
])
?
intval
(
$params
[
'is_default'
])
:
0
;
$data
=
[
'name'
=>
$params
[
'name'
],
'tel'
=>
$params
[
'tel'
],
'province'
=>
$params
[
'province'
],
'city'
=>
$params
[
'city'
],
'county'
=>
$params
[
'county'
],
'address'
=>
$params
[
'address'
],
'is_default'
=>
$is_default
,
];
if
(
!
empty
(
$params
[
'alias'
]))
{
$data
[
'alias'
]
=
$params
[
'alias'
];
}
if
(
!
empty
(
$params
[
'lng'
]))
{
$data
[
'lng'
]
=
floatval
(
$params
[
'lng'
]);
}
if
(
!
empty
(
$params
[
'lat'
]))
{
$data
[
'lat'
]
=
floatval
(
$params
[
'lat'
]);
}
// 用户地址保存前钩子
$hook_name
=
'plugins_service_user_address_save_begin'
;
$ret
=
HookReturnHandle
(
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'params'
=>
$params
,
'data'
=>
&
$data
,
'user_id'
=>
$params
[
'user'
][
'id'
],
]));
if
(
isset
(
$ret
[
'code'
])
&&
$ret
[
'code'
]
!=
0
)
{
return
$ret
;
}
Db
::
startTrans
();
// 默认地址处理
if
(
$is_default
==
1
)
{
Db
::
name
(
'UserAddress'
)
->
where
([
'user_id'
=>
$params
[
'user'
][
'id'
],
'is_default'
=>
1
])
->
update
([
'is_default'
=>
0
]);
}
// 添加/更新数据
$status
=
false
;
$msg
=
'操作失败'
;
if
(
empty
(
$temp
))
{
$data
[
'user_id'
]
=
$params
[
'user'
][
'id'
];
$data
[
'add_time'
]
=
time
();
if
(
Db
::
name
(
'UserAddress'
)
->
insertGetId
(
$data
)
>
0
)
{
$status
=
true
;
$msg
=
'新增成功'
;
}
else
{
$msg
=
'新增失败'
;
}
}
else
{
$data
[
'upd_time'
]
=
time
();
if
(
Db
::
name
(
'UserAddress'
)
->
where
(
$where
)
->
update
(
$data
))
{
$status
=
true
;
$msg
=
'更新成功'
;
}
else
{
$msg
=
'更新失败'
;
}
}
// 事务处理
if
(
$status
)
{
Db
::
commit
();
}
else
{
Db
::
rollback
();
}
// 用户地址保存后钩子
$hook_name
=
'plugins_service_user_address_save_end'
;
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'params'
=>
$params
,
'data'
=>
$data
,
'user_id'
=>
$params
[
'user'
][
'id'
],
]);
return
DataReturn
(
$msg
,
$status
?
0
:
-
100
);
}
/**
* 地址保存参数校验
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-09-21
* @desc description
* @param [array] $params [输入参数]
*/
private
static
function
UserAddressSaveParamsCheck
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'name'
,
'error_msg'
=>
'姓名不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'tel'
,
'error_msg'
=>
'联系电话不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'province'
,
'error_msg'
=>
'省不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'city'
,
'error_msg'
=>
'城市不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'county'
,
'error_msg'
=>
'区/县不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'address'
,
'error_msg'
=>
'详细地址不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
return
DataReturn
(
'success'
,
0
);
}
/**
* 用户地址删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
UserAddressDelete
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'id'
,
'error_msg'
=>
'地址id不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 软删除数据
$where
=
[
'user_id'
=>
$params
[
'user'
][
'id'
],
'id'
=>
$params
[
'id'
]];
$data
=
[
'is_delete_time'
=>
time
()];
if
(
Db
::
name
(
'UserAddress'
)
->
where
(
$where
)
->
update
(
$data
))
{
// 用户地址删除钩子
$hook_name
=
'plugins_service_user_address_delete'
;
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'params'
=>
$params
,
'data_id'
=>
$params
[
'id'
],
'user_id'
=>
$params
[
'user'
][
'id'
],
]);
return
DataReturn
(
'删除成功'
,
0
);
}
else
{
return
DataReturn
(
'删除失败或资源不存在'
,
-
100
);
}
}
/**
* 用户地址设置默认地址
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-25
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
UserAddressDefault
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'id'
,
'error_msg'
=>
'地址id不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 开启事务
Db
::
startTrans
();
// 先全部设置为0 再将当前设置为1
$all_status
=
Db
::
name
(
'UserAddress'
)
->
where
([
'user_id'
=>
$params
[
'user'
][
'id'
]])
->
update
([
'is_default'
=>
0
]);
$my_status
=
Db
::
name
(
'UserAddress'
)
->
where
([
'user_id'
=>
$params
[
'user'
][
'id'
],
'id'
=>
$params
[
'id'
]])
->
update
([
'is_default'
=>
1
]);
if
(
$all_status
!==
false
&&
$my_status
)
{
// 用户地址删除钩子
$hook_name
=
'plugins_service_user_address_default'
;
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'params'
=>
$params
,
'data_id'
=>
$params
[
'id'
],
'user_id'
=>
$params
[
'user'
][
'id'
],
]);
// 提交事务
Db
::
commit
();
return
DataReturn
(
'设置成功'
,
0
);
}
else
{
// 回滚事务
Db
::
rollback
();
return
DataReturn
(
'设置失败'
,
-
100
);
}
}
/**
* 外部系统地址添加
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-09-21
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
OutSystemUserAddressAdd
(
$params
=
[])
{
// 参数校验
$ret
=
self
::
UserAddressSaveParamsCheck
(
$params
);
if
(
$ret
[
'code'
]
!=
0
)
{
return
$ret
;
}
// 省市区解析
$province_name
=
$params
[
'province'
];
$city_name
=
$params
[
'city'
];
$county_name
=
$params
[
'county'
];
$town_name
=
isset
(
$params
[
'town'
])
?
$params
[
'town'
]
:
''
;
// 开始匹配地址
$field
=
'id,name,level'
;
// 省匹配
$search
=
[
'市'
,
'区'
];
$where
=
[
[
'pid'
,
'='
,
0
],
[
'level'
,
'='
,
1
],
[
'name'
,
'like'
,
str_replace
(
$search
,
''
,
$province_name
)
.
'%'
],
];
$province
=
Db
::
name
(
'Region'
)
->
where
(
$where
)
->
field
(
$field
)
->
find
();
if
(
empty
(
$province
))
{
return
DataReturn
(
'省匹配失败'
,
-
1
);
}
// 市匹配
$where
=
[
[
'pid'
,
'='
,
$province
[
'id'
]],
[
'level'
,
'='
,
2
],
];
$search
=
[
'自治州'
,
'自治县'
,
'特别行政区'
,
'地区'
,
'市'
,
'县'
,
'区'
];
$where1
=
$where
;
$where1
[]
=
[
'name'
,
'like'
,
str_replace
(
$search
,
''
,
$city_name
)
.
'%'
];
$city
=
Db
::
name
(
'Region'
)
->
where
(
$where1
)
->
field
(
$field
)
->
find
();
if
(
empty
(
$city
))
{
// 没查询到则使用县字段查询
$where2
=
$where
;
$where2
[]
=
[
'name'
,
'like'
,
str_replace
(
$search
,
''
,
$county_name
)
.
'%'
];
$city
=
Db
::
name
(
'Region'
)
->
where
(
$where2
)
->
field
(
$field
)
->
find
();
if
(
empty
(
$city
))
{
return
DataReturn
(
'市匹配失败'
,
-
1
);
}
}
// 区/县匹配
$where
=
[
[
'pid'
,
'='
,
$city
[
'id'
]],
[
'level'
,
'='
,
3
],
];
$search
=
[
'街道'
,
'县'
,
'镇'
];
$where1
=
$where
;
$where1
[]
=
[
'name'
,
'like'
,
str_replace
(
$search
,
''
,
$county_name
)
.
'%'
];
$county
=
Db
::
name
(
'Region'
)
->
where
(
$where1
)
->
field
(
$field
)
->
find
();
if
(
empty
(
$county
)
&&
!
empty
(
$town_name
))
{
// 没查询到则使用街道字段查询
$where2
=
$where
;
$where2
[]
=
[
'name'
,
'like'
,
str_replace
(
$search
,
''
,
$town_name
)
.
'%'
];
$county
=
Db
::
name
(
'Region'
)
->
where
(
$where2
)
->
field
(
$field
)
->
find
();
}
if
(
empty
(
$county
))
{
return
DataReturn
(
'区/县匹配失败'
,
-
1
);
}
// 地区id赋值
$params
[
'province'
]
=
$province
[
'id'
];
$params
[
'city'
]
=
$city
[
'id'
];
$params
[
'county'
]
=
$county
[
'id'
];
// 存在街道字段数据则拼接到详细地址前面
if
(
!
empty
(
$town_name
))
{
$params
[
'address'
]
=
$town_name
.
$params
[
'address'
];
}
// 地址存在则不重复添加
$where
=
[
'name'
=>
$params
[
'name'
],
'tel'
=>
$params
[
'tel'
],
'province'
=>
$params
[
'province'
],
'city'
=>
$params
[
'city'
],
'county'
=>
$params
[
'county'
],
'address'
=>
$params
[
'address'
],
'user_id'
=>
$params
[
'user'
][
'id'
],
];
$address
=
Db
::
name
(
'UserAddress'
)
->
where
(
$where
)
->
find
();
if
(
!
empty
(
$address
))
{
return
DataReturn
(
'地址已存在'
,
-
1
);
}
// 地址保存
return
self
::
UserAddressSave
(
$params
);
}
}
?>
\ No newline at end of file
application/service/UserService.php
浏览文件 @
54764fe7
...
...
@@ -381,356 +381,6 @@ class UserService
return
DataReturn
(
'删除失败'
,
-
100
);
}
/**
* 用户地址列表列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
UserAddressList
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
$where
=
(
!
empty
(
$params
[
'where'
])
&&
is_array
(
$params
[
'where'
]))
?
$params
[
'where'
]
:
[];
$where
[
'user_id'
]
=
$params
[
'user'
][
'id'
];
$where
[
'is_delete_time'
]
=
0
;
// 获取用户地址
$field
=
'id,alias,name,tel,province,city,county,address,lng,lat,is_default'
;
$data
=
Db
::
name
(
'UserAddress'
)
->
where
(
$where
)
->
field
(
$field
)
->
order
(
'id desc'
)
->
select
();
if
(
!
empty
(
$data
))
{
$is_default
=
false
;
foreach
(
$data
as
&
$v
)
{
// 地区
$v
[
'province_name'
]
=
RegionService
::
RegionName
(
$v
[
'province'
]);
$v
[
'city_name'
]
=
RegionService
::
RegionName
(
$v
[
'city'
]);
$v
[
'county_name'
]
=
RegionService
::
RegionName
(
$v
[
'county'
]);
// 是否有默认地址
if
(
$is_default
===
false
&&
$v
[
'is_default'
]
==
1
)
{
$is_default
=
true
;
}
}
// 是否处理默认地址,没有默认地址将第一个设置为默认地址
$is_default_handle
=
isset
(
$params
[
'is_default_handle'
])
?
intval
(
$params
[
'is_default_handle'
])
:
1
;
if
(
$is_default
===
false
&&
$is_default_handle
==
1
)
{
$data
[
0
][
'is_default'
]
=
true
;
}
}
return
DataReturn
(
'操作成功'
,
0
,
$data
);
}
/**
* [UserAddressRow 获取地址详情]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-09-23T23:19:25+0800
* @param [array] $params [输入参数]
*/
public
static
function
UserAddressRow
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'id'
,
'error_msg'
=>
'地址id不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 获取用户地址
$params
[
'where'
]
=
[
'id'
=>
intval
(
$params
[
'id'
]),
];
$params
[
'is_default_handle'
]
=
0
;
$ret
=
self
::
UserAddressList
(
$params
);
if
(
!
empty
(
$ret
[
'data'
][
0
]))
{
$ret
[
'data'
]
=
$ret
[
'data'
][
0
];
}
return
$ret
;
}
/**
* 用户默认地址
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
UserDefaultAddress
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 获取用户地址
$params
[
'where'
]
=
empty
(
$params
[
'where'
])
?
[
'is_default'
=>
1
]
:
$params
[
'where'
];
$ret
=
self
::
UserAddressList
(
$params
);
if
(
!
empty
(
$ret
[
'data'
][
0
]))
{
$ret
[
'data'
]
=
$ret
[
'data'
][
0
];
}
else
{
// 没有默认地址则读取第一条作为默认地址
unset
(
$params
[
'where'
]);
$ret
=
self
::
UserAddressList
(
$params
);
if
(
!
empty
(
$ret
[
'data'
][
0
]))
{
$ret
[
'data'
]
=
$ret
[
'data'
][
0
];
}
}
return
$ret
;
}
/**
* [UserAddressSave 用户地址保存]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-09-23T22:28:31+0800
* @param [array] $params [输入参数]
*/
public
static
function
UserAddressSave
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'name'
,
'error_msg'
=>
'姓名不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'tel'
,
'error_msg'
=>
'联系电话不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'province'
,
'error_msg'
=>
'省不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'city'
,
'error_msg'
=>
'城市不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'county'
,
'error_msg'
=>
'区/县不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'address'
,
'error_msg'
=>
'详细地址不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
if
(
!
empty
(
$params
[
'id'
]))
{
$where
=
[
'user_id'
=>
$params
[
'user'
][
'id'
],
'id'
=>
$params
[
'id'
]];
$temp
=
Db
::
name
(
'UserAddress'
)
->
where
(
$where
)
->
find
();
}
// 操作数据
$is_default
=
isset
(
$params
[
'is_default'
])
?
intval
(
$params
[
'is_default'
])
:
0
;
$data
=
[
'name'
=>
$params
[
'name'
],
'tel'
=>
$params
[
'tel'
],
'province'
=>
$params
[
'province'
],
'city'
=>
$params
[
'city'
],
'county'
=>
$params
[
'county'
],
'address'
=>
$params
[
'address'
],
'is_default'
=>
$is_default
,
];
if
(
!
empty
(
$params
[
'alias'
]))
{
$data
[
'alias'
]
=
$params
[
'alias'
];
}
if
(
!
empty
(
$params
[
'lng'
]))
{
$data
[
'lng'
]
=
floatval
(
$params
[
'lng'
]);
}
if
(
!
empty
(
$params
[
'lat'
]))
{
$data
[
'lat'
]
=
floatval
(
$params
[
'lat'
]);
}
Db
::
startTrans
();
// 默认地址处理
if
(
$is_default
==
1
)
{
Db
::
name
(
'UserAddress'
)
->
where
([
'user_id'
=>
$params
[
'user'
][
'id'
],
'is_default'
=>
1
])
->
update
([
'is_default'
=>
0
]);
}
// 添加/更新数据
if
(
empty
(
$temp
))
{
$data
[
'user_id'
]
=
$params
[
'user'
][
'id'
];
$data
[
'add_time'
]
=
time
();
if
(
Db
::
name
(
'UserAddress'
)
->
insertGetId
(
$data
)
>
0
)
{
Db
::
commit
();
return
DataReturn
(
'新增成功'
,
0
);
}
else
{
Db
::
rollback
();
return
DataReturn
(
'新增失败'
);
}
}
else
{
$data
[
'upd_time'
]
=
time
();
if
(
Db
::
name
(
'UserAddress'
)
->
where
(
$where
)
->
update
(
$data
))
{
Db
::
commit
();
return
DataReturn
(
'更新成功'
,
0
);
}
else
{
Db
::
rollback
();
return
DataReturn
(
'更新失败'
);
}
}
}
/**
* [UserAddressDelete 用户地址删除]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-09-23T23:55:51+0800
* @param [array] $params [输入参数]
*/
public
static
function
UserAddressDelete
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'id'
,
'error_msg'
=>
'地址id不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 软删除数据
$where
=
[
'user_id'
=>
$params
[
'user'
][
'id'
],
'id'
=>
$params
[
'id'
]];
$data
=
[
'is_delete_time'
=>
time
()];
if
(
Db
::
name
(
'UserAddress'
)
->
where
(
$where
)
->
update
(
$data
))
{
return
DataReturn
(
'删除成功'
,
0
);
}
else
{
return
DataReturn
(
'删除失败或资源不存在'
,
-
100
);
}
}
/**
* 用户地址设置默认地址
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-25
* @desc description
* @param [array] $params [输入参数]
*/
public
static
function
UserAddressDefault
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'id'
,
'error_msg'
=>
'地址id不能为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'user'
,
'error_msg'
=>
'用户信息有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 开启事务
Db
::
startTrans
();
// 先全部设置为0 再将当前设置为1
$all_status
=
Db
::
name
(
'UserAddress'
)
->
where
([
'user_id'
=>
$params
[
'user'
][
'id'
]])
->
update
([
'is_default'
=>
0
]);
$my_status
=
Db
::
name
(
'UserAddress'
)
->
where
([
'user_id'
=>
$params
[
'user'
][
'id'
],
'id'
=>
$params
[
'id'
]])
->
update
([
'is_default'
=>
1
]);
if
(
$all_status
!==
false
&&
$my_status
)
{
// 提交事务
Db
::
commit
();
return
DataReturn
(
'设置成功'
,
0
);
}
else
{
// 回滚事务
Db
::
rollback
();
return
DataReturn
(
'设置失败'
,
-
100
);
}
}
/**
* [UserLoginRecord 用户登录记录]
* @author Devil
...
...
sourcecode/alipay/app.js
浏览文件 @
54764fe7
...
...
@@ -46,7 +46,7 @@ App({
"
goods_search
"
:
"
商品搜索
"
,
"
goods_detail
"
:
"
商品详情
"
,
"
user_address
"
:
"
我的地址
"
,
"
user_address_save_add
"
:
"
新增
地址
"
,
"
user_address_save_add
"
:
"
添加
地址
"
,
"
user_address_save_edit
"
:
"
编辑地址
"
,
"
buy
"
:
"
订单确认
"
,
"
user_order
"
:
"
我的订单
"
,
...
...
sourcecode/baidu/app.js
浏览文件 @
54764fe7
...
...
@@ -46,7 +46,7 @@ App({
"
goods_search
"
:
"
商品搜索
"
,
"
goods_detail
"
:
"
商品详情
"
,
"
user_address
"
:
"
我的地址
"
,
"
user_address_save_add
"
:
"
新增
地址
"
,
"
user_address_save_add
"
:
"
添加
地址
"
,
"
user_address_save_edit
"
:
"
编辑地址
"
,
"
buy
"
:
"
订单确认
"
,
"
user_order
"
:
"
我的订单
"
,
...
...
sourcecode/baidu/pages/user-address/user-address.css
浏览文件 @
54764fe7
...
...
@@ -33,4 +33,12 @@
}
.page
{
padding-bottom
:
85
rpx
;
}
.submit-list
button
{
width
:
50%
;
}
.submit-list
.import-system-address-submit
{
background
:
#07c160
!important
;
right
:
0
;
left
:
auto
;
}
\ No newline at end of file
sourcecode/baidu/pages/user-address/user-address.js
浏览文件 @
54764fe7
...
...
@@ -209,7 +209,6 @@ Page({
},
fail
:
()
=>
{
swan
.
hideLoading
();
app
.
showToast
(
"
服务器请求出错
"
);
}
});
...
...
@@ -226,6 +225,48 @@ Page({
});
swan
.
navigateBack
();
}
}
},
// 获取系统地址
choose_system_address_event
(
e
)
{
var
detail
=
e
.
detail
;
var
data
=
{
"
name
"
:
detail
.
userName
||
''
,
"
tel
"
:
detail
.
telNumber
||
''
,
"
province
"
:
detail
.
provinceName
||
''
,
"
city
"
:
detail
.
cityName
||
''
,
"
county
"
:
detail
.
countyName
||
''
,
"
town
"
:
detail
.
townName
||
''
,
"
address
"
:
detail
.
detailInfo
||
''
,
};
// 加载loding
swan
.
showLoading
({
title
:
"
处理中...
"
});
// 获取数据
swan
.
request
({
url
:
app
.
get_request_url
(
"
outsystemadd
"
,
"
useraddress
"
),
method
:
"
POST
"
,
data
:
data
,
dataType
:
"
json
"
,
success
:
res
=>
{
swan
.
hideLoading
();
if
(
res
.
data
.
code
==
0
)
{
this
.
get_data_list
();
app
.
showToast
(
res
.
data
.
msg
,
"
success
"
);
}
else
{
if
(
app
.
is_login_check
(
res
.
data
))
{
app
.
showToast
(
res
.
data
.
msg
);
}
else
{
app
.
showToast
(
'
提交失败,请重试!
'
);
}
}
},
fail
:
()
=>
{
swan
.
hideLoading
();
app
.
showToast
(
"
服务器请求出错
"
);
}
});
},
});
\ No newline at end of file
sourcecode/baidu/pages/user-address/user-address.swan
浏览文件 @
54764fe7
...
...
@@ -30,11 +30,14 @@
<import src="/pages/common/nodata.swan" />
<template is="nodata" data="{{{status: data_list_loding_status}}}"></template>
</view>
<import src="/pages/common/bottom_line.swan" />
<template is="bottom_line" data="{{{status: data_bottom_line_status}}}"></template>
<navigator url="/pages/user-address-save/user-address-save" open-type="navigate" hover-class="none">
<button class="submit-fixed submit-bottom" type="default" hover-class="none">新增地址</button>
</navigator>
<view class="submit-list">
<navigator url="/pages/user-address-save/user-address-save" open-type="navigate" hover-class="none">
<button class="submit-fixed submit-bottom" type="default" hover-class="none">添加新地址</button>
</navigator>
<button class="submit-fixed submit-bottom import-system-address-submit" type="default" hover-class="none" open-type="chooseAddress" bindchooseAddress="choose_system_address_event">导入百度地址</button>
</view>
</view>
\ No newline at end of file
sourcecode/qq/app.js
浏览文件 @
54764fe7
...
...
@@ -46,7 +46,7 @@ App({
"
goods_search
"
:
"
商品搜索
"
,
"
goods_detail
"
:
"
商品详情
"
,
"
user_address
"
:
"
我的地址
"
,
"
user_address_save_add
"
:
"
新增
地址
"
,
"
user_address_save_add
"
:
"
添加
地址
"
,
"
user_address_save_edit
"
:
"
编辑地址
"
,
"
buy
"
:
"
订单确认
"
,
"
user_order
"
:
"
我的订单
"
,
...
...
sourcecode/toutiao/app.js
浏览文件 @
54764fe7
...
...
@@ -46,7 +46,7 @@ App({
"
goods_search
"
:
"
商品搜索
"
,
"
goods_detail
"
:
"
商品详情
"
,
"
user_address
"
:
"
我的地址
"
,
"
user_address_save_add
"
:
"
新增
地址
"
,
"
user_address_save_add
"
:
"
添加
地址
"
,
"
user_address_save_edit
"
:
"
编辑地址
"
,
"
buy
"
:
"
订单确认
"
,
"
user_order
"
:
"
我的订单
"
,
...
...
sourcecode/weixin/app.js
浏览文件 @
54764fe7
...
...
@@ -46,7 +46,7 @@ App({
"
goods_search
"
:
"
商品搜索
"
,
"
goods_detail
"
:
"
商品详情
"
,
"
user_address
"
:
"
我的地址
"
,
"
user_address_save_add
"
:
"
新增
地址
"
,
"
user_address_save_add
"
:
"
添加
地址
"
,
"
user_address_save_edit
"
:
"
编辑地址
"
,
"
buy
"
:
"
订单确认
"
,
"
user_order
"
:
"
我的订单
"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录