基于javaweb+mysql的springboot网上水果超市商城设计和实现(java+ssm+springboot+redis)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot网上水果超市商城设计和实现(java+ssm+springboot+redis)
主要技术实现:spring、 springmvc、 redis、 springboot、 mybatis 、session、 jquery 、 md5 、bootstarp.js tomcat、、拦截器等。
主要功能实现: 前端:登录、注册、商品分类查看、浏览水果商品、订单管理、发表评论、收藏商品、购物车管理、个人订单管理查看、个人信息查看修改、地址管理等
后台管理员:后台登录、数据统计、系统版本信息等、管理员管理、角色管理、订单管理、通知公告管理、商品种类、和商品详情管理
主要功能截图如下:
用户填写相关信息进行注册:
水果商品数据列表查看:也可以根据关键字搜索水果商品信息
水果商品详情管理:点击可以查看水果商品购买详情数据、可以进行数量操作、加入订单和购物车以及收藏商品和查看排行等功能
我的购物车详情:可以结算以及继续购物和删除购物车信息等操作
订单详情管理:
我的个人信息管理:可以进行密码修改、订单查看管理、收藏查看管理、收获地址管理
我的评论查看:
我的收藏;可以移除收藏
后台管理员端主要实现:
超级管理员admin登录
系统首页:主要功能用户、角色、通知公告信息、商品种类以及商品详情管理和用户管理以及订单信息管理等数据操作。
后台菜单管理:
用户管理:
通知公告列表展示以及内容添加:
后台管理员对水果商品的管理:
上传商品详情信息:
商品评论数据维护:
订单管理和维护:
项目使用eclipse和idea运行、推荐idea、源码架构:
数据库设计ER图:
设计报告:
}
}
/**
*/
/**
* 后台管理系统订单控制器
*
*/
@RequestMapping("/admin/order")
@Autowired
private IAnnouncementService announcementService;
@Autowired
private MenuMapper menuMapper;
@Autowired
private AdminMapper adminMapper;
@Autowired
private AnnouncementMapper announcementMapper;
@Autowired
private MailMapper mailMapper;
@Autowired
private AttachmentMapper attachmentMapper;
@Autowired
private AuthorityMapper authorityMapper;
@Autowired
private IOrderService orderService;
/**
* 系统首页页面
* @param model
* @return
*/
@RequestMapping(value="/index",method=RequestMethod.GET)
public String index(Model model,HttpServletRequest request) {
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
List<Authority> selectByRoleId = authorityMapper.selectByRoleId(loginedAdmin.getRoleId()); //获取当前用户所有权限
Set<Integer> menuIdSet = selectByRoleId.stream().map(Authority :: getMenuId).collect(Collectors.toSet());//把权限中所有菜单id取出来
List<Menu> allMenusByStateAndPrimaryKeys = menuMapper.selectByStateAndPrimaryKeys(MenuStateEnum.OPEN.getCode(), menuIdSet);
model.addAttribute("FirstMenus",menuService.getFirstMenus(allMenusByStateAndPrimaryKeys).getData());
model.addAttribute("SecondMenus",menuService.getSecondMenus(allMenusByStateAndPrimaryKeys).getData());
model.addAttribute("ThirdMenus",menuService.getThirdMenus(allMenusByStateAndPrimaryKeys).getData());
public ResponseVo<Boolean> userDelete(Long orderId, Integer isDeleted) {
if(orderId == null || isDeleted == null){
return ResponseVo.errorByMsg(CodeMsg.DATA_ERROR);
}
Order order = orderMapper.selectByPrimaryKey(orderId);
if(order == null){
return ResponseVo.errorByMsg(CodeMsg.ORDER_NOT_EXIST);
}
if(orderMapper.updateIsDeletedByOrderId(orderId, isDeleted) <= 0){
return ResponseVo.errorByMsg(CodeMsg.ORDER_DELETE_ERROR);
}
return ResponseVo.successByMsg(true, "成功删除该订单!");
}
@Override
public ResponseVo<PageInfo> selectByPage(Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<Order> orderList = orderMapper.selectAll();
PageInfo pageInfo = new PageInfo<>(orderList);
pageInfo.setList(orderList);
return ResponseVo.success(pageInfo);
}
@Override
public ResponseVo<PageInfo> selectByPageAndContent(Long orderNo, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<Order> orderList = orderMapper.selectBySearchContent(orderNo);
PageInfo pageInfo = new PageInfo<>(orderList);
pageInfo.setList(orderList);
return ResponseVo.success(pageInfo);
}
@Override
public Order selectByPrimaryKey(Long id) {
return orderMapper.selectByPrimaryKey(id);
}
@Override
public List<OrderItem> getOrderItemByOrderId(Long orderId) {
return orderMapper.getOrderItemByOrderId(orderId);
}
@Override
public ResponseVo<Boolean> deleteOrder(Long orderId) {
if(orderId == null){
return ResponseVo.errorByMsg(CodeMsg.DATA_ERROR);
public String logout(Model model,HttpServletRequest request) {
request.getSession().setAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY, null);
return "admin/system/login";
}
/**
* 登录表单验证处理
* @param admin
* @param cpacha
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> login(Admin admin, String cpacha, HttpServletRequest request){
if(admin == null) {
return ResponseVo.errorByMsg(CodeMsg.DATA_ERROR);
}
if(StringUtil.isEmpty(cpacha)) {
return ResponseVo.errorByMsg(CodeMsg.CPACHA_EMPTY);
}
String correct_cpacha = (String) request.getSession().getAttribute("admin_login");
//判断验证码是否过期
if(StringUtil.isEmpty(correct_cpacha)){
return ResponseVo.errorByMsg(CodeMsg.CPACHA_EXPIRE);
}
if(!cpacha.toLowerCase().equals(correct_cpacha.toLowerCase())) {
return ResponseVo.errorByMsg(CodeMsg.CPACHA_ERROR);
}
//去数据库查询数据验证
Admin selectByNameAndPassword = adminMapper.selectByNameAndPassword(admin.getName(), admin.getPassword());
if(selectByNameAndPassword == null) {
return ResponseVo.errorByMsg(CodeMsg.USERNAME_OR_PASSWORD_ERROR);
}
//验证该用户是否被冻结
if(selectByNameAndPassword.getState().intValue() == AdminStateEnum.STOP.getCode().intValue()) {
return ResponseVo.errorByMsg(CodeMsg.USER_STATE_ERROR);
}
//验证该用户是否无权限
List<Authority> selectByRoleId = authorityMapper.selectByRoleId(selectByNameAndPassword.getRoleId());
if(selectByRoleId == null || selectByRoleId.size() == 0) {
return ResponseVo.errorByMsg(CodeMsg.USER_AUTHORITY_ERROR);
}
//创建权限
request.getSession().setAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY, selectByNameAndPassword);
return ResponseVo.success(true);
}
*/
@RequestMapping(value="/order",method=RequestMethod.GET)
public String order(Model model, HttpServletRequest request,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "1") Integer pageSize //每页1个数据
){
//获取当前登录用户的id
String uid = (String) request.getAttribute("id");
model.addAttribute("PageInfo", orderService.selectByPageAndUserIdAndIsDeleted(Long.valueOf(uid), OrderDeleteEnum.NO.getCode(), pageNum, pageSize).getData());
//model.addAttribute("OrderList", orderMapper.selectByUserIdAndIsDeleted(Long.valueOf(uid), 0));
model.addAttribute("Send", orderService.selectByOrderStateAndUserIdAndIsDeleted(OrderStateEnum.SEND.getCode(), Long.valueOf(uid), OrderDeleteEnum.NO.getCode()).size());
model.addAttribute("Sign", orderService.selectByOrderStateAndUserIdAndIsDeleted(OrderStateEnum.SIGN.getCode(), Long.valueOf(uid), OrderDeleteEnum.NO.getCode()).size());
return "/home/user/order";
}
/**
* 用户登录操作处理
* @param username
* @param password
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> login(String username, String password){
return userService.login(username, password);
}
/**
* 用户注册操作处理
* @param user
* @param repassword
* @param cpacha
* @param request
* @return
*/
@RequestMapping(value="/register",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> register(User user, String repassword, String cpacha, HttpServletRequest request) {
return userService.register(user, repassword, cpacha, request);
}
/**
* 用户个人信息修改操作处理
* @param user
* @return
public ResponseVo<Boolean> updatePasswd(String prePassword, String newPassword, String reNewPassword, HttpServletRequest request){
return userService.updatePasswd(prePassword, newPassword, reNewPassword, request);
}
}
/**
}
//获取路径上有关信息
Menu selectByPrimaryKey = menuMapper.selectByPrimaryKey(id);
if(selectByPrimaryKey == null) {
return "error/404";
}
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
List<Authority> selectByRoleId = authorityMapper.selectByRoleId(loginedAdmin.getRoleId()); //获取当前用户所有权限
Set<Integer> menuIdSet = selectByRoleId.stream().map(Authority :: getMenuId).collect(Collectors.toSet());//把权限中所有菜单id取出来
List<Menu> allMenusByStateAndPrimaryKeys = menuMapper.selectByStateAndPrimaryKeys(MenuStateEnum.OPEN.getCode(), menuIdSet);
model.addAttribute("allAdmins", adminMapper.selectAll());
model.addAttribute("onThirdMenus", menuService.getThirdMenus(allMenusByStateAndPrimaryKeys).getData());
model.addAttribute("parentMenu", menuMapper.selectByPrimaryKey(selectByPrimaryKey.getParentId()));
model.addAttribute("currentMenu", selectByPrimaryKey);
return "admin/announcement/index";
}
/**
* 公告添加页面
* @param model
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.GET)
public String add(Model model) {
return "admin/announcement/add";
}
/**
* 公告添加表单处理
* @param announcement
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> add(Announcement announcement, HttpServletRequest request){
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
return announcementService.add(announcement, loginedAdmin.getId());
}
*/
/**
* 后台管理系统用户控制器
*
*/
@RequestMapping("/admin/user")
@Controller
public class UserController {
@Autowired
private IMenuService menuService;
@Autowired
private MenuMapper menuMapper;
@Autowired
private AdminMapper adminMapper;
@Autowired
private AuthorityMapper authorityMapper;
@Autowired
private IUserService userService;
@Autowired
private ICommentService commentService;
/**
* 用户列表页面
* @param model
* @param id
* @param request
* @param content
* @param pageNum
* @param pageSize
* @return
*/
@RequestMapping(value="/index",method= RequestMethod.GET)
public String index(Model model, Integer id, HttpServletRequest request, String content,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "5") Integer pageSize //每页5个数据
) {
//获取列表展示有关信息
if(StringUtil.isEmpty(content)) {
//如果查询信息为空
model.addAttribute("PageInfo", userService.getUserByPage(pageNum, pageSize).getData());
}else {
model.addAttribute("PageInfo", userService.getUserByPageAndContent(pageNum, pageSize, content).getData());
model.addAttribute("content",content);
}
//获取路径上有关信息
Menu selectByPrimaryKey = menuMapper.selectByPrimaryKey(id);
List<Authority> selectByRoleId = authorityMapper.selectByRoleId(loginedAdmin.getRoleId()); //获取当前用户所有权限
Set<Integer> menuIdSet = selectByRoleId.stream().map(Authority :: getMenuId).collect(Collectors.toSet());//把权限中所有菜单id取出来
List<Menu> allMenusByStateAndPrimaryKeys = menuMapper.selectByStateAndPrimaryKeys(MenuStateEnum.OPEN.getCode(), menuIdSet);
model.addAttribute("allAdmins", adminMapper.selectAll());
model.addAttribute("onThirdMenus", menuService.getThirdMenus(allMenusByStateAndPrimaryKeys).getData());
model.addAttribute("parentMenu", menuMapper.selectByPrimaryKey(selectByPrimaryKey.getParentId()));
model.addAttribute("currentMenu", selectByPrimaryKey);
return "admin/user/index";
}
/**
* 用户评论列表页面
* @param model
* @param id
* @param request
* @param content
* @param pageNum
* @param pageSize
* @return
*/
@RequestMapping(value="/comment",method= RequestMethod.GET)
public String comment(Model model, Integer id, HttpServletRequest request, String content,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "5") Integer pageSize //每页5个数据
) {
//获取列表展示有关信息
if(StringUtil.isEmpty(content)) {
//如果查询信息为空
model.addAttribute("PageInfo", commentService.selectByPage(pageNum, pageSize).getData());
}else {
model.addAttribute("PageInfo", commentService.selectByPageAndSearchContent(content, pageNum, pageSize).getData());
model.addAttribute("content",content);
}
//获取路径上有关信息
Menu selectByPrimaryKey = menuMapper.selectByPrimaryKey(id);
if(selectByPrimaryKey == null) {
return "error/404";
}
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
@RequestMapping(value="/add",method=RequestMethod.GET)
public String add(Model model) {
model.addAttribute("RoleList", roleMapper.selectAll());
return "admin/admin/add";
}
/**
* 管理员编辑页面
* @param model
* @param id
* @return
*/
@RequestMapping(value="/edit",method=RequestMethod.GET)
public String edit(Model model,Integer id) {
Admin selectByPrimaryKey = adminMapper.selectByPrimaryKey(id);
if(selectByPrimaryKey == null) {
return "error/404";
}
model.addAttribute("RoleList", roleMapper.selectAll());
model.addAttribute("editAdmin", selectByPrimaryKey);
return "admin/admin/edit";
}
/**
* 管理员添加表单处理
* @param admin
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> add(Admin admin){
return adminService.add(admin);
}
/**
* 管理员编辑表单处理
* @param admin
* @return
*/
@RequestMapping(value="/edit",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> edit(Admin admin,HttpServletRequest request){
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
ResponseVo<Admin> editAdmin = adminService.edit(admin);
return ResponseVo.success(pageInfo);
}
@Override
public Order selectByPrimaryKey(Long id) {
return orderMapper.selectByPrimaryKey(id);
}
@Override
public List<OrderItem> getOrderItemByOrderId(Long orderId) {
return orderMapper.getOrderItemByOrderId(orderId);
}
@Override
public ResponseVo<Boolean> deleteOrder(Long orderId) {
if(orderId == null){
return ResponseVo.errorByMsg(CodeMsg.DATA_ERROR);
}
//从数据库中删除订单信息
if(orderMapper.deleteByPrimaryKey(orderId) <= 0){
return ResponseVo.errorByMsg(CodeMsg.ORDER_DELETE_ERROR);
}
return ResponseVo.successByMsg(true, "订单删除成功!");
}
@Override
public List<Order> getOrderByDay() {
return orderMapper.getOrderByDay();
}
@Override
public List<Order> getOrderByWeek() {
return orderMapper.getOrderByWeek();
}
@Override
public List<Order> getOrderByMonth() {
return orderMapper.getOrderByMonth();
}
}
*/
@RequestMapping(value="/write",method=RequestMethod.GET)
public String index(Model model,Integer id,HttpServletRequest request) {
//获取路径上有关信息
Menu selectByPrimaryKey = menuMapper.selectByPrimaryKey(id);
if(selectByPrimaryKey == null) {
return "error/404";
}
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
List<Authority> selectByRoleId = authorityMapper.selectByRoleId(loginedAdmin.getRoleId()); //获取当前用户所有权限
Set<Integer> menuIdSet = selectByRoleId.stream().map(Authority :: getMenuId).collect(Collectors.toSet());//把权限中所有菜单id取出来
List<Menu> allMenusByStateAndPrimaryKeys = menuMapper.selectByStateAndPrimaryKeys(MenuStateEnum.OPEN.getCode(), menuIdSet);
model.addAttribute("Receivers", adminMapper.selectAll()); //获取所有收信人
model.addAttribute("onThirdMenus", menuService.getThirdMenus(allMenusByStateAndPrimaryKeys).getData());
model.addAttribute("parentMenu", menuMapper.selectByPrimaryKey(selectByPrimaryKey.getParentId()));
model.addAttribute("currentMenu", selectByPrimaryKey);
return "admin/mail/write";
}
/**
* 收件箱页面
* @param model
* @param id
* @return
*/
@RequestMapping(value="/receive",method=RequestMethod.GET)
public String receive(Model model,Integer id,String title,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "5") Integer pageSize, //每页5个数据
HttpServletRequest request
) {
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
//获取列表展示有关信息
if(StringUtil.isEmpty(title)) {
//如果查询信息为空
model.addAttribute("PageInfo", mailService.getReceiveMailsByPage(pageNum, pageSize, loginedAdmin.getId()).getData());
}else {
model.addAttribute("PageInfo", mailService.getReceiveMailsByPageAndTitle(pageNum, pageSize, loginedAdmin.getId(), title).getData());
model.addAttribute("title",title);
}
//获取路径上有关信息
Menu selectByPrimaryKey = menuMapper.selectByPrimaryKey(id);
if(selectByPrimaryKey == null) {
return "error/404";
}
@Override
public List<Order> getOrderByMonth() {
return orderMapper.getOrderByMonth();
}
}
/**
*/
/**
* 用户service接口实现类
*
*/
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
public ResponseVo<Boolean> isUsernameExist(User user, Long id) {
User findByUsername = userMapper.findUserByUsername(user.getUsername());
if(findByUsername != null) {
if(!findByUsername.getId().equals(id)) {
return ResponseVo.success(true); //出现重名
}
}
return ResponseVo.success(false);//没有重名
/**
* 后台管理系统公告控制器
*
*/
@RequestMapping("/admin/announcement")
@Controller
public class AnnouncementController {
@Autowired
private IMenuService menuService;
@Autowired
private MenuMapper menuMapper;
@Autowired
private IAnnouncementService announcementService;
@Autowired
private AdminMapper adminMapper;
@Autowired
private AuthorityMapper authorityMapper;
/**
* 公告列表页面
* @param model
* @param id
* @return
*/
@RequestMapping(value="/index",method=RequestMethod.GET)
public String index(Model model,Integer id,String content,HttpServletRequest request,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
/**
* 后台管理系统角色控制器
*
*/
@RequestMapping("/admin/role")
@Controller
public class RoleController {
@Autowired
private IMenuService menuService;
@Autowired
private MenuMapper menuMapper;
@Autowired
private RoleMapper roleMapper;
@Autowired
private RoleServiceImpl roleService;
@Autowired
private AuthorityMapper authorityMapper;
/**
* 角色列表页面
* @param model
* @param id
* @return
*/
@RequestMapping(value="/index",method=RequestMethod.GET)
public String index(Model model,Integer id,String name,HttpServletRequest request,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "5") Integer pageSize //每页5个数据
) {
//获取列表展示有关信息
if(StringUtil.isEmpty(name)) {
//如果查询信息为空
model.addAttribute("PageInfo", roleService.getRoleListByPage(pageNum, pageSize).getData());
}else {
model.addAttribute("PageInfo", roleService.getRoleListByPageAndName(pageNum, pageSize, name).getData());
model.addAttribute("name",name);
}
String token = JWTUtil.getToken(map);
return ResponseVo.successByMsg(token,"修改个人信息成功!");
}
@Override
public ResponseVo<Boolean> updatePasswd(String prePassword, String newPassword, String reNewPassword, HttpServletRequest request) {
//对用户输入的数据进行非空验证
if(StringUtil.isEmpty(prePassword)){
return ResponseVo.errorByMsg(CodeMsg.USER_PREPASSWORD_EMPTY);
}
if(StringUtil.isEmpty(newPassword)){
return ResponseVo.errorByMsg(CodeMsg.USER_NEWPASSWORD_EMPTY);
}
if(StringUtil.isEmpty(reNewPassword)){
return ResponseVo.errorByMsg(CodeMsg.USER_RENEWPASSWORD_EMPTY);
}
//获取当前登录用户的id
String id = (String) request.getAttribute("id");
//判断用户输入的旧密码是否正确
User user = userMapper.selectByPrimaryKey(Long.valueOf(id));
if(!prePassword.equals(user.getPassword())){
return ResponseVo.errorByMsg(CodeMsg.USER_PREPASSWORD_ERROR);
}
//判断用户输入的新密码是否符合规范
user.setPassword(newPassword);
CodeMsg validate = ValidateEntityUtil.validate(user);
if(!validate.getCode().equals(CodeMsg.SUCCESS.getCode())) {
return ResponseVo.errorByMsg(validate);
}
//判断用户输入的新密码和确认新密码是否一致
if(!newPassword.equals(reNewPassword)){
return ResponseVo.errorByMsg(CodeMsg.USER_RENEWPASSWORD_ERROR);
}
//修改数据库中的用户密码信息
if(userMapper.updateByPrimaryKeySelective(user) <= 0){
return ResponseVo.errorByMsg(CodeMsg.USER_PASSWORD_EDIT_ERROR);
}
return ResponseVo.successByMsg(true, "修改密码成功!");
}
@Override
public ResponseVo<PageInfo> getUserByPage(Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userMapper.selectAll();
PageInfo pageInfo = new PageInfo<>(userList);
pageInfo.setList(userList);
return ResponseVo.success(pageInfo);
}
@Override
public ResponseVo<PageInfo> getUserByPageAndContent(Integer pageNum, Integer pageSize, String content) {
PageHelper.startPage(pageNum, pageSize);
}
//统一表单验证
CodeMsg validate = ValidateEntityUtil.validate(user);
if(!validate.getCode().equals(CodeMsg.SUCCESS.getCode())) {
return ResponseVo.errorByMsg(validate);
}
//验证确认密码和验证码是否为空
if(StringUtil.isEmpty(repassword)){
return ResponseVo.errorByMsg(CodeMsg.USER_REPASSWORD_EMPTY);
}
if(StringUtil.isEmpty(cpacha)){
return ResponseVo.errorByMsg(CodeMsg.CPACHA_EMPTY);
}
//验证两次密码输入是否一致
if(!user.getPassword().equals(repassword)){
return ResponseVo.errorByMsg(CodeMsg.USER_REPASSWORD_ERROR);
}
//判断验证码输入是否正确
String collectCpacha = (String) request.getSession().getAttribute("user_register");
if(StringUtil.isEmpty(collectCpacha)){
return ResponseVo.errorByMsg(CodeMsg.CPACHA_EXPIRE);
}
if(!cpacha.toLowerCase().equals(collectCpacha.toLowerCase())) {
return ResponseVo.errorByMsg(CodeMsg.CPACHA_ERROR);
}
//判断用户名称是否已经存在
if(isUsernameExist(user, 0L).getData()){
return ResponseVo.errorByMsg(CodeMsg.USER_USERNAME_ALREADY_EXIST);
}
//把用户信息添加到数据库
if(userMapper.insertSelective(user) <= 0) {
return ResponseVo.errorByMsg(CodeMsg.USER_ADD_ERROR);
}
//发送邮件提醒用户成功注册
//MailUtil.sendMail(MailTypeEnum.USER_REGISTER.getCode(), user.getEmail(), "");
return ResponseVo.successByMsg(true,"注册成功!快去登录体验吧!");
}
@Override
public ResponseVo<String> updateInfo(User user) {
if(user == null){
return ResponseVo.errorByMsg(CodeMsg.DATA_ERROR);
}
//获取用户密码以便通过下面统一表单验证
User findUserById = userMapper.selectByPrimaryKey(user.getId());
user.setPassword(findUserById.getPassword());
//统一表单验证
CodeMsg validate = ValidateEntityUtil.validate(user);
if(!validate.getCode().equals(CodeMsg.SUCCESS.getCode())) {
return ResponseVo.errorByMsg(validate);
private String uploadAttachmentPath = System.getProperty("user.dir") + "/src/main/resources/upload/attachment/";
private Logger log = LoggerFactory.getLogger(UploadController.class);
@Autowired
private AttachmentMapper attachmentMapper;
/**
* 图片统一上传类
*
* @param photo
* @return
*/
@RequestMapping(value = "/upload_photo", method = RequestMethod.POST)
@ResponseBody
public ResponseVo<String> uploadPhoto(@RequestParam(name = "photo", required = true) MultipartFile photo) {
//判断文件类型是否是图片
String originalFilename = photo.getOriginalFilename();
//获取文件后缀
String suffix = originalFilename.substring(originalFilename.lastIndexOf("."), originalFilename.length());
if (!uploadPhotoSufix.contains(suffix.toLowerCase())) {
return ResponseVo.errorByMsg(CodeMsg.UPLOAD_PHOTO_SUFFIX_ERROR);
}
//photo.getSize()单位是B
if (photo.getSize() / 1024 > uploadPhotoMaxSize) {
CodeMsg codeMsg = CodeMsg.UPLOAD_PHOTO_ERROR;
codeMsg.setMsg("图片大小不能超过" + (uploadPhotoMaxSize / 1024) + "M");
return ResponseVo.errorByMsg(codeMsg);
}
//准备保存文件
File filePath = new File(uploadPhotoPath);
if (!filePath.exists()) {
//若不存在文件夹,则创建一个文件夹
filePath.mkdir();
}
filePath = new File(uploadPhotoPath + "/" + StringUtil.getFormatterDate(new Date(), "yyyyMMdd"));
//判断当天日期的文件夹是否存在,若不存在,则创建
if (!filePath.exists()) {
//若不存在文件夹,则创建一个文件夹
filePath.mkdir();