计算机毕业设计 基于协同过滤算法的白酒销售系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系

👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
Java毕业设计项目~热门选题推荐《1000套》

目录

1.技术选型

2.数据库表结构

3.开发工具

4.功能

4.1【角色】

4.2【前台功能模块】

4.3【后台功能模块】

5.项目演示截图

5.1 首页

5.2 热卖酒水

5.3 登录

5.4 注册

5.5 个人中心

5.6 香型管理

5.7 热卖酒水管理

5.8 系统管理

5.9 在线客服

5.10  订单管理

6.数据库文件设计

7.核心代码 

7.1 热卖酒水Controller

7.2 热卖酒水Service

7.3 热卖酒水ServiceImpl

7.4 热卖酒水DAO

8.参考文档


1.技术选型

springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8

2.数据库表结构

13张 

3.开发工具

idea、navicat

4.功能

4.1【角色】

管理员、用户

4.2【前台功能模块】

  • 登录注册
  • 首页
  • 热卖酒水
  • 优惠资讯
  • 在线客服
  • 购物车
  • 个人中心
  • 后台管理

4.3【后台功能模块】

  • 登录
  • 首页
  • 个人中心
  • 用户管理
  • 香型管理
  • 热卖酒水管理
  • 系统管理
  • 订单管理

5.项目演示截图

5.1 首页

5.2 热卖酒水

 

5.3 登录

 

5.4 注册

 

5.5 个人中心

 

5.6 香型管理

 

5.7 热卖酒水管理

 

5.8 系统管理

 

5.9 在线客服

 

5.10  订单管理

6.数据库文件设计


CREATE TABLE `address` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `address` varchar(200) NOT NULL COMMENT '地址',
  `name` varchar(200) NOT NULL COMMENT '收货人',
  `phone` varchar(200) NOT NULL COMMENT '电话',
  `isdefault` varchar(200) NOT NULL COMMENT '是否默认地址[是/否]',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='地址';

CREATE TABLE `cart` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `tablename` varchar(200) DEFAULT 'remaijiushui' COMMENT '商品表名',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `goodid` bigint(20) NOT NULL COMMENT '商品id',
  `goodname` varchar(200) DEFAULT NULL COMMENT '商品名称',
  `picture` longtext COMMENT '图片',
  `buynumber` int(11) NOT NULL COMMENT '购买数量',
  `price` float DEFAULT NULL COMMENT '单价',
  `discountprice` float DEFAULT NULL COMMENT '会员价',
  `goodtype` varchar(200) DEFAULT NULL COMMENT '商品类型',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='购物车表';

CREATE TABLE `config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) NOT NULL COMMENT '配置参数名称',
  `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';

CREATE TABLE `discussremaijiushui` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `refid` bigint(20) NOT NULL COMMENT '关联表id',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `avatarurl` longtext COMMENT '头像',
  `nickname` varchar(200) DEFAULT NULL COMMENT '用户名',
  `content` longtext NOT NULL COMMENT '评论内容',
  `reply` longtext COMMENT '回复内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='热卖酒水评论表';

CREATE TABLE `leixing` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `jiushuileixing` varchar(200) DEFAULT NULL COMMENT '酒水类型',
  PRIMARY KEY (`id`),
  UNIQUE KEY `jiushuileixing` (`jiushuileixing`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COMMENT='类型';

CREATE TABLE `news` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `title` varchar(200) NOT NULL COMMENT '标题',
  `introduction` longtext COMMENT '简介',
  `picture` longtext NOT NULL COMMENT '图片',
  `content` longtext NOT NULL COMMENT '内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=89 DEFAULT CHARSET=utf8 COMMENT='优惠资讯';

CREATE TABLE `remaijiushui` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `jiushuimingcheng` varchar(200) DEFAULT NULL COMMENT '酒水名称',
  `fengmian` longtext COMMENT '封面',
  `jiushuileixing` varchar(200) DEFAULT NULL COMMENT '酒水类型',
  `baozhuangxingshi` varchar(200) DEFAULT NULL COMMENT '包装形式',
  `pinpai` varchar(200) DEFAULT NULL COMMENT '品牌',
  `dushu` varchar(200) DEFAULT NULL COMMENT '度数',
  `chuzangfangfa` varchar(200) DEFAULT NULL COMMENT '储藏方法',
  `shengchannianfen` varchar(200) DEFAULT NULL COMMENT '生产年份',
  `chandi` varchar(200) DEFAULT NULL COMMENT '产地',
  `changming` varchar(200) DEFAULT NULL COMMENT '厂名',
  `shiyongchangjing` varchar(200) DEFAULT NULL COMMENT '适用场景',
  `shengchanxukezheng` varchar(200) DEFAULT NULL COMMENT '生产许可证',
  `jiushuixiangqing` longtext COMMENT '酒水详情',
  `onelimittimes` int(11) DEFAULT NULL COMMENT '单限',
  `alllimittimes` int(11) DEFAULT NULL COMMENT '库存',
  `thumbsupnum` int(11) DEFAULT '0' COMMENT '赞',
  `crazilynum` int(11) DEFAULT '0' COMMENT '踩',
  `clicktime` datetime DEFAULT NULL COMMENT '最近点击时间',
  `clicknum` int(11) DEFAULT '0' COMMENT '点击次数',
  `price` float NOT NULL COMMENT '价格',
  PRIMARY KEY (`id`),
  UNIQUE KEY `shengchanxukezheng` (`shengchanxukezheng`)
) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COMMENT='热卖酒水';

