计算机毕业设计 基于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.参考文档

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openGauss学习笔记-105 openGauss 数据库管理-管理用户及权限-默认权限机制

文章目录 openGauss学习笔记-105 openGauss 数据库管理-管理用户及权限-默认权限机制 openGauss学习笔记-105 openGauss 数据库管理-管理用户及权限-默认权限机制 数据库对象创建后&#xff0c;进行对象创建的用户就是该对象的所有者。openGauss安装后的默认情况下&#xff0c…

C++算法前缀和的应用:分割数组的最大值的原理、源码及测试用例

分割数组的最大值 相关知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例&#xff1a;付视频课程 二分 过些天整理基础知识 题目 给定一个非负整数数组 nums 和一个整数 m &#xff0c;你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法…

聊聊分布式架构09——分布式中的一致性协议

目录 01从集中式到分布式 系统特点 集中式特点 分布式特点 事务处理差异 02一致性协议与Paxos算法 2PC&#xff08;Two-Phase Commit&#xff09; 阶段一&#xff1a;提交事务请求 阶段二&#xff1a;执行事务提交 优缺点 3PC&#xff08;Three-Phase Commit&#x…

11-k8s-service网络

文章目录 一、网络相关资源介绍二、开启ipvs三、nginx网络示例四、pod之间的访问示例五、service反向代理示例 一、网络相关资源介绍 Servcie介绍 Service是对一组提供相同功能的Pods的抽象&#xff0c;并为它们提供一个统一的入口。借助Service&#xff0c;应用可以方便的实现…

如何在电脑上设置新的蓝牙耳机

本文介绍如何将蓝牙耳机连接到Windows或Mac电脑。 如何在Windows上设置新的蓝牙耳机 蓝牙耳机的设置过程因平台而异&#xff0c;但以下是Windows 11的步骤&#xff1a; 1、选择“开始”&#xff0c;然后在搜索框中输入蓝牙&#xff0c;以显示蓝牙和其他设备。 2、选择添加设…

【马蹄集】—— 概率论专题:第二类斯特林数

概率论专题&#xff1a;第二类斯特林数 目录 MT2224 矩阵乘法MT2231 越狱MT2232 找朋友MT2233 盒子与球MT2234 点餐 MT2224 矩阵乘法 难度&#xff1a;黄金    时间限制&#xff1a;5秒    占用内存&#xff1a;128M 题目描述 输入两个矩阵&#xff0c;第一个矩阵尺寸为 l…

2024年仁爱学院专升本招生专业对应范围专业目录更新的通知

天津仁爱学院2024年高职升本科招生专业对应范围专业目录 为了更好的进行天津仁爱学院专升本工作&#xff0c;动画专业不分文理进行录取。为了进一步提升录取专业的培养需要&#xff0c;请同学们复习专业课时加强专业课学习&#xff0c;请同学们在报考时关注天津仁爱学院招生章…

Flink Table API 和 SQL 需要引入的依赖

记下来后续使用 先把需要的依赖贴上&#xff1a; <dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-api-scala-bridge_2.11</artifactId><version>${flink.version}</version></d…

Unreal Engine 4 + miniconda + Python2.7 + Pycharm

1.​首先启用UE4插件里的Python Scripting插件 ​ 2. 在UE4项目设置中 开启Python开发者模式 生成unreal.py文件&#xff0c;用于在Pychram中引入Unreal PythonAPI 生成的unreal.py 在&#xff1a; "项目路径\Intermediate\PythonStub\unreal.py"3. 安装Miniconda…

Spark Streaming 整合 Flume

本文代码链接: https://download.csdn.net/download/shangjg03/88442192 1.简介 Apache Flume 是一个分布式,高可用的数据收集系统,可以从不同的数据源收集数据,经过聚合后发送到分布式计算框架或者存储系统中。Spark Straming 提供了以下两种方式用于 Flume 的整合。 2.推…

【Edabit 算法 ★☆☆☆☆☆】【修改BUG1】 Buggy Code (Part 1)

