计算机毕业设计 基于SpringBoot笔记记录分享网站的设计与实现 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 商品兑换管理
6.数据库文件设计
7.核心代码
7.1 笔记Controller
7.2 笔记Service
7.3 笔记ServicesImpl
7.4 笔记DAO
8.参考文档
1.技术选型
springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8
2.数据库表结构
18张
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 商品兑换管理

6.数据库文件设计
CREATE TABLE `address` (`id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`yonghu_id` int(20) NOT NULL COMMENT '创建用户',`address_name` varchar(200) NOT NULL COMMENT '收货人 ',`address_phone` varchar(200) NOT NULL COMMENT '电话 ',`address_dizhi` varchar(200) NOT NULL COMMENT '地址 ',`isdefault_types` int(11) NOT NULL COMMENT '是否默认地址 ',`insert_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间 show3',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='收货地址';CREATE TABLE `biji` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`biji_name` varchar(200) DEFAULT NULL COMMENT '笔记名称 Search111 ',`biji_uuid_number` varchar(200) DEFAULT NULL COMMENT '笔记编号',`biji_photo` varchar(200) DEFAULT NULL COMMENT '笔记照片',`zan_number` int(11) DEFAULT NULL COMMENT '赞',`cai_number` int(11) DEFAULT NULL COMMENT '踩',`biji_types` int(11) DEFAULT NULL COMMENT '笔记类型 Search111',`biji_content` longtext COMMENT '笔记内容',`insert_time` timestamp NULL DEFAULT NULL COMMENT '发布时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='笔记广场';CREATE TABLE `biji_collection` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`biji_id` int(11) DEFAULT NULL COMMENT '笔记',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`biji_collection_types` int(11) DEFAULT NULL COMMENT '类型',`insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='笔记收藏';CREATE TABLE `biji_liuyan` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`biji_id` int(11) DEFAULT NULL COMMENT '笔记',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`biji_liuyan_text` longtext COMMENT '留言内容',`insert_time` timestamp NULL DEFAULT NULL COMMENT '留言时间',`reply_text` longtext COMMENT '回复内容',`update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='笔记留言';CREATE TABLE `cart` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`yonghu_id` int(11) DEFAULT NULL COMMENT '所属用户',`shangpin_id` int(11) DEFAULT NULL COMMENT '商品',`buy_number` int(11) DEFAULT NULL COMMENT '购买数量',`create_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`insert_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='购物车';CREATE TABLE `config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(100) DEFAULT NULL COMMENT '配置参数名称',`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';CREATE TABLE `dictionary` (`id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`dic_code` varchar(200) DEFAULT NULL COMMENT '字段',`dic_name` varchar(200) DEFAULT NULL COMMENT '字段名',`code_index` int(11) DEFAULT NULL COMMENT '编码',`index_name` varchar(200) DEFAULT NULL COMMENT '编码名字 Search111 ',`super_id` int(11) DEFAULT NULL COMMENT '父字段id',`beizhu` varchar(200) DEFAULT NULL COMMENT '备注',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8 COMMENT='字典表';CREATE TABLE `gonggao` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`gonggao_name` varchar(200) DEFAULT NULL COMMENT '公告名称 Search111 ',`gonggao_photo` varchar(200) DEFAULT NULL COMMENT '公告图片 ',`gonggao_types` int(11) NOT NULL COMMENT '公告类型 Search111 ',`insert_time` timestamp NULL DEFAULT NULL COMMENT '发布时间',`gonggao_content` longtext COMMENT '公告详情 ',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告信息';CREATE TABLE `guanzhu` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`guanzhu_uuid_number` varchar(200) DEFAULT NULL COMMENT '关注编号',`guanzhu_kucun_number` int(11) DEFAULT NULL COMMENT '关注人',`insert_time` timestamp NULL DEFAULT NULL COMMENT '关注时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='我的关注';CREATE TABLE `richangrenwu` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`richangrenwu_uuid_number` varchar(200) DEFAULT NULL COMMENT '日常任务编号',`richangrenwu_name` varchar(200) DEFAULT NULL COMMENT '日常任务标题 Search111 ',`richangrenwu_types` int(11) DEFAULT NULL COMMENT '日常任务类型 Search111',`richangrenwu_jifen` decimal(10,2) DEFAULT NULL COMMENT '任务积分',`richangrenwu_content` longtext COMMENT '任务内容',`richangrenwu_wancheng_content` longtext COMMENT '完成标准',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='日常任务';CREATE TABLE `richangrenwu_lingqu` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`richangrenwu_id` int(11) DEFAULT NULL COMMENT '日常任务',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`richangrenwu_lingqu_uuid_number` varchar(200) DEFAULT NULL COMMENT '领取任务编号',`richangrenwu_lingqu_time` date DEFAULT NULL COMMENT '所属日期',`insert_time` timestamp NULL DEFAULT NULL COMMENT '领取时间',`richangrenwu_lingqu_types` int(11) DEFAULT NULL COMMENT '任务状态 Search111',`richangrenwu_lingqu_yesno_types` int(11) DEFAULT NULL COMMENT '审核状态 Search111',`richangrenwu_lingqu_yesno_text` longtext COMMENT '审核回复',`richangrenwu_lingqu_shenhe_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COMMENT='领取任务';CREATE TABLE `shangpin` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`shangpin_name` varchar(200) DEFAULT NULL COMMENT '商品名称 Search111 ',`shangpin_uuid_number` varchar(200) DEFAULT NULL COMMENT '商品编号',`shangpin_photo` varchar(200) DEFAULT NULL COMMENT '商品照片',`zan_number` int(11) DEFAULT NULL COMMENT '赞',`cai_number` int(11) DEFAULT NULL COMMENT '踩',`shangpin_types` int(11) DEFAULT NULL COMMENT '商品类型 Search111',`shangpin_kucun_number` int(11) DEFAULT NULL COMMENT '商品库存',`shangpin_new_money` decimal(10,2) DEFAULT NULL COMMENT '所需积分',`shangpin_cangku` varchar(200) DEFAULT NULL COMMENT '所属仓库 Search111',`shangpin_clicknum` int(11) DEFAULT NULL COMMENT '商品热度',`shangpin_content` longtext COMMENT '商品介绍 ',`shangxia_types` int(11) DEFAULT NULL COMMENT '是否上架 ',`shangpin_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',`insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='商品';CREATE TABLE `shangpin_collection` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`shangpin_id` int(11) DEFAULT NULL COMMENT '商品',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`shangpin_collection_types` int(11) DEFAULT NULL COMMENT '类型',`insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='商品收藏';CREATE TABLE `shangpin_commentback` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`shangpin_id` int(11) DEFAULT NULL COMMENT '商品',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`shangpin_commentback_text` longtext COMMENT '评价内容',`insert_time` timestamp NULL DEFAULT NULL COMMENT '评价时间',`reply_text` longtext COMMENT '回复内容',`update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='商品评价';CREATE TABLE `shangpin_order` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`shangpin_order_uuid_number` varchar(200) DEFAULT NULL COMMENT '订单编号 Search111 ',`address_id` int(11) DEFAULT NULL COMMENT '收货地址 ',`shangpin_id` int(11) DEFAULT NULL COMMENT '商品',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`buy_number` int(11) DEFAULT NULL COMMENT '兑换数量',`shangpin_order_true_price` decimal(10,2) DEFAULT NULL COMMENT '花费积分',`shangpin_order_courier_name` varchar(200) DEFAULT NULL COMMENT '快递公司',`shangpin_order_courier_number` varchar(200) DEFAULT NULL COMMENT '快递单号',`shangpin_order_types` int(11) DEFAULT NULL COMMENT '订单类型 Search111 ',`shangpin_order_payment_types` int(11) DEFAULT NULL COMMENT '支付类型',`insert_time` timestamp NULL DEFAULT NULL COMMENT '订单创建时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 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 AUTO_INCREMENT=4 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` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(200) DEFAULT NULL COMMENT '账户',`password` varchar(200) DEFAULT NULL COMMENT '密码',`yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户姓名 Search111 ',`yonghu_phone` varchar(200) DEFAULT NULL COMMENT '用户手机号',`yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '用户身份证号',`yonghu_photo` varchar(200) DEFAULT NULL COMMENT '用户头像',`sex_types` int(11) DEFAULT NULL COMMENT '性别',`yonghu_email` varchar(200) DEFAULT NULL COMMENT '用户邮箱',`new_money` decimal(10,2) DEFAULT NULL COMMENT '积分',`yonghu_content` longtext COMMENT '用户介绍',`jinyong_types` int(11) DEFAULT NULL COMMENT '账户状态 Search111 ',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='用户';
7.核心代码
7.1 笔记Controller
package com.controller;/*** 笔记广场* 后端接口* @author 计算机编程-吉哥* @email
*/
@RestController
@Controller
@RequestMapping("/biji")
public class BijiController {private static final Logger logger = LoggerFactory.getLogger(BijiController.class);private static final String TABLE_NAME = "biji";@Autowiredprivate BijiService bijiService;@Autowiredprivate TokenService tokenService;@Autowiredprivate AddressService addressService;//收货地址@Autowiredprivate BijiCollectionService bijiCollectionService;//笔记收藏@Autowiredprivate BijiLiuyanService bijiLiuyanService;//笔记留言@Autowiredprivate CartService cartService;//购物车@Autowiredprivate DictionaryService dictionaryService;//字典表@Autowiredprivate GonggaoService gonggaoService;//公告信息@Autowiredprivate GuanzhuService guanzhuService;//我的关注@Autowiredprivate RichangrenwuService richangrenwuService;//日常任务@Autowiredprivate RichangrenwuLingquService richangrenwuLingquService;//领取任务@Autowiredprivate ShangpinService shangpinService;//商品@Autowiredprivate ShangpinCollectionService shangpinCollectionService;//商品收藏@Autowiredprivate ShangpinCommentbackService shangpinCommentbackService;//商品评价@Autowiredprivate ShangpinOrderService shangpinOrderService;//商品兑换@Autowiredprivate YonghuService yonghuService;//用户@Autowiredprivate UsersService usersService;//管理员/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永不会进入");else if("用户".equals(role))params.put("yonghuId",request.getSession().getAttribute("userId"));CommonUtil.checkMap(params);PageUtils page = bijiService.queryPage(params);//字典表数据转换List<BijiView> list =(List<BijiView>)page.getList();for(BijiView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c, request);}return R.ok().put("data", page);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);BijiEntity biji = bijiService.selectById(id);if(biji !=null){//entity转viewBijiView view = new BijiView();BeanUtils.copyProperties( biji , view );//把实体数据重构到view中//级联表 用户//级联表YonghuEntity yonghu = yonghuService.selectById(biji.getYonghuId());if(yonghu != null){BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表view.setYonghuId(yonghu.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody BijiEntity biji, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,biji:{}",this.getClass().getName(),biji.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永远不会进入");else if("用户".equals(role))biji.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));Wrapper<BijiEntity> queryWrapper = new EntityWrapper<BijiEntity>().eq("yonghu_id", biji.getYonghuId()).eq("biji_name", biji.getBijiName()).eq("zan_number", biji.getZanNumber()).eq("cai_number", biji.getCaiNumber()).eq("biji_types", biji.getBijiTypes());logger.info("sql语句:"+queryWrapper.getSqlSegment());BijiEntity bijiEntity = bijiService.selectOne(queryWrapper);if(bijiEntity==null){biji.setZanNumber(1);biji.setCaiNumber(1);biji.setInsertTime(new Date());biji.setCreateTime(new Date());bijiService.insert(biji);return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody BijiEntity biji, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {logger.debug("update方法:,,Controller:{},,biji:{}",this.getClass().getName(),biji.toString());BijiEntity oldBijiEntity = bijiService.selectById(biji.getId());//查询原先数据String role = String.valueOf(request.getSession().getAttribute("role"));
biji.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));if("".equals(biji.getBijiPhoto()) || "null".equals(biji.getBijiPhoto())){biji.setBijiPhoto(null);}if("".equals(biji.getBijiContent()) || "null".equals(biji.getBijiContent())){biji.setBijiContent(null);}bijiService.updateById(biji);//根据id更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids, HttpServletRequest request){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());List<BijiEntity> oldBijiList =bijiService.selectBatchIds(Arrays.asList(ids));//要删除的数据bijiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 批量上传*/@RequestMapping("/batchInsert")public R save( String fileName, HttpServletRequest request){logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))try {List<BijiEntity> bijiList = new ArrayList<>();//上传的东西Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段Date date = new Date();int lastIndexOf = fileName.lastIndexOf(".");if(lastIndexOf == -1){return R.error(511,"该文件没有后缀");}else{String suffix = fileName.substring(lastIndexOf);if(!".xls".equals(suffix)){return R.error(511,"只支持后缀为xls的excel文件");}else{URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径File file = new File(resource.getFile());if(!file.exists()){return R.error(511,"找不到上传文件,请联系管理员");}else{List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件dataList.remove(0);//删除第一行,因为第一行是提示for(List<String> data:dataList){//循环BijiEntity bijiEntity = new BijiEntity();bijiList.add(bijiEntity);//把要查询是否重复的字段放入map中//笔记编号if(seachFields.containsKey("bijiUuidNumber")){List<String> bijiUuidNumber = seachFields.get("bijiUuidNumber");bijiUuidNumber.add(data.get(0));//要改的}else{List<String> bijiUuidNumber = new ArrayList<>();bijiUuidNumber.add(data.get(0));//要改的seachFields.put("bijiUuidNumber",bijiUuidNumber);}}//查询是否重复//笔记编号List<BijiEntity> bijiEntities_bijiUuidNumber = bijiService.selectList(new EntityWrapper<BijiEntity>().in("biji_uuid_number", seachFields.get("bijiUuidNumber")));if(bijiEntities_bijiUuidNumber.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(BijiEntity s:bijiEntities_bijiUuidNumber){repeatFields.add(s.getBijiUuidNumber());}return R.error(511,"数据库的该表中的 [笔记编号] 字段已经存在 存在数据为:"+repeatFields.toString());}bijiService.insertBatch(bijiList);return R.ok();}}}}catch (Exception e){e.printStackTrace();return R.error(511,"批量插入数据异常,请联系管理员");}}/*** 个性推荐*/@IgnoreAuth@RequestMapping("/gexingtuijian")public R gexingtuijian(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("gexingtuijian方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);List<BijiView> returnBijiViewList = new ArrayList<>();//查看收藏Map<String, Object> params1 = new HashMap<>(params);params1.put("sort","id");params1.put("yonghuId",request.getSession().getAttribute("userId"));params1.put("shangxiaTypes",1);params1.put("bijiYesnoTypes",2);PageUtils pageUtils = bijiCollectionService.queryPage(params1);List<BijiCollectionView> collectionViewsList =(List<BijiCollectionView>)pageUtils.getList();Map<Integer,Integer> typeMap=new HashMap<>();//购买的类型listfor(BijiCollectionView collectionView:collectionViewsList){Integer bijiTypes = collectionView.getBijiTypes();if(typeMap.containsKey(bijiTypes)){typeMap.put(bijiTypes,typeMap.get(bijiTypes)+1);}else{typeMap.put(bijiTypes,1);}}List<Integer> typeList = new ArrayList<>();//排序后的有序的类型 按最多到最少typeMap.entrySet().stream().sorted((o1, o2) -> o2.getValue() - o1.getValue()).forEach(e -> typeList.add(e.getKey()));//排序Integer limit = Integer.valueOf(String.valueOf(params.get("limit")));for(Integer type:typeList){Map<String, Object> params2 = new HashMap<>(params);params2.put("bijiTypes",type);params2.put("shangxiaTypes",1);params2.put("bijiYesnoTypes",2);PageUtils pageUtils1 = bijiService.queryPage(params2);List<BijiView> bijiViewList =(List<BijiView>)pageUtils1.getList();returnBijiViewList.addAll(bijiViewList);if(returnBijiViewList.size()>= limit) break;//返回的推荐数量大于要的数量 跳出循环}params.put("shangxiaTypes",1);params.put("bijiYesnoTypes",2);//正常查询出来商品,用于补全推荐缺少的数据PageUtils page = bijiService.queryPage(params);if(returnBijiViewList.size()<limit){//返回数量还是小于要求数量int toAddNum = limit - returnBijiViewList.size();//要添加的数量List<BijiView> bijiViewList =(List<BijiView>)page.getList();for(BijiView bijiView:bijiViewList){Boolean addFlag = true;for(BijiView returnBijiView:returnBijiViewList){if(returnBijiView.getId().intValue() ==bijiView.getId().intValue()) addFlag=false;//返回的数据中已存在此商品}if(addFlag){toAddNum=toAddNum-1;returnBijiViewList.add(bijiView);if(toAddNum==0) break;//够数量了}}}else {returnBijiViewList = returnBijiViewList.subList(0, limit);}for(BijiView c:returnBijiViewList)dictionaryService.dictionaryConvert(c, request);page.setList(returnBijiViewList);return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);PageUtils page = bijiService.queryPage(params);//字典表数据转换List<BijiView> list =(List<BijiView>)page.getList();for(BijiView c:list)dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段return R.ok().put("data", page);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Integer id, HttpServletRequest request){logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);BijiEntity biji = bijiService.selectById(id);if(biji !=null){//entity转viewBijiView view = new BijiView();BeanUtils.copyProperties( biji , view );//把实体数据重构到view中//级联表YonghuEntity yonghu = yonghuService.selectById(biji.getYonghuId());if(yonghu != null){BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段view.setYonghuId(yonghu.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody BijiEntity biji, HttpServletRequest request){logger.debug("add方法:,,Controller:{},,biji:{}",this.getClass().getName(),biji.toString());Wrapper<BijiEntity> queryWrapper = new EntityWrapper<BijiEntity>().eq("yonghu_id", biji.getYonghuId()).eq("biji_name", biji.getBijiName()).eq("biji_uuid_number", biji.getBijiUuidNumber()).eq("zan_number", biji.getZanNumber()).eq("cai_number", biji.getCaiNumber()).eq("biji_types", biji.getBijiTypes());logger.info("sql语句:"+queryWrapper.getSqlSegment());BijiEntity bijiEntity = bijiService.selectOne(queryWrapper);if(bijiEntity==null){biji.setZanNumber(1);biji.setCaiNumber(1);biji.setInsertTime(new Date());biji.setCreateTime(new Date());bijiService.insert(biji);return R.ok();}else {return R.error(511,"表中有相同数据");}}}
7.2 笔记Service
package com.service;import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.BijiEntity;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import java.util.List;/*** 笔记广场 服务类*/
public interface BijiService extends IService<BijiEntity> {/*** @param params 查询参数* @return 带分页的查询出来的数据*/PageUtils queryPage(Map<String, Object> params);}
7.3 笔记ServicesImpl
package com.service.impl;/*** 笔记广场 服务实现类*/
@Service("bijiService")
@Transactional
public class BijiServiceImpl extends ServiceImpl<BijiDao, BijiEntity> implements BijiService {@Overridepublic PageUtils queryPage(Map<String,Object> params) {Page<BijiView> page =new Query<BijiView>(params).getPage();page.setRecords(baseMapper.selectListView(page,params));return new PageUtils(page);}}
7.4 笔记DAO
package com.dao;import com.entity.BijiEntity;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;import org.apache.ibatis.annotations.Param;
import com.entity.view.BijiView;/*** 笔记广场 Dao 接口** @author */
public interface BijiDao extends BaseMapper<BijiEntity> {List<BijiView> selectListView(Pagination page,@Param("params")Map<String,Object> params);}
8.参考文档

