基于javaweb+mysql的ssm在线农产品商城(java+ssm+jsp+bootstrap+jquery+mysql)

基于javaweb+mysql的ssm在线农产品商城(java+ssm+jsp+bootstrap+jquery+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SSM在线农产品商城(java+ssm+jsp+bootstrap+jquery+mysql)

项目介绍

本项目分为前后台,且有普通用户与管理员两种角色。 用户角色包含以下功能: 用户登录,查看首页,按分类查看商品,查看新闻资讯,查看关于我们,查看商品详情,加入购物车,查看我的订单,提交订单,添加收获地址,支付订单等功能。 管理员角色包含以下功能: 管理员登录,会员管理,资讯管理,类别管理,商品管理,商品库存管理,订单管理,售后管理,留言管理,顾客活跃度管理,营业额统计查看,销售量查看等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐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+Mybatis 2. 前端:JSP+bootstrap+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ssm_zxncpshop 登录

@Controller
public class IndexController extends BaseController {
	@Resource
	ProductDAO productDAO;
	@Resource
	CategoryDAO categoryDAO;
	@Resource
	PictureDAO pictureDAO;
	@Resource
	NewsDAO newsDAO;
	@Resource
	AboutDAO aboutDAO;
	@Resource
	MemberDAO memberDAO;
	@Resource
	OrdermsgDAO ordermsgDAO;
	@Resource
	CartDAO cartDAO;
	@Resource
			}
			ordermsg.setDddetailist(dddetailist);
			ordermsg.setAddr(addrid);
			ordermsg.setShfs(shfs);
			ordermsg.setZffs(zffs);
			ordermsg.setFkstatus("已付款");
			ordermsg.setTotal(doublesjtotal);
			
			String fktime = Info.getDateStr();
//			try {
//				if(Info.compare(fktime,fktime.substring(0, 10)+" 18:00:00")){
//					ordermsg.setRemark("当日达");
//				}else{
//					ordermsg.setRemark("次日达");
//				}
//			} catch (ParseException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
			ordermsgDAO.update(ordermsg);
			request.setAttribute("ordermsg", ordermsg);
			if(ticketid!=null&&!ticketid.equals("")){
			ticketDAO.delete(Integer.parseInt(ticketid));
			}
			
			//mmm.setMoney(sxyue);
			//memberDAO.updateYue(mmm);
			
			double xftotal = mmm.getXftotal()+doublesjtotal;
			mmm.setXftotal(xftotal);
			memberDAO.updateXftotal(mmm);
			
			int jf = mmm.getJf()+new Double(doublesjtotal).intValue();
			mmm.setJf(jf);
			memberDAO.updateJf(mmm);
			
//			if(!mmm.getCardtype().equals("白金卡")){
//			if(xftotal>300&&xftotal<800){
//				mmm.setCardtype("银卡");
//			}else if(xftotal>800&&xftotal<1500){
//				mmm.setCardtype("金卡");
//			}else if(xftotal>1500){
//				mmm.setCardtype("白金卡");
	public String userEdit(User u, HttpServletRequest request){
		userDAO.update(u);
		return "redirect:userList.do";
	}
	
	
	@RequestMapping("/admin/userDel")
	public String userDel(int id,HttpServletRequest request){
		User user = userDAO.findById(id);
		user.setDelstatus("1");
		userDAO.update(user);
		return "redirect:userList.do";
	}
	
	
	//商家注册
	@RequestMapping("shopRegister")
	public String shopRegister(User user,HttpServletRequest request){
		user.setUserpassword(MD5.getDigest(user.getUserpassword()));
		user.setDelstatus("0");
		user.setShstatus("待审核");
		user.setUsertype("商家");
		userDAO.add(user);
		return "redirect:skipshopRetist.do?suc=suc";
	}

}

 

		return "admin/tjnum";
	}

	//销售额
	@RequestMapping("/admin/selectSaleMoney")
	public  String selectSaleMoney(HttpServletRequest request) {
		User shop = (User)request.getSession().getAttribute("admin");
		
		HashMap map = new HashMap();
		map.put("fkstatus", "交易完成");
		if(!shop.getUsertype().equals("管理员")){
			map.put("saver", shop.getId());
		}
		map.put("goodstype", "购买商品");
		List<Ordermsg> olist = ordermsgDAO.selectSaleMoney(map);
		//ArrayList nslist = new ArrayList();
		ArrayList nlist = new ArrayList();
		ArrayList slist = new ArrayList();
		for(Ordermsg dingdan:olist){
			nlist.add("'"+dingdan.getSavetime()+"'");
			slist.add(dingdan.getTotal());
		}
		request.setAttribute("nlist", nlist);
		request.setAttribute("slist", slist);
		return "admin/tjsalemoney";
	}
	
	
	//活跃度
	@RequestMapping("/admin/statisticsHy")
	public  String statisticsHy(HttpServletRequest request) {
		String key = request.getParameter("key");
		User shop = (User)request.getSession().getAttribute("admin");
		ArrayList nlist = new ArrayList();
		ArrayList slist = new ArrayList();
		HashMap map = new HashMap();
		List<Member> mlist = memberDAO.selectAll(map);
		for(Member member:mlist){
			nlist.add("'"+member.getTname()+"'");
			map.put("memberid", member.getId());
			map.put("goodstype", "购买商品");
			map.put("status", "交易完成");
		}else{
			request.setAttribute("error", "原密码错误");
		}
		return "admin/updatepwd";
	}
	
	@RequestMapping("/admin/userList")
	public String selectAll(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,HttpServletRequest request){
		String key = request.getParameter("key");
		HashMap map = new HashMap();
		map.put("key", key);
		map.put("usertype", "商家");
		map.put("shstatus", "通过审核");
		PageHelper.startPage(pageNum, 10);
		List<User> list = userDAO.selectAll(map);
		PageInfo<User> pageInfo =  new PageInfo<User>(list);
		request.setAttribute("key",key);
		request.setAttribute("pageInfo",pageInfo);
		return "admin/userlist";
	}
	
	
	@RequestMapping("admin/userAdd")
	public String userAdd(User user, HttpServletRequest request){
		userDAO.add(user);
		return "redirect:userList.do";
	}
	
	//检查用户名的唯一性
	@RequestMapping("admin/checkUsername")
	public void checkUsername(String username, HttpServletRequest request, HttpServletResponse response){
		try {
			PrintWriter out = response.getWriter();
			HashMap map  = new HashMap();
			map.put("username", username);
			List<User> list = userDAO.selectAll(map);
			if(list.size()==0){
				out.print(0);
			}else{
				out.print(1);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		}
		
     //支付方式页面
	@RequestMapping("skipZffs")
	public String skipZffs(HttpServletRequest request){
		Member member = (Member)request.getSession().getAttribute("sessionmember");
		String suc = request.getParameter("suc")==null?"":request.getParameter("suc");
		String id = request.getParameter("id");
		String totalstr = request.getParameter("totalstr");
		String ticketid = request.getParameter("ticketid");
		String addrid = request.getParameter("addrid");
		request.setAttribute("id", id);
		request.setAttribute("sjtotal", totalstr);
		request.setAttribute("ticketid", ticketid);
		request.setAttribute("addrid", addrid);
		saveobject.getCategoryObject(request);
		
		
		return "zffs";
	}
	
	//订单付款
	@RequestMapping("fukuan")
	public String fukuan(HttpServletRequest request){
		Member member = (Member)request.getSession().getAttribute("sessionmember");
		Member mmm = memberDAO.findById(member.getId());
		String id = request.getParameter("id");
		String sjtotal = request.getParameter("sjtotal");
		String ticketid = request.getParameter("ticketid");
		String addrid = request.getParameter("addrid");
		String zffs = request.getParameter("zffs");
		String shfs = request.getParameter("shfs");
		//double yue = mmm.getMoney();
		//查优惠券
		
		
		double doublesjtotal = Double.parseDouble(sjtotal);
		if(ticketid != null && !ticketid.equals("")){
			Ticket ticket = ticketDAO.findById(Integer.valueOf(ticketid));
			doublesjtotal = doublesjtotal - Double.valueOf(ticket.getMoney());
		}
		//boolean flag = true;
		//double sxyue = yue-doublesjtotal;

		//if(sxyue>=0){
		
			Ordermsg ordermsg = ordermsgDAO.findById(Integer.parseInt(id));
			


                    jscode += "if(document.getElementById(\"txt3\"))\n";
                    jscode += "{\n";
                    jscode += "document.getElementById(\"txt3\").src=\"/vehiclemanagementsys/upfile/" + map.get("filename3") + "\";\n";
                    jscode += "}\n";

                    jscode += "if(document.getElementById(\"txt4\"))\n";
                    jscode += "{\n";
                    jscode += "document.getElementById(\"txt4\").src=\"/vehiclemanagementsys/upfile/" + map.get("filename4") + "\";\n";
                    jscode += "}\n";

                    jscode += "if(document.getElementById(\"txt5\"))\n";
                    jscode += "{\n";
                    jscode += "document.getElementById(\"txt5\").src=\"/vehiclemanagementsys/upfile/" + map.get("filename5") + "\";\n";
                    jscode += "}\n";

                }
            }

            jscode += "}\n";

            jscode += " getPvalue();\n";
            jscode += "</script>\n";
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jscode;
    }

    public static String generalFileName(String srcFileName) {
        try {
            int index = srcFileName.lastIndexOf(".");
            return StrUtil.generalSrid() + srcFileName.substring(index).toLowerCase();
        } catch (Exception e) {
            return StrUtil.generalSrid();
        }
    }

    public synchronized static String getID() {
        Random random = new Random();
        StringBuffer ret = new StringBuffer(20);
        String rand = String.valueOf(Math.abs(random.nextInt()));
        ret.append(getDateStr());
        ret.append(rand.substring(0, 6));

        return ret.toString();
    }

    public static String getImgUpInfo(int height) {
			}
			totalstr = String.format("%.2f", total);
			request.setAttribute("totaldoubel", Double.parseDouble(totalstr));
			request.setAttribute("cartlist", cartlist);
			request.setAttribute("totalstr", totalstr);
		    saveobject.getCategoryObject(request);
		    String suc = request.getParameter("suc")==null?"":request.getParameter("suc");
		    if(!suc.equals("")){
		    	request.setAttribute("suc", "创建成功");
		    }
		    
		    HashMap mmm = new HashMap();
		    mmm.put("goodstype", "购买商品");
		    saveobject.hotSales("", request);
		    List<Product> zphlist = saveobject.hotSales("",request);
			request.setAttribute("zphlist", zphlist);
		return "cartlist";
	}

	// 添加购物车
	@RequestMapping("addCart")
	public void addCart(HttpServletRequest request, HttpServletResponse response) {
		PrintWriter out;
		try {
			out = response.getWriter();
			Member member = (Member) request.getSession().getAttribute(
					"sessionmember");
			if (member != null) {
				String productid = request.getParameter("productid");
				String num = request.getParameter("num");
				//判断是否是购买自己的商品
				Product product = (Product)productDAO.findById(Integer.parseInt(productid));
				HashMap map = new HashMap();
				map.put("memberid", member.getId());
				map.put("productid", productid);
				List<Cart> list = cartDAO.selectAll(map);
				if (list.size() == 0) {
					Cart cart = new Cart();
					cart.setMemberid(member.getId());
					cart.setProductid(Integer.parseInt(productid));
					cart.setNum(Integer.parseInt(num));
					cart.setShopid(Integer.valueOf(product.getSaver()));
					cartDAO.add(cart);
				} else {
                str += "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
            str += "<script language=javascript>\n";
            if (alert) {
                str += "alert('操作成功');\n";
            }
            if (reflush) {
                str += "parent.location=parent.location;\n";
            }

            str += "</script>\n";

            PrintWriter wrt = null;
            try {
                //request.get
                wrt = response.getWriter();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            wrt.write(str);
        }
        return "";
    }

    public int getInt(String sql) {
        System.out.println(sql);
        int i = 0;
        try {
            Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery(sql);
            if (rs.next()) {
                i = rs.getInt(1);
            }
            st.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return i;
    }

    public double getDouble(String sql) {
        double i = 0;
        try {
            Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery(sql);
            if (rs.next()) {
                i = rs.getDouble(1);

            }
            st.close();
	Saveobject saveobject;
	@Resource
	OrdermsgDAO ordermsgDAO;
	@Resource
	ShapplyDAO shapplyDAO;
	@Resource
	OrdermsgdetailsDAO ordermsgdetailsDAO;
	@Resource
	UserDAO userDAO;
	
	//后台查询资讯列表
	@RequestMapping("/admin/shapplyList")
	public String shapplyList(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,HttpServletRequest request) {
		User user = (User)request.getSession().getAttribute("admin");
		HashMap map = new HashMap();
		if(!user.getUsertype().equals("管理员")){
			map.put("shopid", user.getId());
		}
		PageHelper.startPage(pageNum, 10);
		List<Shapply> list = shapplyDAO.selectAll(map);
		for(Shapply sh:list){
			Product product = productDAO.findById(sh.getProductid());
			sh.setProduct(product);
			Member mb = memberDAO.findById(sh.getMemberid());
			sh.setMember(mb);
			User shop = userDAO.findById(Integer.valueOf(product.getSaver()));
			sh.setShop(shop);
		}
		PageInfo<Shapply> pageInfo =  new PageInfo<Shapply>(list);
		request.setAttribute("pageInfo",pageInfo);
		return "admin/shapplylist";
	}
	
	//去申请售后页面 
	@RequestMapping("toShapply")
	public String toShapply(int id,HttpServletRequest request){
		request.setAttribute("orderid",id);
		Ordermsg ordermsg = ordermsgDAO.findById(id);
		HashMap map = new HashMap();
		map.put("ddno", ordermsg.getDdno());
		List<Ordermsgdetails> orderdetaillist = ordermsgdetailsDAO.selectAll(map);
		for(Ordermsgdetails ordermsgdetails: orderdetaillist){
			ordermsgdetails.setProduct(productDAO.findById(Integer.valueOf(ordermsgdetails.getProductid())));
		}
		request.setAttribute("orderdetaillist",orderdetaillist);
		
	}
}

@Component
public class Saveobject {
	@Resource
	CategoryDAO categoryDao;
	@Resource
	ProductDAO productDAO;
	@Resource
	CartDAO cartDao;
	@Resource
	MemberDAO memberDAO;
            long nd = 1000 * 24 * 60 * 60;
            long nh = 1000 * 60 * 60;
            long nm = 1000 * 60;
            // long ns = 1000;
            // 获得两个时间的毫秒时间差异
            long diff = endDate.getTime() - startDate.getTime();
            // 计算差多少天
            long day = diff / nd;
            // 计算差多少小时
            long hour = diff / nh;
            long y = diff % nh;
            //计算余分钟
            long b = y / (1000 * 60);
            // 计算差多少分钟
            long min = diff % nd % nh / nm;
            // 计算差多少秒//输出结果
            // long sec = diff % nd % nh % nm / ns;
            if (b > 30) {
                hournum = hour + 1;
            } else {
                hournum = hour;
            }
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return hournum;
    }

    public static String delHTMLTag(String htmlStr) {
        String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; //定义script的正则表达式
        String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式
        String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式

        Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
        Matcher m_script = p_script.matcher(htmlStr);
        htmlStr = m_script.replaceAll(""); //过滤

        Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
        Matcher m_style = p_style.matcher(htmlStr);
        htmlStr = m_style.replaceAll(""); //过滤style标签
		PageHelper.startPage(pageNum, 10);
		List<Message> list = messageDAO.selectAll(map);
		for(int i=0;i<list.size();i++){
			Member m = memberDAO.findById(list.get(i).getMemberid());
			list.get(i).setMember(m);
		}
		PageInfo<Message> pageInfo =  new PageInfo<Message>(list);
		if(suc.equals("error")){
			request.setAttribute("suc", "请先登录");
		}
		saveobject.getCart(request);
		saveobject.getCategoryObject(request);
		request.setAttribute("pageInfo", pageInfo);
		return "messagelist";
	}
	
	
	//前台留言添加
	@RequestMapping("messageAdd")
	public String messageAdd(HttpServletRequest request){
		Member member = (Member)request.getSession().getAttribute("sessionmember");
		String content = request.getParameter("content");
		if(member!=null){
			Message message = new Message();
			message.setContent(content);
			message.setMemberid(member.getId());
			message.setSavetime(Info.getDateStr());
			messageDAO.add(message);
			return "redirect:message_List.do";
		}else{
			return "redirect:message_List.do?suc=error";
		}
	}
	
	//后台留言列表
	@RequestMapping("/admin/messageList")
	public String messageList(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,HttpServletRequest request) {
		String key = request.getParameter("key");
		HashMap map = new HashMap();
		map.put("key", key);
		List<Message> list = messageDAO.selectAll(map);
		for(int i=0;i<list.size();i++){
			Member m = memberDAO.findById(list.get(i).getMemberid());
			list.get(i).setMember(m);
		}

}

 

@Controller
public class AddressController extends BaseController {
	@Resource
	AddressDAO addressDAO;
	@Resource
	CategoryDAO categoryDAO;
	@Resource
	MemberDAO memberDAO;
	@Resource
	Saveobject saveobject;
	//添加收货地址页面
	@RequestMapping("skipAddress")
	public String skipAddress(HttpServletRequest request){
		String orderid = request.getParameter("orderid");
		saveobject.getCart(request);
		saveobject.getCategoryObject(request);
		request.setAttribute("orderid", orderid);

@Controller
public class ProductController extends BaseController {
	@Resource
	ProductDAO productDAO;
	@Resource
	CategoryDAO categoryDAO;
	@Resource
	MemberDAO memberDAO;
	@Resource
	CommentDAO commentDAO;
	@Resource
	OrdermsgDAO ordermsgDAO;
	@Resource
	Saveobject saveobject;
	@Resource
	UserDAO userDAO;
	
	//积分商品添加
	@RequestMapping("/admin/fubiAdd")
	public String fubiAdd(Product product,HttpServletRequest request){
		User user = (User)request.getSession().getAttribute("admin");
		String productno = Info.getAutoId();
		product.setProductno(productno);
		product.setSaver(String.valueOf(user.getId()));
		product.setIssj("no");
		product.setIstj("no");
		product.setProductid("-1");
		product.setDelstatus("0");
		productDAO.add(product);
		return "redirect:fubiList.do";
	}
	
	//后台查询积分商品列表
	@RequestMapping("/admin/fubiList")
	public String fubiList(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,HttpServletRequest request) {
		String key = request.getParameter("key");
	    HashMap map = new HashMap();
				if(ordermsg.getShfs().equals("到店自取")){
			    	ordermsg.setIsdd("抵达目的地");
			    }
				ordermsg.setFkstatus("已发货");
				ordermsgDAO.update(ordermsg);
				Inventory inv = new Inventory();
				inv.setNum(orderdetail.getNum());
				inv.setProductid(orderdetail.getProductid());
				inv.setType("out");
				inventoryDAO.add(inv);
			}
			return "redirect:orderList.do?suc=suc";
		}else{
			return "redirect:orderList.do?suc=error";
		}
	}
	
	
	//发货
	@RequestMapping("/admin/fubiorderFh")
	public String fubiorderFh(int id,HttpServletRequest request) {
		Ordermsg ordermsg = ordermsgDAO.findById(id);
	    if(ordermsg.getShfs().equals("到店自取")){
	    	ordermsg.setIsdd("抵达目的地");
	    }
		ordermsg.setFkstatus("已发货");
		ordermsgDAO.update(ordermsg);
				
		return "redirect:fubiorderList.do?suc=suc";
	}
	
	//收货
	@RequestMapping("qianShou")
	public String qianShou(int id,HttpServletRequest request){
		Ordermsg ordermsg = ordermsgDAO.findById(id);
		ordermsg.setFkstatus("交易完成");
		ordermsgDAO.update(ordermsg);
		return "redirect:orderLb.do";
	}
	
	@RequestMapping("fubiqianshou")
	public String qs(int id,HttpServletRequest request){
		Ordermsg ordermsg = ordermsgDAO.findById(id);
		ordermsg.setFkstatus("交易完成");
		ordermsgDAO.update(ordermsg);
		}else if(bbb.getCardtype().equals("白金卡")){
			zk=0.85;
		}
		return zk;
	}
	
	public void getWlrecord(String ddno,HttpServletRequest request){
		HashMap map = new HashMap();
		map.put("ddno", ddno);
		List<Wlrecord> wllist = wlrecordDAO.selectAll(map);
		request.setAttribute("wllist", wllist);
	}
	
	public int getInvertory(int productid,HttpServletRequest request){
		User admin = (User)request.getSession().getAttribute("admin");
		int kc = 0;
		HashMap map = new HashMap();
		map.put("productid", productid);
		map.put("type", "in");
		int innum = 0;
		int outnum = 0;
		List<Inventory> inlist = inventoryDAO.selectAll(map);
		for(Inventory inventory:inlist){
			innum+=inventory.getNum();
		}
		map.put("type", "out");
		List<Inventory> outlist = inventoryDAO.selectAll(map);
		for(Inventory inv:outlist){
			outnum+=inv.getNum();
		}
		if(innum>outnum){
			kc=innum-outnum;
		}
		return kc;
	}
	
	
	public int getfdInvertory(int productid,String saver,HttpServletRequest request){
		int kc = 0;
		HashMap map = new HashMap();
		map.put("goodsid", productid);
		map.put("saver",saver);
		return "redirect:skipFukuan.do?id="+orderid;
	}
	
	
	
	
	

}

 

@Controller
public class CategoryController extends BaseController {
	@Resource
	CategoryDAO categoryDAO;
	
	@RequestMapping("/admin/categoryList")
	public String categoryList(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,HttpServletRequest request) {
		String key = request.getParameter("key");
		HashMap map = new HashMap();
		map.put("key", key);
		PageHelper.startPage(pageNum, 10);

请添加图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值