OrderVo.java 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858
  1. package com.kmall.api.entity;
  2. import com.fasterxml.jackson.annotation.JsonFormat;
  3. import com.kmall.api.dto.GeometryMarker;
  4. import org.apache.commons.lang.StringUtils;
  5. import java.io.Serializable;
  6. import java.math.BigDecimal;
  7. import java.util.*;
  8. /**
  9. * @author Scott
  10. * @email
  11. * @date 2017-08-15 08:03:40
  12. */
  13. public class OrderVo implements Serializable {
  14. private static final long serialVersionUID = 1L;
  15. //主键
  16. private Long id;
  17. //订单序列号:商户(拼音首字母)+业务类型+编号
  18. private String order_sn;
  19. //会员Id
  20. private Long user_id;
  21. /*
  22. 订单状态
  23. 1xx 表示订单取消和删除等状态 0订单创建成功等待付款, 101订单已取消, 102订单已删除
  24. 2xx 表示订单支付状态 201订单已付款,等待发货
  25. 3xx 表示订单物流相关状态 300订单已发货, 301用户确认收货
  26. 4xx 表示订单退换货相关的状态 401 没有发货,退款 402 已收货,退款退货
  27. */
  28. private Integer order_status;
  29. //发货状态 商品配送情况;0未配送,1已配送,2已收货,4退货
  30. private Integer shipping_status;
  31. //付款状态 支付状态;0未付款;1付款中;2已付款;4退款
  32. private Integer pay_status;
  33. //评价状态 1已评价 0未评价
  34. private Integer comment_count = 0;
  35. //收货人
  36. private String consignee;
  37. //国家
  38. private String country;
  39. //省
  40. private String province;
  41. //地市
  42. private String city;
  43. //区县
  44. private String district;
  45. //收货地址
  46. private String address;
  47. //联系电话
  48. private String mobile;
  49. //补充说明
  50. private String postscript;
  51. // 配送员Id
  52. private Long shipping_id;
  53. // 配送员名称
  54. private String shipping_name;
  55. // 配送员手机
  56. private String shipping_mobile;
  57. // 配送员手机
  58. private String shipping_code;
  59. // 配送费用
  60. private BigDecimal shipping_fee;
  61. // 配送单号,rider_order表id
  62. private String shipping_no;
  63. //付款
  64. private String pay_id;
  65. // 付款人
  66. private String pay_name;
  67. //实际需要支付的金额
  68. private BigDecimal actual_price;
  69. // 积分
  70. private Integer integral;
  71. // 积分抵扣金额
  72. private BigDecimal integral_money;
  73. //订单总价
  74. private BigDecimal order_price;
  75. //商品总价
  76. private BigDecimal goods_price;
  77. //新增时间
  78. private Date add_time;
  79. //确认时间
  80. private Date confirm_time;
  81. //付款时间
  82. private Date pay_time;
  83. //重商品额外费用
  84. private Integer freight_price;
  85. //使用的优惠券id
  86. private Integer coupon_id;
  87. //优惠券名称
  88. private String coupon_name;
  89. //
  90. private Integer parent_id;
  91. //优惠价格
  92. private BigDecimal coupon_price;
  93. //订单的商品
  94. private Integer goodsCount;
  95. //订单状态的处理
  96. private String order_status_text;
  97. //可操作的选项
  98. private Map handleOption;
  99. //订单满减
  100. private BigDecimal full_cut_price;
  101. // 订单类型 1:普通订单 2:团购订单
  102. private String order_type;
  103. // 活动id
  104. private Long activity_id;
  105. // 门店Id
  106. private Long store_id;
  107. // 送达时间
  108. @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
  109. private Date delivery_date;
  110. // 送到说明
  111. private String delivery_remark;
  112. // 预计送达时间
  113. @JsonFormat(pattern = "HH:mm", timezone = "GMT+8")
  114. private Date predict_time;
  115. // 地址Id
  116. private Long address_id;
  117. //纬度
  118. private BigDecimal latitude;
  119. //经度
  120. private BigDecimal longitude;
  121. // 订单详情
  122. private List<OrderGoodsVo> goodsList;
  123. // 过期付款时间(下单时间,10分钟)
  124. private Long end_time;
  125. // 配送中的骑手位置
  126. private List<GeometryMarker> markers;
  127. private String payTransactionId;
  128. private String payMobile;
  129. private String merchSn;
  130. private String sku;
  131. private String orderBizType;
  132. private String buyerPayCheck;
  133. private String payFlag;
  134. private String createrSn;
  135. private Date createTime;
  136. private String moderSn;
  137. private Date modTime;
  138. private Date tstm;
  139. private String merchOrderSn;
  140. private String isScan;
  141. private String storeName;
  142. private Boolean isRefundStatus;
  143. private String refundStatus;
  144. private String approvalRemark;
  145. private String stockNum;
  146. private String isMergePay;
  147. private String isCreatePayId;
  148. public String getIsCreatePayId() {
  149. return isCreatePayId;
  150. }
  151. public void setIsCreatePayId(String isCreatePayId) {
  152. this.isCreatePayId = isCreatePayId;
  153. }
  154. public String getIsMergePay() {
  155. return isMergePay;
  156. }
  157. public void setIsMergePay(String isMergePay) {
  158. this.isMergePay = isMergePay;
  159. }
  160. public String getStockNum() {
  161. return stockNum;
  162. }
  163. public void setStockNum(String stockNum) {
  164. this.stockNum = stockNum;
  165. }
  166. public String getApprovalRemark() {
  167. return approvalRemark;
  168. }
  169. public void setApprovalRemark(String approvalRemark) {
  170. this.approvalRemark = approvalRemark;
  171. }
  172. public void setRefundStatus(String refundStatus) {
  173. this.refundStatus = refundStatus;
  174. }
  175. public String getRefundStatus() {
  176. return refundStatus;
  177. }
  178. public Boolean getIsRefundStatus() {
  179. return isRefundStatus;
  180. }
  181. public void setIsRefundStatus(Boolean isRefundStatus) {
  182. this.isRefundStatus = isRefundStatus;
  183. }
  184. public String getStoreName() {
  185. return storeName;
  186. }
  187. public void setStoreName(String storeName) {
  188. this.storeName = storeName;
  189. }
  190. public String getIsScan() {
  191. return isScan;
  192. }
  193. public void setIsScan(String isScan) {
  194. this.isScan = isScan;
  195. }
  196. public String getMerchOrderSn() {
  197. return merchOrderSn;
  198. }
  199. public void setMerchOrderSn(String merchOrderSn) {
  200. this.merchOrderSn = merchOrderSn;
  201. }
  202. public String getSku() {
  203. return sku;
  204. }
  205. public void setSku(String sku) {
  206. this.sku = sku;
  207. }
  208. public String getPayTransactionId() {
  209. return payTransactionId;
  210. }
  211. public void setPayTransactionId(String payTransactionId) {
  212. this.payTransactionId = payTransactionId;
  213. }
  214. public String getPayMobile() {
  215. return payMobile;
  216. }
  217. public void setPayMobile(String payMobile) {
  218. this.payMobile = payMobile;
  219. }
  220. public String getMerchSn() {
  221. return merchSn;
  222. }
  223. public void setMerchSn(String merchSn) {
  224. this.merchSn = merchSn;
  225. }
  226. public String getOrderBizType() {
  227. return orderBizType;
  228. }
  229. public void setOrderBizType(String orderBizType) {
  230. this.orderBizType = orderBizType;
  231. }
  232. public String getBuyerPayCheck() {
  233. return buyerPayCheck;
  234. }
  235. public void setBuyerPayCheck(String buyerPayCheck) {
  236. this.buyerPayCheck = buyerPayCheck;
  237. }
  238. public String getPayFlag() {
  239. return payFlag;
  240. }
  241. public void setPayFlag(String payFlag) {
  242. this.payFlag = payFlag;
  243. }
  244. public String getCreaterSn() {
  245. return createrSn;
  246. }
  247. public void setCreaterSn(String createrSn) {
  248. this.createrSn = createrSn;
  249. }
  250. public Date getCreateTime() {
  251. return createTime;
  252. }
  253. public void setCreateTime(Date createTime) {
  254. this.createTime = createTime;
  255. }
  256. public String getModerSn() {
  257. return moderSn;
  258. }
  259. public void setModerSn(String moderSn) {
  260. this.moderSn = moderSn;
  261. }
  262. public Date getModTime() {
  263. return modTime;
  264. }
  265. public void setModTime(Date modTime) {
  266. this.modTime = modTime;
  267. }
  268. public Date getTstm() {
  269. return tstm;
  270. }
  271. public void setTstm(Date tstm) {
  272. this.tstm = tstm;
  273. }
  274. public Long getId() {
  275. return id;
  276. }
  277. public void setId(Long id) {
  278. this.id = id;
  279. }
  280. public String getOrder_sn() {
  281. return order_sn;
  282. }
  283. public void setOrder_sn(String order_sn) {
  284. this.order_sn = order_sn;
  285. }
  286. public Long getUser_id() {
  287. return user_id;
  288. }
  289. public void setUser_id(Long user_id) {
  290. this.user_id = user_id;
  291. }
  292. public Integer getOrder_status() {
  293. return order_status;
  294. }
  295. public void setOrder_status(Integer order_status) {
  296. this.order_status = order_status;
  297. }
  298. public Integer getShipping_status() {
  299. return shipping_status;
  300. }
  301. public void setShipping_status(Integer shipping_status) {
  302. this.shipping_status = shipping_status;
  303. }
  304. public Integer getPay_status() {
  305. return pay_status;
  306. }
  307. public void setPay_status(Integer pay_status) {
  308. this.pay_status = pay_status;
  309. }
  310. public String getConsignee() {
  311. return consignee;
  312. }
  313. public void setConsignee(String consignee) {
  314. this.consignee = consignee;
  315. }
  316. public String getCountry() {
  317. return country;
  318. }
  319. public void setCountry(String country) {
  320. this.country = country;
  321. }
  322. public String getProvince() {
  323. return province;
  324. }
  325. public void setProvince(String province) {
  326. this.province = province;
  327. }
  328. public String getCity() {
  329. return city;
  330. }
  331. public void setCity(String city) {
  332. this.city = city;
  333. }
  334. public String getDistrict() {
  335. return district;
  336. }
  337. public void setDistrict(String district) {
  338. this.district = district;
  339. }
  340. public String getAddress() {
  341. return address;
  342. }
  343. public void setAddress(String address) {
  344. this.address = address;
  345. }
  346. public String getMobile() {
  347. return mobile;
  348. }
  349. public void setMobile(String mobile) {
  350. this.mobile = mobile;
  351. }
  352. public String getPostscript() {
  353. return postscript;
  354. }
  355. public void setPostscript(String postscript) {
  356. this.postscript = postscript;
  357. }
  358. public Long getShipping_id() {
  359. return shipping_id;
  360. }
  361. public void setShipping_id(Long shipping_id) {
  362. this.shipping_id = shipping_id;
  363. }
  364. public String getShipping_name() {
  365. return shipping_name;
  366. }
  367. public void setShipping_name(String shipping_name) {
  368. this.shipping_name = shipping_name;
  369. }
  370. public String getPay_id() {
  371. return pay_id;
  372. }
  373. public void setPay_id(String pay_id) {
  374. this.pay_id = pay_id;
  375. }
  376. public String getPay_name() {
  377. return pay_name;
  378. }
  379. public void setPay_name(String pay_name) {
  380. this.pay_name = pay_name;
  381. }
  382. public BigDecimal getShipping_fee() {
  383. return shipping_fee;
  384. }
  385. public void setShipping_fee(BigDecimal shipping_fee) {
  386. this.shipping_fee = shipping_fee;
  387. }
  388. public BigDecimal getActual_price() {
  389. return actual_price;
  390. }
  391. public void setActual_price(BigDecimal actual_price) {
  392. this.actual_price = actual_price;
  393. }
  394. public Integer getIntegral() {
  395. return integral;
  396. }
  397. public void setIntegral(Integer integral) {
  398. this.integral = integral;
  399. }
  400. public BigDecimal getIntegral_money() {
  401. return integral_money;
  402. }
  403. public void setIntegral_money(BigDecimal integral_money) {
  404. this.integral_money = integral_money;
  405. }
  406. public BigDecimal getOrder_price() {
  407. return order_price;
  408. }
  409. public void setOrder_price(BigDecimal order_price) {
  410. this.order_price = order_price;
  411. }
  412. public BigDecimal getGoods_price() {
  413. return goods_price;
  414. }
  415. public void setGoods_price(BigDecimal goods_price) {
  416. this.goods_price = goods_price;
  417. }
  418. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  419. public Date getAdd_time() {
  420. return add_time;
  421. }
  422. public void setAdd_time(Date add_time) {
  423. this.add_time = add_time;
  424. }
  425. @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
  426. public Date getConfirm_time() {
  427. return confirm_time;
  428. }
  429. public void setConfirm_time(Date confirm_time) {
  430. this.confirm_time = confirm_time;
  431. }
  432. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  433. public Date getPay_time() {
  434. return pay_time;
  435. }
  436. public void setPay_time(Date pay_time) {
  437. this.pay_time = pay_time;
  438. }
  439. public Integer getFreight_price() {
  440. return freight_price;
  441. }
  442. public void setFreight_price(Integer freight_price) {
  443. this.freight_price = freight_price;
  444. }
  445. public Integer getCoupon_id() {
  446. return coupon_id;
  447. }
  448. public void setCoupon_id(Integer coupon_id) {
  449. this.coupon_id = coupon_id;
  450. }
  451. public Integer getParent_id() {
  452. return parent_id;
  453. }
  454. public void setParent_id(Integer parent_id) {
  455. this.parent_id = parent_id;
  456. }
  457. public BigDecimal getCoupon_price() {
  458. return coupon_price;
  459. }
  460. public void setCoupon_price(BigDecimal coupon_price) {
  461. this.coupon_price = coupon_price;
  462. }
  463. public Integer getGoodsCount() {
  464. return goodsCount;
  465. }
  466. public void setGoodsCount(Integer goodsCount) {
  467. this.goodsCount = goodsCount;
  468. }
  469. public String getOrder_status_text() {
  470. if (null != order_status && StringUtils.isEmpty(order_status_text)) {
  471. order_status_text = "未付款";
  472. switch (order_status) {
  473. case 0:
  474. order_status_text = "未付款";
  475. break;
  476. case 100:
  477. order_status_text = "付款中";
  478. break;
  479. case 201:
  480. order_status_text = "等待发货";
  481. break;
  482. case 300:
  483. order_status_text = "待收货";
  484. break;
  485. case 301:
  486. order_status_text = "已完成";
  487. break;
  488. case 200:
  489. order_status_text = "已付款";
  490. break;
  491. case 101:
  492. order_status_text = "已取消";
  493. break;
  494. case 401:
  495. order_status_text = "已退款";
  496. break;
  497. case 402:
  498. order_status_text = "已退货";
  499. break;
  500. }
  501. }
  502. return order_status_text;
  503. }
  504. public void setOrder_status_text(String order_status_text) {
  505. this.order_status_text = order_status_text;
  506. }
  507. //
  508. public Map getHandleOption() {
  509. handleOption = new HashMap();
  510. handleOption.put("cancel", false);//取消操作
  511. handleOption.put("delete", false);//删除操作
  512. handleOption.put("pay", false);//支付操作
  513. handleOption.put("comment", false);//评论操作
  514. handleOption.put("delivery", false);//确认收货操作
  515. handleOption.put("confirm", false);//完成订单操作
  516. handleOption.put("return", false); //退换货操作
  517. handleOption.put("buy", false); //再次购买
  518. //订单流程: 下单成功-》支付订单-》发货-》收货-》评论
  519. //订单相关状态字段设计,采用单个字段表示全部的订单状态
  520. //1xx 表示订单取消和删除等状态 0订单创建成功等待付款, 101订单已取消, 102订单已删除
  521. //2xx 表示订单支付状态 201订单已付款,等待发货
  522. //3xx 表示订单物流相关状态 300订单已发货, 301用户确认收货
  523. //4xx 表示订单退换货相关的状态 401 没有发货,退款 402 已收货,退款退货
  524. //如果订单已经取消或是已完成,则可删除和再次购买
  525. if (order_status == 101) {
  526. // handleOption.put("delete", true);
  527. handleOption.put("buy", true);
  528. }
  529. //如果订单没有被取消,且没有支付,则可支付,可取消
  530. if (order_status == 0) {
  531. handleOption.put("cancel", true);
  532. }
  533. /*if (order_status == 100) {
  534. handleOption.put("cancel", true);
  535. handleOption.put("pay", true);
  536. }*/
  537. if (order_status == 0 && pay_status == 0) {
  538. handleOption.put("pay", true);
  539. }
  540. //如果订单已付款,没有发货,则可退款操作
  541. if (order_status == 201) {
  542. // handleOption.put("cancel", true);
  543. }
  544. //如果订单已经发货,没有收货,则可收货操作和退款、退货操作
  545. if (order_status == 300) {
  546. // handleOption.put("cancel", true);
  547. handleOption.put("confirm", true);
  548. // handleOption.put("return", true);
  549. }
  550. //如果订单已经支付,且已经收货,则可完成交易、评论和再次购买
  551. if (order_status == 301) {
  552. handleOption.put("comment", true);
  553. handleOption.put("buy", true);
  554. }
  555. if (comment_count > 0) {
  556. handleOption.put("comment", false);
  557. }
  558. return handleOption;
  559. }
  560. public void setHandleOption(Map handleOption) {
  561. this.handleOption = handleOption;
  562. }
  563. public BigDecimal getFull_cut_price() {
  564. return full_cut_price;
  565. }
  566. public void setFull_cut_price(BigDecimal full_cut_price) {
  567. this.full_cut_price = full_cut_price;
  568. }
  569. public String getShipping_no() {
  570. return shipping_no;
  571. }
  572. public void setShipping_no(String shipping_no) {
  573. this.shipping_no = shipping_no;
  574. }
  575. public String getOrder_type() {
  576. return order_type;
  577. }
  578. public void setOrder_type(String order_type) {
  579. this.order_type = order_type;
  580. }
  581. public Long getActivity_id() {
  582. return activity_id;
  583. }
  584. public void setActivity_id(Long activity_id) {
  585. this.activity_id = activity_id;
  586. }
  587. public Long getStore_id() {
  588. return store_id;
  589. }
  590. public void setStore_id(Long store_id) {
  591. this.store_id = store_id;
  592. }
  593. public Date getDelivery_date() {
  594. return delivery_date;
  595. }
  596. public void setDelivery_date(Date delivery_date) {
  597. this.delivery_date = delivery_date;
  598. }
  599. public String getDelivery_remark() {
  600. return delivery_remark;
  601. }
  602. public void setDelivery_remark(String delivery_remark) {
  603. this.delivery_remark = delivery_remark;
  604. }
  605. public String getShipping_mobile() {
  606. return shipping_mobile;
  607. }
  608. public void setShipping_mobile(String shipping_mobile) {
  609. this.shipping_mobile = shipping_mobile;
  610. }
  611. public String getShipping_code() {
  612. return shipping_code;
  613. }
  614. public void setShipping_code(String shipping_code) {
  615. this.shipping_code = shipping_code;
  616. }
  617. public Date getPredict_time() {
  618. return predict_time;
  619. }
  620. public void setPredict_time(Date predict_time) {
  621. this.predict_time = predict_time;
  622. }
  623. public Long getAddress_id() {
  624. return address_id;
  625. }
  626. public void setAddress_id(Long address_id) {
  627. this.address_id = address_id;
  628. }
  629. public BigDecimal getLatitude() {
  630. return latitude;
  631. }
  632. public void setLatitude(BigDecimal latitude) {
  633. this.latitude = latitude;
  634. }
  635. public BigDecimal getLongitude() {
  636. return longitude;
  637. }
  638. public void setLongitude(BigDecimal longitude) {
  639. this.longitude = longitude;
  640. }
  641. public List<OrderGoodsVo> getGoodsList() {
  642. return goodsList;
  643. }
  644. public void setGoodsList(List<OrderGoodsVo> goodsList) {
  645. this.goodsList = goodsList;
  646. }
  647. public String getCoupon_name() {
  648. return coupon_name;
  649. }
  650. public void setCoupon_name(String coupon_name) {
  651. this.coupon_name = coupon_name;
  652. }
  653. public Long getEnd_time() {//todo 配置未付款的倒计时时间
  654. if (getOrder_status() == 0) {
  655. end_time = getAdd_time().getTime() + 60 * 15 * 1000;
  656. }
  657. return end_time;
  658. }
  659. public void setEnd_time(Long end_time) {
  660. this.end_time = end_time;
  661. }
  662. public List<GeometryMarker> getMarkers() {
  663. return markers;
  664. }
  665. public void pushMarkers(GeometryMarker marker) {
  666. if (null == this.markers) {
  667. this.markers = new ArrayList();
  668. }
  669. this.markers.add(marker);
  670. }
  671. public Integer getComment_count() {
  672. return comment_count;
  673. }
  674. public void setComment_count(Integer comment_count) {
  675. this.comment_count = comment_count;
  676. }
  677. }