文章目录
- 项目介绍
- 一、项目功能介绍
- 二、部分页面展示
- 三、部分源码
- 四、底部获取全部源码(9.9¥带走)
项目介绍
农产品销售管理系统
一、项目功能介绍
一、介绍
系统分为两个角色
用户功能:登陆,注册,商品分类,搜索,商城首页浏览,查看商品详情页面,收藏与加入购物车(需登录使用),订单,留言功能,个人中心
管理员功能:类目管理功能(对前台商品分类,增加和删除类目),用户管理,商品管理,订单管理,公告管理,留言管理
语言:java
技术:ssm(spring+spring MVC+mybatis)+jsp+jQuery
数据库:mysql
开发环境:idea或eclipse
二、部分页面展示
三、部分源码
package com.javapandeng.controller;import com.alibaba.fastjson.JSONObject;
import com.javapandeng.po.Item;
import com.javapandeng.po.Car;
import com.javapandeng.service.ItemService;
import com.javapandeng.service.CarService;
import com.javapandeng.utils.Consts;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;/*** 购物车*/
@Controller
@RequestMapping("/car")
public class CarController {@Autowiredprivate CarService carService;@Autowiredprivate ItemService itemService;@RequestMapping("/exAdd")@ResponseBodypublic String exAdd(Car car, HttpServletRequest request){JSONObject js = new JSONObject();Object attribute = request.getSession().getAttribute(Consts.USERID);if(attribute==null){js.put(Consts.RES,0);return js.toJSONString();}//保存到购物车Integer userId = Integer.valueOf(attribute.toString());car.setUserId(userId);Item item = itemService.load(car.getItemId());String price = item.getPrice();Double valueOf = Double.valueOf(price);car.setPrice(valueOf);if(item.getZk()!=null){valueOf = valueOf*item.getZk()/10;BigDecimal bg = new BigDecimal(valueOf).setScale(2, RoundingMode.UP);car.setPrice(bg.doubleValue());valueOf = bg.doubleValue();}Integer num = car.getNum();Double t = valueOf*num;BigDecimal bg = new BigDecimal(t).setScale(2, RoundingMode.UP);double doubleValue = bg.doubleValue();car.setTotal(doubleValue+"");carService.insert(car);js.put(Consts.RES,1);return js.toJSONString();}/*** 转向我的购物车页面*/@RequestMapping("/findBySql")public String findBySql(Model model,HttpServletRequest request){Object attribute = request.getSession().getAttribute(Consts.USERID);if(attribute==null){return "redirect:/login/toLogin";}Integer userId = Integer.valueOf(attribute.toString());String sql = "select * from car where user_id="+userId+" order by id desc";List<Car> list = carService.listBySqlReturnEntity(sql);model.addAttribute("list",list);return "car/car";}/*** 删除购物车*/@RequestMapping("/delete")@ResponseBodypublic String delete(Integer id){carService.deleteById(id);return "success";}
}
package com.javapandeng.controller;import com.javapandeng.base.BaseController;
import com.javapandeng.po.Item;
import com.javapandeng.po.ItemCategory;
import com.javapandeng.po.TjDto;
import com.javapandeng.service.ItemCategoryService;
import com.javapandeng.service.ItemService;
import com.javapandeng.utils.Pager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** 类目c层*/
@Controller
@RequestMapping("/itemCategory")
public class ItemCategoryController extends BaseController {@Autowiredprivate ItemCategoryService itemCategoryService;/*** 分页查询类目列表*/@RequestMapping("/findBySql")public String findBySql(Model model,ItemCategory itemCategory){String sql = "select * from item_category where isDelete = 0 and pid is null order by id";Pager<ItemCategory> pagers = itemCategoryService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",pagers);model.addAttribute("obj",itemCategory);return "itemCategory/itemCategory";}/*** 转向到新增一级类目页面*/@RequestMapping(value = "/add")public String add(){return "itemCategory/add";}/*** 新增一级类目保存功能*/@RequestMapping("/exAdd")public String exAdd(ItemCategory itemCategory){itemCategory.setIsDelete(0);itemCategoryService.insert(itemCategory);return "redirect:/itemCategory/findBySql.action";}/*** 转向到修改一级类目页面*/@RequestMapping(value = "/update")public String update(Integer id,Model model){ItemCategory obj = itemCategoryService.load(id);model.addAttribute("obj",obj);return "itemCategory/update";}/*** 修改一级类目*/@RequestMapping("/exUpdate")public String exUpdate(ItemCategory itemCategory){itemCategoryService.updateById(itemCategory);return "redirect:/itemCategory/findBySql.action";}/*** 删除类目*/@RequestMapping("/delete")public String delete(Integer id){//删除本身ItemCategory load = itemCategoryService.load(id);load.setIsDelete(1);itemCategoryService.updateById(load);//将下级也删除String sql = "update item_category set isDelete=1 where pid="+id;itemCategoryService.updateBysql(sql);return "redirect:/itemCategory/findBySql.action";}/*** 查看二级类目*/@RequestMapping("/findBySql2")public String findBySql2(ItemCategory itemCategory,Model model){String sql = "select * from item_category where isDelete=0 and pid="+itemCategory.getPid()+" order by id";Pager<ItemCategory> pagers = itemCategoryService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",pagers);model.addAttribute("obj",itemCategory);return "itemCategory/itemCategory2";}/*** 转向到新增二级类目页面*/@RequestMapping(value = "/add2")public String add2(int pid,Model model){model.addAttribute("pid",pid);return "itemCategory/add2";}/*** 新增二级类目保存功能*/@RequestMapping("/exAdd2")public String exAdd2(ItemCategory itemCategory){itemCategory.setIsDelete(0);itemCategoryService.insert(itemCategory);return "redirect:/itemCategory/findBySql2.action?pid="+itemCategory.getPid();}/*** 转向到修改二级类目页面*/@RequestMapping(value = "/update2")public String update2(Integer id,Model model){ItemCategory obj = itemCategoryService.load(id);model.addAttribute("obj",obj);return "itemCategory/update2";}/*** 修改二级类目*/@RequestMapping("/exUpdate2")public String exUpdate2(ItemCategory itemCategory){itemCategoryService.updateById(itemCategory);return "redirect:/itemCategory/findBySql2.action?pid="+itemCategory.getPid();}/*** 删除二级类目*/@RequestMapping("/delete2")public String delete2(Integer id,Integer pid){//删除本身ItemCategory load = itemCategoryService.load(id);load.setIsDelete(1);itemCategoryService.updateById(load);return "redirect:/itemCategory/findBySql2.action?pid="+pid;}@Autowiredprivate ItemService itemService;@RequestMapping(value = "/tj")public String tj(ItemCategory itemCategory, Model model, HttpServletRequest request, HttpServletResponse response) {//分页查询String sql = "SELECT * FROM item_category WHERE isDelete = 0 and pid is null";sql += " ORDER BY ID DESC ";List<ItemCategory> list = itemCategoryService.listBySqlReturnEntity(sql);List<Map<String,Object>> maps = new ArrayList<Map<String,Object>>();List<TjDto> res = new ArrayList<TjDto>();if (!CollectionUtils.isEmpty(list)){for (ItemCategory c : list){TjDto td = new TjDto();int tot = 0;List<Item> listBySqlReturnEntity = itemService.listBySqlReturnEntity("SELECT * FROM item WHERE 1=1 and isDelete =0 and category_id_one="+c.getId());if (!CollectionUtils.isEmpty(listBySqlReturnEntity)){for (Item i : listBySqlReturnEntity){tot+= i.getGmNum();}}Map<String,Object> map = new HashMap<String,Object>();map.put("name", c.getName());map.put("value", tot);maps.add(map);}}//存储查询条件model.addAttribute("maps", maps);return "itemCategory/tj";}
}
package com.javapandeng.controller;import com.alibaba.fastjson.JSONObject;
import com.javapandeng.base.BaseController;
import com.javapandeng.po.*;
import com.javapandeng.service.*;
import com.javapandeng.utils.Consts;
import com.javapandeng.utils.Pager;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** 订单管理*/
@Controller
@RequestMapping("/itemOrder")
public class ItemOrderController extends BaseController {@Autowiredprivate ItemOrderService itemOrderService;@Autowiredprivate UserService userService;@Autowiredprivate CarService carService;@Autowiredprivate OrderDetailService orderDetailService;@Autowiredprivate ItemService itemService;/*** 订单管理列表*/@RequestMapping("/findBySql")public String findBySql(ItemOrder itemOrder, Model model){//分页查询String sql = "select * from item_order where 1=1 ";if(!(isEmpty(itemOrder.getCode()))){sql +=" and code like '%"+itemOrder.getCode()+"%' ";}sql += " order by id desc";Pager<ItemOrder> pagers = itemOrderService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",pagers);//存储查询条件model.addAttribute("obj",itemOrder);return "itemOrder/itemOrder";}/*** 我的订单*/@RequestMapping("/my")public String my(Model model, HttpServletRequest request){Object attribute = request.getSession().getAttribute(Consts.USERID);if(attribute==null){return "redirect:/login/uLogin";}Integer userId = Integer.valueOf(attribute.toString());//全部订单String sql = "select * from item_order where user_id="+userId+" order by id desc";List<ItemOrder> all = itemOrderService.listBySqlReturnEntity(sql);//待发货String sql2 = "select * from item_order where user_id="+userId+" and status=0 order by id desc";List<ItemOrder> dfh = itemOrderService.listBySqlReturnEntity(sql2);//已取消String sql3 = "select * from item_order where user_id="+userId+" and status=1 order by id desc";List<ItemOrder> yqx = itemOrderService.listBySqlReturnEntity(sql3);//已发货String sql4 = "select * from item_order where user_id="+userId+" and status=2 order by id desc";List<ItemOrder> dsh = itemOrderService.listBySqlReturnEntity(sql4);//已收货String sql5 = "select * from item_order where user_id="+userId+" and status=3 order by id desc";List<ItemOrder> ysh = itemOrderService.listBySqlReturnEntity(sql5);model.addAttribute("all",all);model.addAttribute("dfh",dfh);model.addAttribute("yqx",yqx);model.addAttribute("dsh",dsh);model.addAttribute("ysh",ysh);return "itemOrder/my";}/*** 购物车结算提交*/@RequestMapping("/exAdd")@ResponseBodypublic String exAdd(@RequestBody List<CarDto> list,HttpServletRequest request){Object attribute = request.getSession().getAttribute(Consts.USERID);JSONObject js = new JSONObject();if(attribute==null){js.put(Consts.RES,0);return js.toJSONString();}Integer userId = Integer.valueOf(attribute.toString());User byId = userService.getById(userId);if(StringUtils.isEmpty(byId.getAddress())){js.put(Consts.RES,2);return js.toJSONString();}List<Integer> ids = new ArrayList<>();BigDecimal to = new BigDecimal(0);for(CarDto c:list){ids.add(c.getId());Car load = carService.load(c.getId());to = to.add(new BigDecimal(load.getPrice()).multiply(new BigDecimal(c.getNum())));}ItemOrder order = new ItemOrder();order.setStatus(0);order.setCode(getOrderNo());order.setIsDelete(0);order.setTotal(to.setScale(2,BigDecimal.ROUND_HALF_UP).toString());order.setUserId(userId);order.setAddTime(new Date());itemOrderService.insert(order);//订单详情放入orderDetail,删除购物车if(!CollectionUtils.isEmpty(ids)){for(CarDto c:list){Car load = carService.load(c.getId());OrderDetail de = new OrderDetail();de.setItemId(load.getItemId());de.setOrderId(order.getId());de.setStatus(0);de.setNum(c.getNum());de.setTotal(String.valueOf(c.getNum()*load.getPrice()));orderDetailService.insert(de);//修改成交数Item load2 = itemService.load(load.getItemId());load2.setGmNum(load2.getGmNum()+c.getNum());itemService.updateById(load2);//删除购物车carService.deleteById(c.getId());}}js.put(Consts.RES,1);return js.toJSONString();}private static String date;private static long orderNum = 0L;public static synchronized String getOrderNo(){String str = new SimpleDateFormat("yyyyMMddHHmm").format(new Date());if(date==null||!date.equals(str)){date = str;orderNum = 0L;}orderNum++;long orderNO = Long.parseLong(date)*10000;orderNO += orderNum;return orderNO+"";}/*** 取消订单*/@RequestMapping("/qx")public String qx(Integer id,Model model){ItemOrder obj =itemOrderService.load(id);obj.setStatus(1);itemOrderService.updateById(obj);model.addAttribute("obj",obj);return "redirect:/itemOrder/my";}/*** 后台发货*/@RequestMapping("/fh")public String fh(Integer id,Model model){ItemOrder obj =itemOrderService.load(id);obj.setStatus(2);itemOrderService.updateById(obj);model.addAttribute("obj",obj);return "redirect:/itemOrder/findBySql";}/*** 用户收货*/@RequestMapping("/sh")public String sh(Integer id,Model model){ItemOrder obj =itemOrderService.load(id);obj.setStatus(3);itemOrderService.updateById(obj);model.addAttribute("obj",obj);return "redirect:/itemOrder/my";}/*** 用户评价入口*/@RequestMapping("/pj")public String pj(Integer id,Model model){model.addAttribute("id",id);return "itemOrder/pj";}
}
四、底部获取全部源码(9.9¥带走)
有问题,或者需要协助调试运行项目的也可以