Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
20734218
提交
20734218
authored
4月 06, 2019
作者:
sin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
- 调通 用户商品地址
上级
27d3a6bb
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
351 行增加
和
105 行删除
+351
-105
.editorconfig
mobile-web/.editorconfig
+16
-0
user.js
mobile-web/src/api/user.js
+17
-8
request.js
mobile-web/src/config/request.js
+74
-7
edit.vue
mobile-web/src/page/user/address/edit.vue
+72
-43
list.vue
mobile-web/src/page/user/address/list.vue
+48
-40
UserAddressController.java
...r/application/controller/users/UserAddressController.java
+12
-5
UserAddressService.java
...ain/java/cn/iocoder/mall/user/api/UserAddressService.java
+2
-0
UserAddressBO.java
.../main/java/cn/iocoder/mall/user/api/bo/UserAddressBO.java
+92
-0
UserAddressConvert.java
.../cn/iocoder/mall/user/biz/convert/UserAddressConvert.java
+3
-0
UserAddressServiceImpl.java
...iocoder/mall/user/biz/service/UserAddressServiceImpl.java
+13
-1
UserAddress.xml
...er-service-impl/src/main/resources/mapper/UserAddress.xml
+2
-1
没有找到文件。
mobile-web/.editorconfig
0 → 100644
浏览文件 @
20734218
# http://editorconfig.org
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
[Makefile]
indent_style = tab
mobile-web/src/api/user.js
浏览文件 @
20734218
...
...
@@ -18,31 +18,40 @@ export function DelFavorite(id){
export
function
GetAddressList
(){
return
request
({
url
:
'/
User/GetAddressL
ist'
,
url
:
'/
user-api/user/address/l
ist'
,
method
:
'get'
,
})
}
export
function
GetAddressById
(
id
){
return
request
({
url
:
'/
User/GetAddressById
'
,
url
:
'/
user-api/user/address/address
'
,
method
:
'get'
,
params
:
{
id
}
})
}
export
function
UpdateAddress
(
data
){
return
request
({
url
:
'/user-api/user/address/update'
,
method
:
'PUT'
,
params
:
data
})
}
export
function
SaveAddress
(
data
){
return
request
({
url
:
'/
User/SaveAddress
'
,
method
:
'
post
'
,
params
:
{
data
}
url
:
'/
user-api/user/address/add
'
,
method
:
'
POST
'
,
params
:
data
})
}
export
function
DelAddress
(
data
){
return
request
({
url
:
'/
User/DelAddress
'
,
method
:
'
post
'
,
params
:
{
data
}
url
:
'/
user-api/user/address/remove
'
,
method
:
'
DELETE
'
,
params
:
data
})
}
...
...
mobile-web/src/config/request.js
浏览文件 @
20734218
...
...
@@ -4,8 +4,74 @@ import datas from '../data/data';
import
{
getAccessToken
}
from
'../utils/cache.js'
;
import
{
Dialog
}
from
'vant'
;
const
serviceRouter
=
function
(
requestUrl
)
{
function
getConfig
()
{
const
configDev
=
{
'/order-api'
:
{
prefix
:
'/order-api'
,
target
:
'http://127.0.0.1:18084/order-api'
,
},
'/user-api'
:
{
prefix
:
'/user-api'
,
target
:
'http://127.0.0.1:18082/user-api'
,
},
};
const
configProd
=
{
'/order-api'
:
{
prefix
:
'/order-api'
,
target
:
'http://127.0.0.1:18084/order-api'
,
},
'/user-api'
:
{
prefix
:
'/user-api'
,
target
:
'http://127.0.0.1:18082/user-api'
,
},
};
if
(
process
.
env
.
NODE_ENV
==
'development'
)
{
return
configDev
;
}
else
{
return
configProd
}
}
// function doCreateServer(config) {
// // 获取请求配置文件
// const createServer = {};
// for (const configKey in config) {
// const serverPrefix = configKey;
// const {target} = config[configKey];
// // 创建服务
// createServer[serverPrefix] = axios.create({
// baseURL: target, // api 的 base_url
// timeout: 5000, // request timeout
// headers: {
// 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
// }
// });
// }
// }
const
config
=
getConfig
();
// const createServer = doCreateServer(config);
const
indexOf
=
requestUrl
.
indexOf
(
"/"
,
1
);
const
_urlPrefix
=
requestUrl
.
substring
(
0
,
indexOf
);
if
(
!
config
[
_urlPrefix
])
{
throw
new
Error
(
`服务路由,未找到可用服务!
${
requestUrl
}
`
);
}
// if (!createServer[_urlPrefix]) {
// throw new Error("服务路由,未找到可用服务!");
// }
// const { target } = config[_urlPrefix];
// const requestServer = createServer[_urlPrefix];
// const targetRequestUrl = _requestUrl.replace(_urlPrefix, target)
// return createServer;
return
config
[
_urlPrefix
];
};
const
service
=
axios
.
create
({
baseURL
:
baseUrl
,
// api 的 base_url
//
baseURL: baseUrl, // api 的 base_url
timeout
:
5000
,
// request timeout
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded; charset=UTF-8'
...
...
@@ -34,6 +100,7 @@ const servicef = function (parameter) {
// };
// }
// debugger;
return
service
(
parameter
);
}
...
...
@@ -46,11 +113,12 @@ service.interceptors.request.use(
// config.headers['X-Token'] = getToken()
// }
// debugger;
let
url
=
config
.
url
;
// 切换地址
const
{
target
,
prefix
}
=
serviceRouter
(
config
.
url
)
let
url
=
config
.
url
=
config
.
url
.
replace
(
`
${
prefix
}
`
,
target
);
// TODO 芋艿,这些 url 不用增加认证 token 。可能这么写,有点脏,后面看看咋优化下。
if
(
url
===
'user-api/users/passport/mobile/send_register_code'
||
url
===
'user-api/users/passport/mobile/register'
)
{
if
(
url
.
indexOf
(
'user-api/users/passport/mobile/send_register_code'
)
!=
-
1
||
url
.
indexOf
(
'user-api/users/passport/mobile/register'
)
!=
-
1
)
{
return
config
;
}
...
...
@@ -142,4 +210,4 @@ service.interceptors.response.use(
)
export
default
servicef
\ No newline at end of file
export
default
servicef
mobile-web/src/page/user/address/edit.vue
浏览文件 @
20734218
<
template
>
<div>
<headerNav
title=
"修改地址"
/>
<van-address-edit
<div>
<headerNav
title=
"修改地址"
/>
<van-address-edit
:area-list=
"areaList"
:showDelete=
"showDelete"
show-set-default
@
save=
"onSave"
@
delete=
"onDelete"
:addressInfo=
"info"
/>
</div>
/>
</div>
</
template
>
<
script
>
import
areaList
from
'../../../data/area'
;
import
{
GetAddressById
,
SaveAddress
,
DelAddress
}
from
"../../../api/user.js"
;
import
areaList
from
'../../../data/area'
;
import
{
GetAddressById
,
SaveAddress
,
UpdateAddress
,
DelAddress
}
from
"../../../api/user.js"
;
import
{
AddressEdit
}
from
'vant'
;
export
default
{
components
:{
[
AddressEdit
.
name
]:
AddressEdit
,
import
{
AddressEdit
}
from
'vant'
;
export
default
{
components
:
{
[
AddressEdit
.
name
]:
AddressEdit
,
},
data
()
{
return
{
areaList
,
showDelete
:
false
,
info
:{},
}
},
methods
:
{
onSave
(
data
)
{
SaveAddress
(
data
).
then
(
response
=>
{
this
.
$toast
(
'保存成功'
);
this
.
$router
.
go
(
-
1
);
})
return
{
areaList
,
showDelete
:
false
,
info
:
{
},
}
},
onDelete
(
data
)
{
DelAddress
(
data
).
then
(
response
=>
{
this
.
$toast
(
'删除成功'
);
this
.
$router
.
go
(
-
1
);
})
methods
:
{
onSave
(
data
)
{
const
params
=
{
...
data
,
address
:
data
.
addressDetail
,
areaNo
:
data
.
areaCode
,
city
:
data
.
city
,
county
:
data
.
county
,
country
:
data
.
country
,
mobile
:
data
.
tel
,
name
:
data
.
name
,
hasDefault
:
data
.
isDefault
,
};
if
(
data
.
id
!==
0
)
{
UpdateAddress
(
params
).
then
(
response
=>
{
this
.
$toast
(
'更新成功'
);
this
.
$router
.
go
(
-
1
);
})
}
else
{
SaveAddress
(
params
).
then
(
response
=>
{
this
.
$toast
(
'保存成功'
);
this
.
$router
.
go
(
-
1
);
})
}
},
onDelete
(
data
)
{
const
params
=
{
id
:
data
.
id
,
};
DelAddress
(
params
).
then
(
response
=>
{
this
.
$toast
(
'删除成功'
);
this
.
$router
.
go
(
-
1
);
})
},
},
},
created
:
function
(){
var
id
=
this
.
$route
.
query
.
id
;
if
(
id
>
0
){
this
.
showDelete
=
true
;
GetAddressById
(
id
).
then
(
response
=>
{
console
.
log
(
response
);
this
.
info
=
response
;
})
created
:
function
()
{
const
id
=
this
.
$route
.
query
.
id
;
if
(
id
>
0
)
{
this
.
showDelete
=
true
;
GetAddressById
(
id
).
then
(
response
=>
{
this
.
info
=
{
...
response
,
addressDetail
:
response
.
address
,
tel
:
response
.
mobile
,
areaCode
:
response
.
areaNo
,
isDefault
:
0
,
};
})
}
}
}
}
}
</
script
>
<
style
>
.van-picker__toolbar
{
font-size
:
16px
;
}
.van-picker__toolbar
{
font-size
:
16px
;
}
</
style
>
mobile-web/src/page/user/address/list.vue
浏览文件 @
20734218
<
template
>
<div>
<div>
<headerNav
title=
"我的地址"
/>
<van-address-list
v-model=
"chosenAddressId"
:class=
"isSelect?'':'hideselect'"
:list=
"list"
@
add=
"onAdd"
@
edit=
"onEdit"
@
select=
"onSelect"
/>
</div>
v-model=
"chosenAddressId"
:class=
"isSelect?'':'hideselect'"
:list=
"list"
@
add=
"onAdd"
@
edit=
"onEdit"
@
select=
"onSelect"
/>
</div>
</
template
>
<
script
>
import
{
GetAddressList
}
from
"../../../api/user.js"
;
import
{
AddressList
}
from
'vant'
;
export
default
{
components
:{
[
AddressList
.
name
]:
AddressList
,
import
{
GetAddressList
}
from
"../../../api/user.js"
;
import
{
AddressList
}
from
'vant'
;
export
default
{
components
:
{
[
AddressList
.
name
]:
AddressList
,
},
data
()
{
return
{
return
{
chosenAddressId
:
'1'
,
isSelect
:
false
,
isSelect
:
false
,
list
:
[],
}
}
},
methods
:
{
onAdd
()
{
this
.
$router
.
push
(
'/user/address/edit'
)
},
onAdd
()
{
this
.
$router
.
push
(
'/user/address/edit'
)
},
onEdit
(
item
,
index
)
{
this
.
$router
.
push
(
'/user/address/edit?id='
+
item
.
id
);
},
onSelect
(
item
,
index
){
if
(
!
this
.
isSelect
){
return
;
}
this
.
$emit
(
'selectAddress'
,
item
);
this
.
$router
.
go
(
-
1
);
onEdit
(
item
,
index
)
{
this
.
$router
.
push
(
'/user/address/edit?id='
+
item
.
id
);
},
onSelect
(
item
,
index
)
{
if
(
!
this
.
isSelect
)
{
return
;
}
this
.
$emit
(
'selectAddress'
,
item
);
this
.
$router
.
go
(
-
1
);
}
},
created
:
function
(){
this
.
chosenAddressId
=
this
.
$route
.
query
.
id
;
this
.
isSelect
=
this
.
$route
.
query
.
id
>
0
;
GetAddressList
().
then
(
response
=>
{
this
.
list
=
response
;
})
created
:
function
()
{
this
.
chosenAddressId
=
this
.
$route
.
query
.
id
;
this
.
isSelect
=
this
.
$route
.
query
.
id
>
0
;
GetAddressList
().
then
(
response
=>
{
this
.
list
=
response
.
map
(
item
=>
{
// convert data
return
{
...
item
,
tel
:
item
.
mobile
,
}
});
})
}
}
}
</
script
>
<
style
lang=
"less"
>
.hideselect
{
.van-radio__input{
display: none;
.hideselect
{
.van-radio__input
{
display: none;
}
}
}
</
style
>
user/user-application/src/main/java/cn/iocoder/mall/user/application/controller/users/UserAddressController.java
浏览文件 @
20734218
...
...
@@ -30,19 +30,19 @@ public class UserAddressController {
@PostMapping
(
"add"
)
@ApiOperation
(
value
=
"用户地址-添加"
)
public
CommonResult
addAddress
(
@
RequestBody
@
Validated
UserAddressAddPO
userAddressAddPO
)
{
public
CommonResult
addAddress
(
@Validated
UserAddressAddPO
userAddressAddPO
)
{
Integer
userId
=
UserSecurityContextHolder
.
getContext
().
getUserId
();
UserAddressAddDTO
userAddressAddDTO
=
UserAddressConvert
.
INSTANCE
.
convert
(
userAddressAddPO
);
userAddressAddDTO
.
setUserId
(
userId
);
userAddressAddDTO
.
setUserId
(
1
);
return
userAddressService
.
addAddress
(
userAddressAddDTO
);
}
@PutMapping
(
"update"
)
@ApiOperation
(
value
=
"用户地址-更新"
)
public
CommonResult
updateAddress
(
@
RequestBody
@
Validated
UserAddressUpdatePO
userAddressUpdatePO
)
{
public
CommonResult
updateAddress
(
@Validated
UserAddressUpdatePO
userAddressUpdatePO
)
{
Integer
userId
=
UserSecurityContextHolder
.
getContext
().
getUserId
();
UserAddressUpdateDTO
userAddressUpdateDTO
=
UserAddressConvert
.
INSTANCE
.
convert
(
userAddressUpdatePO
);
userAddressUpdateDTO
.
setUserId
(
userId
);
userAddressUpdateDTO
.
setUserId
(
1
);
return
userAddressService
.
updateAddress
(
userAddressUpdateDTO
);
}
...
...
@@ -50,7 +50,7 @@ public class UserAddressController {
@ApiOperation
(
value
=
"用户地址-删除"
)
public
CommonResult
removeAddress
(
@RequestParam
(
"id"
)
Integer
id
)
{
Integer
userId
=
UserSecurityContextHolder
.
getContext
().
getUserId
();
return
userAddressService
.
removeAddress
(
userId
,
id
);
return
userAddressService
.
removeAddress
(
1
,
id
);
}
@GetMapping
(
"list"
)
...
...
@@ -59,4 +59,11 @@ public class UserAddressController {
Integer
userId
=
UserSecurityContextHolder
.
getContext
().
getUserId
();
return
userAddressService
.
addressList
(
1
);
}
@GetMapping
(
"address"
)
@ApiOperation
(
value
=
"获取地址"
)
public
CommonResult
getAddress
(
@RequestParam
(
"id"
)
Integer
id
)
{
Integer
userId
=
UserSecurityContextHolder
.
getContext
().
getUserId
();
return
userAddressService
.
getAddress
(
1
,
id
);
}
}
user/user-service-api/src/main/java/cn/iocoder/mall/user/api/UserAddressService.java
浏览文件 @
20734218
...
...
@@ -22,4 +22,6 @@ public interface UserAddressService {
CommonResult
removeAddress
(
Integer
userId
,
Integer
addressId
);
CommonResult
<
List
<
UserAddressBO
>>
addressList
(
Integer
userId
);
CommonResult
<
UserAddressBO
>
getAddress
(
Integer
userId
,
Integer
id
);
}
user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserAddressBO.java
浏览文件 @
20734218
...
...
@@ -5,4 +5,96 @@ package cn.iocoder.mall.user.api.bo;
* @time 2019-04-06 13:28
*/
public
class
UserAddressBO
{
/**
* 编号
*/
private
Integer
id
;
/**
* 用户编号
*/
private
Integer
userId
;
/**
* 收件区域编号
*/
private
String
areaNo
;
/**
* 收件人名称
*/
private
String
name
;
/**
* 收件手机号
*/
private
String
mobile
;
/**
* 收件详细地址
*/
private
String
address
;
@Override
public
String
toString
()
{
return
"UserAddressBO{"
+
"id="
+
id
+
", userId="
+
userId
+
", areaNo='"
+
areaNo
+
'\''
+
", name='"
+
name
+
'\''
+
", mobile='"
+
mobile
+
'\''
+
", address='"
+
address
+
'\''
+
'}'
;
}
public
Integer
getId
()
{
return
id
;
}
public
UserAddressBO
setId
(
Integer
id
)
{
this
.
id
=
id
;
return
this
;
}
public
Integer
getUserId
()
{
return
userId
;
}
public
UserAddressBO
setUserId
(
Integer
userId
)
{
this
.
userId
=
userId
;
return
this
;
}
public
String
getAreaNo
()
{
return
areaNo
;
}
public
UserAddressBO
setAreaNo
(
String
areaNo
)
{
this
.
areaNo
=
areaNo
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
public
UserAddressBO
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
public
String
getMobile
()
{
return
mobile
;
}
public
UserAddressBO
setMobile
(
String
mobile
)
{
this
.
mobile
=
mobile
;
return
this
;
}
public
String
getAddress
()
{
return
address
;
}
public
UserAddressBO
setAddress
(
String
address
)
{
this
.
address
=
address
;
return
this
;
}
}
user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/convert/UserAddressConvert.java
浏览文件 @
20734218
...
...
@@ -27,6 +27,9 @@ public interface UserAddressConvert {
@Mappings
({})
UserAddressDO
convert
(
UserAddressUpdateDTO
userAddressUpdateDTO
);
@Mappings
({})
UserAddressBO
convert
(
UserAddressDO
userAddressDO
);
@Mappings
({})
List
<
UserAddressBO
>
convertUserAddressBOList
(
List
<
UserAddressDO
>
userAddressDOList
);
}
user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/service/UserAddressServiceImpl.java
浏览文件 @
20734218
...
...
@@ -44,7 +44,7 @@ public class UserAddressServiceImpl implements UserAddressService {
.
selectByUserIdAndId
(
userAddressAddDTO
.
getUserId
(),
userAddressAddDTO
.
getId
());
if
(
DeletedStatusEnum
.
DELETED_YES
.
getValue
().
equals
(
userAddress
.
getDeleted
()))
{
return
CommonResult
.
success
(
UserErrorCodeEnum
.
USER_ADDRESS_IS_DELETED
.
getCode
());
return
ServiceExceptionUtil
.
error
(
UserErrorCodeEnum
.
USER_ADDRESS_IS_DELETED
.
getCode
());
}
if
(
userAddress
==
null
)
{
...
...
@@ -89,4 +89,16 @@ public class UserAddressServiceImpl implements UserAddressService {
return
CommonResult
.
success
(
userAddressBOList
);
}
@Override
public
CommonResult
<
UserAddressBO
>
getAddress
(
Integer
userId
,
Integer
id
)
{
UserAddressDO
userAddress
=
userAddressMapper
.
selectByUserIdAndId
(
userId
,
id
);
if
(
DeletedStatusEnum
.
DELETED_YES
.
getValue
().
equals
(
userAddress
.
getDeleted
()))
{
return
ServiceExceptionUtil
.
error
(
UserErrorCodeEnum
.
USER_ADDRESS_IS_DELETED
.
getCode
());
}
UserAddressBO
userAddressBO
=
UserAddressConvert
.
INSTANCE
.
convert
(
userAddress
);
return
CommonResult
.
success
(
userAddressBO
);
}
}
user/user-service-impl/src/main/resources/mapper/UserAddress.xml
浏览文件 @
20734218
...
...
@@ -9,7 +9,8 @@
<insert
id=
"insert"
parameterType=
"UserAddressDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
INSERT INTO user_address (
user_id, area_no, `name`, mobile, address
user_id, area_no, `name`, mobile, address,
create_time, update_time, deleted
) VALUES (
#{userId}, #{areaNo}, #{name}, #{mobile}, #{address},
#{createTime}, #{updateTime}, #{deleted}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论