Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
1fa68d07
提交
1fa68d07
authored
7月 09, 2019
作者:
xiaofeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加用户商品展示和删除接口
上级
ef622fbf
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
253 行增加
和
4 行删除
+253
-4
UsersProductSpuCollectionController.java
...controller/users/UsersProductSpuCollectionController.java
+3
-4
UserFavoriteController.java
.../application/controller/users/UserFavoriteController.java
+46
-0
UserProductSpuCollectionsService.java
...coder/mall/user/api/UserProductSpuCollectionsService.java
+18
-0
UserProductSpuCollectionsPageBO.java
...der/mall/user/api/bo/UserProductSpuCollectionsPageBO.java
+30
-0
UserProductSpuCollectionsPageDTO.java
...r/mall/user/api/dto/UserProductSpuCollectionsPageDTO.java
+35
-0
UserProductSpuCollectionsMapper.java
...er/mall/user/biz/dao/UserProductSpuCollectionsMapper.java
+21
-0
UserProductSpuCollectionsServiceImpl.java
...ser/biz/service/UserProductSpuCollectionsServiceImpl.java
+58
-0
UserProductSpuCollectionsMapper.xml
...main/resources/mapper/UserProductSpuCollectionsMapper.xml
+42
-0
没有找到文件。
product/product-application/src/main/java/cn/iocoder/mall/product/application/controller/users/UsersProductSpuCollectionController.java
浏览文件 @
1fa68d07
...
@@ -30,11 +30,10 @@ public class UsersProductSpuCollectionController {
...
@@ -30,11 +30,10 @@ public class UsersProductSpuCollectionController {
@PostMapping
(
"/collection/{spuId}/{hasCollectionType}"
)
@PostMapping
(
"/collection/{spuId}/{hasCollectionType}"
)
@ApiOperation
(
"商品收藏"
)
@ApiOperation
(
"商品收藏"
)
//
@RequiresLogin
@RequiresLogin
public
CommonResult
<
Boolean
>
productSpuCollection
(
@PathVariable
(
"spuId"
)
Integer
spuId
,
public
CommonResult
<
Boolean
>
productSpuCollection
(
@PathVariable
(
"spuId"
)
Integer
spuId
,
@PathVariable
(
"hasCollectionType"
)
Integer
hasCollectionType
)
{
@PathVariable
(
"hasCollectionType"
)
Integer
hasCollectionType
)
{
// final Integer userId = UserSecurityContextHolder.getContext().getUserId();
final
Integer
userId
=
UserSecurityContextHolder
.
getContext
().
getUserId
();
return
success
(
productSpuCollectionService
.
productSpuCollection
(
spuId
,
hasCollectionType
,
userId
));
return
success
(
productSpuCollectionService
.
productSpuCollection
(
spuId
,
hasCollectionType
,
140
));
}
}
}
}
user/user-application/src/main/java/cn/iocoder/mall/user/application/controller/users/UserFavoriteController.java
0 → 100644
浏览文件 @
1fa68d07
package
cn
.
iocoder
.
mall
.
user
.
application
.
controller
.
users
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.user.api.UserProductSpuCollectionsService
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsPageBO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsPageDTO
;
import
cn.iocoder.mall.user.sdk.annotation.RequiresLogin
;
import
cn.iocoder.mall.user.sdk.context.UserSecurityContextHolder
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
/**
* 用户收藏
* @author xiaofeng
* @date 2019/07/07 11:06
* @version 1.0
*/
@RestController
@RequestMapping
(
"users/favorite"
)
@Api
(
"用户收藏"
)
public
class
UserFavoriteController
{
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.UserProductSpuCollectionsService.version}"
)
private
UserProductSpuCollectionsService
userProductSpuCollectionsService
;
@GetMapping
(
"page"
)
@RequiresLogin
@ApiOperation
(
"用户商品收藏列表"
)
public
CommonResult
<
UserProductSpuCollectionsPageBO
>
getUserProductSpuCollectionsPage
(
@Validated
UserProductSpuCollectionsPageDTO
userProductSpuCollectionsPageDTO
)
{
final
Integer
userId
=
UserSecurityContextHolder
.
getContext
().
getUserId
();
userProductSpuCollectionsPageDTO
.
setUserId
(
userId
);
return
userProductSpuCollectionsService
.
getUserProductSpuCollectionsPage
(
userProductSpuCollectionsPageDTO
);
}
@DeleteMapping
(
"remove"
)
@RequiresLogin
@ApiOperation
(
value
=
"用户商品收藏-删除"
)
public
CommonResult
<
Boolean
>
removeFavorite
(
@RequestParam
(
"spuId"
)
final
Integer
spuId
)
{
final
Integer
userId
=
UserSecurityContextHolder
.
getContext
().
getUserId
();
return
userProductSpuCollectionsService
.
deleteUserProductSpuCollections
(
userId
,
spuId
);
}
}
user/user-service-api/src/main/java/cn/iocoder/mall/user/api/UserProductSpuCollectionsService.java
浏览文件 @
1fa68d07
package
cn
.
iocoder
.
mall
.
user
.
api
;
package
cn
.
iocoder
.
mall
.
user
.
api
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsBO
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsBO
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsPageBO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsAddDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsAddDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsPageDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsUpdateDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsUpdateDTO
;
/**
/**
...
@@ -33,4 +36,19 @@ public interface UserProductSpuCollectionsService {
...
@@ -33,4 +36,19 @@ public interface UserProductSpuCollectionsService {
*/
*/
int
updateUserProductSpuCollections
(
UserProductSpuCollectionsUpdateDTO
userProductSpuCollectionsUpdateDTO
);
int
updateUserProductSpuCollections
(
UserProductSpuCollectionsUpdateDTO
userProductSpuCollectionsUpdateDTO
);
/**
* 获取用户收藏列表数据
* @param userProductSpuCollectionsPageDTO
* @return
*/
CommonResult
<
UserProductSpuCollectionsPageBO
>
getUserProductSpuCollectionsPage
(
UserProductSpuCollectionsPageDTO
userProductSpuCollectionsPageDTO
);
/**
* 删除收藏数据
* @param userId
* @param spuId
* @return
*/
CommonResult
<
Boolean
>
deleteUserProductSpuCollections
(
Integer
userId
,
Integer
spuId
);
}
}
user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserProductSpuCollectionsPageBO.java
0 → 100644
浏览文件 @
1fa68d07
package
cn
.
iocoder
.
mall
.
user
.
api
.
bo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 商品收藏分页
* @author xiaofeng
* @date 2019/07/06 18:37
* @version 1.0
*/
@Data
@Accessors
(
chain
=
true
)
public
class
UserProductSpuCollectionsPageBO
implements
Serializable
{
/**
* 返回的数据列表
*/
private
List
<
UserProductSpuCollectionsBO
>
list
;
/**
* 总量
*/
private
Integer
total
;
}
user/user-service-api/src/main/java/cn/iocoder/mall/user/api/dto/UserProductSpuCollectionsPageDTO.java
0 → 100644
浏览文件 @
1fa68d07
package
cn
.
iocoder
.
mall
.
user
.
api
.
dto
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 商品收藏分页参数
* @author xiaofeng
* @date 2019/07/06 18:40
* @version 1.0
*/
@Data
@Accessors
(
chain
=
true
)
public
class
UserProductSpuCollectionsPageDTO
implements
Serializable
{
/**
* 用户ID
*/
private
Integer
userId
;
/**
* 当前页
*/
@NotNull
(
message
=
"页码不能为空"
)
private
Integer
pageNo
;
/**
* 每页显示的条数
*/
@NotNull
(
message
=
"每页条数不能为空"
)
private
Integer
pageSize
;
}
user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/dao/UserProductSpuCollectionsMapper.java
浏览文件 @
1fa68d07
...
@@ -3,6 +3,9 @@ package cn.iocoder.mall.user.biz.dao;
...
@@ -3,6 +3,9 @@ package cn.iocoder.mall.user.biz.dao;
import
cn.iocoder.mall.user.biz.dataobject.UserProductSpuCollectionsDO
;
import
cn.iocoder.mall.user.biz.dataobject.UserProductSpuCollectionsDO
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
/**
* 用户_商品_收藏记录表
* 用户_商品_收藏记录表
...
@@ -25,4 +28,22 @@ public interface UserProductSpuCollectionsMapper extends BaseMapper<UserProductS
...
@@ -25,4 +28,22 @@ public interface UserProductSpuCollectionsMapper extends BaseMapper<UserProductS
return
selectOne
(
query
);
return
selectOne
(
query
);
}
}
/**
* 查询用户收藏列表
* @param userId
* @param offset
* @param limit
* @return
*/
List
<
UserProductSpuCollectionsDO
>
selectListByUser
(
@Param
(
"userId"
)
Integer
userId
,
@Param
(
"offset"
)
Integer
offset
,
@Param
(
"limit"
)
Integer
limit
);
/**
* 根据用户ID 查找总数
* @param userId
* @return
*/
Integer
selectCountByUser
(
Integer
userId
);
}
}
user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/service/UserProductSpuCollectionsServiceImpl.java
浏览文件 @
1fa68d07
package
cn
.
iocoder
.
mall
.
user
.
biz
.
service
;
package
cn
.
iocoder
.
mall
.
user
.
biz
.
service
;
import
cn.iocoder.common.framework.constant.DeletedStatusEnum
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.user.api.UserProductSpuCollectionsService
;
import
cn.iocoder.mall.user.api.UserProductSpuCollectionsService
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsBO
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsBO
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsPageBO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsAddDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsAddDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsPageDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsUpdateDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsUpdateDTO
;
import
cn.iocoder.mall.user.biz.convert.UserProductSpuCollectionsConvert
;
import
cn.iocoder.mall.user.biz.convert.UserProductSpuCollectionsConvert
;
import
cn.iocoder.mall.user.biz.dao.UserProductSpuCollectionsMapper
;
import
cn.iocoder.mall.user.biz.dao.UserProductSpuCollectionsMapper
;
import
cn.iocoder.mall.user.biz.dataobject.UserProductSpuCollectionsDO
;
import
cn.iocoder.mall.user.biz.dataobject.UserProductSpuCollectionsDO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* UserSkuCollectionsServiceImpl
* UserSkuCollectionsServiceImpl
...
@@ -44,5 +53,54 @@ public class UserProductSpuCollectionsServiceImpl implements UserProductSpuColle
...
@@ -44,5 +53,54 @@ public class UserProductSpuCollectionsServiceImpl implements UserProductSpuColle
.
updateById
(
UserProductSpuCollectionsConvert
.
INSTANCE
.
convert
(
userProductSpuCollectionsUpdateDTO
));
.
updateById
(
UserProductSpuCollectionsConvert
.
INSTANCE
.
convert
(
userProductSpuCollectionsUpdateDTO
));
}
}
@Override
public
CommonResult
<
UserProductSpuCollectionsPageBO
>
getUserProductSpuCollectionsPage
(
UserProductSpuCollectionsPageDTO
userProductSpuCollectionsPageDTO
)
{
final
int
offset
=
(
userProductSpuCollectionsPageDTO
.
getPageNo
()
-
1
)
*
userProductSpuCollectionsPageDTO
.
getPageSize
();
final
int
totalCount
=
this
.
userProductSpuCollectionsMapper
.
selectCountByUser
(
userProductSpuCollectionsPageDTO
.
getUserId
());
if
(
totalCount
==
0
)
{
return
CommonResult
.
success
(
new
UserProductSpuCollectionsPageBO
().
setList
(
Collections
.
emptyList
()).
setTotal
(
0
));
}
List
<
UserProductSpuCollectionsDO
>
list
=
userProductSpuCollectionsMapper
.
selectListByUser
(
userProductSpuCollectionsPageDTO
.
getUserId
(),
offset
,
userProductSpuCollectionsPageDTO
.
getPageSize
());
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
CommonResult
.
success
(
new
UserProductSpuCollectionsPageBO
().
setList
(
Collections
.
emptyList
()).
setTotal
(
totalCount
));
}
UserProductSpuCollectionsPageBO
userProductSpuCollectionsPageBO
=
new
UserProductSpuCollectionsPageBO
();
userProductSpuCollectionsPageBO
.
setList
(
UserProductSpuCollectionsConvert
.
INSTANCE
.
convert
(
list
));
// 查询分页总数
userProductSpuCollectionsPageBO
.
setTotal
(
totalCount
);
// 返回结果
return
CommonResult
.
success
(
userProductSpuCollectionsPageBO
);
}
/**
* 取消收藏
* @param userId
* @param spuId
* @return
*/
@Override
public
CommonResult
<
Boolean
>
deleteUserProductSpuCollections
(
final
Integer
userId
,
final
Integer
spuId
)
{
UserProductSpuCollectionsBO
userProductSpuCollectionsBO
=
this
.
getUserSpuCollectionsByUserIdAndSpuId
(
userId
,
spuId
);
int
result
=
0
;
if
(
userProductSpuCollectionsBO
!=
null
)
{
// 未取消收藏的数据
if
(
userProductSpuCollectionsBO
.
getDeleted
().
equals
(
DeletedStatusEnum
.
DELETED_NO
.
getValue
()))
{
UserProductSpuCollectionsUpdateDTO
userProductSpuCollectionsUpdateDTO
=
new
UserProductSpuCollectionsUpdateDTO
().
setId
(
userProductSpuCollectionsBO
.
getId
())
.
setUpdateTime
(
new
Date
()).
setDeleted
(
DeletedStatusEnum
.
DELETED_YES
.
getValue
());
result
=
this
.
updateUserProductSpuCollections
(
userProductSpuCollectionsUpdateDTO
);
}
}
return
CommonResult
.
success
(
result
>
0
?
Boolean
.
TRUE
:
Boolean
.
FALSE
);
}
}
}
user/user-service-impl/src/main/resources/mapper/UserProductSpuCollectionsMapper.xml
0 → 100644
浏览文件 @
1fa68d07
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.iocoder.mall.user.biz.dao.UserProductSpuCollectionsMapper"
>
<sql
id=
"FIELDS"
>
id, user_id, nickname, spu_id, spu_name,
spu_image, create_time, update_time,
deleted
</sql>
<select
id=
"selectById"
parameterType=
"Integer"
resultType=
"cn.iocoder.mall.user.biz.dataobject.UserProductSpuCollectionsDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM user_spu_collections
WHERE id = #{id}
AND deleted = 0
</select>
<select
id=
"selectListByUser"
resultType=
"cn.iocoder.mall.user.biz.dataobject.UserProductSpuCollectionsDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM user_spu_collections
<where>
user_id = #{userId} AND deleted = 0
</where>
ORDER BY sort ASC
<if
test=
"offset != null and limit != null"
>
LIMIT #{offset}, #{limit}
</if>
</select>
<select
id=
"selectCountByUser"
resultType=
"Integer"
>
SELECT
COUNT(1)
FROM user_spu_collections
<where>
user_id = #{userId} AND deleted = 0
</where>
</select>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论