添加用户商品展示和删除接口

This commit is contained in:
xiaofeng
2019-07-09 21:43:04 +08:00
parent ef622fbf95
commit 1fa68d070b
8 changed files with 253 additions and 4 deletions

View File

@@ -3,6 +3,9 @@ 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;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 用户_商品_收藏记录表
@@ -25,4 +28,22 @@ public interface UserProductSpuCollectionsMapper extends BaseMapper<UserProductS
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);
}

View File

@@ -1,14 +1,23 @@
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.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.UserProductSpuCollectionsPageDTO;
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;
import org.springframework.util.CollectionUtils;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* UserSkuCollectionsServiceImpl
@@ -44,5 +53,54 @@ public class UserProductSpuCollectionsServiceImpl implements UserProductSpuColle
.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);
}
}

View File

@@ -0,0 +1,42 @@
<?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>