🍊作者:计算机编程-吉哥
🍊简介:专业从事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";
@Autowired
private BijiService bijiService;
@Autowired
private TokenService tokenService;
@Autowired
private AddressService addressService;//收货地址
@Autowired
private BijiCollectionService bijiCollectionService;//笔记收藏
@Autowired
private BijiLiuyanService bijiLiuyanService;//笔记留言
@Autowired
private CartService cartService;//购物车
@Autowired
private DictionaryService dictionaryService;//字典表
@Autowired
private GonggaoService gonggaoService;//公告信息
@Autowired
private GuanzhuService guanzhuService;//我的关注
@Autowired
private RichangrenwuService richangrenwuService;//日常任务
@Autowired
private RichangrenwuLingquService richangrenwuLingquService;//领取任务
@Autowired
private ShangpinService shangpinService;//商品
@Autowired
private ShangpinCollectionService shangpinCollectionService;//商品收藏
@Autowired
private ShangpinCommentbackService shangpinCommentbackService;//商品评价
@Autowired
private ShangpinOrderService shangpinOrderService;//商品兑换
@Autowired
private YonghuService yonghuService;//用户
@Autowired
private 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转view
BijiView 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<>();//购买的类型list
for(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转view
BijiView 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 {
@Override
public 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.参考文档
你可能还有感兴趣的项目👇🏻👇🏻👇🏻
更多项目推荐:计算机毕业设计项目
如果大家有任何疑虑,请在下方咨询或评论