基于javaweb+mysql的ssm在线图书商城系统(java+ssm+freemarker+bootstrap+mysql+redis)

基于javaweb+mysql的ssm在线图书商城系统(java+ssm+freemarker+bootstrap+mysql+redis)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SSM在线图书商城系统(java+ssm+freemarker+bootstrap+mysql+redis)

项目介绍

本项目分为前后台,有管理员与用户两种角色; 管理员角色包含以下功能: 管理员登录,商品分类管理,商品管理,商品属性管理,商品参数管理,订单管理,退款管理,退货管理,会员等级管理,客户信息管理,评论管理,文章分类管理,公告管理,文章管理,滚动图片管理,广告管理,热门查询管理,查询订单销售,查询商品销售,用户管理,角色管理,资源管理,修改密码,区域管理,配送方式管理,查看系统设置,缓存管理,查询到货通知等功能。

用户角色包含以下功能: 用户登录,查看首页,查看商品详情,查看购物车,提交订单,修改个人信息,修改密码,查看我的订单,添加配送地址,查看收藏夹等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:Eclipse;注:本项目目前仅支持Eclipse,暂不支持IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:否;

技术栈

  1. 后端:Spring+SpringMVC+Mbytes 2. 前端:Freemarker+css+javascript+bootstrap+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用Eclipse导入项目,将项目中src目录下的conf.properties配置文件中的数据库配置改为自己的配置; 3. 运行项目,在浏览器中输入localhost:8080/ssm_zxbookshop 用户账号/密码: user/123456 管理员账号/密码:admin/admin
			this.amountExchangeScore = amountExchangeScore;
		}
		
	}
}
package net.jeeshop.web.action.manage.system;

/**
 * 后台用户管理
 *
 */
@Controller
@RequestMapping("/manage/user")
public class UserAction extends BaseController<User> {
	// toEdit2();
	// return null;
	// }

	/**
	 * 设置订单为已归档
	 * 
	 * @return
	 * @throws IOException
	 */
	// public String setFile() throws IOException{
	// if(StringUtils.isBlank(e.getId())){
	// throw new NullPointerException();
	// }
	//
	// Order order = new Order();
	// order.setStatus(Order.order_status_file);
	// order.setId(e.getId());
	// orderService.update(order);
	//
	// insertOrderlog(e.getId(),"【已归档】");
	//
	// toEdit2();
	// return null;
	// }

	/**
	 * 修改订单的各种状态
	 * 
	 * @return
	 * @throws Exception
	 */
	// @Deprecated
	// public String changeOrderStatus() throws Exception {
	// logger.error(">>>changeOrderStatus...");
	 String aaa = getRequest().getParameter("aaa");
	 log.error(">>>changeOrderStatus...aaa="+this.aaa);
	// return null;
	// }

