Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
5c2c4da6
提交
5c2c4da6
authored
7月 02, 2019
作者:
xiaofeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加商品收藏
上级
41cd57df
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
555 行增加
和
0 行删除
+555
-0
UserProductSpuCollectionsService.java
...coder/mall/user/api/UserProductSpuCollectionsService.java
+36
-0
UserProductSpuCollectionsBO.java
...iocoder/mall/user/api/bo/UserProductSpuCollectionsBO.java
+64
-0
UserProductSpuCollectionsAddDTO.java
...er/mall/user/api/dto/UserProductSpuCollectionsAddDTO.java
+65
-0
UserProductSpuCollectionsUpdateDTO.java
...mall/user/api/dto/UserProductSpuCollectionsUpdateDTO.java
+35
-0
pom.xml
user/user-service-impl/pom.xml
+12
-0
UserProductSpuCollectionsConvert.java
...ll/user/biz/convert/UserProductSpuCollectionsConvert.java
+66
-0
UserProductSpuCollectionsMapper.java
...er/mall/user/biz/dao/UserProductSpuCollectionsMapper.java
+28
-0
UserProductSpuCollectionsDO.java
...mall/user/biz/dataobject/UserProductSpuCollectionsDO.java
+69
-0
UserProductSpuCollectionsConsumer.java
...r/mall/user/biz/mq/UserProductSpuCollectionsConsumer.java
+124
-0
UserProductSpuCollectionsServiceImpl.java
...ser/biz/service/UserProductSpuCollectionsServiceImpl.java
+48
-0
application.yaml
...r-service-impl/src/main/resources/config/application.yaml
+8
-0
没有找到文件。
user/user-service-api/src/main/java/cn/iocoder/mall/user/api/UserProductSpuCollectionsService.java
0 → 100644
浏览文件 @
5c2c4da6
package
cn
.
iocoder
.
mall
.
user
.
api
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsBO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsAddDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsUpdateDTO
;
/**
* UserProductSpuCollectionsService
* @author xiaofeng
* @date 2019/07/01 20:27
* @version 1.0
*/
public
interface
UserProductSpuCollectionsService
{
/**
* 添加商品收藏
* @return
*/
int
addUserSkuCollections
(
UserProductSpuCollectionsAddDTO
userProductSpuCollectionsAddDTO
);
/**
* 获取用户商品收藏
* @param userId 用户ID
* @param spuId 商品ID
* @return
*/
UserProductSpuCollectionsBO
getUserSpuCollectionsByUserIdAndSpuId
(
Integer
userId
,
Integer
spuId
);
/**
* 取消商品收藏
* @param userProductSpuCollectionsUpdateDTO
* @return
*/
int
updateUserProductSpuCollections
(
UserProductSpuCollectionsUpdateDTO
userProductSpuCollectionsUpdateDTO
);
}
user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserProductSpuCollectionsBO.java
0 → 100644
浏览文件 @
5c2c4da6
package
cn
.
iocoder
.
mall
.
user
.
api
.
bo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 用户_商品_收藏记录表
* @author xiaofeng
* @date 2019-07-01 20:23:30
*/
@Data
@Accessors
(
chain
=
true
)
public
class
UserProductSpuCollectionsBO
implements
Serializable
{
/**
* id自增长
*/
private
Integer
id
;
/**
* 用户id
*/
private
Integer
userId
;
/**
* 用户名称
*/
private
String
nickname
;
/**
* 商品id
*/
private
Integer
spuId
;
/**
* 商品名字
*/
private
String
spuName
;
/**
* 图片名字
*/
private
String
spuImage
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 删除状态
*/
private
Integer
deleted
;
}
user/user-service-api/src/main/java/cn/iocoder/mall/user/api/dto/UserProductSpuCollectionsAddDTO.java
0 → 100644
浏览文件 @
5c2c4da6
package
cn
.
iocoder
.
mall
.
user
.
api
.
dto
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 添加商品收藏参数
* @author xiaofeng
* @date 2019/07/01 20:38
* @version 1.0
*/
@Data
@Accessors
(
chain
=
true
)
public
class
UserProductSpuCollectionsAddDTO
implements
Serializable
{
/**
* id自增长
*/
private
Integer
id
;
/**
* 用户id
*/
private
Integer
userId
;
/**
* 用户名称
*/
private
String
nickname
;
/**
* 商品id
*/
private
Integer
spuId
;
/**
* 商品名字
*/
private
String
spuName
;
/**
* 图片名字
*/
private
String
spuImage
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 删除状态
*/
private
Integer
deleted
;
}
user/user-service-api/src/main/java/cn/iocoder/mall/user/api/dto/UserProductSpuCollectionsUpdateDTO.java
0 → 100644
浏览文件 @
5c2c4da6
package
cn
.
iocoder
.
mall
.
user
.
api
.
dto
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 更新商品收藏参数
* @author xiaofeng
* @date 2019/07/01 20:38
* @version 1.0
*/
@Data
@Accessors
(
chain
=
true
)
public
class
UserProductSpuCollectionsUpdateDTO
implements
Serializable
{
/**
* id自增长
*/
private
Integer
id
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 删除状态
*/
private
Integer
deleted
;
}
user/user-service-impl/pom.xml
浏览文件 @
5c2c4da6
...
...
@@ -17,6 +17,12 @@
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
product-service-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- DB 相关 -->
<dependency>
<groupId>
mysql
</groupId>
...
...
@@ -67,6 +73,12 @@
<artifactId>
curator-framework
</artifactId>
</dependency>
<!-- MQ 相关 -->
<dependency>
<groupId>
org.apache.rocketmq
</groupId>
<artifactId>
rocketmq-spring-boot-starter
</artifactId>
</dependency>
</dependencies>
<build>
...
...
user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/convert/UserProductSpuCollectionsConvert.java
0 → 100644
浏览文件 @
5c2c4da6
package
cn
.
iocoder
.
mall
.
user
.
biz
.
convert
;
import
cn.iocoder.mall.product.api.message.ProductSpuCollectionMessage
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsBO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsAddDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsUpdateDTO
;
import
cn.iocoder.mall.user.biz.dataobject.UserProductSpuCollectionsDO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
/**
* 用户_商品_收藏记录表
*
* @author xiaofeng
* @date 2019-07-01 20:23:30
*/
@Mapper
public
interface
UserProductSpuCollectionsConvert
{
UserProductSpuCollectionsConvert
INSTANCE
=
Mappers
.
getMapper
(
UserProductSpuCollectionsConvert
.
class
);
/**
* DTO convert DO
* @param userSkuCollectionsAddDTO
* @return
*/
@Mappings
({})
UserProductSpuCollectionsDO
convert
(
UserProductSpuCollectionsAddDTO
userSkuCollectionsAddDTO
);
/**
* update DTO convert DO
* @param userProductSpuCollectionsUpdateDTO
* @return
*/
@Mappings
({})
UserProductSpuCollectionsDO
convert
(
UserProductSpuCollectionsUpdateDTO
userProductSpuCollectionsUpdateDTO
);
/**
* DO Convert BO
* @param userSkuCollectionsDO
* @return
*/
@Mappings
({})
UserProductSpuCollectionsBO
convert
(
UserProductSpuCollectionsDO
userSkuCollectionsDO
);
/**
* DO List convert BO LIST
* @param userSkuCollectionsDOS
* @return
*/
@Mappings
({})
List
<
UserProductSpuCollectionsBO
>
convert
(
List
<
UserProductSpuCollectionsDO
>
userSkuCollectionsDOS
);
/**
* 消处数据转换
* @param productSpuCollectionMessage
* @return
*/
@Mappings
({})
UserProductSpuCollectionsAddDTO
convert
(
ProductSpuCollectionMessage
productSpuCollectionMessage
);
}
user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/dao/UserProductSpuCollectionsMapper.java
0 → 100644
浏览文件 @
5c2c4da6
package
cn
.
iocoder
.
mall
.
user
.
biz
.
dao
;
import
cn.iocoder.mall.user.biz.dataobject.UserProductSpuCollectionsDO
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* 用户_商品_收藏记录表
*
* @author xiaofeng
* @date 2019-07-01 20:23:30
*/
public
interface
UserProductSpuCollectionsMapper
extends
BaseMapper
<
UserProductSpuCollectionsDO
>
{
/**
* 根据用户id 和 spuId 查找用户商品收藏
* @param userId
* @param spuId
* @return
*/
default
UserProductSpuCollectionsDO
getUserSpuCollectionsByUserIdAndSpuId
(
final
Integer
userId
,
final
Integer
spuId
)
{
QueryWrapper
<
UserProductSpuCollectionsDO
>
query
=
new
QueryWrapper
<
UserProductSpuCollectionsDO
>()
.
eq
(
"user_id"
,
userId
).
eq
(
"spu_id"
,
spuId
);
return
selectOne
(
query
);
}
}
user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/dataobject/UserProductSpuCollectionsDO.java
0 → 100644
浏览文件 @
5c2c4da6
package
cn
.
iocoder
.
mall
.
user
.
biz
.
dataobject
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 用户_商品_收藏记录表
*
* @author xiaofeng
* @date 2019-07-01 20:23:30
*/
@TableName
(
"user_spu_collections"
)
@Data
@Accessors
(
chain
=
true
)
public
class
UserProductSpuCollectionsDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* id自增长
*/
private
Integer
id
;
/**
* 用户id
*/
private
Integer
userId
;
/**
* 用户名称
*/
private
String
nickname
;
/**
* 商品id
*/
private
Integer
spuId
;
/**
* 商品名字
*/
private
String
spuName
;
/**
* 图片名字
*/
private
String
spuImage
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 删除状态
*/
private
Integer
deleted
;
}
user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/mq/UserProductSpuCollectionsConsumer.java
0 → 100644
浏览文件 @
5c2c4da6
package
cn
.
iocoder
.
mall
.
user
.
biz
.
mq
;
import
cn.iocoder.common.framework.constant.DeletedStatusEnum
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
import
cn.iocoder.mall.product.api.message.ProductSpuCollectionMessage
;
import
cn.iocoder.mall.user.api.UserProductSpuCollectionsService
;
import
cn.iocoder.mall.user.api.UserService
;
import
cn.iocoder.mall.user.api.bo.UserBO
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsBO
;
import
cn.iocoder.mall.user.api.constant.UserErrorCodeEnum
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsAddDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsUpdateDTO
;
import
cn.iocoder.mall.user.biz.convert.UserProductSpuCollectionsConvert
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.rocketmq.spring.annotation.RocketMQMessageListener
;
import
org.apache.rocketmq.spring.core.RocketMQListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
/**
* 商品收藏 消费者
* @author xiaofeng
* @date 2019/07/02 19:57
* @version 1.0
*/
@Service
@RocketMQMessageListener
(
topic
=
ProductSpuCollectionMessage
.
TOPIC
,
consumerGroup
=
"product-spu-consumer-group-"
+
ProductSpuCollectionMessage
.
TOPIC
)
public
class
UserProductSpuCollectionsConsumer
implements
RocketMQListener
<
ProductSpuCollectionMessage
>
{
@Autowired
private
UserProductSpuCollectionsService
userProductSpuCollectionsService
;
@Autowired
private
UserService
userService
;
@Override
public
void
onMessage
(
ProductSpuCollectionMessage
productSpuCollectionMessage
)
{
UserBO
userBO
=
userService
.
getUser
(
productSpuCollectionMessage
.
getUserId
());
if
(
userBO
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
UserErrorCodeEnum
.
USER_NOT_EXISTS
.
getCode
());
}
// 收藏
if
(
productSpuCollectionMessage
.
getHasCollectionType
().
equals
(
1
))
{
this
.
saveUserProductSpuCollections
(
productSpuCollectionMessage
,
userBO
.
getNickname
());
}
else
if
(
productSpuCollectionMessage
.
getHasCollectionType
().
equals
(
2
))
{
// 取消收藏
this
.
deleteUserProductSpuCollections
(
productSpuCollectionMessage
.
getUserId
(),
productSpuCollectionMessage
.
getSpuId
());
}
}
/**
* 保存商品收藏
* @param productSpuCollectionMessage
* @param nickname
* @return
*/
private
int
saveUserProductSpuCollections
(
final
ProductSpuCollectionMessage
productSpuCollectionMessage
,
final
String
nickname
)
{
int
result
=
0
;
UserProductSpuCollectionsBO
userProductSpuCollectionsBO
=
this
.
userProductSpuCollectionsService
.
getUserSpuCollectionsByUserIdAndSpuId
(
productSpuCollectionMessage
.
getUserId
(),
productSpuCollectionMessage
.
getSpuId
());
if
(
userProductSpuCollectionsBO
==
null
)
{
UserProductSpuCollectionsAddDTO
userProductSpuCollectionsAddDTO
=
UserProductSpuCollectionsConvert
.
INSTANCE
.
convert
(
productSpuCollectionMessage
);
userProductSpuCollectionsAddDTO
.
setNickname
(
StringUtils
.
isEmpty
(
nickname
)
?
""
:
nickname
);
userProductSpuCollectionsAddDTO
.
setCreateTime
(
new
Date
());
userProductSpuCollectionsAddDTO
.
setDeleted
(
DeletedStatusEnum
.
DELETED_NO
.
getValue
());
result
=
userProductSpuCollectionsService
.
addUserSkuCollections
(
userProductSpuCollectionsAddDTO
);
}
else
{
// 存在重新收藏
if
(
userProductSpuCollectionsBO
.
getDeleted
().
equals
(
DeletedStatusEnum
.
DELETED_YES
.
getValue
()))
{
UserProductSpuCollectionsUpdateDTO
userProductSpuCollectionsUpdateDTO
=
this
.
setUserProductSpuCollectionsUpdateDTO
(
userProductSpuCollectionsBO
.
getId
(),
DeletedStatusEnum
.
DELETED_NO
);
result
=
this
.
userProductSpuCollectionsService
.
updateUserProductSpuCollections
(
userProductSpuCollectionsUpdateDTO
);
}
}
return
result
;
}
/**
* 取消收藏
* @param userId
* @param spuId
* @return
*/
private
int
deleteUserProductSpuCollections
(
final
Integer
userId
,
final
Integer
spuId
)
{
UserProductSpuCollectionsBO
userProductSpuCollectionsBO
=
this
.
userProductSpuCollectionsService
.
getUserSpuCollectionsByUserIdAndSpuId
(
userId
,
spuId
);
int
result
=
0
;
if
(
userProductSpuCollectionsBO
!=
null
)
{
// 未取消收藏的数据
if
(
userProductSpuCollectionsBO
.
getDeleted
().
equals
(
DeletedStatusEnum
.
DELETED_NO
.
getValue
()))
{
UserProductSpuCollectionsUpdateDTO
userProductSpuCollectionsUpdateDTO
=
this
.
setUserProductSpuCollectionsUpdateDTO
(
userProductSpuCollectionsBO
.
getId
(),
DeletedStatusEnum
.
DELETED_YES
);
result
=
this
.
userProductSpuCollectionsService
.
updateUserProductSpuCollections
(
userProductSpuCollectionsUpdateDTO
);
}
}
return
result
;
}
/**
* 设置更新值
* @param id
* @param deletedStatusEnum
* @return
*/
private
UserProductSpuCollectionsUpdateDTO
setUserProductSpuCollectionsUpdateDTO
(
final
Integer
id
,
final
DeletedStatusEnum
deletedStatusEnum
)
{
return
new
UserProductSpuCollectionsUpdateDTO
().
setId
(
id
).
setUpdateTime
(
new
Date
())
.
setDeleted
(
deletedStatusEnum
.
getValue
());
}
}
user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/service/UserProductSpuCollectionsServiceImpl.java
0 → 100644
浏览文件 @
5c2c4da6
package
cn
.
iocoder
.
mall
.
user
.
biz
.
service
;
import
cn.iocoder.mall.user.api.UserProductSpuCollectionsService
;
import
cn.iocoder.mall.user.api.bo.UserProductSpuCollectionsBO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsAddDTO
;
import
cn.iocoder.mall.user.api.dto.UserProductSpuCollectionsUpdateDTO
;
import
cn.iocoder.mall.user.biz.convert.UserProductSpuCollectionsConvert
;
import
cn.iocoder.mall.user.biz.dao.UserProductSpuCollectionsMapper
;
import
cn.iocoder.mall.user.biz.dataobject.UserProductSpuCollectionsDO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* UserSkuCollectionsServiceImpl
* @author xiaofeng
* @date 2019/07/01 21:02
* @version 1.0
*/
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.UserProductSpuCollectionsService.version}"
)
public
class
UserProductSpuCollectionsServiceImpl
implements
UserProductSpuCollectionsService
{
@Autowired
private
UserProductSpuCollectionsMapper
userProductSpuCollectionsMapper
;
@Override
public
int
addUserSkuCollections
(
UserProductSpuCollectionsAddDTO
userProductSpuCollectionsAddDTO
)
{
return
userProductSpuCollectionsMapper
.
insert
(
UserProductSpuCollectionsConvert
.
INSTANCE
.
convert
(
userProductSpuCollectionsAddDTO
));
}
@Override
public
UserProductSpuCollectionsBO
getUserSpuCollectionsByUserIdAndSpuId
(
Integer
userId
,
Integer
spuId
)
{
UserProductSpuCollectionsDO
userProductSpuCollectionsDO
=
userProductSpuCollectionsMapper
.
getUserSpuCollectionsByUserIdAndSpuId
(
userId
,
spuId
);
return
UserProductSpuCollectionsConvert
.
INSTANCE
.
convert
(
userProductSpuCollectionsDO
);
}
@Override
public
int
updateUserProductSpuCollections
(
UserProductSpuCollectionsUpdateDTO
userProductSpuCollectionsUpdateDTO
)
{
return
userProductSpuCollectionsMapper
.
updateById
(
UserProductSpuCollectionsConvert
.
INSTANCE
.
convert
(
userProductSpuCollectionsUpdateDTO
));
}
}
user/user-service-impl/src/main/resources/config/application.yaml
浏览文件 @
5c2c4da6
...
...
@@ -39,6 +39,14 @@ dubbo:
version
:
1.0.0
UserService
:
version
:
1.0.0
UserProductSpuCollectionsService
:
version
:
1.0.0
consumer
:
OAuth2Service
:
version
:
1.0.0
# rocketmq
rocketmq
:
name-server
:
127.0.0.1:9876
producer
:
group
:
user-producer-spu-collection-group
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论