基于SSM的书画拍卖网站
末尾获取源码
开发语言:Java
Java开发工具:JDK1.8
后端框架:SSM
前端:采用JSP技术开发
数据库:MySQL5.7和Navicat管理工具结合
服务器:Tomcat8.5
开发软件:IDEA / Eclipse
是否Maven项目:是
前言
基于SSM的书画拍卖网站有管理员和用户两大角色:
管理员:个人中心、用户管理、画作竞拍、拍品类型、画家介绍、竞拍信息、成交订单、发货订单、确认订单、退货订单、系统管理等功能。
用户:首页、画作竞拍、画家介绍、书画界资讯、个人中心、后台管理。
前台首页
前台首页有首页、画作竞拍、画家介绍、书画界资讯、个人中心、后台管理。
用户可以选择自己想要竞拍的书画,可以选择竞拍。
书画界资讯,用户可以查看管理员发布的资讯。
用户登录页面
用户注册页面
用户个人中心页面
登录以后会出现竞拍按钮,喜欢的可以竞拍
竞拍结果可以点击前台的后台管理,跳转到后台管理中查看自己的竞拍信息、成交订单、发货订单、确认订单、退货订单等信息
竞拍信息中可以查看自己竞拍的书画
管理员功能模块
管理员后台登录页面。
管理员登录到系统有用户管理、画作竞拍、拍品类型、画家介绍、竞拍信息、成交订单、发货订单、确认订单、退货订单、系统管理等功能。
用户管理,管理员可以对用户信息进行管理。
画作竞拍管理,管理员登录后可以对画作竞拍进行管理。
拍品类型,管理员可以删除或者新增类型。
登录模块核心代码
package com.controller;import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/list")public R list( UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew));}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);userService.updateById(user);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}
文件上传核心代码
package com.controller;import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;/*** 上传文件映射表*/
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{@Autowiredprivate ConfigService configService;/*** 上传文件*/@RequestMapping("/upload")public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {if (file.isEmpty()) {throw new EIException("上传文件不能为空");}String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);File path = new File(ResourceUtils.getURL("classpath:static").getPath());if(!path.exists()) {path = new File("");}File upload = new File(path.getAbsolutePath(),"/upload/");if(!upload.exists()) {upload.mkdirs();}String fileName = new Date().getTime()+"."+fileExt;File dest = new File(upload.getAbsolutePath()+"/"+fileName);file.transferTo(dest);FileUtils.copyFile(dest, new File("C:\\Users\\Desktop\\jiadian\\springbootl7own\\src\\main\\resources\\static\\upload"+"/"+fileName));if(StringUtils.isNotBlank(type) && type.equals("1")) {ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));if(configEntity==null) {configEntity = new ConfigEntity();configEntity.setName("faceFile");configEntity.setValue(fileName);} else {configEntity.setValue(fileName);}configService.insertOrUpdate(configEntity);}return R.ok().put("file", fileName);}/*** 下载文件*/@IgnoreAuth@RequestMapping("/download")public ResponseEntity<byte[]> download(@RequestParam String fileName) {try {File path = new File(ResourceUtils.getURL("classpath:static").getPath());if(!path.exists()) {path = new File("");}File upload = new File(path.getAbsolutePath(),"/upload/");if(!upload.exists()) {upload.mkdirs();}File file = new File(upload.getAbsolutePath()+"/"+fileName);if(file.exists()){/*if(!fileService.canRead(file, SessionManager.getSessionUser())){getResponse().sendError(403);}*/HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData("attachment", fileName); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);}} catch (IOException e) {e.printStackTrace();}return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);}}
封装代码
package com.utils;import java.util.HashMap;
import java.util.Map;/*** 返回数据*/
public class R extends HashMap<String, Object> {private static final long serialVersionUID = 1L;public R() {put("code", 0);}public static R error() {return error(500, "未知异常,请联系管理员");}public static R error(String msg) {return error(500, msg);}public static R error(int code, String msg) {R r = new R();r.put("code", code);r.put("msg", msg);return r;}public static R ok(String msg) {R r = new R();r.put("msg", msg);return r;}public static R ok(Map<String, Object> map) {R r = new R();r.putAll(map);return r;}public static R ok() {return new R();}public R put(String key, Object value) {super.put(key, value);return this;}
}
基于SSM的书画拍卖网站相关推荐
- jsp基于ssm框架的书画拍卖网站
(1)功能要求:个人中心.用户管理.画作竞拍管理.拍品类型管理.画家介绍管理.竞拍信息管理.成交订单管理.发货订单管理.确认订单管理.退货订单管理.系统管理等功能模块. (2)性能:在不同操作系统上均 ...
- Java毕设项目——书画拍卖网站(java+SSM+Maven+Mysql+Jsp)
文末获取源码 开发语言:Java 框架:SSM 技术:Jsp JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclip ...
- 精品基于SSM的在线租房网站
<基于SSM的在线租房网站>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 使用技术: 开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服 ...
- 基于SSM框架的旅游网站的设计与实现
1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,*基于SSM框架的旅游网站的设计与实现 *. 计算机毕业生设计,课程设计需要帮助的可以找我 2 设计概要 1.1.研究背景 随着互联网技术的 ...
- (java毕业设计)基于ssm校园二手交易网站管理系统源码
基于ssm校园二手交易网站管理系统 校园二手交易网站管理系统是基于java编程语言,ssm框架和mysql数据库开发,BS架构系统.系统主要分为学生用户,管理员两个角色,学生可以浏览商品,购买二手商品 ...
- java计算机毕业设计基于ssm的志愿者招募网站(源代码+数据库+Lw文档)
项目介绍 志愿者招募的需求和管理上的不断提升,志愿者招募网站的潜力将无限扩大,志愿者招募网站在业界被广泛关注,本系统对此进行总体分析,将为志愿者招募信息管理的发展提供参考.志愿者招募网站对志愿者招募有 ...
- 基于ssm的校园门户网站源码+开题报告+需求分析+mysql数据库+前端html文件
下载地址:https://download.csdn.net/download/biyesheji250/28740242 项目介绍: 基于ssm的校园门户网站源码+开题报告+需求分析+mysql数据 ...
- Java毕业设计_ 基于SSM的JSP教学网站的设计与实现
基于SSM的JSP教学网站的设计与实现 基于SSM的JSP教学网站的设计与实现mysql数据库创建语句 基于SSM的JSP教学网站的设计与实现oracle数据库创建语句 基于SSM的JSP教学网站的设 ...
- 基于SSM的在线音乐网站开发与实现
基于SSM的在线音乐网站开发与实现 本人的毕业设计,因为没有系统的学习过HTML和CSS,所以页面想不出什么设计元素,都是基于框架搭建而成的.前台页面为Bootstrap实现,后台页面为LayUI实现 ...
最新文章
- 服务器状态监控之二软硬件环境介绍
- 非阻塞connect的实现
- UDA机器学习基础—交叉验证
- 扎金花游戏 PHP 实现代码之大小比赛
- springboot13 页面国际化(i18n)
- ueditor清除多余空行
- 透明png图片和素材免费下载网站
- 斯坦福大学公开课:编程方法学
- 内网渗透系列:痕迹清理方法小结
- Frontiers in Nutrition专刊征稿(IF 6.59, 王进/刘连亮/Zhongbin Deng
- 百万光年 ~~正式登陆苹果App Store~~
- 数字电子钟仿真软件中的电路测试,如何利用Multisim仿真软件进行数字电子钟设计...
- 查看所连接局域网内所有ip
- 跨境电商独立站怎么选择收款方式?
- 2005年的网易邮箱长什么样的?
- java idea运行时内存不足
- 动手做一台十分简单的机械按键收音机(RDA5807FP应用实例)
- sd和emmc如何进行tuning
- 机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测
- ZWAVE通过Alarm TypeSupported Get Command获得设备支持的告警类型