你可能还有感兴趣的项目👇🏻👇🏻👇🏻
更多项目推荐:计算机毕业设计项目
如果大家有任何疑虑,请在下方咨询或评论
相关文章:
计算机毕业设计 基于SpringBoot笔记记录分享网站的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
Windows Ubuntu子系统使用USB教程
Windows Ubuntu子系统使用USB教程 Windows Subsystem for Linux (WSL)允许您在Windows上运行Linux。以下指南涉及如何在WSL2中连接和使用USB设备。 WSL版本 在WSL内部运行 uname -a应该显示内核版本为5.10.60.1或更高版本。你需要运行WSL 2发行版本。 USB/IP 客户端工具 在W…...
如何理解TCP/IP协议?
一、是什么 TCP/IP,传输控制协议/网际协议,是指能够在多个不同网络间实现信息传输的协议簇 TCP(传输控制协议) 一种面向连接的、可靠的、基于字节流的传输层通信协议 IP(网际协议) 用于封包交换数据网…...
如何开发出来一款解决抖音本地生活的软件营销工具?
一、智能剪辑、矩阵分发、无人直播、爆款文案于一体独立应用开发 抖去推----主要针对本地生活的----移动端(小程序软件系统,目前是全国源头独立开发),开发功能大拆解分享,功能大拆解: 7大模型剪辑法(数学阶乘&#x…...
GO 语言如何用好变长参数?
函数重载 对于函数重载相信编码过的 xdm 肯定不会陌生,函数重载就是在同一个作用域内定义多个具有相同名称但参数列表不同的函数 此处的参数列表不同,可以是参数的类型不同,参数的个数不同 那么我们一起分别来看看 C 语言,C 语…...
怎么解决 Http 协议无状态?
一、Http 协议无状态的含义 1.1 有状态协议 常见的许多七层协议实际上是有状态的,例如 SMTP 协议,它的第一条消息必须是 HELO,用来握手,在 HELO 发送之前其他任何命令都是不能发送的;接下来一般要进行 AUTH 阶段&#…...
FlinkCDC for mysql to Clickhouse
完整依赖 <dependencies><!-- https://mvnrepository.com/artifact/org.apache.flink/flink-core --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-core</artifactId><version>1.13.0</version>…...
沃通SSL证书服务多省区一体化政务服务平台
近年来,我国政务服务数字化水平不断提升,数字政府建设取得积极成效。依托全国一体化政务服务平台,政务服务效能不断提升,“一网通办”能力显著增强,为创新政府治理、优化营商环境提供了有力支撑。沃通SSL证书具备保护数…...
Linux程序地址
目录 一、定义 二、问题引出 三、虚拟地址和物理地址 (一)问题解释 (二)什么是进程地址空间 (三)为什么要有进程地址空间 一、定义 #include <stdio.h> #include <stdlib.h>//geten…...
华为OD k 对元素最小值(100分)【java】A卷+B卷
华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...
解决Unity打包时,Android SDK 报错问题
报错内容应该包括类似如下信息: CommandInvokationFailure: Failed to update Android SDK package list. java.lang.UnsupportedClassVersionError: com/android/prefs/AndroidLocationsProvider has been compiled by a more recent version of the Java Runtim…...
基于nodejs+vue 校园通勤车系统
但是管理好校园通勤车可视化又面临很多麻烦需要解决, 信息化已经成为主流,开发一个校园通勤车可视化系统小程序一方面的可能会更合乎时宜,困扰管理层的许多问题当中,校园通勤车 管理也是不敢忽视的一块。另一方面来说也可以提高在校园通勤车可视化管理方面的效率给相关管理人员…...
【JavaEE】Java多线程编程案例 -- 多线程篇(3)
Java多线程编程案例 1. 单例模式1.1 代码的简单实现1.2 懒汉模式的线程安全代码 2. 阻塞队列2.1 阻塞队列的概念2.2 使用库中的BlockingDeque2.3 模拟实现阻塞队列2.4 生产者消费者模型 3. 定时器3.1 概念3.2 使用库的定时器 - Timer类3.3 模拟实现定时器 4. 线程池4.1 概念4.2…...
axios发送常见请求方式以及拦截器的封装
一,常见请求 //1.get--传递paramsaxios.get("/test",{params:{}})//2.post--传递paramsaxios.post("/test",{},{params:{}}) //3.post--传递bodyaxios.post("/test",{name:""}) 二,封装请求拦截器 import ax…...
Apollo中的身份验证与授权:保护你的数据
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄ÿ…...
斜率优化dp
f i min ( a j − j i ) f_i\min(a_j - j \times i) fimin(aj−ji) 考虑变成点对 ( j , a j ) (j,a_j) (j,aj),则 f i Y j − X j i f_iY_j-X_ji fiYj−Xji 令 i k , f i b ik, f_ib ik,fib,得 b Y j − X j k bY_j-X_jk b…...
华为OD 打印任务排序(100分)【java】A卷+B卷
华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...
最新Ai写作创作系统源码+Ai绘画系统源码+搭建部署教程+支持GPT4.0+支持Prompt预设应用+思维导图生成
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…...
FPGA【紫光语法】
寄存器数据类型: reg 默认为 1 bit wide,如果超过 1 bit,则需要 range declaration 设置 reg 的位宽integer 默认位宽为 32 bit,不允许有 range declarationtime 默认位宽为 64 bit,不允许有 range declarat…...
运维监控Zabbix部署
目录 运维监控Zabbix部署 1. 简介 2. 安装 编辑 2.1 安装前准备 - Mysql 2.2 安装Zabbix Server 和 Zabbix Agent 2.2.1 安装Zabbix yum库 2.2.2 安装Zabbix Server、前端、Agent 2.2.3 初始化Mysql数据库 2.2.4 为Zabbix Server配置数据库 2.2.5 配置Zab…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...
