基于javaweb+mysql的ssm茶叶售卖商城系统(java+ssm+jsp+easyui+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM茶叶售卖商城系统(java+ssm+jsp+easyui+mysql)
这是一个应用SSM框架的项目,前端页面整洁清晰。该系统有两个角色,一个是普通用户,另一个是管理员。
普通用户具有注册、登录、查看商品、添加购物车、添加商品收藏、下订单、商品评价、用户地址管理等等功能。
管理员具有登录、管理用户信息、管理商品信息、管理商品活动信息、管理订单信息、管理用户评论信息的等等功能。
应用技术:Jsp + SSM + EasyUi
运行环境:eclipse/IDEA + MySQL5.7 + Tomcat8.5 + JDK1.8
Map<String, String> ret = new HashMap<String, String>();
if(id == null){
ret.put("type", "error");
ret.put("msg", "请选择要删除的菜单信息!");
return ret;
}
List<Menu> findChildernList = menuService.findChildernList(id);
if(findChildernList != null && findChildernList.size() > 0){
//表示该分类下存在子分类,不能删除
ret.put("type", "error");
ret.put("msg", "该分类下存在子分类,不能删除!");
return ret;
}
// 删除与此菜单有关的其他信息
authorityService.deleteByMenuId(id);
if(menuService.delete(id) == 0){
ret.put("type", "error");
ret.put("msg", "删除失败,请联系管理员!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "删除成功!");
return ret;
}
}
/**
* 前端注册用户控制器
*
*/
@Controller
@RequestMapping("/home")
/**
* 用户列表页面
* @param model
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.GET)
public ModelAndView list(ModelAndView model){
Map<String, Object> queryMap = new HashMap<String, Object>();
model.addObject("roleList", roleService.findList(queryMap));
model.setViewName("user/list");
return model;
}
/**
* 获取用户列表
* @param page
* @param username
* @param roleId
* @param sex
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> getList(Page page,
@RequestParam(name="username",required=false,defaultValue="") String username,
@RequestParam(name="roleId",required=false) Long roleId,
@RequestParam(name="sex",required=false) Integer sex
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("username", username);
queryMap.put("roleId", roleId);
queryMap.put("sex", sex);
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
ret.put("rows", userService.findList(queryMap));
ret.put("total", userService.getTotal(queryMap));
return ret;
}
/**
* 添加用户
* @param user
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> add(User user){
Map<String, String> ret = new HashMap<String, String>();
if(user == null){
/**
*前端系统用户登录控制类
*
*/
@Controller
@RequestMapping("/home")
public class ShopLoginController {
@Autowired
private AccountService accountService;
@Autowired
private LogService logService;
@Autowired
private ShoppingService shoppingService;
/**
* 前端系统登录页面
* @param model
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.GET)
public ModelAndView index(ModelAndView model,HttpServletRequest request){
Account account = (Account) request.getSession().getAttribute("account");
if(account!=null)
{
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("accountId",account.getId());
queryMap.put("state","未支付");
model.addObject("cartTotal",shoppingService.getTotal(queryMap));
}
model.setViewName("home/login/index");
return model;
}
/**
* 登录表单提交处理控制器
* @param user
* @param cpacha
* @return
*/
if(collect.getId().longValue() == id.longValue())return false;
return true;
}
}
/**
* 商品管理控制器
*
*/
@RequestMapping("/admin/product")
*
*/
@Controller
@RequestMapping("/home/shopping")
public class ShopShoppingController {
@Autowired
private ShoppingService shoppingService;
@Autowired
private AddressService addressService;
@Autowired
private TeaCategoryService teaCategoryService;
@Autowired
private TeaService teaService;
@Autowired
private OrdersService ordersService;
/**
* 前端购物车页面
* @param model
* @return
*/
@RequestMapping(value="/cart",method=RequestMethod.GET)
public ModelAndView cart_view(ModelAndView model,HttpServletRequest request){
Account account = (Account) request.getSession().getAttribute("account");
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("accountId",account.getId());
queryMap.put("state","未支付");
model.addObject("cartList",shoppingService.findList(queryMap));
model.addObject("cartTotal",shoppingService.getTotal(queryMap));
model.setViewName("home/shopping/cart");
return model;
}
/**
* 前端订单结算页面
* @param model
* @return
*/
@RequestMapping(value="/order",method=RequestMethod.GET)
public ModelAndView order_view(ModelAndView model,HttpServletRequest request){
}
if(comment == null)
{
Long pre_comment = (Long)request.getSession().getAttribute("comment");
if(pre_comment != null)
{
queryMap.put("comment", pre_comment);
}
}else {
if(comment == 0l)
{
request.getSession().setAttribute("comment", null);
}else {
request.getSession().setAttribute("comment", null);
request.getSession().setAttribute("comment", comment);
queryMap.put("comment", comment);
}
}
//如果用人通过搜索访问商品列表
if(!StringUtils.isEmpty(name)){
queryMap.put("name", name);
model.addObject("name",name);
}
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
model.addObject("teaList", teaService.findList(queryMap));
int totalCount = teaService.getTotal(queryMap); // 获取总记录数
Page p = new Page();
p.setTotalCount(totalCount);
p.setRows(15);
model.addObject("totalPage",p.getTotalPage()); //总页数
model.addObject("currentPage",page.getPage()); //当前页
Map<String, Object> queryMap2 = new HashMap<String, Object>();
queryMap.put("actionId", 2);
model.addObject("teaListByActionId", teaService.findList(queryMap2));
Account account = (Account) request.getSession().getAttribute("account");
if(account!=null)
{
Map<String, Object> queryMap3 = new HashMap<String, Object>();
queryMap3.put("accountId",account.getId());
queryMap3.put("state","未支付");
model.addObject("cartList",shoppingService.findList(queryMap3));
model.addObject("cartTotal",shoppingService.getTotal(queryMap3));
}
*
*/
@RequestMapping("/admin/menu")
@Controller
public class MenuController {
@Autowired
private MenuService menuService;
@Autowired
private AuthorityService authorityService;
/**
* 菜单管理列表页
* @param model
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.GET)
public ModelAndView list(ModelAndView model){
model.addObject("topList", menuService.findTopList());
model.setViewName("menu/list");
return model;
}
/**
* 获取菜单列表
* @param page
* @param name
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> getMenuList(Page page,
@RequestParam(name="name",required=false,defaultValue="") String name
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("name", name);
List<Menu> findList = menuService.findList(queryMap);
ret.put("rows", findList);
ret.put("total", menuService.getTotal(queryMap));
return ret;
}
/**
* 获取指定目录下的系统icon集合
* @param request
* @return
*/
@RequestMapping(value="/get_icons",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> getIconList(HttpServletRequest request){
*/
private boolean isExist(String username,Long id){
Account account = accountService.findByUsername(username);
if(account == null)return false;
if(account.getId().longValue() == id.longValue())return false;
return true;
}
}
/**
* 前端购物控制类
*
*/
@Controller
@RequestMapping("/home/shopping")
public class ShopShoppingController {
@Autowired
private ShoppingService shoppingService;
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
queryMap.put("id", id);
List<Orders> findList = ordersService.findAllOrders(queryMap);
double price = 0; //计算每个订单的总价
String item = ""; //记录每个订单对应的商品详情
String address = ""; //送货地址
for(Orders order : findList) {
//获取订单所属用户
Account account = accountService.findById(order.getAccount_Id());
order.setAccount(account);
//获取送货地址
Address findByAccountId = addressService.findByAccountId(account.getId());
address = address + findByAccountId.getProvince() + findByAccountId.getCity() + findByAccountId.getArea() + findByAccountId.getDetail();
order.setAddress(address);
//获取订单详情
List<Shopping> shoppingList = shoppingService.findByIds(order.getShopping_Id());
for(Shopping shopping : shoppingList) {
//取出商品
Tea tea = teaService.findByTeaId(shopping.getProductId().toString());
//计算订单价格
price += (tea.getNew_price() * shopping.getNum());
//获取购买商品详情
item = item + tea.getName() + "(" + shopping.getNum() + "个)、";
}
//把最后一个、去掉
item = item.substring(0, item.length()-1);
order.setItem(item);
order.setPrice(price);
//价格置位0,下一轮循环:新订单重新计算
price = 0;
//商品详情置位空字符串,,下一轮循环:获取新详情
item = "";
//收货地址置位空字符串,下一轮循环:获取新地址
address = "";
}
ret.put("rows", findList);
ret.put("total", ordersService.getAllTotal());
return ret;
}
/**
* 删除订单操作
* @param ids
* @return
*/
ret.put("msg", "留言失败!请联系管理员");
return ret;
}else {
ret.put("type", "success");
ret.put("msg", "留言成功!");
return ret;
}
}
}
}
/**
* 前端登录拦截器
*
*/
public class LoginInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
queryMap.put("actionId", 3);
model.addObject("teaListByActionId", teaService.findList(queryMap));
Account account = (Account) request.getSession().getAttribute("account");
if(account!=null)
{
Map<String, Object> queryMap2 = new HashMap<String, Object>();
queryMap2.put("accountId",account.getId());
queryMap2.put("state","未支付");
model.addObject("cartList",shoppingService.findList(queryMap2));
model.addObject("cartTotal",shoppingService.getTotal(queryMap2));
}
Action action = actionService.findByActionId("3");
model.addObject("time",action.getTime());
model.setViewName("home/system/index");
return model;//WEB-INF/views/+home/system/index+.jsp = WEB-INF/views/home/system/index.jsp
}
/**
* 后台退出注销功能
* @param request
* @return
*/
@RequestMapping(value="/logout",method=RequestMethod.GET)
public String logout(HttpServletRequest request){
HttpSession session = request.getSession();
session.setAttribute("account", null);
return "redirect:index";
}
}
model.addObject("offset",page.getOffset()); //偏移数
model.addObject("totalPage",p.getTotalPage()); //总页数
model.addObject("currentPage",page.getPage()); //当前页
model.addObject("ordersList",ordersService.findList(queryMap3));
model.addObject("ordersTotal",ordersService.getTotal(queryMap3));
model.setViewName("home/account/order");
return model;
}
/**
* 用户删除订单
* @param user
* @return
*/
@RequestMapping(value="/del_order",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> deleteOrder(Long id,HttpServletRequest request){
Map<String, String> ret = new HashMap<String, String>();
if(id == null)
{
ret.put("type", "error");
ret.put("msg", "订单删除失败,请联系管理员!");
return ret;
}
String shopping_id = ordersService.findShoppingIdById(id);
if(shoppingService.deleteByIds(shopping_id)<=0)
{
ret.put("type", "error");
ret.put("msg", "已支付订单删除失败,请联系管理员!");
return ret;
}
if(ordersService.delete(id)<=0){
ret.put("type", "error");
ret.put("msg", "订单删除失败,请联系管理员!");
return ret;
}else {
ret.put("type", "success");
ret.put("msg", "订单删除成功!");
return ret;
}
}
* @return
*/
@RequestMapping(value="/upload_photo",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> uploadPhoto(MultipartFile photo,HttpServletRequest request){
Map<String, String> ret = new HashMap<String, String>();
if(photo == null){
ret.put("type", "error");
ret.put("msg", "选择要上传的文件!");
return ret;
}
if(photo.getSize() > 1024*1024*1024){
ret.put("type", "error");
ret.put("msg", "文件大小不能超过10M!");
return ret;
}
//获取文件后缀
String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf(".")+1,photo.getOriginalFilename().length());
if(!"jpg,jpeg,gif,png".toUpperCase().contains(suffix.toUpperCase())){
ret.put("type", "error");
ret.put("msg", "请选择jpg,jpeg,gif,png格式的图片!");
return ret;
}
String savePath = request.getServletContext().getRealPath("/") + "/resources/upload/";
File savePathFile = new File(savePath);
if(!savePathFile.exists()){
//若不存在改目录,则创建目录
savePathFile.mkdir();
}
String filename = new Date().getTime()+"."+suffix;
try {
//将文件保存至指定目录
photo.transferTo(new File(savePath+filename));
}catch (Exception e) {
// TODO Auto-generated catch block
ret.put("type", "error");
ret.put("msg", "保存文件异常!");
e.printStackTrace();
return ret;
}
ret.put("type", "success");
ret.put("msg", "图片上传成功!");
ret.put("filepath",request.getServletContext().getContextPath() + "/resources/upload/" + filename );
return ret;
}
/**
queryMap.put("productId",shopping.getProductId());
queryMap.put("state","未支付");
Shopping s = shoppingService.findShoppingById(queryMap);
//之前已经添加过购物车,那就把它数量增加就行
if(s != null)
{
int totalNum = shopping.getNum() + s.getNum();
// System.out.println("更新后数量:"+totalNum);
// System.out.println("新加数量:"+shopping.getNum());
// System.out.println("原有数量:"+s.getNum());
Shopping s2 = new Shopping();
s2.setId(s.getId());
s2.setNum(totalNum);
shoppingService.editNum(s2);
ret.put("type", "success");
ret.put("msg", "该商品已添加过购物车,转为自动帮您添加数量!");
return ret;
}else {
shopping.setState("未支付");
if(shoppingService.add(shopping)<=0)
{
ret.put("type", "error");
ret.put("msg", "添加购物车失败!请联系管理员!");
return ret;
}else {
ret.put("type", "success");
ret.put("msg", "添加购物车成功!");
return ret;
}
}
}
/**
* 删除购物商品
* @param user
* @return
*/
@RequestMapping(value="/del_cart",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> delete(String id,HttpServletRequest request){
Map<String, String> ret = new HashMap<String, String>();
*/
@RequestMapping(value="/list",method=RequestMethod.GET)
public ModelAndView list(ModelAndView model){
model.addObject("topList", menuService.findTopList());
model.setViewName("menu/list");
return model;
}
/**
* 获取菜单列表
* @param page
* @param name
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> getMenuList(Page page,
@RequestParam(name="name",required=false,defaultValue="") String name
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("name", name);
List<Menu> findList = menuService.findList(queryMap);
ret.put("rows", findList);
ret.put("total", menuService.getTotal(queryMap));
return ret;
}
/**
* 获取指定目录下的系统icon集合
* @param request
* @return
*/
@RequestMapping(value="/get_icons",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> getIconList(HttpServletRequest request){
Map<String, Object> ret = new HashMap<String, Object>();
String realPath = request.getServletContext().getRealPath("/");//到WebContent这个目录下
File file = new File(realPath + "\\resources\\admin\\easyui\\css\\icons");
List<String> icons = new ArrayList<String>();
if(!file.exists()){
ret.put("type", "error");
ret.put("msg", "文件目录不存在!");
return ret;
}
//listFiles是获取该目录下所有文件和目录的绝对路径
File[] listFiles = file.listFiles();
for(File f:listFiles){ //如果System.out.println(f) 会打印出:resouces\admin\easyui\css\icons\accept.png
if(f!= null && f.getName().contains("png")){ //f.getName: 比如:accept.png,只取文件名
icons.add("icon-" + f.getName().substring(0, f.getName().indexOf(".")).replace("_", "-"));
//这里添加"icon-"是为了方便前端调用icon.css
}
public Map<String, Object> getOrderList(Page page,
@RequestParam(name="id",required=false,defaultValue="") String id
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
queryMap.put("id", id);
List<Orders> findList = ordersService.findAllOrders(queryMap);
double price = 0; //计算每个订单的总价
String item = ""; //记录每个订单对应的商品详情
String address = ""; //送货地址
for(Orders order : findList) {
//获取订单所属用户
Account account = accountService.findById(order.getAccount_Id());
order.setAccount(account);
//获取送货地址
Address findByAccountId = addressService.findByAccountId(account.getId());
address = address + findByAccountId.getProvince() + findByAccountId.getCity() + findByAccountId.getArea() + findByAccountId.getDetail();
order.setAddress(address);
//获取订单详情
List<Shopping> shoppingList = shoppingService.findByIds(order.getShopping_Id());
for(Shopping shopping : shoppingList) {
//取出商品
Tea tea = teaService.findByTeaId(shopping.getProductId().toString());
//计算订单价格
price += (tea.getNew_price() * shopping.getNum());
//获取购买商品详情
item = item + tea.getName() + "(" + shopping.getNum() + "个)、";
}
//把最后一个、去掉
item = item.substring(0, item.length()-1);
order.setItem(item);
order.setPrice(price);
//价格置位0,下一轮循环:新订单重新计算
price = 0;
//商品详情置位空字符串,,下一轮循环:获取新详情
item = "";
//收货地址置位空字符串,下一轮循环:获取新地址
address = "";
}
ret.put("rows", findList);
ret.put("total", ordersService.getAllTotal());
return ret;
model.setViewName("account/comment");
return model;
}
/**
* 获取评论列表
* @param page
* @param username
* @param roleId
* @param sex
* @return
*/
@RequestMapping(value="/comment",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> getComment(Page page,
@RequestParam(name="content",required=false,defaultValue="") String content
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("content", content);
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
ret.put("rows", commentService.findList(queryMap));
ret.put("total", commentService.getTotal(queryMap));
return ret;
}
/**
* 获取用户列表
* @param page
* @param username
* @param roleId
* @param sex
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> getList(Page page,
@RequestParam(name="username",required=false,defaultValue="") String username
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("username", username);
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());