	/**
	 * 后台修改订单总金额
	 * 
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "updatePayMonery", method = RequestMethod.POST)
	public String updatePayMonery(ModelMap model, Order e) throws Exception {
		checkStatus1(e);
	}
	
	@Override
    @RequestMapping(value = "toEdit")
	public String toEdit(@ModelAttribute("e")SystemSetting e, ModelMap model) throws Exception {
//		super.toEdit(e, model);
        e = getService().selectOne(e);
		
		//分解图集,以便页面显示
		if(StringUtils.isNotBlank(e.getImages())){
			if(e.getImagesList()==null){
				e.setImagesList(new LinkedList<String>());
			}else{
				e.getImagesList().clear();
			}
			
			String[] imageArr = e.getImages().split(ManageContainer.product_images_spider);
			for(int i=0;i<imageArr.length;i++){
				e.getImagesList().add(imageArr[i]);
			}
		}
		
//		logger.error(">>e.getBelieveLoginConfig() = " + e.getBelieveLoginConfig());
		//分解信任登陆配置信息
//		if(StringUtils.isNotBlank(e.getBelieveLoginConfig())){
//			e.setBelieveLoginInfo(JSON.parseObject(e.getBelieveLoginConfig(), BelieveLoginInfo.class));
//			logger.error(">>believeLoginInfo = " + e.getBelieveLoginInfo().toString());
//		}
        model.addAttribute("e", e);
		return page_toEdit;
	}
	
	/**
	 * 例如:http://127.0.0.1:8082/myshop/upload/1.jpg;http://127.0.0.1:8082/myshop/upload/2.jpg;
	 * 获取产品图片路径,注意,这个应该都是相对路径,因为图片有可能会放到专门的图片服务器上。
	 * @return
	 */
	private String getImagesPath(String appendImgs, SystemSetting e){
		logger.error("e.images = "+e.getImages());
		Set<String> imagesSet = new HashSet<String>();
		
		//添加库里面查询出的图片
		if(StringUtils.isNotBlank(appendImgs)){
			String[] images2 = appendImgs.split(ManageContainer.product_images_spider);
			for(int i=0;i<images2.length;i++){
				if(StringUtils.isNotBlank(images2[i])){
					imagesSet.add(images2[i].trim());
				}
			}
		}
		
                    return -1;
                } else {
                    return 0;
                }
            }
        }
    }

    public class TypeComparator implements Comparator {
        public int compare(Object a, Object b) {
            Hashtable hashA = (Hashtable) a;
            Hashtable hashB = (Hashtable) b;
            if (((Boolean) hashA.get("is_dir")) && !((Boolean) hashB.get("is_dir"))) {
                return -1;
            } else if (!((Boolean) hashA.get("is_dir")) && ((Boolean) hashB.get("is_dir"))) {
                return 1;
            } else {
                return ((String) hashA.get("filetype")).compareTo((String) hashB.get("filetype"));
            }
        }
    }
}
package net.jeeshop.web.action.manage.catalog;

	}

	/**
	 * 退订或取消指定的订单
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("shouhuo")
	public String shouhuo(String id,HttpServletRequest request, @ModelAttribute("e") Order e, ModelMap model) throws Exception {
		Order order = orderService.selectById(id);
		order.setStatus("ok");
		orderService.update(order);
		int offset = 0;//分页偏移量
		if (request.getParameter("pager.offset") != null) {
			offset = Integer.parseInt(request.getParameter("pager.offset"));
		}
		if (offset < 0)
			offset = 0;
		e.setOffset(offset);
		PagerModel pager = getService().selectPageList(e);
		if (pager == null) {
			pager = new PagerModel();
		}
		// 计算总页数
		pager.setPagerSize((pager.getTotal() + pager.getPageSize() - 1)
				/ pager.getPageSize());
		pager.setPagerUrl("myCarts");
		model.addAttribute("pager", pager);
		return "redirect:/account/orders";
	}
	

	/**
	 * 退订或取消指定的订单
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("cancel")
	public String cancel() throws Exception {
		return "";
	}
					String jsonError = JSON.toJSONString(new StockErrorProduct(productID,"活动已结束!"));
					logger.error("jsonError="+jsonError);
					return (jsonError);//活动已结束!
				}
				
				//检查是否符合此活动的会员等级范围
				Account acc = getLoginAccount();
				if(acc==null){
					String jsonError = JSON.toJSONString(new StockErrorProduct(productID,"此商品为促销活动的商品,请先登陆才能购买!!"));
					logger.error("jsonError="+jsonError);
					return (jsonError);
				}
				logger.error("acc.getRank() = " + acc.getRank());
				logger.error("activity.getAccountRange() = " + activity.getAccountRange());
				
				if(activity.getAccountRange().indexOf(acc.getRank()) < 0){
					String jsonError = JSON.toJSONString(new StockErrorProduct(productID,"您的会员等级不在此活动的购买范围内!"));
					logger.error("jsonError="+jsonError);
					return (jsonError);
				}
				
				//计算活动商品的最终结算价
				product.setNowPrice(product.caclFinalPrice());
				
				//判断如果是积分商品,则计算所需的积分
				if(activity.getActivityType().equals(Activity.activity_activityType_j)){
					product.setExchangeScore(activity.getExchangeScore());
				}
			}
			
			product.setBuyCount(buyCount);
			
			/**
			 * 加载指定商品的规格信息
			 */
			if(StringUtils.isNotBlank(buySpecID)){
				Spec spec = specService.selectById(buySpecID);
				if(spec==null){
					throw new NullPointerException("根据指定的规格"+buySpecID+"查询不到任何数据!");
				}
				product.setBuySpecInfo(spec);
				
				//减少以后的逻辑判断,规格的价格等同于商品的价格
				product.setNowPrice(spec.getSpecPrice());
			}
			
			if(product.getExchangeScore()==0){
				product.setTotal0(df.format(product.getBuyCount() * Double.valueOf(product.getNowPrice())));
			}else{
	 * @param content
	 *            请求的参数 格式为:name=xxx&pwd=xxx
	 * @param encoding
	 *            服务器端请求编码。如GBK,UTF-8* @return
	 * @throws UnsupportedEncodingException
	 */
	public static String getAddresses(String content, String encodingString)
			throws UnsupportedEncodingException {
		// 这里调用pconline的接口
		String urlStr = "http://ip.taobao.com/service/getIpInfo.php";
		// 从http://whois.pconline.com.cn取得IP所在的省市区信息
		String returnStr = getResult(urlStr, content, encodingString);
		if (returnStr != null) {
			// 处理返回的省市区信息
			System.out.println(returnStr);
			String[] temp = returnStr.split(",");
//			for(int i=0;i<temp.length;i++){
//				System.out.println(">>>"+temp[i]);
//			}
			if (temp.length < 3) {
				return "0";// 无效IP,局域网测试
			}
			String region = (temp[5].split(":"))[1].replaceAll("\"", "");
			String city = (temp[7].split(":"))[1].replaceAll("\"", "");
			String isp = (temp[11].split(":"))[1].replaceAll("\"", "");
			region = decodeUnicode(region);// 省份
			city = decodeUnicode(city);// 省份
			isp = decodeUnicode(isp);// 省份
//			System.out.println("region="+region);
//			System.out.println("city="+city);
//			System.out.println("isp="+isp);
			/**
			 * String country = ""; String area = ""; String region = ""; String
			 * city = ""; String county = ""; String isp = ""; for(int
			 * i=0;i<temp.length;i++){ switch(i){ case 1:country =
			 * (temp[i].split(":"))[2].replaceAll("\"", ""); country =
			 * decodeUnicode(country);//国家 break; case 3:area =
			 * (temp[i].split(":"))[1].replaceAll("\"", ""); area =
			 * decodeUnicode(area);//地区 break; case 5:region =
			 * (temp[i].split(":"))[1].replaceAll("\"", ""); region =
			 * decodeUnicode(region);//省份 break; case 7:city =
			 * (temp[i].split(":"))[1].replaceAll("\"", ""); city =
			 * decodeUnicode(city);//市区 break; case 9:county =
			 * (temp[i].split(":"))[1].replaceAll("\"", ""); county =
			 * decodeUnicode(county);//地区 break; case 11:isp =
			 * (temp[i].split(":"))[1].replaceAll("\"", ""); isp =
			 * decodeUnicode(isp);//ISP公司 break; } }
			 */
			// System.out.println(country+"="+area+"="+region+"="+city+"="+county+"="+isp);
			return region + city + "[" + isp+"]";
		}
		return null;
			}
		}
		
		//加载配送信息
		Address add = new Address();
		add.setAccount(acc.getAccount());
		List<Address> addressList = addressService.selectList(add);
		cartInfo.setAddressList(addressList);
		if(addressList!=null && addressList.size()>0){
//			boolean exist = false;
			for(int i=0;i<addressList.size();i++){
				Address addItem = addressList.get(i);
				if(StringUtils.isNotBlank(addItem.getIsdefault()) && addItem.getIsdefault().equals("y")){
					cartInfo.setDefaultAddessID(addItem.getId());
					break;
				}
			}
		}
		model.addAttribute("myCart", cartInfo);
		model.addAttribute("expressList", SystemManager.getInstance().getExpressMap().values());
		return "confirmOrder";
	}
	
	/**
	 * 支付成功后,回调请求跳转到的页面
	 * @return
	 */
	@RequestMapping("paySuccess")
	public String paySuccess(){
		logger.info("paySuccess...");
		return "paySuccess";
	}
}
package net.jeeshop.core.front;

        SystemSetting systemSetting = SystemManager.getInstance().getSystemSetting();
        //文件保存目录路径
        String savePath = SystemManager.getInstance().getProperty("file.upload.path");
        //文件保存目录URL
        String saveUrl = systemSetting.getImageRootPath();

