订单java代码实现 java下订单流程

java 如何实现一个用户 一个订单package cn.test.logan.day04;
import java.util.ArrayList;
/**
* 订单类
* 包含订单java代码实现:订单ID、订单所属用户、订单所包含的商品、订单总金额、订单应付金额
* 500-1000 ------- 8.5折
* 1000-1500 ------- 8折
* 1500-2000 ------- 7折
* 2000以上 ------- 6.5折
* 如果是会员订单java代码实现 , 那么可以基于以上折扣继续折扣
* 一般会员:9.5折
* 中级会员:9折
* 高级会员:8折
* @author QIN
*
*/
public class Order {undefined
// 订单ID
public String ordId;
// 订单所属用户
public User user;
// 订单所包含的商品(多个商品,使用ArrayList)
public ArrayList pds;
// 订单总金额
public float ordAllAmt;
// 订单应付金额
public float payAmt;
// 计算总金额的方法
public void setAllAmt() {undefined
float sum = 0;
for(int i=0;i
sum=this.pds.get(i).price * this.pds.get(i).number;
}
this.ordAllAmt = sum;
}
// 计算实付金额
public void setPayAmt() {undefined
float tmp = this.ordAllAmt;
// 根据总金额进行折扣
if(this.ordAllAmt = 500this.ordAllAmt
tmp = this.ordAllAmt * 0.85f;
}
if(this.ordAllAmt = 1000this.ordAllAmt
tmp = this.ordAllAmt * 0.8f;
}
if(this.ordAllAmt = 1500this.ordAllAmt
tmp = this.ordAllAmt * 0.7f;
}
if(this.ordAllAmt = 2000) {undefined
tmp = this.ordAllAmt * 0.65f;
}
// 根据会员等级折扣
if(user.CustLevel.equals("一般会员")) {undefined
tmp = tmp * 0.95f;
}
if(user.CustLevel.equals("中级会员")) {undefined
tmp = tmp * 0.9f;
}
if(user.CustLevel.equals("高级会员")) {undefined
tmp = tmp * 0.8f;
}
//计算结果赋值给对象上的payAmt变量
this.payAmt = tmp;
}
}
参考资料来源:百度贴吧CSDN博主「公子京」
生成订单编号用java怎么处理/**
* 得到一个新的订单代码
* 说明,此函数还没有进行过多线程测试,更新数据库时未加锁
* @return 新的订单代码
*/
public String getOrderCode(){
//getParameter这个方法就是从数据库取2个参数的值 ORDER_CODE_DATE 和
//ORDER_CODE_NO是数据库字段名
BasParameters orderCodeDate = getParameter(ORDER_CODE_DATE);
BasParameters orderCodeNo = getParameter(ORDER_CODE_NO);
//当前日期
String currDate=new SimpleDateFormat("yyyyMMdd").format(new Date(System.currentTimeMillis()));
//每天的起始数
int orderNo = 100;
//表里存的日期和当前日期相同,顺序号累加
if (currDate.equals(orderCodeDate.getValue())){
orderCodeNo.setValue("" (Integer.parseInt(orderCodeNo.getValue()) 1));
orderNo = (Integer.parseInt(orderCodeNo.getValue()));
//save 就是保存ORDER_CODE_DATE 和 ORDER_CODE_NO当前值到数据库
save(orderCodeNo);
} else {
//表里存的日期和当前日期不同,顺序号重新开始,更新参数表的日期
orderCodeDate.setValue(currDate);
save(orderCodeDate);
orderCodeNo.setValue(orderNo);
save(orderCodeNo);
}
return currDatenew DecimalFormat("000000").format(orderNo);
}
Java简单的实现订单管理系统要详细的操作?。∫玫絊QL数据库的 。这个功能太多订单java代码实现了吧 。要做一个小项目订单java代码实现了 。。
用Java创建一个订单类记录订单号 , 第一笔订单的时间,订购产品的ID,客package beans.excel;
import java.io.IOException;
import java.io.OutputStream;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
public class SimpleExcelWrite {
public void createExcel(OutputStream os) throws WriteException,IOException{
//创建工作薄
WritableWorkbook workbook = Workbook.createWorkbook(os);
//创建新的一页
WritableSheet sheet = workbook.createSheet("First Sheet",0);
//创建要显示的内容,创建一个单元格,第一个参数为列坐标,第二个参数为行坐标,第三个参数为内容
Label xuexiao = new Label(0,0,"学校");
sheet.addCell(xuexiao);
Label zhuanye = new Label(1,0,"专业");
sheet.addCell(zhuanye);
Label jingzhengli = new Label(2,0,"专业竞争力");
sheet.addCell(jingzhengli);
Label qinghua = new Label(0,1,"清华大学");
sheet.addCell(qinghua);
【订单java代码实现 java下订单流程】Label jisuanji = new Label(1,1,"计算机专业");
sheet.addCell(jisuanji);
Label gao = new Label(2,1,"高");
sheet.addCell(gao);
Label beida = new Label(0,2,"北京大学");
sheet.addCell(beida);
Label falv = new Label(1,2,"法律专业");
sheet.addCell(falv);
Label zhong = new Label(2,2,"中");
sheet.addCell(zhong);
Label ligong = new Label(0,3,"北京理工大学");
sheet.addCell(ligong);
Label hangkong = new Label(1,3,"航空专业");
sheet.addCell(hangkong);
Label di = new Label(2,3,"低");
sheet.addCell(di);
//把创建的内容写入到输出流中,并关闭输出流
workbook.write();
workbook.close();
os.close();
}
}
SimpleExcelWrite.jsp
%@ page language="java" import="java.util.*" pageEncoding="gb2312"%
%@ page import="java.io.*" %
%@ page import="beans.excel.*" %
%
String fname = "学校竞争力情况";
OutputStream os = response.getOutputStream();//取得输出流
response.reset();//清空输出流
//下面是对中文文件名的处理
response.setCharacterEncoding("UTF-8");//设置相应内容的编码格式
fname = java.net.URLEncoder.encode(fname,"UTF-8");
response.setHeader("Content-Disposition","attachment;filename=" new String(fname.getBytes("UTF-8"),"GBK") ".xls");
response.setContentType("application/msexcel");//定义输出类型
SimpleExcelWrite sw = new SimpleExcelWrite();
sw.createExcel(os);
%
html
head
title/title
/head
body
/body
/html
java一个订单接口,调用订单接口要创建10000份订单,用多线程怎么实现,求助大神?。。。。?/h2>public class MyThread extends Thread{
//重写run方法,run方法的方法体就是现场执行体
public void run()
{
System.out.println("创建订单");
}
}
public class Test {
public static void main(String[] args)
{
new MyThread ().start(); //开启一个线程
new MyThread ().start(); //开启一个线程
}
}
使用java语言爬取自己的淘宝订单看看买了哪些东西?Java爬虫框架WebMagic简介及使用
一、介绍
webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫 。webmagic采用完全模块化的设计,功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),支持多线程抓取,分布式抓?。⒅С肿远厥浴⒆远ㄒ錟A/cookie等功能 。
二、概览
WebMagic项目代码分为核心和扩展两部分 。核心部分(webmagic-core)是一个精简的、模块化的爬虫实现,而扩展部分则包括一些便利的、实用性的功能(例如注解模式编写爬虫等) 。
WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来 。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能 。而Spider则将这几个组件组织起来,让它们可以互相交互 , 流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心 。
2.1 WebMagic的四个组件
Downloader
Downloader负责从互联网上下载页面,以便后续处理 。WebMagic默认使用了Apache HttpClient作为下载工具 。
PageProcessor
PageProcessor负责解析页面 , 抽取有用信息,以及发现新的链接 。WebMagic使用Jsoup作为HTML解析工具,并基于其开发了解析XPath的工具Xsoup 。在这四个组件中,PageProcessor对于每个站点每个页面都不一样,是需要使用者定制的部分 。
Scheduler
Scheduler负责管理待抓取的URL , 以及一些去重的工作 。WebMagic默认提供了JDK的内存队列来管理URL,并用集合来进行去重 。也支持使用Redis进行分布式管理 。除非项目有一些特殊的分布式需求,否则无需自己定制Scheduler 。
Pipeline
Pipeline负责抽取结果的处理 , 包括计算、持久化到文件、数据库等 。WebMagic默认提供了“输出到控制台”和“保存到文件”两种结果处理方案 。Pipeline定义了结果保存的方式,如果你要保存到指定数据库,则需要编写对应的Pipeline 。对于一类需求一般只需编写一个Pipeline 。
2.2 用于数据流转的对象
Request
Request是对URL地址的一层封装,一个Request对应一个URL地址 。它是PageProcessor与Downloader交互的载体,也是PageProcessor控制Downloader唯一方式 。
Page
Page代表了从Downloader下载到的一个页面——可能是HTML,也可能是JSON或者其他文本格式的内容 。Page是WebMagic抽取过程的核心对象,它提供一些方法可供抽取、结果保存等 。
ReusltItems
ReusltItems相当于一个Map,它保存PageProcessor处理的结果 , 供Pipeline使用 。它的API与Map很类似,值得注意的是它有一个字段skip,若设置为true , 则不应被Pipeline处理 。
2.3 控制爬虫运转的引擎—Spider
Spider是WebMagic内部流程的核心 。Downloader、PageProcessor、Scheduler、Pipeline都是Spider的一个属性,这些属性是可以自由设置的,通过设置这个属性可以实现不同的功能 。Spider也是WebMagic操作的入口,它封装了爬虫的创建、启动、停止、多线程等功能 。
对于编写一个爬虫,PageProcessor是需要编写的部分,而Spider则是创建和控制爬虫的入口 。
2.4 WebMagic项目组成
WebMagic项目代码包括几个部分,在根目录下以不同目录名分开 。它们都是独立的Maven项目 。
WebMagic主要包括两个包,这两个包经过广泛实用,已经比较成熟:
webmagic-core
webmagic-core是WebMagic核心部分 , 只包含爬虫基本模块和基本抽取器 。
webmagic-extension
webmagic-extension是WebMagic的主要扩展模块,提供一些更方便的编写爬虫的工具 。包括注解格式定义爬虫、JSON、分布式等支持 。
三、 基本的爬虫
3.1 爬虫的流程 (可以参考上边的框架架构图)
Downloader-页面下载
页面下载是一切爬虫的开始 。
大部分爬虫都是通过模拟http请求,接收并分析响应来完成 。这方面,JDK自带的HttpURLConnection可以满足最简单的需要 , 而Apache HttpClient(4.0后整合到HttpCompenent项目中)则是开发复杂爬虫的不二之选 。它支持自定义HTTP头(对于爬虫比较有用的就是User-agent、cookie等)、自动redirect、连接复用、cookie保留、设置代理等诸多强大的功能 。
webmagic使用了HttpClient 4.2,并封装到了HttpClientDownloader 。学习HttpClient的使用对于构建高性能爬虫是非常有帮助的,官方的Tutorial就是很好的学习资料 。目前webmagic对HttpClient的使用仍在初步阶段,不过对于一般抓取任务,已经够用了
PageProcessor-页面分析及链接抽取
Selector是webmagic为了简化页面抽取开发的独立模块 , 是整个项目中我最得意的部分 。这里整合了CSS Selector、XPath和正则表达式,并可以进行链式的抽?。苋菀拙褪迪智看蟮墓δ?。即使你使用自己开发的爬虫工具 , webmagic的Selector仍然值得一试
Jsoup
HtmlParser
Apache tika
HtmlCleaner与Xpath
这里说的页面分析主要指HTML页面的分析 。页面分析可以说是垂直爬虫最复杂的一部分,在webmagic里 , PageProcessor是定制爬虫的核心 。通过编写一个实现PageProcessor接口的类,就可以定制一个自己的爬虫
HTML分析是一个比较复杂的工作,Java世界主要有几款比较方便的分析工具:
webmagic的Selector
Scheduler-URL管理
URL管理的问题可大可小 。对于小规模的抓取 , URL管理是很简单的 。我们只需要将待抓取URL和已抓取URL分开保存,并进行去重即可 。使用JDK内置的集合类型Set、List或者Queue都可以满足需要 。如果我们要进行多线程抓取,则可以选择线程安全的容器,例如LinkedBlockingQueue以及ConcurrentHashMap 。因为小规模的URL管理非常简单,很多框架都并不将其抽象为一个模块,而是直接融入到代码中 。但是实际上,抽象出Scheduler模块,会使得框架的解耦程度上升一个档次 , 并非常容易进行横向扩展,这也是我从scrapy中学到的 。
Pipeline-离线处理和持久化
Pipeline其实也是容易被忽略的一部分 。大家都知道持久化的重要性,但是很多框架都选择直接在页面抽取的时候将持久化一起完成,例如crawer4j 。但是Pipeline真正的好处是,将页面的在线分析和离线处理拆分开来,可以在一些线程里进行下载 , 另一些线程里进行处理和持久化 。
3.2 使用WebMagic爬取一个壁纸网站
首先引入WebMagic的依赖,webmagic-core-{version}.jar和webmagic-extension-{version}.jar 。在项目中添加这两个包的依赖,即可使用WebMagic 。
maven中引入依赖jar包
dependency
groupIdus.codecraft/groupId
artifactIdwebmagic-core/artifactId
version0.5.3/version
/dependency
dependency
groupIdus.codecraft/groupId
artifactIdwebmagic-extension/artifactId
version0.5.3/version
/dependency1234567891012345678910
不使用maven的用户,可以去中下载最新的jar包 。
关于订单java代码实现和java下订单流程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读