【Edabit 算法 ★☆☆☆☆☆】【修改BUG1】 Buggy Code (Part 1) bugs language_fundamentals Instructions Fix the code in the code tab to pass this challenge (only syntax errors). Look at the examples below to get an idea of what the function should do. Examp…

关于opencv的contourArea计算方法

cv::contourArea计算的轮廓面积并不等于轮廓点计数&#xff0c;原因是cv::contourArea是基于Green公式计算 老外的讨论 github 举一个直观的例子&#xff0c;图中有7个像素&#xff0c;橙色为轮廓点连线&#xff0c;按照contourArea的定义&#xff0c;轮廓的面积为橙色所包围…

Visual Studio Code官网下载、vscode下载很慢、vscode下载不了 解决方案

前言 开发界的小伙伴们对于Visual Studio Code开发环境来可以说非常熟悉了&#xff0c;但由于在Visual Studio Code官网的下载速度非常的慢&#xff0c;即便开了代理也是一样的很慢、甚至下载被中断&#xff0c;几乎不能下载。 解决方案 1、在Web浏览器上打开vscode官网&#…

JAVA高级教程-Java List(2)

目录 3、List接口的使用&#xff08;1&#xff09;3、List接口的使用&#xff08;3&#xff09;4、排序&#xff0c;集合之间的转换 3、List接口的使用&#xff08;1&#xff09; package ArrayList01;import java.util.ArrayList; import java.util.Iterator; import java.ut…

在 Android 上测试 Kotlin 协程

文章目录 官方文档在测试中调用挂起函数TestDispatchersStandardTestDispatcherUnconfinedTestDispatcher 注入测试调度程序设置主调度程序在测试之外创建调度程序创建您自己的 TestScope注入作用域 官方文档 https://developer.android.google.cn/kotlin/coroutines/test?hl…

Pytorch搭建DTLN降噪算法

前面介绍了几种轻量级网路结构的降噪做法&#xff0c;本文介绍DTLN—一种时频双核心网络降噪做法。 AI-GruNet降噪算法 AI-CGNet降噪算法 AI-FGNet降噪算法 Pytorch搭建实虚部重建AI-GruNet降噪算法 一、模型结构 DTLN来自[2005.07551] Dual-Signal Transformation LSTM N…

ChatGLM2-INT4 + Lora 结构适配和改造

Lora 是目前公认的最好的微调方法&#xff0c;一方面&#xff0c;它并不像AdapterTuning 一样&#xff0c;改变原有模型的架构&#xff0c;不便于在不同框架之间迁移&#xff1b;另一方面&#xff0c;它不像 PTuning 一样改变所有任务下的单词生成概率&#xff0c;严重破坏已习…

nginx配合tomcat、resin等java应用服务器提供java支持

首先探讨一下为什么要使用nginx&#xff1a; 1、类似于apacheresin&#xff0c;nginx用于提供静态页面服务&#xff0c;比java服务器要强。虽然这些java服务器的性能都不赖&#xff0c;tomcat新版甚至还支持了epoll&#xff0c;但是用nginx来处理静态文件是一定比这些服务器更…

macos使用搭建算法竞赛c/c++的g++/gcc编译环境(homebrew,含万能头,改环境变量,vscode/clion可用)

文章目录 1、homebrew安装2、安装g3、改环境变量 1、homebrew安装 我没改镜像&#xff0c;直接网上脚本一键安装的&#xff0c;具体命令忘了&#xff0c;可能是这个 反正装这个的方法很多&#xff0c;网上一搜都有。 成功装上homebrew就行。 /bin/bash -c "$(curl -fsSL…

微信小程序6

一、什么是后台交互&#xff1f; 在小程序中&#xff0c;与后台交互指的是小程序前端与后台服务器之间的数据通信和请求处理过程。通过与后台交互&#xff0c;小程序能够获取服务器端的数据、上传用户数据、发送请求等。 与后台交互可以通过以下方式实现&#xff1a; 发起网络请…