• 计算机毕业设计 基于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.数据库文件设计

    1. CREATE TABLE `address` (
    2. `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    3. `yonghu_id` int(20) NOT NULL COMMENT '创建用户',
    4. `address_name` varchar(200) NOT NULL COMMENT '收货人 ',
    5. `address_phone` varchar(200) NOT NULL COMMENT '电话 ',
    6. `address_dizhi` varchar(200) NOT NULL COMMENT '地址 ',
    7. `isdefault_types` int(11) NOT NULL COMMENT '是否默认地址 ',
    8. `insert_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
    9. `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
    10. `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间 show3',
    11. PRIMARY KEY (`id`)
    12. ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='收货地址';
    13. CREATE TABLE `biji` (
    14. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    15. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    16. `biji_name` varchar(200) DEFAULT NULL COMMENT '笔记名称 Search111 ',
    17. `biji_uuid_number` varchar(200) DEFAULT NULL COMMENT '笔记编号',
    18. `biji_photo` varchar(200) DEFAULT NULL COMMENT '笔记照片',
    19. `zan_number` int(11) DEFAULT NULL COMMENT '赞',
    20. `cai_number` int(11) DEFAULT NULL COMMENT '踩',
    21. `biji_types` int(11) DEFAULT NULL COMMENT '笔记类型 Search111',
    22. `biji_content` longtext COMMENT '笔记内容',
    23. `insert_time` timestamp NULL DEFAULT NULL COMMENT '发布时间',
    24. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',
    25. PRIMARY KEY (`id`)
    26. ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='笔记广场';
    27. CREATE TABLE `biji_collection` (
    28. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    29. `biji_id` int(11) DEFAULT NULL COMMENT '笔记',
    30. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    31. `biji_collection_types` int(11) DEFAULT NULL COMMENT '类型',
    32. `insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',
    33. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',
    34. PRIMARY KEY (`id`)
    35. ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='笔记收藏';
    36. CREATE TABLE `biji_liuyan` (
    37. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    38. `biji_id` int(11) DEFAULT NULL COMMENT '笔记',
    39. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    40. `biji_liuyan_text` longtext COMMENT '留言内容',
    41. `insert_time` timestamp NULL DEFAULT NULL COMMENT '留言时间',
    42. `reply_text` longtext COMMENT '回复内容',
    43. `update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',
    44. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    45. PRIMARY KEY (`id`)
    46. ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='笔记留言';
    47. CREATE TABLE `cart` (
    48. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    49. `yonghu_id` int(11) DEFAULT NULL COMMENT '所属用户',
    50. `shangpin_id` int(11) DEFAULT NULL COMMENT '商品',
    51. `buy_number` int(11) DEFAULT NULL COMMENT '购买数量',
    52. `create_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
    53. `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
    54. `insert_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    55. PRIMARY KEY (`id`)
    56. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='购物车';
    57. CREATE TABLE `config` (
    58. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    59. `name` varchar(100) DEFAULT NULL COMMENT '配置参数名称',
    60. `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
    61. PRIMARY KEY (`id`)
    62. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
    63. CREATE TABLE `dictionary` (
    64. `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    65. `dic_code` varchar(200) DEFAULT NULL COMMENT '字段',
    66. `dic_name` varchar(200) DEFAULT NULL COMMENT '字段名',
    67. `code_index` int(11) DEFAULT NULL COMMENT '编码',
    68. `index_name` varchar(200) DEFAULT NULL COMMENT '编码名字 Search111 ',
    69. `super_id` int(11) DEFAULT NULL COMMENT '父字段id',
    70. `beizhu` varchar(200) DEFAULT NULL COMMENT '备注',
    71. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    72. PRIMARY KEY (`id`)
    73. ) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8 COMMENT='字典表';
    74. CREATE TABLE `gonggao` (
    75. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    76. `gonggao_name` varchar(200) DEFAULT NULL COMMENT '公告名称 Search111 ',
    77. `gonggao_photo` varchar(200) DEFAULT NULL COMMENT '公告图片 ',
    78. `gonggao_types` int(11) NOT NULL COMMENT '公告类型 Search111 ',
    79. `insert_time` timestamp NULL DEFAULT NULL COMMENT '发布时间',
    80. `gonggao_content` longtext COMMENT '公告详情 ',
    81. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
    82. PRIMARY KEY (`id`)
    83. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告信息';
    84. CREATE TABLE `guanzhu` (
    85. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    86. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    87. `guanzhu_uuid_number` varchar(200) DEFAULT NULL COMMENT '关注编号',
    88. `guanzhu_kucun_number` int(11) DEFAULT NULL COMMENT '关注人',
    89. `insert_time` timestamp NULL DEFAULT NULL COMMENT '关注时间',
    90. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
    91. PRIMARY KEY (`id`)
    92. ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='我的关注';
    93. CREATE TABLE `richangrenwu` (
    94. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    95. `richangrenwu_uuid_number` varchar(200) DEFAULT NULL COMMENT '日常任务编号',
    96. `richangrenwu_name` varchar(200) DEFAULT NULL COMMENT '日常任务标题 Search111 ',
    97. `richangrenwu_types` int(11) DEFAULT NULL COMMENT '日常任务类型 Search111',
    98. `richangrenwu_jifen` decimal(10,2) DEFAULT NULL COMMENT '任务积分',
    99. `richangrenwu_content` longtext COMMENT '任务内容',
    100. `richangrenwu_wancheng_content` longtext COMMENT '完成标准',
    101. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
    102. PRIMARY KEY (`id`)
    103. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='日常任务';
    104. CREATE TABLE `richangrenwu_lingqu` (
    105. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    106. `richangrenwu_id` int(11) DEFAULT NULL COMMENT '日常任务',
    107. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    108. `richangrenwu_lingqu_uuid_number` varchar(200) DEFAULT NULL COMMENT '领取任务编号',
    109. `richangrenwu_lingqu_time` date DEFAULT NULL COMMENT '所属日期',
    110. `insert_time` timestamp NULL DEFAULT NULL COMMENT '领取时间',
    111. `richangrenwu_lingqu_types` int(11) DEFAULT NULL COMMENT '任务状态 Search111',
    112. `richangrenwu_lingqu_yesno_types` int(11) DEFAULT NULL COMMENT '审核状态 Search111',
    113. `richangrenwu_lingqu_yesno_text` longtext COMMENT '审核回复',
    114. `richangrenwu_lingqu_shenhe_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
    115. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
    116. PRIMARY KEY (`id`)
    117. ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COMMENT='领取任务';
    118. CREATE TABLE `shangpin` (
    119. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    120. `shangpin_name` varchar(200) DEFAULT NULL COMMENT '商品名称 Search111 ',
    121. `shangpin_uuid_number` varchar(200) DEFAULT NULL COMMENT '商品编号',
    122. `shangpin_photo` varchar(200) DEFAULT NULL COMMENT '商品照片',
    123. `zan_number` int(11) DEFAULT NULL COMMENT '赞',
    124. `cai_number` int(11) DEFAULT NULL COMMENT '踩',
    125. `shangpin_types` int(11) DEFAULT NULL COMMENT '商品类型 Search111',
    126. `shangpin_kucun_number` int(11) DEFAULT NULL COMMENT '商品库存',
    127. `shangpin_new_money` decimal(10,2) DEFAULT NULL COMMENT '所需积分',
    128. `shangpin_cangku` varchar(200) DEFAULT NULL COMMENT '所属仓库 Search111',
    129. `shangpin_clicknum` int(11) DEFAULT NULL COMMENT '商品热度',
    130. `shangpin_content` longtext COMMENT '商品介绍 ',
    131. `shangxia_types` int(11) DEFAULT NULL COMMENT '是否上架 ',
    132. `shangpin_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    133. `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
    134. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',
    135. PRIMARY KEY (`id`)
    136. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='商品';
    137. CREATE TABLE `shangpin_collection` (
    138. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    139. `shangpin_id` int(11) DEFAULT NULL COMMENT '商品',
    140. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    141. `shangpin_collection_types` int(11) DEFAULT NULL COMMENT '类型',
    142. `insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',
    143. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',
    144. PRIMARY KEY (`id`)
    145. ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='商品收藏';
    146. CREATE TABLE `shangpin_commentback` (
    147. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    148. `shangpin_id` int(11) DEFAULT NULL COMMENT '商品',
    149. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    150. `shangpin_commentback_text` longtext COMMENT '评价内容',
    151. `insert_time` timestamp NULL DEFAULT NULL COMMENT '评价时间',
    152. `reply_text` longtext COMMENT '回复内容',
    153. `update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',
    154. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    155. PRIMARY KEY (`id`)
    156. ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='商品评价';
    157. CREATE TABLE `shangpin_order` (
    158. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    159. `shangpin_order_uuid_number` varchar(200) DEFAULT NULL COMMENT '订单编号 Search111 ',
    160. `address_id` int(11) DEFAULT NULL COMMENT '收货地址 ',
    161. `shangpin_id` int(11) DEFAULT NULL COMMENT '商品',
    162. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    163. `buy_number` int(11) DEFAULT NULL COMMENT '兑换数量',
    164. `shangpin_order_true_price` decimal(10,2) DEFAULT NULL COMMENT '花费积分',
    165. `shangpin_order_courier_name` varchar(200) DEFAULT NULL COMMENT '快递公司',
    166. `shangpin_order_courier_number` varchar(200) DEFAULT NULL COMMENT '快递单号',
    167. `shangpin_order_types` int(11) DEFAULT NULL COMMENT '订单类型 Search111 ',
    168. `shangpin_order_payment_types` int(11) DEFAULT NULL COMMENT '支付类型',
    169. `insert_time` timestamp NULL DEFAULT NULL COMMENT '订单创建时间',
    170. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
    171. PRIMARY KEY (`id`)
    172. ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='商品兑换';
    173. CREATE TABLE `token` (
    174. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    175. `userid` bigint(20) NOT NULL COMMENT '学生id',
    176. `username` varchar(100) NOT NULL COMMENT '学生名',
    177. `tablename` varchar(100) DEFAULT NULL COMMENT '表名',
    178. `role` varchar(100) DEFAULT NULL COMMENT '角色',
    179. `token` varchar(200) NOT NULL COMMENT '密码',
    180. `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
    181. `expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
    182. PRIMARY KEY (`id`)
    183. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='token表';
    184. CREATE TABLE `users` (
    185. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    186. `username` varchar(100) NOT NULL COMMENT '学生名',
    187. `password` varchar(100) NOT NULL COMMENT '密码',
    188. `role` varchar(100) DEFAULT '管理员' COMMENT '角色',
    189. `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
    190. PRIMARY KEY (`id`)
    191. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员';
    192. CREATE TABLE `yonghu` (
    193. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    194. `username` varchar(200) DEFAULT NULL COMMENT '账户',
    195. `password` varchar(200) DEFAULT NULL COMMENT '密码',
    196. `yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户姓名 Search111 ',
    197. `yonghu_phone` varchar(200) DEFAULT NULL COMMENT '用户手机号',
    198. `yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '用户身份证号',
    199. `yonghu_photo` varchar(200) DEFAULT NULL COMMENT '用户头像',
    200. `sex_types` int(11) DEFAULT NULL COMMENT '性别',
    201. `yonghu_email` varchar(200) DEFAULT NULL COMMENT '用户邮箱',
    202. `new_money` decimal(10,2) DEFAULT NULL COMMENT '积分',
    203. `yonghu_content` longtext COMMENT '用户介绍',
    204. `jinyong_types` int(11) DEFAULT NULL COMMENT '账户状态 Search111 ',
    205. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',
    206. PRIMARY KEY (`id`)
    207. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='用户';

    7.核心代码 

    7.1 笔记Controller

    1. package com.controller;
    2. /**
    3. * 笔记广场
    4. * 后端接口
    5. * @author 计算机编程-吉哥
    6. * @email
    7. */
    8. @RestController
    9. @Controller
    10. @RequestMapping("/biji")
    11. public class BijiController {
    12. private static final Logger logger = LoggerFactory.getLogger(BijiController.class);
    13. private static final String TABLE_NAME = "biji";
    14. @Autowired
    15. private BijiService bijiService;
    16. @Autowired
    17. private TokenService tokenService;
    18. @Autowired
    19. private AddressService addressService;//收货地址
    20. @Autowired
    21. private BijiCollectionService bijiCollectionService;//笔记收藏
    22. @Autowired
    23. private BijiLiuyanService bijiLiuyanService;//笔记留言
    24. @Autowired
    25. private CartService cartService;//购物车
    26. @Autowired
    27. private DictionaryService dictionaryService;//字典表
    28. @Autowired
    29. private GonggaoService gonggaoService;//公告信息
    30. @Autowired
    31. private GuanzhuService guanzhuService;//我的关注
    32. @Autowired
    33. private RichangrenwuService richangrenwuService;//日常任务
    34. @Autowired
    35. private RichangrenwuLingquService richangrenwuLingquService;//领取任务
    36. @Autowired
    37. private ShangpinService shangpinService;//商品
    38. @Autowired
    39. private ShangpinCollectionService shangpinCollectionService;//商品收藏
    40. @Autowired
    41. private ShangpinCommentbackService shangpinCommentbackService;//商品评价
    42. @Autowired
    43. private ShangpinOrderService shangpinOrderService;//商品兑换
    44. @Autowired
    45. private YonghuService yonghuService;//用户
    46. @Autowired
    47. private UsersService usersService;//管理员
    48. /**
    49. * 后端列表
    50. */
    51. @RequestMapping("/page")
    52. public R page(@RequestParam Map params, HttpServletRequest request){
    53. logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
    54. String role = String.valueOf(request.getSession().getAttribute("role"));
    55. if(false)
    56. return R.error(511,"永不会进入");
    57. else if("用户".equals(role))
    58. params.put("yonghuId",request.getSession().getAttribute("userId"));
    59. CommonUtil.checkMap(params);
    60. PageUtils page = bijiService.queryPage(params);
    61. //字典表数据转换
    62. List list =(List)page.getList();
    63. for(BijiView c:list){
    64. //修改对应字典表字段
    65. dictionaryService.dictionaryConvert(c, request);
    66. }
    67. return R.ok().put("data", page);
    68. }
    69. /**
    70. * 后端详情
    71. */
    72. @RequestMapping("/info/{id}")
    73. public R info(@PathVariable("id") Long id, HttpServletRequest request){
    74. logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
    75. BijiEntity biji = bijiService.selectById(id);
    76. if(biji !=null){
    77. //entity转view
    78. BijiView view = new BijiView();
    79. BeanUtils.copyProperties( biji , view );//把实体数据重构到view中
    80. //级联表 用户
    81. //级联表
    82. YonghuEntity yonghu = yonghuService.selectById(biji.getYonghuId());
    83. if(yonghu != null){
    84. BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
    85. view.setYonghuId(yonghu.getId());
    86. }
    87. //修改对应字典表字段
    88. dictionaryService.dictionaryConvert(view, request);
    89. return R.ok().put("data", view);
    90. }else {
    91. return R.error(511,"查不到数据");
    92. }
    93. }
    94. /**
    95. * 后端保存
    96. */
    97. @RequestMapping("/save")
    98. public R save(@RequestBody BijiEntity biji, HttpServletRequest request){
    99. logger.debug("save方法:,,Controller:{},,biji:{}",this.getClass().getName(),biji.toString());
    100. String role = String.valueOf(request.getSession().getAttribute("role"));
    101. if(false)
    102. return R.error(511,"永远不会进入");
    103. else if("用户".equals(role))
    104. biji.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    105. Wrapper queryWrapper = new EntityWrapper()
    106. .eq("yonghu_id", biji.getYonghuId())
    107. .eq("biji_name", biji.getBijiName())
    108. .eq("zan_number", biji.getZanNumber())
    109. .eq("cai_number", biji.getCaiNumber())
    110. .eq("biji_types", biji.getBijiTypes())
    111. ;
    112. logger.info("sql语句:"+queryWrapper.getSqlSegment());
    113. BijiEntity bijiEntity = bijiService.selectOne(queryWrapper);
    114. if(bijiEntity==null){
    115. biji.setZanNumber(1);
    116. biji.setCaiNumber(1);
    117. biji.setInsertTime(new Date());
    118. biji.setCreateTime(new Date());
    119. bijiService.insert(biji);
    120. return R.ok();
    121. }else {
    122. return R.error(511,"表中有相同数据");
    123. }
    124. }
    125. /**
    126. * 后端修改
    127. */
    128. @RequestMapping("/update")
    129. public R update(@RequestBody BijiEntity biji, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
    130. logger.debug("update方法:,,Controller:{},,biji:{}",this.getClass().getName(),biji.toString());
    131. BijiEntity oldBijiEntity = bijiService.selectById(biji.getId());//查询原先数据
    132. String role = String.valueOf(request.getSession().getAttribute("role"));
    133. biji.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    134. if("".equals(biji.getBijiPhoto()) || "null".equals(biji.getBijiPhoto())){
    135. biji.setBijiPhoto(null);
    136. }
    137. if("".equals(biji.getBijiContent()) || "null".equals(biji.getBijiContent())){
    138. biji.setBijiContent(null);
    139. }
    140. bijiService.updateById(biji);//根据id更新
    141. return R.ok();
    142. }
    143. /**
    144. * 删除
    145. */
    146. @RequestMapping("/delete")
    147. public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
    148. logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
    149. List oldBijiList =bijiService.selectBatchIds(Arrays.asList(ids));//要删除的数据
    150. bijiService.deleteBatchIds(Arrays.asList(ids));
    151. return R.ok();
    152. }
    153. /**
    154. * 批量上传
    155. */
    156. @RequestMapping("/batchInsert")
    157. public R save( String fileName, HttpServletRequest request){
    158. logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
    159. Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
    160. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    161. //.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
    162. try {
    163. List bijiList = new ArrayList<>();//上传的东西
    164. Map> seachFields= new HashMap<>();//要查询的字段
    165. Date date = new Date();
    166. int lastIndexOf = fileName.lastIndexOf(".");
    167. if(lastIndexOf == -1){
    168. return R.error(511,"该文件没有后缀");
    169. }else{
    170. String suffix = fileName.substring(lastIndexOf);
    171. if(!".xls".equals(suffix)){
    172. return R.error(511,"只支持后缀为xls的excel文件");
    173. }else{
    174. URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
    175. File file = new File(resource.getFile());
    176. if(!file.exists()){
    177. return R.error(511,"找不到上传文件,请联系管理员");
    178. }else{
    179. List> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
    180. dataList.remove(0);//删除第一行,因为第一行是提示
    181. for(List data:dataList){
    182. //循环
    183. BijiEntity bijiEntity = new BijiEntity();
    184. bijiList.add(bijiEntity);
    185. //把要查询是否重复的字段放入map中
    186. //笔记编号
    187. if(seachFields.containsKey("bijiUuidNumber")){
    188. List bijiUuidNumber = seachFields.get("bijiUuidNumber");
    189. bijiUuidNumber.add(data.get(0));//要改的
    190. }else{
    191. List bijiUuidNumber = new ArrayList<>();
    192. bijiUuidNumber.add(data.get(0));//要改的
    193. seachFields.put("bijiUuidNumber",bijiUuidNumber);
    194. }
    195. }
    196. //查询是否重复
    197. //笔记编号
    198. List bijiEntities_bijiUuidNumber = bijiService.selectList(new EntityWrapper().in("biji_uuid_number", seachFields.get("bijiUuidNumber")));
    199. if(bijiEntities_bijiUuidNumber.size() >0 ){
    200. ArrayList repeatFields = new ArrayList<>();
    201. for(BijiEntity s:bijiEntities_bijiUuidNumber){
    202. repeatFields.add(s.getBijiUuidNumber());
    203. }
    204. return R.error(511,"数据库的该表中的 [笔记编号] 字段已经存在 存在数据为:"+repeatFields.toString());
    205. }
    206. bijiService.insertBatch(bijiList);
    207. return R.ok();
    208. }
    209. }
    210. }
    211. }catch (Exception e){
    212. e.printStackTrace();
    213. return R.error(511,"批量插入数据异常,请联系管理员");
    214. }
    215. }
    216. /**
    217. * 个性推荐
    218. */
    219. @IgnoreAuth
    220. @RequestMapping("/gexingtuijian")
    221. public R gexingtuijian(@RequestParam Map params, HttpServletRequest request){
    222. logger.debug("gexingtuijian方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
    223. CommonUtil.checkMap(params);
    224. List returnBijiViewList = new ArrayList<>();
    225. //查看收藏
    226. Map params1 = new HashMap<>(params);params1.put("sort","id");params1.put("yonghuId",request.getSession().getAttribute("userId"));
    227. params1.put("shangxiaTypes",1);
    228. params1.put("bijiYesnoTypes",2);
    229. PageUtils pageUtils = bijiCollectionService.queryPage(params1);
    230. List collectionViewsList =(List)pageUtils.getList();
    231. Map typeMap=new HashMap<>();//购买的类型list
    232. for(BijiCollectionView collectionView:collectionViewsList){
    233. Integer bijiTypes = collectionView.getBijiTypes();
    234. if(typeMap.containsKey(bijiTypes)){
    235. typeMap.put(bijiTypes,typeMap.get(bijiTypes)+1);
    236. }else{
    237. typeMap.put(bijiTypes,1);
    238. }
    239. }
    240. List typeList = new ArrayList<>();//排序后的有序的类型 按最多到最少
    241. typeMap.entrySet().stream().sorted((o1, o2) -> o2.getValue() - o1.getValue()).forEach(e -> typeList.add(e.getKey()));//排序
    242. Integer limit = Integer.valueOf(String.valueOf(params.get("limit")));
    243. for(Integer type:typeList){
    244. Map params2 = new HashMap<>(params);params2.put("bijiTypes",type);
    245. params2.put("shangxiaTypes",1);
    246. params2.put("bijiYesnoTypes",2);
    247. PageUtils pageUtils1 = bijiService.queryPage(params2);
    248. List bijiViewList =(List)pageUtils1.getList();
    249. returnBijiViewList.addAll(bijiViewList);
    250. if(returnBijiViewList.size()>= limit) break;//返回的推荐数量大于要的数量 跳出循环
    251. }
    252. params.put("shangxiaTypes",1);
    253. params.put("bijiYesnoTypes",2);
    254. //正常查询出来商品,用于补全推荐缺少的数据
    255. PageUtils page = bijiService.queryPage(params);
    256. if(returnBijiViewList.size()//返回数量还是小于要求数量
    257. int toAddNum = limit - returnBijiViewList.size();//要添加的数量
    258. List bijiViewList =(List)page.getList();
    259. for(BijiView bijiView:bijiViewList){
    260. Boolean addFlag = true;
    261. for(BijiView returnBijiView:returnBijiViewList){
    262. if(returnBijiView.getId().intValue() ==bijiView.getId().intValue()) addFlag=false;//返回的数据中已存在此商品
    263. }
    264. if(addFlag){
    265. toAddNum=toAddNum-1;
    266. returnBijiViewList.add(bijiView);
    267. if(toAddNum==0) break;//够数量了
    268. }
    269. }
    270. }else {
    271. returnBijiViewList = returnBijiViewList.subList(0, limit);
    272. }
    273. for(BijiView c:returnBijiViewList)
    274. dictionaryService.dictionaryConvert(c, request);
    275. page.setList(returnBijiViewList);
    276. return R.ok().put("data", page);
    277. }
    278. /**
    279. * 前端列表
    280. */
    281. @IgnoreAuth
    282. @RequestMapping("/list")
    283. public R list(@RequestParam Map params, HttpServletRequest request){
    284. logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
    285. CommonUtil.checkMap(params);
    286. PageUtils page = bijiService.queryPage(params);
    287. //字典表数据转换
    288. List list =(List)page.getList();
    289. for(BijiView c:list)
    290. dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段
    291. return R.ok().put("data", page);
    292. }
    293. /**
    294. * 前端详情
    295. */
    296. @RequestMapping("/detail/{id}")
    297. public R detail(@PathVariable("id") Integer id, HttpServletRequest request){
    298. logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
    299. BijiEntity biji = bijiService.selectById(id);
    300. if(biji !=null){
    301. //entity转view
    302. BijiView view = new BijiView();
    303. BeanUtils.copyProperties( biji , view );//把实体数据重构到view中
    304. //级联表
    305. YonghuEntity yonghu = yonghuService.selectById(biji.getYonghuId());
    306. if(yonghu != null){
    307. BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段
    308. view.setYonghuId(yonghu.getId());
    309. }
    310. //修改对应字典表字段
    311. dictionaryService.dictionaryConvert(view, request);
    312. return R.ok().put("data", view);
    313. }else {
    314. return R.error(511,"查不到数据");
    315. }
    316. }
    317. /**
    318. * 前端保存
    319. */
    320. @RequestMapping("/add")
    321. public R add(@RequestBody BijiEntity biji, HttpServletRequest request){
    322. logger.debug("add方法:,,Controller:{},,biji:{}",this.getClass().getName(),biji.toString());
    323. Wrapper queryWrapper = new EntityWrapper()
    324. .eq("yonghu_id", biji.getYonghuId())
    325. .eq("biji_name", biji.getBijiName())
    326. .eq("biji_uuid_number", biji.getBijiUuidNumber())
    327. .eq("zan_number", biji.getZanNumber())
    328. .eq("cai_number", biji.getCaiNumber())
    329. .eq("biji_types", biji.getBijiTypes())
    330. ;
    331. logger.info("sql语句:"+queryWrapper.getSqlSegment());
    332. BijiEntity bijiEntity = bijiService.selectOne(queryWrapper);
    333. if(bijiEntity==null){
    334. biji.setZanNumber(1);
    335. biji.setCaiNumber(1);
    336. biji.setInsertTime(new Date());
    337. biji.setCreateTime(new Date());
    338. bijiService.insert(biji);
    339. return R.ok();
    340. }else {
    341. return R.error(511,"表中有相同数据");
    342. }
    343. }
    344. }

    7.2 笔记Service

    1. package com.service;
    2. import com.baomidou.mybatisplus.service.IService;
    3. import com.utils.PageUtils;
    4. import com.entity.BijiEntity;
    5. import java.util.Map;
    6. import javax.servlet.http.HttpServletRequest;
    7. import org.springframework.lang.Nullable;
    8. import java.util.List;
    9. /**
    10. * 笔记广场 服务类
    11. */
    12. public interface BijiService extends IService {
    13. /**
    14. * @param params 查询参数
    15. * @return 带分页的查询出来的数据
    16. */
    17. PageUtils queryPage(Map params);
    18. }

    7.3 笔记ServicesImpl

    1. package com.service.impl;
    2. /**
    3. * 笔记广场 服务实现类
    4. */
    5. @Service("bijiService")
    6. @Transactional
    7. public class BijiServiceImpl extends ServiceImpl implements BijiService {
    8. @Override
    9. public PageUtils queryPage(Map params) {
    10. Page page =new Query(params).getPage();
    11. page.setRecords(baseMapper.selectListView(page,params));
    12. return new PageUtils(page);
    13. }
    14. }

     7.4 笔记DAO

    1. package com.dao;
    2. import com.entity.BijiEntity;
    3. import com.baomidou.mybatisplus.mapper.BaseMapper;
    4. import java.util.List;
    5. import java.util.Map;
    6. import com.baomidou.mybatisplus.plugins.pagination.Pagination;
    7. import org.apache.ibatis.annotations.Param;
    8. import com.entity.view.BijiView;
    9. /**
    10. * 笔记广场 Dao 接口
    11. *
    12. * @author
    13. */
    14. public interface BijiDao extends BaseMapper {
    15. List selectListView(Pagination page,@Param("params")Map params);
    16. }

    8.参考文档

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

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

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

  • 相关阅读:
    kotlin if when 循环
    Mysql —— 多行/聚合/分组函数
    Android Studio中创建java项目
    maven==docker搭建私有maven仓库,编写starter并发布到私有maven仓库,在项目中使用私有仓库中的starter
    高性能MySQL实战第06讲:高性能索引该如何设计(下)
    MFC中的主窗口以及如何通过代码找到主窗口
    [SUCTF 2019]CheckIn
    Android 底部导航栏(一、BottomNavigationView+Menu+Fragment)
    深度学习手写简单的lstm
    Spring Boot 3.0.0 发布第一个里程碑版本M1,你的 Java 升到17 了吗?
  • 原文地址:https://blog.csdn.net/weixin_51966461/article/details/133956071