CREATE TABLE `storeup` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `refid` bigint(20) DEFAULT NULL COMMENT '商品id',
  `tablename` varchar(200) DEFAULT NULL COMMENT '表名',
  `name` varchar(200) NOT NULL COMMENT '名称',
  `picture` longtext NOT NULL COMMENT '图片',
  `type` varchar(200) DEFAULT '1' COMMENT '类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)',
  `inteltype` varchar(200) DEFAULT NULL COMMENT '推荐类型',
  `remark` varchar(200) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='收藏表';

CREATE TABLE `systemintro` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `title` varchar(200) NOT NULL COMMENT '标题',
  `subtitle` varchar(200) DEFAULT NULL COMMENT '副标题',
  `content` longtext NOT NULL COMMENT '内容',
  `picture1` longtext COMMENT '图片1',
  `picture2` longtext COMMENT '图片2',
  `picture3` longtext COMMENT '图片3',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='关于我们';

CREATE TABLE `token` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `username` varchar(100) NOT NULL COMMENT '用户名',
  `tablename` varchar(100) DEFAULT NULL COMMENT '表名',
  `role` varchar(100) DEFAULT NULL COMMENT '角色',
  `token` varchar(200) NOT NULL COMMENT '密码',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  `expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='token表';

CREATE TABLE `users` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(100) NOT NULL COMMENT '用户名',
  `password` varchar(100) NOT NULL COMMENT '密码',
  `role` varchar(100) DEFAULT '管理员' COMMENT '角色',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户表';

CREATE TABLE `yonghu` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `yonghuzhanghao` varchar(200) DEFAULT NULL COMMENT '用户账号',
  `mima` varchar(200) NOT NULL COMMENT '密码',
  `yonghuxingming` varchar(200) DEFAULT NULL COMMENT '用户姓名',
  `touxiang` longtext COMMENT '头像',
  `xingbie` varchar(200) DEFAULT NULL COMMENT '性别',
  `lianxifangshi` varchar(200) DEFAULT NULL COMMENT '联系方式',
  `money` float DEFAULT '0' COMMENT '余额',
  PRIMARY KEY (`id`),
  UNIQUE KEY `yonghuzhanghao` (`yonghuzhanghao`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='用户';

7.核心代码 

7.1 热卖酒水Controller

package com.controller;

/**
 * 热卖酒水
 * 后端接口
 * @author 计算机编程-吉哥
 */
@RestController
@RequestMapping("/remaijiushui")
public class RemaijiushuiController {
    @Autowired
    private RemaijiushuiService remaijiushuiService;

    @Autowired
    private StoreupService storeupService;

    @Autowired
    private OrdersService ordersService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,RemaijiushuiEntity remaijiushui,
                @RequestParam(required = false) Double pricestart,
                @RequestParam(required = false) Double priceend,
		HttpServletRequest request){
        EntityWrapper<RemaijiushuiEntity> ew = new EntityWrapper<RemaijiushuiEntity>();
                if(pricestart!=null) ew.ge("price", pricestart);
                if(priceend!=null) ew.le("price", priceend);

		PageUtils page = remaijiushuiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, remaijiushui), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,RemaijiushuiEntity remaijiushui, 
                @RequestParam(required = false) Double pricestart,
                @RequestParam(required = false) Double priceend,
		HttpServletRequest request){
        EntityWrapper<RemaijiushuiEntity> ew = new EntityWrapper<RemaijiushuiEntity>();
                if(pricestart!=null) ew.ge("price", pricestart);
                if(priceend!=null) ew.le("price", priceend);

		PageUtils page = remaijiushuiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, remaijiushui), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( RemaijiushuiEntity remaijiushui){
       	EntityWrapper<RemaijiushuiEntity> ew = new EntityWrapper<RemaijiushuiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( remaijiushui, "remaijiushui")); 
        return R.ok().put("data", remaijiushuiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(RemaijiushuiEntity remaijiushui){
        EntityWrapper< RemaijiushuiEntity> ew = new EntityWrapper< RemaijiushuiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( remaijiushui, "remaijiushui")); 
		RemaijiushuiView remaijiushuiView =  remaijiushuiService.selectView(ew);
		return R.ok("查询热卖酒水成功").put("data", remaijiushuiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        RemaijiushuiEntity remaijiushui = remaijiushuiService.selectById(id);
		remaijiushui.setClicknum(remaijiushui.getClicknum()+1);
		remaijiushui.setClicktime(new Date());
		remaijiushuiService.updateById(remaijiushui);
        return R.ok().put("data", remaijiushui);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        RemaijiushuiEntity remaijiushui = remaijiushuiService.selectById(id);
		remaijiushui.setClicknum(remaijiushui.getClicknum()+1);
		remaijiushui.setClicktime(new Date());
		remaijiushuiService.updateById(remaijiushui);
        return R.ok().put("data", remaijiushui);
    }
    


    /**
     * 赞或踩
     */
    @RequestMapping("/thumbsup/{id}")
    public R vote(@PathVariable("id") String id,String type){
        RemaijiushuiEntity remaijiushui = remaijiushuiService.selectById(id);
        if(type.equals("1")) {
        	remaijiushui.setThumbsupnum(remaijiushui.getThumbsupnum()+1);
        } else {
        	remaijiushui.setCrazilynum(remaijiushui.getCrazilynum()+1);
        }
        remaijiushuiService.updateById(remaijiushui);
        return R.ok("投票成功");
    }

    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody RemaijiushuiEntity remaijiushui, HttpServletRequest request){
    	remaijiushui.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(remaijiushui);
        remaijiushuiService.insert(remaijiushui);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody RemaijiushuiEntity remaijiushui, HttpServletRequest request){
    	remaijiushui.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(remaijiushui);
        remaijiushuiService.insert(remaijiushui);
        return R.ok();
    }



    /**
     * 修改
     */
    @RequestMapping("/update")
    @Transactional
    public R update(@RequestBody RemaijiushuiEntity remaijiushui, HttpServletRequest request){
        //ValidatorUtils.validateEntity(remaijiushui);
        remaijiushuiService.updateById(remaijiushui);//全部更新
        return R.ok();
    }


    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        remaijiushuiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<RemaijiushuiEntity> wrapper = new EntityWrapper<RemaijiushuiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = remaijiushuiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	/**
     * 前端智能排序
     */
	@IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params,RemaijiushuiEntity remaijiushui, HttpServletRequest request,String pre){
        EntityWrapper<RemaijiushuiEntity> ew = new EntityWrapper<RemaijiushuiEntity>();
        Map<String, Object> newMap = new HashMap<String, Object>();
        Map<String, Object> param = new HashMap<String, Object>();
		Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<String, Object> entry = it.next();
			String key = entry.getKey();
			String newKey = entry.getKey();
			if (pre.endsWith(".")) {
				newMap.put(pre + newKey, entry.getValue());
			} else if (StringUtils.isEmpty(pre)) {
				newMap.put(newKey, entry.getValue());
			} else {
				newMap.put(pre + "." + newKey, entry.getValue());
			}
		}
		params.put("sort", "clicknum");
        params.put("order", "desc");
		PageUtils page = remaijiushuiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, remaijiushui), params), params));
        return R.ok().put("data", page);
    }


        /**
     * 协同算法(按用户购买推荐)
     */
    @RequestMapping("/autoSort2")
    public R autoSort2(@RequestParam Map<String, Object> params,RemaijiushuiEntity remaijiushui, HttpServletRequest request){
        String userId = request.getSession().getAttribute("userId").toString();
        String goodtypeColumn = "jiushuileixing";
        List<OrdersEntity> orders = ordersService.selectList(new EntityWrapper<OrdersEntity>().eq("userid", userId).eq("tablename", "remaijiushui").orderBy("addtime", false));
        List<String> goodtypes = new ArrayList<String>();
        Integer limit = params.get("limit")==null?10:Integer.parseInt(params.get("limit").toString());
        List<RemaijiushuiEntity> remaijiushuiList = new ArrayList<RemaijiushuiEntity>();
	//去重
    	List<OrdersEntity> ordersDist = new ArrayList<OrdersEntity>();
    	for(OrdersEntity o1 : orders) {
    		boolean addFlag = true;
    		for(OrdersEntity o2 : ordersDist) {
    			if(o1.getGoodid()==o2.getGoodid() || o1.getGoodtype().equals(o2.getGoodtype())) {
    				addFlag = false;
    				break;
    			}
    		}
    		if(addFlag) ordersDist.add(o1);
    	}
        if(ordersDist!=null && ordersDist.size()>0) {
                for(OrdersEntity o : ordersDist) {
                        remaijiushuiList.addAll(remaijiushuiService.selectList(new EntityWrapper<RemaijiushuiEntity>().eq(goodtypeColumn, o.getGoodtype())));
                }
        }
        EntityWrapper<RemaijiushuiEntity> ew = new EntityWrapper<RemaijiushuiEntity>();
        params.put("sort", "id");
        params.put("order", "desc");
        PageUtils page = remaijiushuiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, remaijiushui), params), params));
        List<RemaijiushuiEntity> pageList = (List<RemaijiushuiEntity>)page.getList();
        if(remaijiushuiList.size()<limit) {
                int toAddNum = (limit-remaijiushuiList.size())<=pageList.size()?(limit-remaijiushuiList.size()):pageList.size();
                for(RemaijiushuiEntity o1 : pageList) {
                    boolean addFlag = true;
                    for(RemaijiushuiEntity o2 : remaijiushuiList) {
                        if(o1.getId().intValue()==o2.getId().intValue()) {
                            addFlag = false;
                            break;
                        }
                    }
                    if(addFlag) {
                        remaijiushuiList.add(o1);
                        if(--toAddNum==0) break;
                    }   
                }
        } else if(remaijiushuiList.size()>limit) {
            remaijiushuiList = remaijiushuiList.subList(0, limit);
        }
        page.setList(remaijiushuiList);
        return R.ok().put("data", page);
    }


}

7.2 热卖酒水Service

package com.service;

/**
 * 热卖酒水
 *
 * @author 计算机编程-吉哥
 */
public interface RemaijiushuiService extends IService<RemaijiushuiEntity> {

    PageUtils queryPage(Map<String, Object> params);
    
   	List<RemaijiushuiVO> selectListVO(Wrapper<RemaijiushuiEntity> wrapper);
   	
   	RemaijiushuiVO selectVO(@Param("ew") Wrapper<RemaijiushuiEntity> wrapper);
   	
   	List<RemaijiushuiView> selectListView(Wrapper<RemaijiushuiEntity> wrapper);
   	
   	RemaijiushuiView selectView(@Param("ew") Wrapper<RemaijiushuiEntity> wrapper);
   	
   	PageUtils queryPage(Map<String, Object> params,Wrapper<RemaijiushuiEntity> wrapper);
   	

}

7.3 热卖酒水ServiceImpl

package com.service.impl;

@Service("remaijiushuiService")
public class RemaijiushuiServiceImpl extends ServiceImpl<RemaijiushuiDao, RemaijiushuiEntity> implements RemaijiushuiService {
	
	
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<RemaijiushuiEntity> page = this.selectPage(
                new Query<RemaijiushuiEntity>(params).getPage(),
                new EntityWrapper<RemaijiushuiEntity>()
        );
        return new PageUtils(page);
    }
    
    @Override
	public PageUtils queryPage(Map<String, Object> params, Wrapper<RemaijiushuiEntity> wrapper) {
		  Page<RemaijiushuiView> page =new Query<RemaijiushuiView>(params).getPage();
	        page.setRecords(baseMapper.selectListView(page,wrapper));
	    	PageUtils pageUtil = new PageUtils(page);
	    	return pageUtil;
 	}
    
    @Override
	public List<RemaijiushuiVO> selectListVO(Wrapper<RemaijiushuiEntity> wrapper) {
 		return baseMapper.selectListVO(wrapper);
	}
	
	@Override
	public RemaijiushuiVO selectVO(Wrapper<RemaijiushuiEntity> wrapper) {
 		return baseMapper.selectVO(wrapper);
	}
	
	@Override
	public List<RemaijiushuiView> selectListView(Wrapper<RemaijiushuiEntity> wrapper) {
		return baseMapper.selectListView(wrapper);
	}

	@Override
	public RemaijiushuiView selectView(Wrapper<RemaijiushuiEntity> wrapper) {
		return baseMapper.selectView(wrapper);
	}


}

7.4 热卖酒水DAO

package com.dao;


/**
 * 热卖酒水
 * 
 * @author 计算机编程-吉哥
 */
public interface RemaijiushuiDao extends BaseMapper<RemaijiushuiEntity> {
	
	List<RemaijiushuiVO> selectListVO(@Param("ew") Wrapper<RemaijiushuiEntity> wrapper);
	
	RemaijiushuiVO selectVO(@Param("ew") Wrapper<RemaijiushuiEntity> wrapper);
	
	List<RemaijiushuiView> selectListView(@Param("ew") Wrapper<RemaijiushuiEntity> wrapper);

	List<RemaijiushuiView> selectListView(Pagination page,@Param("ew") Wrapper<RemaijiushuiEntity> wrapper);
	
	RemaijiushuiView selectView(@Param("ew") Wrapper<RemaijiushuiEntity> wrapper);
	

}

8.参考文档

你可能还有感兴趣的项目👇🏻👇🏻👇🏻

更多项目推荐:计算机毕业设计项目

如果大家有任何疑虑,请在下方咨询或评论


http://www.niftyadmin.cn/n/5092614.html

相关文章

DELL R710硬盘格式化方法备忘录

DELL R710硬盘格式化方法备忘录 本方法是全部格式化硬盘&#xff0c;不能格式化其中的某一块 开机出现带CTRLR字样后 按CTRLR 按下CTRLP三次 以上是目前硬盘的状态&#xff0c;使用中的是ONLINE状态&#xff0c; 按CTRLP&#xff0c;回到第一个界面&#xff0c;然后按F2 选择…

什么是多态性和继承性?C语言中如何实现它们?

什么是多态性和继承性&#xff1f; 多态性&#xff08;Polymorphism&#xff09;和继承性&#xff08;Inheritance&#xff09;是面向对象编程&#xff08;OOP&#xff09;中两个核心概念&#xff0c;它们有助于创建更灵活、可维护和可扩展的代码。 多态性&#xff08;Polymo…

三大方法快速发现商业规律

文章目录 三大方法快速发现商业规律一、市场调研二、数据分析三、案例分析 &#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文创造者、技术文章评审老师、问卷调查…

欠拟合、过拟合及优化:岭回归

问题:训练数据训练的很好啊,误差也不大,为什么在测试集上面有问题呢? 当算法在某个数据集当中出现这种情况,可能就出现了过拟合现象。 1、 什么是过拟合与欠拟合 欠拟合 过拟合 分析 第一种情况:因为机器学习到的天鹅特征太少了,导致区分标准太粗糙,不能准确识别出天鹅…

Marvin攻击25 年之久的RSA解密漏洞重现

1998 年发现的与 SSL 服务器中的 PKCS #1 v1.5 填充相关的缺陷&#xff08;据信已得到解决&#xff09;至今仍然影响着多个广泛使用的项目。 经过衡量端到端操作的广泛测试后&#xff0c;红帽研究人员发现了原始定时攻击的几种变体&#xff0c;统称为“马文攻击”&#xff0c;…

jupyter_快速开始

文章目录 使用 Anaconda 启动 jupyter-lab纯 python 环境使用 jupyter-notebook纯 python 环境使用 jupyter-labjupyter-lab 配置文件相关jupyter-notebook 配置文件相关jupyter-lab 与 jupyter-notebook 的关系与区别 使用 Anaconda 启动 jupyter-lab 启动一个cmd 命令行&…

【Agora UID 踩坑记录 Java 数据类型】

目录 负数二进制表示Java中32位无符号数的取法项目踩坑记录Java 0xffffffff隐式类型转换的坑 负数二进制表示 由于计算机中数据都以二进制表示&#xff0c;而负数的二级制是根据正数二进制取补码&#xff08;补码就是先取反码&#xff0c;然后加1&#xff09;得到&#xff0c;…

前端面试题个人笔记(后面继续更新完善)

文章目录 填空题部分简答题部分 if有好答案请各位大佬们在底下评论上&#xff0c;感谢 填空题部分 1、常见的css选择器 2、getElementById获取元素的&#xff08;DOM&#xff09;对象 简答题部分 1、介绍一下你对RESTful API的理解以及它的优势&#xff1f; 答&#xff1a; …