✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
文末获取项目下载方式
一、项目背景介绍:
中国是世界上最大的农业生产国,其农产品的产量和品种非常丰富。中国的农产品供应十分充足,产量稳定,品质优良,价格实惠,受到市场欢迎。 中国农产品是指在中国境内以农业生产活动所产出的农业产品。中国农业产品主要有水果、蔬菜、粮…
另外,在农业技术改良方面,中国也不断努力,将传统农业技术与现代科技相结合,以提高农产品的产量和品质。
二、项目技术简介:
三、系统功能模块介绍:
四、数据库设计:
1:car(car)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(20) | NULL | |
item_id | int(20) | NULL | |
user_id | int(20) | NULL | |
num | int(20) | NULL | |
price | VARCHAR(255) | NULL |
2:comment(comment)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(20) | NULL | |
user_id | int(20) | NULL | |
item_id | int(20) | NULL | |
content | varchar(200) | NULL | |
addTime | timestamp(0) | NULL |
3:item(item)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(20) | NULL | |
name | varchar(200) | NULL | |
price | varchar(200) | NULL | |
zk | int(20) | NULL | |
scNum | int(20) | NULL | |
gmNum | int(20) | NULL | |
url1 | varchar(200) | NULL | |
url2 | varchar(200) | NULL | |
url3 | varchar(200) | NULL | |
url4 | varchar(200) | NULL | |
url5 | varchar(200) | NULL | |
ms | text | NULL | |
pam1 | varchar(200) | NULL | |
pam2 | varchar(200) | NULL | |
pam3 | varchar(200) | NULL | |
val1 | varchar(200) | NULL | |
val2 | varchar(200) | NULL | |
val3 | varchar(200) | NULL | |
type | int(20) | NULL | |
category_id_one | int(20) | NULL | |
category_id_two | int(20) | NULL | |
isDelete | int(20) | NULL |
4:item_category(item_category)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(20) | NULL | |
name | varchar(200) | NULL | |
pid | int(20) | NULL | |
isDelete | int(20) | NULL |
5:item_order(item_order)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(20) | NULL | |
item_id | int(20) | NULL | |
user_id | int(20) | NULL | |
code | varchar(200) | NULL | |
addTime | timestamp(0) | NULL | |
total | varchar(200) | NULL | |
isDelete | int(20) | NULL | |
status | int(20) | NULL |
6:manage(manage)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(20) | NULL | |
userName | varchar(200) | NULL | |
passWord | varchar(200) | NULL | |
realName | varchar(200) | NULL |
7:message(message)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(20) | NULL | |
name | varchar(200) | NULL | |
content | varchar(200) | NULL | |
phone | varchar(200) | NULL |
8:news(news)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(20) | NULL | |
name | varchar(200) | NULL | |
content | text | NULL | |
addTime | timestamp(0) | NULL |
9:order_detail(order_detail)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(11) | NULL | |
item_id | int(255) | NULL | |
order_id | int(11) | NULL | |
status | int(11) | NULL | 0.未退货1已退货 |
num | int(11) | NULL | |
total | varchar(255) | NULL |
10:sc(sc)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(20) | NULL | |
item_id | int(20) | NULL | |
user_id | int(20) | NULL |
11:user(user)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int(20) | NULL | |
userName | varchar(200) | NULL | |
passWord | varchar(200) | NULL | |
phone | varchar(200) | NULL | |
realName | varchar(200) | NULL | |
sex | varchar(200) | NULL | |
address | varchar(200) | NULL | |
varchar(200) | NULL |
12:user_order(user_order)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
order_id | int(20) | NULL | |
order_no | varchar(200) | NULL | |
user_id | varchar(200) | NULL | |
order_status | int(20) | NULL | |
order_amount | VARCHAR(255) | NULL |
五、功能模块:
首页:首页向用户推荐热门商品等数据
购物车:用户可以把自己喜欢的农产品添加至购物车
个人中心:个人中心可以查看用户订单信息,修改自己的个人信息,商品收藏等信息
模拟支付:用户在购买农产品之后,会进行支付宝沙箱的模拟支付
后台管理:后台管理主要对前台商品,商品分类,订单等一系列数据进行管理操作
六、代码示例:
* 分页查询商品列表
*/
@RequestMapping("/findBySql")
public String findBySql(Model model, Item item){
String sql = "select * from item where isDelete = 0 ";
if(!isEmpty(item.getName())){
sql += " and name like '%" + item.getName() + "%' ";
}
sql += " order by id desc";
Pager<Item> pagers = itemService.findBySqlRerturnEntity(sql);
model.addAttribute("pagers",pagers);
model.addAttribute("obj",item);
return "item/item";
}
@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("/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();
}
@RequestMapping("/findBySql")
public String findBySql(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 sc where user_id="+userId+" order by id desc";
Pager<Sc> pagers = scService.findBySqlRerturnEntity(sql);
model.addAttribute("pagers",pagers);
return "sc/my";
}
七、项目总结:
之前在课本上学习过软件开发的知识,包括开发流程的了解,开发技术的学习,还有如何进行系统需求分析与设计,老师也选取了比较有代表性的管理系统在课堂上进行讲解,并在课后布置作业让我们练习,期间老师也让我们也对系统实现与测试进行了了解。所以面对本次网上商品订单转手系统的开发制作,我的脑海里还是有比较清晰的思路。在系统制作中,以及配套文档的编写中,我都是按照软件开发流程一步步开展我的工作。
从系统的角度讲,网上商品订单转手系统制作中,它的难点在于功能的确定,对系统结构的设计,还有设计性能优良的数据库,以及采用成熟的技术实现系统功能等,这些是我面临的困难。针对这些难点,我采取了一定的措施。在不知道系统的功能时,我在网上寻找了很多相似系统,并把这些系统的大致功能进行了记载,把对本系统有用的功能部分进行了采用,另外,我也从网上获取了大量关于系统设计方面的知识,包括系统模块划分,设计原则,数据库表的设计与创建等知识,也从软件开发类博客中,获取了程序编码的技术知识,包括数据增删改代码模块的编写与使用。在本系统编码完成其对应功能后,我对系统的所有功能进行了耐心的测试,最后发现我开发的系统是合格的,可以进行验收。因为本系统除了具备简洁美观的界面外,在功能上可以满足使用者对于数据操作的需求,并且本系统的功能与系统分析设计的功能保持高度一致,而且系统运行稳定,面对用户的误操作,也建立了报错反馈机制,系统的质量可靠。唯一不足的就是系统数据表的设计在字段考虑上并不全面,为字段匹配的数据类型也不精确,还有系统代码部分,有很多地方还没有进行注释,代码编写不够简洁等。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看获取联系方式
链接点击直达:下载链接