末尾获取源码
开发语言: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的书画拍卖网站相关推荐

  1. jsp基于ssm框架的书画拍卖网站

    (1)功能要求:个人中心.用户管理.画作竞拍管理.拍品类型管理.画家介绍管理.竞拍信息管理.成交订单管理.发货订单管理.确认订单管理.退货订单管理.系统管理等功能模块. (2)性能:在不同操作系统上均 ...

  2. Java毕设项目——书画拍卖网站(java+SSM+Maven+Mysql+Jsp)

    文末获取源码 开发语言:Java 框架:SSM 技术:Jsp JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclip ...

  3. 精品基于SSM的在线租房网站

    <基于SSM的在线租房网站>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 使用技术: 开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服 ...

  4. 基于SSM框架的旅游网站的设计与实现

    1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,*基于SSM框架的旅游网站的设计与实现 *. 计算机毕业生设计,课程设计需要帮助的可以找我 2 设计概要 1.1.研究背景 随着互联网技术的 ...

  5. (java毕业设计)基于ssm校园二手交易网站管理系统源码

    基于ssm校园二手交易网站管理系统 校园二手交易网站管理系统是基于java编程语言,ssm框架和mysql数据库开发,BS架构系统.系统主要分为学生用户,管理员两个角色,学生可以浏览商品,购买二手商品 ...

  6. java计算机毕业设计基于ssm的志愿者招募网站(源代码+数据库+Lw文档)

    项目介绍 志愿者招募的需求和管理上的不断提升,志愿者招募网站的潜力将无限扩大,志愿者招募网站在业界被广泛关注,本系统对此进行总体分析,将为志愿者招募信息管理的发展提供参考.志愿者招募网站对志愿者招募有 ...

  7. 基于ssm的校园门户网站源码+开题报告+需求分析+mysql数据库+前端html文件

    下载地址:https://download.csdn.net/download/biyesheji250/28740242 项目介绍: 基于ssm的校园门户网站源码+开题报告+需求分析+mysql数据 ...

  8. Java毕业设计_ 基于SSM的JSP教学网站的设计与实现

    基于SSM的JSP教学网站的设计与实现 基于SSM的JSP教学网站的设计与实现mysql数据库创建语句 基于SSM的JSP教学网站的设计与实现oracle数据库创建语句 基于SSM的JSP教学网站的设 ...

  9. 基于SSM的在线音乐网站开发与实现

    基于SSM的在线音乐网站开发与实现 本人的毕业设计,因为没有系统的学习过HTML和CSS,所以页面想不出什么设计元素,都是基于框架搭建而成的.前台页面为Bootstrap实现,后台页面为LayUI实现 ...

最新文章

  1. 服务器状态监控之二软硬件环境介绍
  2. 非阻塞connect的实现
  3. UDA机器学习基础—交叉验证
  4. 扎金花游戏 PHP 实现代码之大小比赛
  5. springboot13 页面国际化(i18n)
  6. ueditor清除多余空行
  7. 透明png图片和素材免费下载网站
  8. 斯坦福大学公开课:编程方法学
  9. 内网渗透系列:痕迹清理方法小结
  10. Frontiers in Nutrition专刊征稿(IF 6.59, 王进/刘连亮/Zhongbin Deng
  11. 百万光年 ~~正式登陆苹果App Store~~
  12. 数字电子钟仿真软件中的电路测试,如何利用Multisim仿真软件进行数字电子钟设计...
  13. 查看所连接局域网内所有ip
  14. 跨境电商独立站怎么选择收款方式?
  15. 2005年的网易邮箱长什么样的?
  16. java idea运行时内存不足
  17. 动手做一台十分简单的机械按键收音机(RDA5807FP应用实例)
  18. sd和emmc如何进行tuning
  19. 机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测
  20. ZWAVE通过Alarm TypeSupported Get Command获得设备支持的告警类型

热门文章

  1. php移动文件到指定目录
  2. ELGamal加密算法C语言实现,ElGamal加密算法基础到实现详解
  3. 解析以太坊区块链跨链交易,并爬虫爬取更新于数据库
  4. OpenCV学习(52)
  5. PHP-CMS框架选择 Wordpress、Drupal、October、PHPCMS、Dedecms、帝国CMS
  6. sql语句创建表时的注意事项
  7. 软件工程 可行性分析研究报告
  8. ZXA10 C6xx: 大容量光接入设备
  9. matlab deconv出现无穷大,deconv(matlab的deconv函数)
  10. 樱花相册炫酷3D(含背景音乐)