基于javaweb+mysql的springboot网上水果蔬菜项目系统设计和实现(java+springboot+mysql+ssm)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot网上水果蔬菜项目系统设计和实现(java+springboot+mysql+ssm)
主主要技术:java springmvc springboot mybatis mysql jquery layui 等技术要模块设计如下:
用户角色的功能:
登录、注册、浏览商品、修改个人信息(上传图片)、修改密码、评论商品、添加商品到购物车、提交订单、查看订单、收藏商品等等功能。
管理员角色的功能:管理用户信息、管理用户评论信息、管理商品信息、管理订单信息等等功能。
* @return
*/
@RequestMapping(value="/send_mail",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> sendMail(Mail mail,String receivers,HttpServletRequest request){
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
return mailService.sendMail(mail, receivers, loginedAdmin.getId());
}
/**
* 邮件删除处理
* @param id
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> delete(Integer id,HttpServletRequest request){
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
return mailService.delete(id, loginedAdmin.getId());
}
}
package com.demo.controller.admin;
/**
*/
/**
* 后台管理系统订单控制器
*
*/
@RequestMapping("/admin/order")
@Controller
public class OrderController {
@Autowired
private IMenuService menuService;
@Autowired
private MenuMapper menuMapper;
@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);
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/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 {
/**
* 公用的上传类
*/
@RequestMapping("/upload")
@Controller
public class UploadController {
private String uploadPhotoSufix = ".jpg,.png,.gif,.jpeg";
private long uploadPhotoMaxSize = 10240; //大小1024KB
private String uploadPhotoPath = System.getProperty("user.dir") + "/src/main/resources/upload/photo/";
private long uploadAttachmentMaxSize = 204800; //大小204800KB
private String uploadAttachmentPath = System.getProperty("user.dir") + "/src/main/resources/upload/attachment/";
private Logger log = LoggerFactory.getLogger(UploadController.class);
@Autowired
private AttachmentMapper attachmentMapper;
String uid = (String) request.getAttribute("id");
model.addAttribute("PageInfo", commentService.selectByPageAndUserId(pageNum, pageSize, Long.valueOf(uid)).getData());
return "home/user/comment";
}
/**
* 我的订单页面
* @param model
* @param request
* @param pageNum
* @param pageSize
* @return
*/
@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 menu
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> add(Menu menu){
return menuService.add(menu);
}
/**
* 菜单编辑表单处理
* @param menu
* @return
*/
@RequestMapping(value="/edit",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> edit(Menu menu){
return menuService.edit(menu);
}
/**
* 菜单删除处理
* @param id
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> delete(Integer id){
return menuService.delete(id);
}
/**
* 判断当前菜单是否是二级菜单
* @param id
* @return
*/
@RequestMapping(value="/level",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Integer> level(Integer id){
return menuService.level(id);
}
/**
* 菜单更改状态处理
* @param id
* @return
*/
@RequestMapping(value="/change_state",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> chageState(Integer id){
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);
}
//获取路径上有关信息
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("onThirdMenus", menuService.getThirdMenus(allMenusByStateAndPrimaryKeys).getData());
model.addAttribute("parentMenu", menuMapper.selectByPrimaryKey(selectByPrimaryKey.getParentId()));
model.addAttribute("currentMenu", selectByPrimaryKey);
return "admin/role/index";
}
/**
* 角色添加页面
* @param model
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.GET)
public String add(Model model) {
return "admin/role/add";
}
/**
* 角色编辑页面
* @param model
}
package com.demo.service.home.impl;
/**
*/
/**
* 地址service接口实现类
*
*/
@Service
public class AddressServiceImpl implements IAddressService {
@Autowired
private AddressMapper addressMapper;
@Override
public ResponseVo<Boolean> add(Address address, HttpServletRequest request) {
if(address == null){
return ResponseVo.errorByMsg(CodeMsg.DATA_ERROR);
}
//获取当前登录用户的id
String id = (String) request.getAttribute("id");
address.setUserId(Long.valueOf(id));
//统一表单验证
CodeMsg validate = ValidateEntityUtil.validate(address);
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);
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);
}
//获取路径上有关信息
return ResponseVo.errorByMsg(codeMsg);
}
//准备保存文件
File filePath = new File(uploadAttachmentPath);
if (!filePath.exists()) {
//若不存在文件夹,则创建一个文件夹
filePath.mkdir();
}
filePath = new File(uploadAttachmentPath + "/" + StringUtil.getFormatterDate(new Date(), "yyyyMMdd"));
//判断当天日期的文件夹是否存在,若不存在,则创建
if (!filePath.exists()) {
//若不存在文件夹,则创建一个文件夹
filePath.mkdir();
}
String filename = StringUtil.getFormatterDate(new Date(), "yyyyMMdd") + "/" + System.currentTimeMillis() + suffix;
try {
attachment.transferTo(new File(uploadAttachmentPath + "/" + filename)); //把文件上传
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//把附件信息写入数据库
BigDecimal size = new BigDecimal((double) attachment.getSize() / 1024);
size = size.setScale(2, BigDecimal.ROUND_HALF_EVEN);
Attachment saveAttachment = new Attachment(null, loginedAdmin.getId(), filename, originalFilename, size); //id,senderid,url,name
CodeMsg validate = ValidateEntityUtil.validate(saveAttachment);
if (!validate.getCode().equals(CodeMsg.SUCCESS.getCode())) {
return ResponseVo.errorByMsg(validate);
}
if (attachmentMapper.insertSelective(saveAttachment) <= 0) {
return ResponseVo.errorByMsg(CodeMsg.UPLOAD_ATTACHMENT_ERROR);
}
log.info("附件上传成功,保存位置:" + uploadAttachmentPath + filename);
return ResponseVo.success(saveAttachment);
}
/**
* 文件统一下载类
*
* @param id
* @param response
* @return
*/
@RequestMapping(value = "/download_file", method = RequestMethod.GET)
public void downloadFile(HttpServletResponse response, Integer id) {
Attachment selectByPrimaryKey = attachmentMapper.selectByPrimaryKey(id);
try {
}
package com.demo.service.common.impl;
/**
*/
/**
* 用户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);//没有重名
}
@Override
* @return
*/
@RequestMapping(value="/change_state",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> chageState(Integer id){
return menuService.chageState(id);
}
}
package com.demo.controller.admin;
/**
*/
/**
* 后台管理系统订单控制器
*
*/
@RequestMapping("/admin/order")
@Controller
public class OrderController {
}
/**
* 菜单更改状态处理
* @param id
* @return
*/
@RequestMapping(value="/change_state",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> chageState(Integer id){
return menuService.chageState(id);
}
}
package com.demo.controller.admin;
/**
*/
/**
* 后台管理系统订单控制器
* @param pageNum
* @param pageSize
* @return
*/
@RequestMapping(value="/comment",method=RequestMethod.GET)
public String comment(Model model,HttpServletRequest request,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "5") Integer pageSize //每页5个数据
){
String uid = (String) request.getAttribute("id");
model.addAttribute("PageInfo", commentService.selectByPageAndUserId(pageNum, pageSize, Long.valueOf(uid)).getData());
return "home/user/comment";
}
/**
* 我的订单页面
* @param model
* @param request
* @param pageNum
* @param pageSize
* @return
*/
@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("/admin/system")
@Controller
public class SystemController {
@Autowired
private AdminMapper adminMapper;
@Autowired
private AuthorityMapper authorityMapper;
/**
* 系统登录页面
* @param model
* @return
*/
/**
* 公告列表页面
* @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,
@RequestParam(required = false, defaultValue = "5") Integer pageSize //每页5个数据
) {
//获取列表展示有关信息
if(StringUtil.isEmpty(content)) {
//如果查询信息为空
model.addAttribute("PageInfo", announcementService.getAnnouncementByPage(pageNum, pageSize).getData());
}else {
model.addAttribute("PageInfo", announcementService.getAnnouncementByPageAndContent(pageNum, pageSize, content).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);
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)
/**
*/
/**
* 用户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);//没有重名
}
@Override
public ResponseVo<Boolean> login(String username, String password) {
//判断用户输入的用户名称是否为空
if(StringUtil.isEmpty(username)){
return ResponseVo.errorByMsg(CodeMsg.USER_USERNAME_EMPTY);
}
//判断用户输入的密码是否为空
if(StringUtil.isEmpty(password)){
return ResponseVo.errorByMsg(CodeMsg.USER_PASSWORD_EMPTY);
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "5") Integer pageSize //每页5个数据
) {
//获取列表展示有关信息
if(StringUtil.isEmpty(content)) {
//如果查询信息为空
model.addAttribute("PageInfo", orderService.selectByPage(pageNum, pageSize).getData());
}else {
model.addAttribute("PageInfo", orderService.selectByPageAndContent(Long.valueOf(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);
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/order/index";
}
/**
* 订单详情查看页面
* @param model
* @param orderId
* @return
*/
@RequestMapping(value="/view",method=RequestMethod.GET)
public String view(Model model, Long orderId) {
model.addAttribute("OrderItemList", orderService.getOrderItemByOrderId(orderId));
model.addAttribute("Order", orderService.selectByPrimaryKey(orderId));
return "admin/order/view";
}
/**
* 修改订单状态页面
* @param model
* @param orderId
* @return
*/
@RequestMapping(value="/edit_state",method=RequestMethod.GET)
public String editState(Model model, Long orderId) {
model.addAttribute("Order", orderService.selectByPrimaryKey(orderId));
return "admin/order/edit_state";
* @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
*/
@RequestMapping(value="/update_info",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<String> updateInfo(User user){
return userService.updateInfo(user);
}
/**
* 用户修改密码操作处理
* @param prePassword
* @param newPassword
* @param reNewPassword
* @param request
* @return
*/
@RequestMapping(value="/update_passwd",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> updatePasswd(String prePassword, String newPassword, String reNewPassword, HttpServletRequest request){
return userService.updatePasswd(prePassword, newPassword, reNewPassword, request);
}
}
package com.demo.controller.admin;
@RequestMapping(value="/edit_state",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> editState(Integer state, Long orderId){
return orderService.updateOrderState(orderId, state);
}
/**
* 删除订单操作处理
* @param orderId
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> delete(Long orderId){
return orderService.deleteOrder(orderId);
}
}
package com.demo.controller.common;
/**
* UEditor图片上传
*/
@Controller
@RequestMapping("/ueditor")
public class FileController {
}
/**
* 添加商品操作处理
* @param product
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> add(Product product){
return productService.add(product);
}
/**
* 编辑商品操作处理
* @param product
* @return
*/
@RequestMapping(value="/edit",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> edit(Product product){
return productService.edit(product);
}
/**
* 删除商品操作处理
* @param id
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> delete(Long id){
return productService.delete(id);
}
}
package com.demo.controller.admin;
try{
//验证token
DecodedJWT decodedJWT = JWTUtil.verifyToken(token);
String id = decodedJWT.getClaim("id").asString();
request.setAttribute("id", decodedJWT.getClaim("id").asString());
request.setAttribute("username", decodedJWT.getClaim("username").asString());
request.setAttribute("email", decodedJWT.getClaim("email").asString());
request.setAttribute("phone", decodedJWT.getClaim("phone").asString());
request.setAttribute("headPic", decodedJWT.getClaim("headPic").asString());
request.setAttribute("cartTotal", cartService.total(Long.valueOf(id)).getData()); //获取购物车商品种类
}catch(Exception e){
e.printStackTrace();
//token失效或非法
//判断该路径要不要验证
for(String str : RuntimeConstant.userNotNeedConfirmUrl){
if(requestURI.equals(str)){
temp = true; //该路径不需要验证
}
}
if(temp == false) {
//该路径需要验证,并进行是否是ajax请求判断
//首先判断是否是ajax请求
if (StringUtil.isAjax(request)) {
//表示是ajax请求
try {
response.setCharacterEncoding("UTF-8");
//JSON.parseObject,是将Json字符串转化为相应的对象;JSON.toJSONString则是将对象转化为Json字符串。
response.getWriter().write(JSON.toJSONString(CodeMsg.USER_SESSION_EXPIRED));
} catch (IOException e2) {
e2.printStackTrace();
}
return false;
}
//不是ajax请求,直接跳转页面
try {
log.info("没有登录或token非法,跳转登录界面!当前URL={}",requestURI);
response.sendRedirect("/home/user/login");
} catch (IOException e3) {
e3.printStackTrace();
}
return false;
}
}
}
return true;
}
model.addAttribute("currentMenu", selectByPrimaryKey);
return "admin/order/index";
}
/**
* 订单详情查看页面
* @param model
* @param orderId
* @return
*/
@RequestMapping(value="/view",method=RequestMethod.GET)
public String view(Model model, Long orderId) {
model.addAttribute("OrderItemList", orderService.getOrderItemByOrderId(orderId));
model.addAttribute("Order", orderService.selectByPrimaryKey(orderId));
return "admin/order/view";
}
/**
* 修改订单状态页面
* @param model
* @param orderId
* @return
*/
@RequestMapping(value="/edit_state",method=RequestMethod.GET)
public String editState(Model model, Long orderId) {
model.addAttribute("Order", orderService.selectByPrimaryKey(orderId));
return "admin/order/edit_state";
}
/**
* 修改订单状态操作处理
* @param state
* @param orderId
* @return
*/
@RequestMapping(value="/edit_state",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> editState(Integer state, Long orderId){
return orderService.updateOrderState(orderId, state);
}
/**
* 删除订单操作处理
* @param orderId
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> delete(Long orderId){
return orderService.deleteOrder(orderId);
}
/**
* 订单详情查看页面
* @param model
* @param orderId
* @return
*/
@RequestMapping(value="/view",method=RequestMethod.GET)
public String view(Model model, Long orderId) {
model.addAttribute("OrderItemList", orderService.getOrderItemByOrderId(orderId));
model.addAttribute("Order", orderService.selectByPrimaryKey(orderId));
return "admin/order/view";
}
/**
* 修改订单状态页面
* @param model
* @param orderId
* @return
*/
@RequestMapping(value="/edit_state",method=RequestMethod.GET)
public String editState(Model model, Long orderId) {
model.addAttribute("Order", orderService.selectByPrimaryKey(orderId));
return "admin/order/edit_state";
}
/**
* 修改订单状态操作处理
* @param state
* @param orderId
* @return
*/
@RequestMapping(value="/edit_state",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> editState(Integer state, Long orderId){
return orderService.updateOrderState(orderId, state);
}
/**
* 删除订单操作处理
* @param orderId
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> delete(Long orderId){
return orderService.deleteOrder(orderId);
}
model.addAttribute("currentMenu", selectByPrimaryKey);
return "admin/order/index";
}
/**
* 订单详情查看页面
* @param model
* @param orderId
* @return
*/
@RequestMapping(value="/view",method=RequestMethod.GET)
public String view(Model model, Long orderId) {
model.addAttribute("OrderItemList", orderService.getOrderItemByOrderId(orderId));
model.addAttribute("Order", orderService.selectByPrimaryKey(orderId));
return "admin/order/view";
}
/**
* 修改订单状态页面
* @param model
* @param orderId
* @return
*/
@RequestMapping(value="/edit_state",method=RequestMethod.GET)
public String editState(Model model, Long orderId) {
model.addAttribute("Order", orderService.selectByPrimaryKey(orderId));
return "admin/order/edit_state";
}
/**
* 修改订单状态操作处理
* @param state
* @param orderId
* @return
*/
@RequestMapping(value="/edit_state",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> editState(Integer state, Long orderId){
return orderService.updateOrderState(orderId, state);
}
/**
* 删除订单操作处理
* @param orderId
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> delete(Long orderId){
return orderService.deleteOrder(orderId);
/**
* 公用的上传类
*/
@RequestMapping("/upload")
@Controller
public class UploadController {
private String uploadPhotoSufix = ".jpg,.png,.gif,.jpeg";
private long uploadPhotoMaxSize = 10240; //大小1024KB
private String uploadPhotoPath = System.getProperty("user.dir") + "/src/main/resources/upload/photo/";
private long uploadAttachmentMaxSize = 204800; //大小204800KB
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());