【517】基于ssm农产品交易商城平台源码
本课题研究的背景
随着电子商务的发展以及其独特的魅力,逐渐出现虚拟企业、虚拟银行、网络 营销、在线购物,在线支付等,从这些可以看出,电子商务已从其他方面对经济 和社会的巨大影响,例如,B2B是一个在世界上快速增长的业务,它可以降低成 本,提高了经济效益,也带动就业的增长。
电子商务对世界经济正在进行着彻底的改造,电子商务能为消费者或企业 提供大量他们需要的信息,这些信息对于消费者和生产者是完全透明。企业仅通 过广告的方式来提高其竞争优势的效果已变得不太明显,还需要注重产品质量以 及产品性能。从理论上讲,在行业之间的竞争中,消费者主权和行业将社会福利 最大化。
事实上,在过去的经济活动中大型企业经常有不同与消费者的信息资源优 势。如今,透明和实时信息使消费者的权益得到了保护,消费者可以使用互联网 来挑出符合自己的利益的产品组合,企业之间的竞争力将会比之前更加明显。新 经济为首的电子商务可以更好地促进个人文化提升。由于市场的竞争,员工的专 业水平成为企业在市场竞争中获取利益的关键。企业必须重视如何去建立企业内 部文化。在线商家采集他们客户的采购行为以及采购兴趣,通过这些信息网络营 销者们可以更加注重相关产品和服务,这为在线购物者提供了更多的购物便利。
随着电子商务的发展,其在我国的经济地位越来越重要[3],一大批电子商务 应用逐渐被开发出来,例如,阿里巴巴旗下的淘宝,天猫,亚马逊,京东等,这 些都已成为流行的电子商务系统。互联网已经逐渐引发新的产业革命,在当今经 济领域中依靠互联网的电子商务已经越来越重要。本文主要在了解这些背景的情 况下,设计出一款电子商务系统用于在线交易农产品,给企业以及消费者提供一个 可信赖的购物平台。
-
- 国内外研究的现状
1.2.1 国内发展状况
最近两年,网上交易市场越来越受到关注。这是一个前景广阔的大市场,但同时也是一个更为复杂的市场。而抓住这个机会、解这道题需要付出更多的热心、创新和毅力,当然还有时间。痛点在,机会就一定在。在闪转网看来,创新的本质就是要围绕用户的痛点去解题。机会永远属于有准备的人。
根据国家统计局的数据显示,2018年中国社会消费品零售总额达38万亿,庞大的社会消费品基数,为交易市场创造了巨大的供给和潜力空间。如今,中国闲置农产品的交易规模正在高速增长。
在消费结构参差多元的中国市场,一二线城市不仅是农产品农产品流转的主要市场,通常也是农产品的供应地,而下沉市场正在成为流入地。
过去多年时间里,中国电商发展非常迅速,其实为市场提供了巨大的供给,但同时这个市场也是一个柠檬市场。到底如何才能把流转做起来,让更多人放心并喜欢上网上交易呢?闪转网认为,首先要做的就是解决信任的问题。
package com.shop.controller;
import com.shop.base.BaseController;
import com.shop.pojo.Item;
import com.shop.pojo.ItemCategory;
import com.shop.pojo.TjDto;
import com.shop.service.ItemCategoryService;
import com.shop.service.ItemService;
import com.shop.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";
}
}
package com.shop.controller;
import com.alibaba.fastjson.JSONObject;
import com.shop.base.BaseController;
import com.shop.pojo.*;
import com.shop.service.ItemCategoryService;
import com.shop.service.ItemService;
import com.shop.service.ManageService;
import com.shop.service.UserService;
import com.shop.utils.Consts;
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 org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;
/**
* 登录相关的控制器
*/
@Controller
@RequestMapping("/login")
public class LoginController extends BaseController {
@Autowired
private ManageService manageService;
@Autowired
private ItemCategoryService itemCategoryService;
@Autowired
private ItemService itemService;
@Autowired
private UserService userService;
/**
* 管理员登录前
* @return
*/
@RequestMapping("login")
public String login(){
return "/login/mLogin";
}
/**
* 登录验证
* @return
*/
@RequestMapping("toLogin")
public String toLogin(Manage manage, HttpServletRequest request){
Manage byEntity = manageService.getByEntity(manage);
if(byEntity==null){
return "redirect:/login/mtuichu";
}
request.getSession().setAttribute(Consts.MANAGE,byEntity);
return "/login/mIndex";
}
/**
* 管理员退出
*/
@RequestMapping("mtuichu")
public String mtuichu(HttpServletRequest request){
request.getSession().setAttribute(Consts.MANAGE,null);
return "/login/mLogin";
}
/**
* 前端首页
*/
@RequestMapping("/uIndex")
public String uIndex(Model model, Item item,HttpServletRequest request){
String sql1 = "select * from item_category where isDelete=0 and pid is null order by name";
List<ItemCategory> fatherList = itemCategoryService.listBySqlReturnEntity(sql1);
List<CategoryDto> list = new ArrayList<>();
if(!CollectionUtils.isEmpty(fatherList)){
for(ItemCategory ic:fatherList){
CategoryDto dto = new CategoryDto();
dto.setFather(ic);
//查询二级类目
String sql2 = "select * from item_category where isDelete=0 and pid="+ic.getId();
List<ItemCategory> childrens = itemCategoryService.listBySqlReturnEntity(sql2);
dto.setChildrens(childrens);
list.add(dto);
model.addAttribute("lbs",list);
}
}
//折扣农产品
// List<Item> zks = itemService.listBySqlReturnEntity("select * from item where isDelete=0 and zk is not null order by zk desc limit 0,10");
// model.addAttribute("zks",zks);
//热销农产品
List<Item> rxs = itemService.listBySqlReturnEntity("select * from item where isDelete=0 order by gmNum desc limit 0,10");
model.addAttribute("rxs",rxs);
model.addAttribute("numtype", 1);
model.addAttribute("pricetype", 1);
model.addAttribute("zktype", 1);
return "login/uIndex";
}
/**普通用户注册*/
@RequestMapping("/res")
public String res(){
return "login/res";
}
/**执行普通用户注册*/
@RequestMapping("/toRes")
public String toRes(User u){
userService.insert(u);
return "login/uLogin";
}
/**普通用户登录入口*/
@RequestMapping("/uLogin")
public String uLogin(){
return "login/uLogin";
}
/**执行普通用户登录*/
@RequestMapping("/utoLogin")
public String utoLogin(User u,HttpServletRequest request){
User byEntity = userService.getByEntity(u);
if(byEntity==null){
return "redirect:/login/res.action";
}else {
request.getSession().setAttribute("role",2);
request.getSession().setAttribute(Consts.USERNAME,byEntity.getUserName());
request.getSession().setAttribute(Consts.USERID,byEntity.getId());
return "redirect:/login/uIndex.action";
}
}
/**前端用户退出*/
@RequestMapping("/uTui")
public String uTui(HttpServletRequest request){
HttpSession session = request.getSession();
session.invalidate();
return "redirect:/login/uIndex.action";
}
/**
* 修改密码入口
*/
@RequestMapping("/pass")
public String pass(HttpServletRequest request){
Object attribute = request.getSession().getAttribute(Consts.USERID);
if(attribute==null){
return "redirect:/login/uLogin";
}
Integer userId = Integer.valueOf(attribute.toString());
User load = userService.load(userId);
request.setAttribute("obj",load);
return "login/pass";
}
/**
* 修改密码操作
*/
@RequestMapping("/upass")
@ResponseBody
public String upass(String password,HttpServletRequest request){
Object attribute = request.getSession().getAttribute(Consts.USERID);
JSONObject js = new JSONObject();
if(attribute==null){
js.put(Consts.RES,0);
return js.toString();
}
Integer userId = Integer.valueOf(attribute.toString());
User load = userService.load(userId);
load.setPassWord(password);
userService.updateById(load);
js.put(Consts.RES,1);
return js.toString();
}
}
package com.shop.controller;
import com.shop.base.BaseController;
import com.shop.pojo.News;
import com.shop.service.NewsService;
import com.shop.utils.Pager;
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 java.util.Date;
/**
* 公告管理
*/
@Controller
@RequestMapping("/news")
public class NewsController extends BaseController {
@Autowired
private NewsService newsService;
/**
* 公告列表
*/
@RequestMapping("/findBySql")
public String findBySql(News news, Model model){
String sql = "select * from news where 1=1 ";
if(!isEmpty(news.getName())){
sql += " and name like '%"+news.getName()+"%'";
}
sql += " order by id desc";
Pager<News> pagers = newsService.findBySqlRerturnEntity(sql);
model.addAttribute("pagers",pagers);
model.addAttribute("obj",news);
return "news/news";
}
/**
* 跳转到添加页面
*/
@RequestMapping("/add")
public String add(){
return "news/add";
}
/**
* 添加执行
*/
@RequestMapping("/exAdd")
public String exAdd(News news){
news.setAddTime(new Date());
newsService.insert(news);
return "redirect:/news/findBySql";
}
/**
* 跳转到修改页面
*/
@RequestMapping("/update")
public String update(Integer id,Model model){
News obj = newsService.load(id);
model.addAttribute("obj",obj);
return "news/update";
}
/**
* 修改执行
*/
@RequestMapping("/exUpdate")
public String exUpdate(News news){
newsService.updateById(news);
return "redirect:/news/findBySql";
}
/**
* 删除公告
*/
@RequestMapping("/delete")
public String delete(Integer id){
newsService.deleteById(id);
return "redirect:/news/findBySql";
}
/**
* 前端公告列表
*/
@RequestMapping("/list")
public String list(Model model){
Pager<News> pagers = newsService.findByEntity(new News());
model.addAttribute("pagers",pagers);
return "news/list";
}
/**
* 公告详情页面
*/
@RequestMapping("/view")
public String view(Integer id,Model model){
News obj = newsService.load(id);
model.addAttribute("obj",obj);
return "news/view";
}
}