文章目录
项目介绍
农产品销售管理系统
一、项目功能介绍
一、介绍
系统分为两个角色
用户功能:登陆,注册,商品分类,搜索,商城首页浏览,查看商品详情页面,收藏与加入购物车(需登录使用),订单,留言功能,个人中心
管理员功能:类目管理功能(对前台商品分类,增加和删除类目),用户管理,商品管理,订单管理,公告管理,留言管理
语言:java
技术:ssm(spring+spring MVC+mybatis)+jsp+jQuery
数据库:mysql
开发环境:idea或eclipse
二、部分页面展示
三、部分源码
java
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 {
@Autowired
private CarService carService;
@Autowired
private ItemService itemService;
@RequestMapping("/exAdd")
@ResponseBody
public 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")
@ResponseBody
public String delete(Integer id){
carService.deleteById(id);
return "success";
}
}
java
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 {
@Autowired
private 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;
}
@Autowired
private 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";
}
}
java
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 {
@Autowired
private ItemOrderService itemOrderService;
@Autowired
private UserService userService;
@Autowired
private CarService carService;
@Autowired
private OrderDetailService orderDetailService;
@Autowired
private 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")
@ResponseBody
public 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¥带走)
有问题,或者需要协助调试运行项目的也可以