第七步:整合MongDB(实现文档操作)

1 添加依赖
<!--MongDB相关依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2 修改SpringBoot配置文件
# MongDB配置
mongodb:
  host: localhost # mongodb的连接地址
  port: 27017 # mongodb的连接端口号
  database: mall-port # mongodb的连接的数据库
3 添加文档对象(会员浏览记录)
package com.hzf.mymall.domain;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

/**
 * @author:010980380
 * @date:2020-11-3
 * @verison:1.0.0
 * @description:用户商品浏览历史记录
 */
@Data
@Document
public class MemberReadHistory {
    @Id
    private String id;

    @Indexed
    private Long memberId;
    private String memberNickname;
    private String memberIcon;

    @Indexed
    private Long productId;
    private String productName;
    private String productPic;
    private String productSubTitle;
    private String productPrice;
    private Date createTime;

}
4 添加Repository接口用于操作MongDB(会员浏览记录)
package com.hzf.mymall.repository;

import com.hzf.mymall.domain.MemberReadHistory;
import org.springframework.data.mongodb.repository.MongoRepository;

import java.util.List;

/**
 * @author:010980380
 * @date:2020-11-3
 * @verison:1.0.0
 * @description:会员浏览历史记录MongDB操作类
 */

public interface MemberReadHistoryRepository extends MongoRepository<MemberReadHistory,String> {


    /**
     * 根据会员id按时间倒序获取浏览记录
     * @param memberId
     * @return List<MemberReadHistory>
     * @author huangzifan
     * @since 2020-11-3 9:35
     */
    List<MemberReadHistory> findByMemberIdOrderByCreateTimeDesc(Long memberId);

}
5 添加Service接口
package com.hzf.mymall.service;

import com.hzf.mymall.domain.MemberReadHistory;

import java.util.List;

/**
 * @author:010980380
 * @date:2020-11-3
 * @verison:1.0.0
 * @description:会员浏览记录管理Service
 */

public interface MemberReadHistoryService {

    /**
     * 创建浏览记录
     * @param memberReadHistory
     * @return int
     * @author huangzifan
     * @since 2020-11-3 9:38
     */
    int create(MemberReadHistory memberReadHistory);

    /**
     * 批量删除浏览记录
     * @param id
     * @return int
     * @author huangzifan
     * @since 2020-11-3 9:39
     */
    int delete(List<String> id);

    /**
     * 获取用户浏览记录
     * @param memberId
     * @return java.util.List<com.hzf.mymall.domain.MemberReadHistory>
     * @author huangzifan
     * @since 2020-11-3 9:39
     */
    List<MemberReadHistory> list(Long memberId);


}
6 实现Service接口
package com.hzf.mymall.service.impl;

import com.hzf.mymall.domain.MemberReadHistory;
import com.hzf.mymall.repository.MemberReadHistoryRepository;
import com.hzf.mymall.service.MemberReadHistoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author:010980380
 * @date:2020-11-3
 * @verison:1.0.0
 * @description:会员浏览记录管理Service
 */
@Service
public class MemberreadHistoryServiceImpl implements MemberReadHistoryService {

    @Autowired
    private MemberReadHistoryRepository memberReadHistoryRepository;


    @Override
    public int create(MemberReadHistory memberReadHistory) {
        memberReadHistory.setId(null);
        memberReadHistory.setCreateTime(new Date());
        memberReadHistoryRepository.save(memberReadHistory);
        return 1;
    }

    @Override
    public int delete(List<String> ids) {
        List<MemberReadHistory> deleteList = new ArrayList<>();
        for (String id:
             ids) {
            MemberReadHistory memberReadHistory = new MemberReadHistory();
            memberReadHistory.setId(id);
            deleteList.add(memberReadHistory);
        }
        memberReadHistoryRepository.deleteAll(deleteList);
        return ids.size();
    }

    @Override
    public List<MemberReadHistory> list(Long memberId) {
        return memberReadHistoryRepository.findByMemberIdOrderByCreateTimeDesc(memberId);
    }
}
7 添加Controller接口
package com.hzf.mymall.controller;

import com.hzf.mymall.common.CommonResult;
import com.hzf.mymall.domain.MemberReadHistory;
import com.hzf.mymall.service.MemberReadHistoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
 * @author:010980380
 * @date:2020-11-3
 * @verison:1.0.0
 * @description:会员浏览记录管理Controller
 */
@Api(tags = "MemberReadHistoryController",description = "会员浏览记录管理")
@Controller
@RequestMapping("member/readHistory")
public class MemberReadHistoryController {

    @Autowired
    private MemberReadHistoryService memberReadHistoryService;


    @ResponseBody
    @ApiOperation("创建浏览记录")
    @RequestMapping(value = "/create",method = RequestMethod.POST)
    public CommonResult create(@RequestBody MemberReadHistory memberReadHistory){
        int count = memberReadHistoryService.create(memberReadHistory);
        if(count > 0){
            return CommonResult.success(count);
        }else{
            return CommonResult.failed();
        }
    }

    @ResponseBody
    @ApiOperation(value = "删除浏览记录",notes = "可以进行批量删除")
    @RequestMapping(value = "/delete",method = RequestMethod.POST)
    public CommonResult delete(@RequestParam("ids") List<String> ids){
        int count = memberReadHistoryService.delete(ids);
        if(count > 0){
            return CommonResult.success(count);
        }else {
            return CommonResult.failed();
        }
    }

    @ResponseBody
    @ApiOperation("查询浏览记录")
    @RequestMapping(value = "list",method = RequestMethod.GET)
    public CommonResult list(Long memberId){
        List<MemberReadHistory> memberReadHistoryList = memberReadHistoryService.list(memberId);
        return CommonResult.success(memberReadHistoryList);
    }
}
8 启动项目,验证接口

先进行浏览历史记录的创建,可以看到已经创建成功。

会员浏览历史记录create

会员浏览历史记录create成功

接下来对会员浏览历史记录进行查询。

查询会员浏览历史记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值