//定义允许上传的文件扩展名
        HashMap<String, String> extMap = new HashMap<String, String>();
        extMap.put("image", "gif,jpg,jpeg,png,bmp");
        extMap.put("flash", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
        extMap.put("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
        extMap.put("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");

//最大文件大小
        long maxSize = 1000000;

        session.setAttribute("ajax_upload", 1);
//检查目录
        File uploadDir = new File(savePath);
        if (!uploadDir.isDirectory()) {
            return (getError("上传目录不存在。"));
        }
//检查目录写权限
        if (!uploadDir.canWrite()) {
            return (getError("上传目录没有写权限。"));
        }

        String dirName = dir == null ? "image" : dir.trim().toLowerCase();
        if (!extMap.containsKey(dirName)) {
            return (getError("目录名不正确。"));
        }
//创建文件夹
        savePath += dirName + "/";
        saveUrl += dirName + "/";
        File saveDirFile = new File(savePath);
        if (!saveDirFile.exists()) {
            saveDirFile.mkdirs();
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String ymd = sdf.format(new Date());
        savePath += ymd + "/";
        saveUrl += ymd + "/";
        File dirFile = new File(savePath);
        if (!dirFile.exists()) {
//	}
	
	/**
	 * 获取新闻列表
	 * @return
	 * @throws Exception 
	 */
	@RequestMapping("newsList")
	public String newsList(ModelMap model, @ModelAttribute("e")News news) throws Exception{
		News newsInfo = new News();
		newsInfo.setType(News.news_type_notice);
		
		model.addAttribute("pager", super.selectPageList(newsService, newsInfo));
		return "newsList";
	}
	
//	/**
//	 * 获取新闻详情
//	 * @return
//	 */
//	public String newsInfo() throws Exception{
//		String id = getRequest().getParameter("id");
//		String code = getRequest().getParameter("code");
//		logger.error("ProductAction.newsInfo=== id="+id+",code="+code);
//		
//		if(StringUtils.isNotBlank(id)){
//			
//			logger.error("newsInfo id = "+id);
//			if(StringUtils.isBlank(id)){
//				throw new NullPointerException("id is null");
//			}
//			
//			e.setNews(newsService.selectById(id));
//			
//			String url = "/jsp/notices/"+e.getId()+".jsp";
//			logger.error("url = " + url);
//			getRequest().setAttribute("newsInfoUrl",url);
//			
//			return "newsInfo";
//			
			if(e.getNews().getType().equals(News.news_type_help)){
				return "help";
			}else if(e.getNews().getType().equals(News.news_type_notice)){
				return "newsInfo";
			}
//		}else if(StringUtils.isNotBlank(code)){
//			
//			logger.error("newsInfo code = "+code);
//			if(StringUtils.isBlank(code)){
        putCacheObject("expressMap", (Serializable)(expressMap));
    }

    /**
     * 广告列表
     * @return
     */
    public Map<String, Advert> getAdvertMap() {
//        return advertMap;
        return getCacheObject("advertMap");
    }

    public void setAdvertMap(Map<String, Advert> advertMap) {
//        this.advertMap = advertMap;
        putCacheObject("advertMap", (Serializable)advertMap);
    }

    /**
     * 后台发货页面物流公司列表
     * @return
     */
    public Map<String, String> getManageExpressMap() {
//        return manageExpressMap;
        Map<String,String> cachedMap = getCacheObject("manageExpressMap");
        if(cachedMap != null){
            return cachedMap;
        }
        return SystemManager.manageExpressMap;
    }

    public void setManageExpressMap(Map<String, String> manageExpressMap) {
        putCacheObject("manageExpressMap", Lists.newArrayList(manageExpressMap));
    }

    /**
     * 阿里云存储的配置信息
     * @return
     */
    public AliyunOSS getAliyunOSS() {
//        return aliyunOSS;
        return getCacheObject("aliyunOSS");
    }

    public void setAliyunOSS(AliyunOSS aliyunOSS) {
	/**
	 * 查看购物车
	 * @return
	 */
	@RequestMapping("cart")
	public String cart(ModelMap model){
		logger.error("AccountAction.cart查看购物车...");
//		Account acc = (Account) getSession().getAttribute(FrontContainer.USER_INFO);
//		if (acc == null || StringUtils.isBlank(acc.getAccount())) {
//			return "toLogin";
//		}
		List<Product> productList = new ArrayList<Product>();
		CartInfo cartInfo = getMyCart();
		if(cartInfo!=null){
			productList = cartInfo.getProductList();
		} else {
			cartInfo = new CartInfo();
		}
		model.addAttribute("cartInfo", cartInfo);
		model.addAttribute("productList", productList);
		return "cart";
		
//		String addCart = getRequest().getParameter("addCart");
//		CartInfo cartInfo = (CartInfo) getSession().getAttribute(FrontContainer.myCart);
//		if(cartInfo==null){
//			cartInfo = new CartInfo();
//		}
//		getSession().setAttribute(FrontContainer.myCart,cartInfo);
//		logger.error("===addCart="+(addCart!=null && addCart.equals("1")));
//		if(addCart!=null && addCart.equals("1")){
//			String productID = getE().getId();
//			if(StringUtils.isEmpty(productID)){
//				//查询购物车
//				return "cart";
//			}
//			
//			if(cartInfo==null){
//				cartInfo = new CartInfo();
//				getSession().setAttribute(FrontContainer.myCart, cartInfo);
//			}
//			int inputBuyNum = Integer.valueOf(getRequest().getParameter("inputBuyNum"));
//			if(inputBuyNum<=0){
//				throw new NullPointerException();
//			}
//			//检查指定的产品是否已购买到购物车,购买了则数量++,否则查询后添加到购物车
//			boolean exists = false;
//			for(int i=0;i<cartInfo.getProductList().size();i++){
//				Product p = cartInfo.getProductList().get(i);
//				if(p.getId().equals(productID)){
//					p.setBuyCount(p.getBuyCount()+inputBuyNum);
//					exists = true;
//				}
		if(StringUtils.isBlank(id)){
			throw new NullPointerException("非法请求!");
		}
		
		CartInfo cartInfo = getMyCart();
		if(cartInfo==null){
			//会话超时,转到登陆页面
			return page_toLoginRedirect;
		}
		
		for(Iterator<Product> it = cartInfo.getProductList().iterator();it.hasNext();){
			Product p = it.next();
			if(p.getId().equals(id)){
				it.remove();
				
				//重新计算总支付金额
//				cartInfo.setAmount(cartInfo.totalCacl());
				cartInfo.totalCacl();
				break;
			}
		}
		return "redirect:/cart/cart.html";
	}
	DecimalFormat df = new DecimalFormat("0.00");
	/**
	 * 加入购物车,不对金额进行任何的运算。金额的运算在方法CartAction.notifyCart
	 * @return
	 * @throws IOException 
	 */
	@RequestMapping("addToCart")
	@ResponseBody
	public String addToCart(ModelMap model) throws IOException{
//		Account acc = (Account) getSession().getAttribute(FrontContainer.USER_INFO);
//		if (acc == null || StringUtils.isBlank(acc.getAccount())) {
//			super.write("1");//需要登录
//			return null;
//		}
		
		logger.info("ProductAction.cart...");
		HttpServletRequest request = RequestHolder.getRequest();
		}
		areaService.initAreaDataToDB(map);
        frontCache.loadArea();

//		frontCache.readJsonArea();
		return "/manage/area/areaTree";
	}
	
	/**
	 * 加载省市区数据
	 */
//	private void loadArea(){
//		logger.error("loadArea...");
//		Area area = new Area();
//		area.setPcode("0");
//		List<Area> rootData = areaService.selectList(area);
//		if(rootData==null){
//			return ;
//		}
//
//		for(int i=0;i<rootData.size();i++){
//			Area item = rootData.get(i);
//			getAreaByDigui2(item);
//		}
//
//		Map<String, Area> map = new TreeMap<String, Area>();
//		for(int i=0;i<rootData.size();i++){
//			Area item = rootData.get(i);
//			map.put(item.getCode(), item);
//		}
//		SystemManager.areaMap = map;
		
//		logger.error("SystemManager.areaMap=="+SystemManager.areaMap);
		
//		String json = JSON.toJSONString(map);
		logger.error("json="+json);
//		try {
//
//			String path = FrontCache.class.getResource("/").getPath();
//			logger.error("path = " + path);
//			File file = new File(path + "__area.json");
//
            Collections.sort(fileList, new TypeComparator());
        } else {
            Collections.sort(fileList, new NameComparator());
        }
        JSONObject result = new JSONObject();
        result.put("moveup_dir_path", moveupDirPath);
        result.put("current_dir_path", currentDirPath);
        result.put("current_url", currentUrl);
        result.put("total_count", fileList.size());
        result.put("file_list", fileList);

        logger.debug("json=" + result.toString());
        return (result.toString());
    }

    public class NameComparator implements Comparator {
        public int compare(Object a, Object b) {
            Hashtable hashA = (Hashtable) a;
            Hashtable hashB = (Hashtable) b;
            if (((Boolean) hashA.get("is_dir")) && !((Boolean) hashB.get("is_dir"))) {
                return -1;
            } else if (!((Boolean) hashA.get("is_dir")) && ((Boolean) hashB.get("is_dir"))) {
                return 1;
            } else {
                return ((String) hashA.get("filename")).compareTo((String) hashB.get("filename"));
            }
        }
    }

    public class SizeComparator implements Comparator {
        public int compare(Object a, Object b) {
            Hashtable hashA = (Hashtable) a;
            Hashtable hashB = (Hashtable) b;
            if (((Boolean) hashA.get("is_dir")) && !((Boolean) hashB.get("is_dir"))) {
                return -1;
            } else if (!((Boolean) hashA.get("is_dir")) && ((Boolean) hashB.get("is_dir"))) {
                return 1;
            } else {
                if (((Long) hashA.get("filesize")) > ((Long) hashB.get("filesize"))) {
                    return 1;
                } else if (((Long) hashA.get("filesize")) < ((Long) hashB.get("filesize"))) {
                    return -1;
                } else {
                    return 0;
                }
            }
        }
    }

    public class TypeComparator implements Comparator {
        public int compare(Object a, Object b) {
 */
@Controller("frontOrderAction")
@RequestMapping("order")
public class OrderAction extends FrontBaseController<Order> {
	private static final Logger logger = LoggerFactory.getLogger(OrderAction.class);
	private static final long serialVersionUID = 1L;
	@Autowired
	private OrderService orderService;
	@Autowired
	private OrderdetailService orderdetailService;
	@Autowired
	private OrderpayService orderpayService;
	@Autowired
	private ProductService productService;
	@Autowired
	private CommentService commentService;
	@Autowired
	private OrdershipService ordershipService;
	@Autowired
	private AddressService addressService;
	
//	private List<Order> myOrders;
//	private Map<String, Order> orderMap;
	private boolean is_test = false;//是否是测试状态
//	private Product product;//用户进行评论时加载的商品信息
//	private Comment comment;//用户是否进行过评价;如果此对象不为空,则用户进行过评价
//
//	private String selectLeftMenu;//选中的个人中心的菜单项

	@Override
	public OrderService getService() {
		return orderService;
	}

	public void setOrderService(OrderService orderService) {
		this.orderService = orderService;
	}

	/**
	 * 订单确认页面,点击这个页面的确认支付按钮则会跳转到支付宝等的支付页面
	 * 
	 * @return
	 */
	@RequestMapping("orderConfirm")
	public String orderConfirm() {
			connection.setDoInput(true);// 是否打开输入流true|false
			connection.setRequestMethod("POST");// 提交方法POST|GET
			connection.setUseCaches(false);// 是否缓存true|false
			connection.connect();// 打开连接端口
			DataOutputStream out = new DataOutputStream(
					connection.getOutputStream());// 打开输出流往对端服务器写数据
			out.writeBytes(content);// 写数据,也就是提交你的表单 name=xxx&pwd=xxx
			out.flush();// 刷新
			out.close();// 关闭输出流
			BufferedReader reader = new BufferedReader(new InputStreamReader(
					connection.getInputStream(), encoding));// 往对端写完数据对端服务器返回数据
			// ,以BufferedReader流来读取
			StringBuffer buffer = new StringBuffer();
			String line = "";
			while ((line = reader.readLine()) != null) {
				buffer.append(line);
			}
			reader.close();
			return buffer.toString();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (connection != null) {
				connection.disconnect();// 关闭连接
			}
		}
		return null;
	}

	/**
	 * unicode 转换成 中文
	 * 
	 * @param theString
	 * @return
	 */
	public static String decodeUnicode(String theString) {
		char aChar;
		int len = theString.length();
		StringBuffer outBuffer = new StringBuffer(len);
		for (int x = 0; x < len;) {
	private boolean changeCatalog(Product e, boolean toAdd){
		String chanageCatalog = RequestHolder.getRequest().getParameter("chanageCatalog");
		if(toAdd){
			chanageCatalog = "true";
		}
		
		if(StringUtils.isNotBlank(chanageCatalog)){
			if(Boolean.valueOf(chanageCatalog)){
//				getSession().setAttribute("insertOrUpdateMsg", "改变商品目录,已重新加载了商品的属性和参数。");
				int catalog = Integer.valueOf(RequestHolder.getRequest().getParameter("catalog"));
				logger.error("catalogID====="+catalog);
				//删除该商品之前的目录对应的属性和参数
				if(StringUtils.isNotBlank(e.getId())){
					Attribute_link attrLink = new Attribute_link();
					attrLink.setProductID(Integer.valueOf(e.getId()));
					attribute_linkService.deleteByCondition(attrLink);
				}
				
				e.setCatalogID(String.valueOf(catalog));
				//切换商品目录,则自动切换商品属性和参数
				loadAttribute(e, catalog);
				loadParameter(e, catalog);
				return true;
			}
		}
		return false;
	}

	/**
	 * 根据商品分类加载商品属性列表
	 * @catalogID 商品类别ID
	 */
	private void loadParameter(Product e, int catalogID) {
		Attribute attr = new Attribute();
		attr.setCatalogID(catalogID);
		attr.setPid(-1);
		attr = this.attributeService.selectOne(attr);//加载参数主属性,一个参数下包含多个子参数
		if(attr!=null){
			//加载每个属性下的子属性列表
			int id = Integer.valueOf(attr.getId());
			attr.clear();
			attr.setPid(id);
//			attr.setPid(0);
			attr.setCatalogID(0);
			//@@@
			e.setParameterList(this.attributeService.selectList(attr));
		}
		
		//如果商品ID不存在,则不加载商品选中的参数列表
		if(StringUtils.isBlank(e.getId())){
			return;
		}

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值