Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
ef622fbf
提交
ef622fbf
authored
7月 06, 2019
作者:
zhenxianyimeng
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of gitee.com:zhijiantianya/onemall
上级
aa42de21
ab043828
隐藏空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
739 行增加
和
1 行删除
+739
-1
README.md
README.md
+1
-0
功能列表-H5 商城.md
docs/guides/功能列表/功能列表-H5 商城.md
+1
-1
mall_user.sql
docs/sql/mall_user.sql
+19
-0
UsersProductSpuCollectionController.java
...controller/users/UsersProductSpuCollectionController.java
+40
-0
ProductSpuCollectionService.java
...iocoder/mall/product/api/ProductSpuCollectionService.java
+19
-0
ProductSpuCollectionMessage.java
...mall/product/api/message/ProductSpuCollectionMessage.java
+46
-0
ProductSpuCollectionServiceImpl.java
...mall/product/service/ProductSpuCollectionServiceImpl.java
+56
-0
application.yaml
...t-service-impl/src/main/resources/config/application.yaml
+2
-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
没有找到文件。
README.md
浏览文件 @
ef622fbf
...
@@ -32,6 +32,7 @@
...
@@ -32,6 +32,7 @@
6.
会员资料 @nengjie
6.
会员资料 @nengjie
7.
拼团购买 @大太阳
7.
拼团购买 @大太阳
8.
部门管理 @Tprotect曦
8.
部门管理 @Tprotect曦
9.
商品收藏 @笑笑生
# 演示
# 演示
...
...
docs/guides/功能列表/功能列表-H5 商城.md
浏览文件 @
ef622fbf
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
-
[
x
]
商品列表(基于分类)
-
[
x
]
商品列表(基于分类)
-
[
]
商品列表(基于促销活动)
-
[
]
商品列表(基于促销活动)
-
[
x
]
商品详情
-
[
x
]
商品详情
-
[
]
商品收藏
【待认领】
-
[
]
商品收藏
@笑笑生
-
订单相关
-
订单相关
-
[
x
]
下单(直接购买)
-
[
x
]
下单(直接购买)
-
[
x
]
下单(购物车购买)
-
[
x
]
下单(购物车购买)
...
...
docs/sql/mall_user.sql
浏览文件 @
ef622fbf
...
@@ -128,4 +128,23 @@ CREATE TABLE `users` (
...
@@ -128,4 +128,23 @@ CREATE TABLE `users` (
UNIQUE
KEY
`idx_uid`
(
`id`
)
USING
BTREE
UNIQUE
KEY
`idx_uid`
(
`id`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
108
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_bin
;
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
108
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_bin
;
-- ----------------------------
-- Table structure for user_spu_collections
-- ----------------------------
DROP
TABLE
IF
EXISTS
`user_spu_collections`
;
CREATE
TABLE
`user_spu_collections`
(
`id`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
COMMENT
'id自增长'
,
`user_id`
int
(
11
)
NOT
NULL
COMMENT
'用户id'
,
`nickname`
varchar
(
50
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'用户名称'
,
`spu_id`
int
(
11
)
NOT
NULL
COMMENT
'商品id'
,
`spu_name`
varchar
(
50
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'商品名字'
,
`spu_image`
varchar
(
250
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'图片名字'
,
`create_time`
datetime
(
0
)
NOT
NULL
COMMENT
'创建时间'
,
`update_time`
datetime
(
0
)
NULL
DEFAULT
NULL
COMMENT
'更新时间'
,
`deleted`
smallint
(
2
)
NOT
NULL
COMMENT
'删除状态'
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
4
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
COMMENT
=
'用户_商品_收藏记录表'
ROW_FORMAT
=
Dynamic
;
SET
FOREIGN_KEY_CHECKS
=
1
;
SET
FOREIGN_KEY_CHECKS
=
1
;
product/product-application/src/main/java/cn/iocoder/mall/product/application/controller/users/UsersProductSpuCollectionController.java
0 → 100644
浏览文件 @
ef622fbf
package
cn
.
iocoder
.
mall
.
product
.
application
.
controller
.
users
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.product.api.ProductSpuCollectionService
;
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.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
/**
* 商品收藏接口
* @author xiaofeng
* @date 2019/07/01 23:21
* @version 1.0
*/
@RestController
@RequestMapping
(
"users/spu"
)
@Api
(
"商品收藏"
)
public
class
UsersProductSpuCollectionController
{
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductSpuCollectionService.version}"
)
private
ProductSpuCollectionService
productSpuCollectionService
;
@PostMapping
(
"/collection/{spuId}/{hasCollectionType}"
)
@ApiOperation
(
"商品收藏"
)
// @RequiresLogin
public
CommonResult
<
Boolean
>
productSpuCollection
(
@PathVariable
(
"spuId"
)
Integer
spuId
,
@PathVariable
(
"hasCollectionType"
)
Integer
hasCollectionType
)
{
// final Integer userId = UserSecurityContextHolder.getContext().getUserId();
return
success
(
productSpuCollectionService
.
productSpuCollection
(
spuId
,
hasCollectionType
,
140
));
}
}
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductSpuCollectionService.java
0 → 100644
浏览文件 @
ef622fbf
package
cn
.
iocoder
.
mall
.
product
.
api
;
/**
* 商品收藏
* @author xiaofeng
* @date 2019/07/01 23:13
* @version 1.0
*/
public
interface
ProductSpuCollectionService
{
/**
* 商品收藏
* @param spuId
* @param hasCollectionType 1 商品收藏 2 取消收藏
* @param userId
* @return
*/
boolean
productSpuCollection
(
Integer
spuId
,
Integer
hasCollectionType
,
Integer
userId
);
}
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/message/ProductSpuCollectionMessage.java
0 → 100644
浏览文件 @
ef622fbf
package
cn
.
iocoder
.
mall
.
product
.
api
.
message
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 商品收藏或取消收藏时发送消息
* @author xiaofeng
* @date 2019/07/01 22:33
* @version 1.0
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductSpuCollectionMessage
{
public
static
final
String
TOPIC
=
"ProductSpuCollection"
;
/**
* SPU 编号
*/
private
Integer
spuId
;
/**
* 用户ID
*/
private
Integer
userId
;
// ========== 基本信息 =========
/**
* SPU 名字
*/
private
String
spuName
;
/**
* 商品图片
*/
private
String
spuImage
;
/**
* 1 收藏 2 取消
*/
private
Integer
hasCollectionType
;
}
product/product-service-impl/src/main/java/cn/iocoder/mall/product/service/ProductSpuCollectionServiceImpl.java
0 → 100644
浏览文件 @
ef622fbf
package
cn
.
iocoder
.
mall
.
product
.
service
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
import
cn.iocoder.mall.product.api.ProductSpuCollectionService
;
import
cn.iocoder.mall.product.api.constant.ProductErrorCodeEnum
;
import
cn.iocoder.mall.product.api.message.ProductSpuCollectionMessage
;
import
cn.iocoder.mall.product.dao.ProductSpuMapper
;
import
cn.iocoder.mall.product.dataobject.ProductSpuDO
;
import
org.apache.rocketmq.spring.core.RocketMQTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
/**
* ProductSpuCollectionServiceImpl
* @author xiaofeng
* @date 2019/07/01 23:14
* @version 1.0
*/
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductSpuCollectionService.version}"
)
public
class
ProductSpuCollectionServiceImpl
implements
ProductSpuCollectionService
{
@Autowired
private
ProductSpuMapper
productSpuMapper
;
@Resource
private
RocketMQTemplate
rocketMQTemplate
;
@Override
public
boolean
productSpuCollection
(
Integer
spuId
,
Integer
hasCollectionType
,
Integer
userId
)
{
ProductSpuDO
productSpuDO
=
this
.
productSpuMapper
.
selectById
(
spuId
);
// 校验 Spu 是否存在
if
(
productSpuDO
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
ProductErrorCodeEnum
.
PRODUCT_SPU_NOT_EXISTS
.
getCode
());
}
this
.
sendProductSpuCollectionMessage
(
productSpuDO
,
hasCollectionType
,
userId
);
return
Boolean
.
TRUE
;
}
/**
* 发送商品收藏或取消消息
* @param productSpuDO
* @param hasCollectionType
*/
private
void
sendProductSpuCollectionMessage
(
final
ProductSpuDO
productSpuDO
,
final
Integer
hasCollectionType
,
final
Integer
userId
)
{
ProductSpuCollectionMessage
productSpuCollectionMessage
=
new
ProductSpuCollectionMessage
()
.
setSpuId
(
productSpuDO
.
getId
()).
setSpuName
(
productSpuDO
.
getName
())
.
setSpuImage
(
productSpuDO
.
getPicUrls
()).
setHasCollectionType
(
hasCollectionType
)
.
setUserId
(
userId
);
rocketMQTemplate
.
convertAndSend
(
ProductSpuCollectionMessage
.
TOPIC
,
productSpuCollectionMessage
);
}
}
product/product-service-impl/src/main/resources/config/application.yaml
浏览文件 @
ef622fbf
...
@@ -35,6 +35,8 @@ dubbo:
...
@@ -35,6 +35,8 @@ dubbo:
version
:
1.0.0
version
:
1.0.0
OAuth2Service
:
OAuth2Service
:
version
:
1.0.0
version
:
1.0.0
ProductSpuCollectionService
:
version
:
1.0.0
# rocketmq
# rocketmq
rocketmq
:
rocketmq
:
...
...
user/user-service-api/src/main/java/cn/iocoder/mall/user/api/UserProductSpuCollectionsService.java
0 → 100644
浏览文件 @
ef622fbf
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
浏览文件 @
ef622fbf
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
浏览文件 @
ef622fbf
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
浏览文件 @
ef622fbf
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
浏览文件 @
ef622fbf
...
@@ -17,6 +17,12 @@
...
@@ -17,6 +17,12 @@
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
product-service-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- DB 相关 -->
<!-- DB 相关 -->
<dependency>
<dependency>
<groupId>
mysql
</groupId>
<groupId>
mysql
</groupId>
...
@@ -67,6 +73,12 @@
...
@@ -67,6 +73,12 @@
<artifactId>
curator-framework
</artifactId>
<artifactId>
curator-framework
</artifactId>
</dependency>
</dependency>
<!-- MQ 相关 -->
<dependency>
<groupId>
org.apache.rocketmq
</groupId>
<artifactId>
rocketmq-spring-boot-starter
</artifactId>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/convert/UserProductSpuCollectionsConvert.java
0 → 100644
浏览文件 @
ef622fbf
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
浏览文件 @
ef622fbf
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
浏览文件 @
ef622fbf
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
浏览文件 @
ef622fbf
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
浏览文件 @
ef622fbf
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
浏览文件 @
ef622fbf
...
@@ -39,6 +39,14 @@ dubbo:
...
@@ -39,6 +39,14 @@ dubbo:
version
:
1.0.0
version
:
1.0.0
UserService
:
UserService
:
version
:
1.0.0
version
:
1.0.0
UserProductSpuCollectionsService
:
version
:
1.0.0
consumer
:
consumer
:
OAuth2Service
:
OAuth2Service
:
version
:
1.0.0
version
:
1.0.0
# rocketmq
rocketmq
:
name-server
:
127.0.0.1:9876
producer
:
group
:
user-producer-spu-collection-group
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论