Browse Source

Merge remote-tracking branch 'origin/feature_installment_v1' into feature_installment_v1

ouxq 8 years ago
parent
commit
662bb3fe4c
30 changed files with 1778 additions and 42 deletions
  1. 203 0
      src/main/java/com/uas/platform/b2c/core/constant/EncodingRulesConstant.java
  2. 133 0
      src/main/java/com/uas/platform/b2c/core/constant/ReleaseStatus.java
  3. 102 0
      src/main/java/com/uas/platform/b2c/core/constant/ServiceCode.java
  4. 477 0
      src/main/java/com/uas/platform/b2c/core/constant/Status.java
  5. 339 0
      src/main/java/com/uas/platform/b2c/core/constant/Type.java
  6. 23 6
      src/main/java/com/uas/platform/b2c/fa/payment/controller/InstallmentController.java
  7. 15 0
      src/main/java/com/uas/platform/b2c/fa/payment/controller/InstallmentStoreController.java
  8. 13 0
      src/main/java/com/uas/platform/b2c/fa/payment/dao/InstallmentDao.java
  9. 24 0
      src/main/java/com/uas/platform/b2c/fa/payment/dao/InstallmentStoreDao.java
  10. 14 0
      src/main/java/com/uas/platform/b2c/fa/payment/model/BankTransfer.java
  11. 18 3
      src/main/java/com/uas/platform/b2c/fa/payment/model/Installment.java
  12. 7 6
      src/main/java/com/uas/platform/b2c/fa/payment/model/InstallmentDetail.java
  13. 117 0
      src/main/java/com/uas/platform/b2c/fa/payment/model/InstallmentStore.java
  14. 25 0
      src/main/java/com/uas/platform/b2c/fa/payment/service/InstallmentService.java
  15. 10 0
      src/main/java/com/uas/platform/b2c/fa/payment/service/InstallmentStoreService.java
  16. 149 0
      src/main/java/com/uas/platform/b2c/fa/payment/service/impl/InstallmentServiceImpl.java
  17. 14 0
      src/main/java/com/uas/platform/b2c/fa/payment/service/impl/InstallmentStoreServiceImpl.java
  18. 1 1
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsDao.java
  19. 30 14
      src/main/java/com/uas/platform/b2c/trade/order/model/Purchase.java
  20. 15 0
      src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java
  21. 24 0
      src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseServiceImpl.java
  22. 1 1
      src/main/webapp/resources/js/usercenter/app.js
  23. 5 0
      src/main/webapp/resources/js/usercenter/controllers/ComponentStoreCtrl.js
  24. 4 0
      src/main/webapp/resources/js/usercenter/controllers/forstore/browsing_history.js
  25. 4 0
      src/main/webapp/resources/js/usercenter/controllers/forstore/store_focus_ctrl.js
  26. 5 5
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_delivery_ctrl.js
  27. 1 1
      src/main/webapp/resources/view/usercenter/componentStore.html
  28. 3 3
      src/main/webapp/resources/view/usercenter/forstore/browsing_history.html
  29. 1 1
      src/main/webapp/resources/view/usercenter/forstore/store_focus.html
  30. 1 1
      src/main/webapp/resources/view/vendor/forstore/purchase_detail.html

+ 203 - 0
src/main/java/com/uas/platform/b2c/core/constant/EncodingRulesConstant.java

@@ -0,0 +1,203 @@
+package com.uas.platform.b2c.core.constant;
+
+/**
+ * 系统中单号编码规则
+ * 
+ * @author ChenHao
+ * 
+ */
+public class EncodingRulesConstant {
+
+	/**
+	 * 批次号 BT + 8位时间戳 + 8位编码
+	 */
+	public static final String BATCH = "BT_TIMESTAP_NUMBER";
+
+	/**
+	 * 订单号 SS + 8位时间戳 + 8位编码
+	 */
+	public static final String ORDER = "SS_TIMESTAP_NUMBER";
+
+	/**
+	 * 订单明细号 SSD + 8位时间戳 + 9位编码
+	 */
+	public static final String ORDER_DETAIL = "SSD_TIMESTAP_NUMBER";
+
+	/**
+	 * 送样申请号 PP + 8位时间戳 + 8位编码
+	 */
+	public static final String PROOFING = "PP_TIMESTAP_NUMBER";
+
+	/**
+	 * 送样申请号 PP + 8位时间戳 + 9位编码
+	 */
+	public static final String PROOFING_DETAIL = "PPD_TIMESTAP_NUMBER";
+
+	/**
+	 * 采购单号 PO + 8位时间戳 + 8位编码
+	 */
+	public static final String PURCHASE = "PO_TIMESTAP_NUMBER";
+
+	/**
+	 * 采购单明细号 POD + 8位时间戳 + 9位编码
+	 */
+	public static final String PURCHASE_DETAIL = "POD_TIMESTAP_NUMBER";
+
+	/**
+	 * 转账单号 BK + 8位时间戳 + 8位编码
+	 */
+	public static final String BANKTRANSFER = "BK_TIMESTAP_NUMBER";
+
+	/**
+	 * 发货单号(转自订单的) SDFSS + 8位时间戳 + 8位编码
+	 */
+	public static final String INVOICE_FROMORDER = "SDFSS_TIMESTAP_NUMBER";
+
+	/**
+	 * 发货单明细号(转自订单的) SDDFSS + 8位时间戳 + 9位编码
+	 */
+	public static final String INVOICE_DETAIL_FROMORDER = "SDDFSS_TIMESTAP_NUMBER";
+
+	/**
+	 * 发货单号(转自采购单的) SDFPO + 8位时间戳 + 8位编码
+	 */
+	public static final String INVOICE_FROMPURCHASE = "SDFPO_TIMESTAP_NUMBER";
+
+	/**
+	 * 发货单明细号(转自采购单的) SDDFPO + 8位时间戳 + 9位编码
+	 */
+	public static final String INVOICE_DETAIL_FROMPURCHASE = "SDDFPO_TIMESTAP_NUMBER";
+
+	/**
+	 * 发货单号(转自换货单的) SDDFPO + 8位时间戳 + 8位编码
+	 */
+	public static final String INVOICE_FROMCHANGE = "SDFCH_TIMESTAP_NUMBER";
+
+	/**
+	 * 发货单明细号(转自换货单明细的) SDDFPO + 8位时间戳 + 9位编码
+	 */
+	public static final String INVOICE_DETAIL_FROMCHANGE = "SDDFCH_TIMESTAP_NUMBER";
+
+	/**
+	 * 入库单号 YS + 8位时间戳 + 8位编码
+	 */
+	public static final String RECEIPT_FROMPURCHASE = "YS_TIMESTAP_NUMBER";
+
+	/**
+	 * 入库单明细号 YSD + 8位时间戳 + 9位编码
+	 */
+	public static final String RECEIPT_DETAIL_FROMPURCHASE = "YSD_TIMESTAP_NUMBER";
+
+	/**
+	 * 退货单号(来着客户) RFC + 8位时间戳 + 8位编码
+	 */
+	public static final String RETURN_FROMCUST = "RFC_TIMESTAP_NUMBER";
+
+	/**
+	 * 退货明细单号(来着客户) RFCD + 8位时间戳 + 9位编码
+	 */
+	public static final String RETURN_DETAIL_FROMCUST = "RFCD_TIMESTAP_NUMBER";
+
+	/**
+	 * 退货单号(来着平台) RFB + 8位时间戳 + 8位编码
+	 */
+	public static final String RETURN_FROMB2C = "RFB_TIMESTAP_NUMBER";
+
+	/**
+	 * 退货细单号(来着平台) RFBD + 8位时间戳 + 9位编码
+	 */
+	public static final String RETURN_DETAIL_FROMB2C = "RFBD_TIMESTAP_NUMBER";
+
+	/**
+	 * 换货单号(来着客户) CFC + 8位时间戳 + 8位编码
+	 */
+	public static final String CHANGE_FROMCUST = "CFC_TIMESTAP_NUMBER";
+
+	/**
+	 * 换货单号(来着客户) CFCD + 8位时间戳 + 9位编码
+	 */
+	public static final String CHANGE_DETAIL_FROMCUST = "CFCD_TIMESTAP_NUMBER";
+
+	/**
+	 * 换货单号(来着平台) CFB + 8位时间戳 + 8位编码
+	 */
+	public static final String CHANGE_FROMB2C = "CFB_TIMESTAP_NUMBER";
+
+	/**
+	 * 换货单号(来着平台) CFBD + 8位时间戳 + 9位编码
+	 */
+	public static final String CHANGE_DETAIL_FROMB2C = "CFBD_TIMESTAP_NUMBER";
+
+	/**
+	 * 业务中间表 OIU + 8 位时间戳 + 8 位编码
+	 */
+	public static final String OPERATION_INFO_UAS = "OIU_TIMESTAP_NUMBER";
+
+	/**
+	 * 交易流水号 YS + 8位时间戳 + 8位编码
+	 */
+	public static final String YSEPAY = "YS_TIMESTAP_NUMBER";
+
+	/**
+	 * 爬虫任务表CCT + 8 位时间戳 + 8 位编码
+	 */
+	public static final String COMPONENT_CRAWL_TASK = "CCT_TIMESTAP_NUMBER";
+
+	/**
+	 * 器件批量申请单号CCS + 8 位时间戳 + 8 位编码
+	 */
+	public static final String COMPONENT_CRAWL_SUBMIT = "CCS_TIMESTAP_NUMBER";
+
+	/**
+	 * 订单异常申请单号 OAP + 8位时间戳 + 8位编码
+	 */
+	public static final String ORDER_EX_APPLY = "OAP_TIMESTAMP_NUMBER";
+
+	/**
+	 * 采购单异常申请单号 PAP + 8位时间戳 + 8位编码
+	 */
+	public static final String PURCHASE_EX_APPLY = "PAP_TIMESTAMP_NUMBER";
+
+	/**
+	 * 申请明细号 APD + 8位时间戳 + 9位编码
+	 */
+	public static final String APPLY_DETAIL = "APD_TIMESTAMP_NUMBER";
+
+	/**
+	 * 付款申请表 REP + 8 位时间戳 + 8 位编码
+	 */
+	public static final String REQUEST_PAYMENT = "REP_TIMESTAP_NUMBER";
+	
+	/**
+	 *  退款表RE + 8 位时间戳 + 8 位编码
+	 */
+	public static final String REFUND = "RE_TIMESTAP_NUMBER";
+	
+	/**
+	 *  退款明细RED + 8 位时间戳 + 9 位编码
+	 */
+	public static final String REFUND_DETAIL = "RED_TIMESTAP_NUMBER";
+	
+	/**
+	 *  批量上架的批次号 + 8 位时间戳 + 8位编码
+	 */
+	public static final String RELP_BATCH = "RELP_TIMESTAP_NUMBER";
+
+
+	/**
+	 *  产品导入的编号 + 8 位时间戳 + 8位编码
+	 */
+	public static final String PRODUCT_IMPORT = "PROIM_TIMESTAP_NUMBER";
+
+
+	/**
+	 *  产品导入编号 + 8 位时间戳 + 8位编码
+	 */
+	public static final String PRODUCT_NUM = "PNUM_TIMESTAP_NUMBER";
+
+	/**
+	 * 用户导入标准上架信息的批次号 编号 + 8位时间戳 + 8位编码
+	 */
+	public static final String PRODUCTSTANDARDPUTONINFO_NUM = "PSPO_TIMESTAP_NUMBER";
+
+}

+ 133 - 0
src/main/java/com/uas/platform/b2c/core/constant/ReleaseStatus.java

@@ -0,0 +1,133 @@
+package com.uas.platform.b2c.core.constant;
+
+public enum ReleaseStatus {
+	/**
+	 * {@code 101已发布}
+	 */
+	released(101, "已发布"),
+
+	/**
+	 * {@code 102未发布}
+	 */
+	unreleased(102, "未发布"),
+
+	/**
+	 * {@code 103品牌不存在}
+	 */
+	error_brand(103, "品牌不存在"),
+	/**
+	 * {@code 103器件不存在}
+	 */
+	error_component(104, "器件不存在"),
+	
+	/**
+	 * {@code 105 生产日期为空}
+	 */
+	error_productDate(105, "生产日期为空"),
+	
+	/**
+	 * {@code 106库存类型为空}
+	 */
+	error_origial(106, "库存类型为空"),
+	
+	/**
+	 * {@code 107 库存数量为空}
+	 */
+	error_reserve(107, "库存数量为空"),
+	
+	/**
+	 * {@code 108  最小包单价都为空}
+	 */
+	error_minPackPrice(108, "最小包单价都为空"),
+	
+	/**
+	 * {@code 109  交期都为空}
+	 */
+	error_deliveryTime(109, "交期都为空"),
+	
+	/**
+	 * {@code 110 价格信息不统一}
+	 */
+	error_priceNUnite(110, "价格信息不统一"),
+	
+	/**
+	 * {@code 1101 分段价格错误}
+	 */
+	error_sectionPrice(111, "分段价格错误"),
+
+	/**
+	 * {@code 112 匹配成功}
+	 */
+	success(112, "匹配成功"),
+	
+	/**
+	 * {@code 113  匹配失败}
+	 */
+	failure(113, "匹配失败");
+	/**
+	 * @param value
+	 *            发布状态
+	 *            <p>
+	 *            101<i>已发布</i>
+	 *            </p>
+	 *            <p>
+	 *            102<i>未发布</i>
+	 *            </p>
+	 *            <p>
+	 *            103<i>品牌不存在</i>
+	 *            </p>
+	 *            <p>
+	 *            104<i>器件不存在</i>
+	 *            </p>
+	 *            <p>
+	 *            105<i>匹配成功</i>
+	 *            </p>
+	 *
+	 */
+	private ReleaseStatus(int value, String phrase) {
+		this.value = value;
+		this.phrase = phrase;
+	}
+
+	private final int value;
+
+	private final String phrase;
+
+	/**
+	 * @return 发布状态的编码
+	 */
+	public int value() {
+		return this.value;
+	}
+
+	/**
+	 * @return 业务动作描述
+	 */
+	public String getPhrase() {
+		return this.phrase;
+	}
+
+	/**
+	 * @param statusCode
+	 *            状态的编码
+	 * @return 状态
+	 * @throws IllegalArgumentException
+	 *             如果statusCode不存在的话
+	 */
+	public static ReleaseStatus valueOf(int statusCode) {
+		for (ReleaseStatus status : values()) {
+			if (status.value == statusCode) {
+				return status;
+			}
+		}
+		throw new IllegalArgumentException("没有与编号 [" + statusCode + "]匹配的业务状态");
+	}
+
+	/**
+	 * 返回状态的编号
+	 */
+	@Override
+	public String toString() {
+		return Integer.toString(value);
+	}
+}

+ 102 - 0
src/main/java/com/uas/platform/b2c/core/constant/ServiceCode.java

@@ -0,0 +1,102 @@
+package com.uas.platform.b2c.core.constant;
+
+public enum ServiceCode {
+	/**
+	 * {@code 101器件申请}
+	 */
+	componentApply(101, "器件申请"),
+
+	/**
+	 * {@code 102品牌申请}
+	 */
+	brandApply(102, "品牌申请"),
+
+	/**
+	 * {@code 103器件审批}
+	 */
+	componentAudit(103, "器件审核"),
+
+	/**
+	 * {@code 104品牌审批}
+	 */
+	brandAudit(104, "品牌审核"),
+
+	/**
+	 * {@code 201 未下载}
+	 */
+	not_Download(201, "未下载"),
+
+	/**
+	 * {@code 202 已下载}
+	 */
+	download(202, "已下载");
+
+	/**
+	 * @param value
+	 *            业务动作编码
+	 *            <p>
+	 *            101<i>器件申请</i>
+	 *            </p>
+	 *            <p>
+	 *            102<i>品牌申请</i>
+	 *            </p>
+	 *            <p>
+	 *            103<i>器件审批</i>
+	 *            </p>
+	 *            <p>
+	 *            104<i>品牌审批</i>
+	 *            </p>
+	 *            <p>
+	 *            201<i>未下载</i>
+	 *            </p>
+	 *            <p>
+	 *            202<i>已下载</i>
+	 *            </p>
+	 */
+	private ServiceCode(int value, String phrase) {
+		this.value = value;
+		this.phrase = phrase;
+	}
+
+	private final int value;
+
+	private final String phrase;
+
+	/**
+	 * @return 业务动作的编码
+	 */
+	public int value() {
+		return this.value;
+	}
+
+	/**
+	 * @return 业务动作描述
+	 */
+	public String getPhrase() {
+		return this.phrase;
+	}
+
+	/**
+	 * @param statusCode
+	 *            状态的编码
+	 * @return 状态
+	 * @throws IllegalArgumentException
+	 *             如果statusCode不存在的话
+	 */
+	public static ServiceCode valueOf(int statusCode) {
+		for (ServiceCode status : values()) {
+			if (status.value == statusCode) {
+				return status;
+			}
+		}
+		throw new IllegalArgumentException("没有与编号 [" + statusCode + "]匹配的业务动作");
+	}
+
+	/**
+	 * 返回状态的编号
+	 */
+	@Override
+	public String toString() {
+		return Integer.toString(value);
+	}
+}

+ 477 - 0
src/main/java/com/uas/platform/b2c/core/constant/Status.java

@@ -0,0 +1,477 @@
+package com.uas.platform.b2c.core.constant;
+
+/**
+ * 状态定义,描述
+ * 
+ * @author yingp
+ * 
+ */
+/**
+ * @author Pro1
+ *
+ */
+public enum Status {
+	/**
+	 * {@code 100 在录入}
+	 */
+	INPUTTING(100, "在录入"),
+	/**
+	 * {@code 101 已提交}
+	 */
+	SUBMITTED(101, "已提交"),
+	/**
+	 * {@code 102 已审核}
+	 */
+	AUDITED(102, "已审核"),
+	/**
+	 * {@code 103 未通过}
+	 */
+	NOTALLOW(103, "未通过"),
+	/**
+	 * {@code 104 已通过}
+	 */
+	ALLOW(104, "已通过"),
+	/**
+	 * {@code 111 已结束}
+	 */
+	FINISH(111, "已结束"),
+	/**
+	 * {@code 112 已删除}
+	 */
+	DELETED(112, "已删除"),
+	/**
+	 * {@code 200 未回复}
+	 */
+	NOT_REPLY(200, "未回复"),
+	/**
+	 * {@code 201 已回复}
+	 */
+	REPLIED(201, "已回复"),
+	/**
+	 * 202 平台的单据未上传到ERP、SAAS等其它系统
+	 */
+	NOT_UPLOAD(202, "待上传"),
+	/**
+	 * 203 ERP、SAAS等其它系统已下载平台的单据
+	 */
+	DOWNLOADED(203, "已下载"),
+	/**
+	 * {@code 210 未阅读}
+	 */
+	NOT_READ(210, "未阅读"),
+	/**
+	 * {@code 211 已阅读}
+	 */
+	READ(211, "已阅读"),
+	/**
+	 * {@code 221 已同意}
+	 */
+	AGREED(221, "已同意"),
+	/**
+	 * {@code 222  不同意}
+	 */
+	NOTAGREED(222, "不同意"),
+	/**
+	 * {@code 310 未启用}
+	 */
+	UNAPPLY(310, "未启用"),
+	/**
+	 * {@code 311 申请中}
+	 */
+	UNAUDIT(311, "申请中"),
+	/**
+	 * {@code 312 未激活}
+	 */
+	UNACT(312, "未激活"),
+	/**
+	 * {@code 313 已激活}
+	 */
+	ENABLED(313, "已激活"),
+	/**
+	 * {@code 314 已禁用}
+	 */
+	DISABLED(314, "已禁用"),
+	/**
+	 * {@code 315 已注销,已取消}
+	 */
+	CANCELLED(315, "已注销"),
+	/**
+	 * {@code 317 已开账}
+	 */
+	CREATED(317, "已开账"),
+	/**
+	 * {@code 350 未完成}
+	 */
+	PENDING(350, "未完成"),
+	/**
+	 * {@code 351 运行中}
+	 */
+	RUNNING(351, "运行中"),
+	/**
+	 * {@code 400 已发货}
+	 */
+	SEND(400, "已发货"),
+	/**
+	 * {@code 401 未发货}
+	 */
+	UNSEND(401, "未发货"),
+	/**
+	 * {@code 402 部分发货}
+	 */
+	PART_SEND(402, "部分发货"),
+	/**
+	 * {@code 403 出货中}
+	 */
+	SHIPPINGIN(403, "出货中"),
+	/**
+	 * {@code 404 待收货}
+	 */
+	INBOUND(404, "待收货"),
+	/**
+	 * {@code 405 已收货,只指货物}
+	 */
+	RECEIVED(405, "已收货"),
+	/**
+	 * {@code 406 待出货}
+	 */
+	TOBESHIPPED(406, "待出货"),
+	/**
+	 * {@code 407 已出货}
+	 */
+	SHIPPED(407, "已出货"),
+	/**
+	 * {@code 408 发货中}
+	 */
+	SENDING(408, "发货中"),
+	/**
+	 * {@code 409 待回寄}
+	 */
+	TOBESHIPPEDBACK(409, "待回寄"),
+	/**
+	 * {@code 410 验货中}
+	 */
+	INSPECTING(410, "验货中"),
+
+	/**
+	 * {@code 411 已验货}
+	 */
+	INSPECTED(411, "已验货"),
+
+	/**
+	 * {@code 412  等待卖家同意}
+	 */
+	WAITSELLERCOMFIRM(412, "等待卖家同意"),
+
+	/**
+	 * {@code 413  卖家接单}
+	 */
+	ORDERTAKE(413, "卖家接单"),
+
+	/**
+	 * {@code 501 待确认}
+	 */
+	TOBECONFIRMED(501, "待确认"),
+	/**
+	 * {@code 502 已确认}
+	 */
+	CONFIRMED(502, "已确认"),
+	/**
+	 * {@code 503 待付款}
+	 */
+	TOBEPAID(503, "待付款"),
+	/**
+	 * {@code 523 付款中}
+	 */
+	PAIDING(523, "付款中"),
+	/**
+	 * {@code 504 已付款}
+	 */
+	PAID(504, "已付款"),
+	/**
+	 * {@code 505 已收款}
+	 */
+	MONEYRECEIVED(505, "已收款"),
+	/**
+	 * {@code 506 待收款}
+	 */
+	TORECEIVEMONEY(506, "待收款"),
+	/**
+	 * {@code 507待退款}
+	 */
+	TOBEREFUNDED(507, "待退款"),
+	/**
+	 * {@code 508 已退款}
+	 */
+	REFUNDED(508, "已退款"),
+	/**
+	 * {@code 509  退货中}
+	 */
+	RETURNINGGOODS(509, "退货中"),
+	
+	/**
+	 * {@code 521 退货}
+	 */
+	RETURN(521, "退货"),
+	/**
+	 * {@code 510  换货中}
+	 */
+	EXCHANGEGOODS(510, "换货中"),
+	/**
+	 * {@code 511  售后中}
+	 */
+	INAFTERSALES(511, "售后处理中"),
+	/**
+	 * {@code 512  待开发票}
+	 */
+	TOBEMADEOUTANINVOICE(512, "待开发票"),
+	/**
+	 * {@code 511  已开发票}
+	 */
+	MADEOUTANINVOICE(513, "已开发票"),
+	/**
+	 * {@code 514  待结算}
+	 */
+	NOTSETTLED(514, "待结算"),
+	/**
+	 * {@code 515  已结算}
+	 */
+	SETTLED(515, "已结算"),
+	/**
+	 * {@code 516  已到结算期}
+	 */
+	CHECKDEADLINE(516, "已到结算期"),
+	/**
+	 * {@code 517  未到结算期}
+	 */
+	NOCHECKDEADLINE(517, "未到结算期"),
+	/**
+	 * {@code 518  已送样}
+	 */
+	PROOFED(518, "已送样"),
+	/**
+	 * {@code 520 已完成}
+	 */
+	COMPLETED(520, "已完成"),
+	/**
+	 * {@code 521 待评论}
+	 */
+	TO_BE_REVIEWED(521, "待评论"),
+	/**
+	 * {@code 521 待评论}
+	 */
+	TO_BE_AFTERREVIEWED(523, "待追评"),
+	/**
+	 * {@code 522 已评论}
+     */
+	REVIEWED(522, "已评论"),
+	/**
+	 * {@code 601  有效的}
+	 */
+	AVAILABLE(601, "有效地"),
+	/**
+	 * {@code 602 无效的(因库存不足而失效)}
+	 */
+	UNAVAILABLE(602, "无效的(因库存不足而失效)"),
+	/**
+	 * {@code 603 无效的(因未按时付款)}
+	 */
+	UNAVAILABLE_NOPAID(603, "无效的(因未按时付款)"),
+
+	/**
+	 * {@code 604  无效的(因供应商拒绝)}
+	 */
+	UNAVAILABLE_DISAGREE(604, "无效的(因供应商拒绝)"),
+
+	/**
+	 * {@code 605 无效的(因全部退货完成的)}
+	 */
+	UNAVAILABLE_RETURN(605, "无效的(因全部退货完成的)"),
+	/**
+	 * {@code 606 无效的(因用户本人取消而失效)}
+	 */
+	UNAVAILABLE_PERSONAL(606, "无效的(因用户本人取消而失效)"),
+	/**
+	 * {@code 607 申请议价中}
+	 */
+	CHARGE_APPLY(607, "申请议价中"),
+	/**
+	 * {@code 608 议价结束(同意)}
+	 */
+	CHARGE_ACCEPT(608, "议价结束(同意)"),
+	/**
+	 * {@code 609 议价结束(不同意)}
+	 */
+	CHARGE_REFUSE(609, "议价结束(不同意)"),
+
+	/**
+	 * {@code 610   确认状态取消(确认状态下供应商拒绝取消)}
+	 */
+	COMFIRM_DISAGREE(610, " 确认状态取消(供应商拒绝取消)"),
+
+	/**
+	 * {@code 611   已付款状态取消(已付款状态下供应商拒绝取消)}
+	 */
+	PAIDED_DISAGREE(611, "已付款状态取消(供应商拒绝取消)"),
+
+	/**
+	 * {@code 612 已下架}
+	 */
+	REMOVED(612, "已下架"),
+
+	/*
+	 * {@code 699 待开发票}
+	 */
+	PREPARE_BILL(699, "准备发票"),
+
+	/*
+	 * {@code 700 待开发票}
+	 */
+	TOBEMAKE_BILL(700, "待开发票"),
+
+	/**
+	 * {@code 701  待收发票} 如果在订单主表代表,已经全部开票,存在待收票的明细 如果在明细表,代表这条明细已经开票,处于待确认收票状态
+	 */
+	TOBERECEIVE_BILL(701, "待收发票"),
+
+	/*
+	 * {@code 702 已收发票}
+	 */
+	RECEIVED_BILL(702, "已收发票"),
+
+	/*
+	 * {@code 703 不需开票}
+	 */
+	NEEDNO_BILL(703, "不需开票"),
+
+	/*
+	 * {@code 704 存在待收票的订单} 区别与701 701状态代表订单中不存在待开票的明细;而704代表订单中可能存在待开票的明细
+	 */
+	TOCONFIRM_BILL(704, "存在待收票的订单"),
+
+	/*
+	 * {@code 705 已开票的全部收票}
+	 */
+	OPENED_RECEIVED_BILL(705, "已开票的全部收票"),
+
+	/**
+	 * {@code 810 创客需求问题待处理}
+	 */
+	TOBE_HANDLE(810, "未处理"),
+
+	/**
+	 * {@code 811 创客需求问题已处理}
+	 */
+	HANDLED(811, "已处理"),
+
+	/**
+	 * {@code 812 待爬取}
+	 */
+	TO_CROWL(812, "未完成"),
+
+	/**
+	 * {@code 813 已爬取}
+	 */
+	CROWLED(813, "已完成"),
+
+	/**
+	 * {@code 814 爬取失败}
+	 */
+	CROWLED_FAILED(814, "任务失败"),
+	/**
+	 * {@code 1669 待入库 <b>待入库</b>}
+	 */
+	TOBE_LOAD(1669, "待入库"),
+
+	/**
+	 * {@code 1670 待上架 <b>待上架</b>}
+	 */
+	TOBE_ONSALE(1670, "未上架"),
+
+	/**
+	 * {@code 1680 未读 <b>未读</b>}
+	 */
+	UNREAD(1680, "未读"),
+
+	/**
+	 * {@code 1690 1690 <b>1690</b>}
+	 */
+	ISREAD(1690, "已读");
+
+	/**
+	 * @param value
+	 *            状态编号
+	 *            <p>
+	 *            100~199 <i>单据基本状态</i>
+	 *            </p>
+	 *            <p>
+	 *            200~299 <i>沟通状态</i>
+	 *            </p>
+	 *            <p>
+	 *            300~399 <i>用户使用状态</i>
+	 *            </p>
+	 *            <p>
+	 *            400~499 <i>物流状态</i>
+	 *            </p>
+	 *            <p>
+	 *            500~599 <i>单据状态</i>
+	 *            </p>
+	 * @param phrase
+	 *            描述
+	 */
+	private Status(int value, String phrase) {
+		this.value = value;
+		this.phrase = phrase;
+	}
+
+	private final int value;
+
+	private final String phrase;
+
+	/**
+	 * @return 状态的整型编码
+	 */
+	public int value() {
+		return this.value;
+	}
+
+	/**
+	 * @return 状态的描述
+	 */
+	public String getPhrase() {
+		return this.phrase;
+	}
+
+	/**
+	 * @param statusCode
+	 *            状态的编码
+	 * @return 状态
+	 * @throws IllegalArgumentException
+	 *             如果statusCode不存在的话
+	 */
+	public static Status valueOf(int statusCode) {
+		for (Status status : values()) {
+			if (status.value == statusCode) {
+				return status;
+			}
+		}
+		throw new IllegalArgumentException("没有与编号 [" + statusCode + "]匹配的状态");
+	}
+
+	/**
+	 * 返回状态的编号
+	 */
+	@Override
+	public String toString() {
+		return Integer.toString(value);
+	}
+
+	/**
+	 * 判断订单或采购单的当前状态是否处于已失效状态
+	 *
+	 * @return	如果已失效,则返回true
+	 */
+	public static boolean isUnavailable(Integer status) {
+		return com.uas.platform.core.model.Status.UNAVAILABLE.value() == status || com.uas.platform.core.model.Status.UNAVAILABLE_DISAGREE.value() == status || com.uas.platform.core.model.Status.UNAVAILABLE_NOPAID.value() == status
+				|| com.uas.platform.core.model.Status.UNAVAILABLE_PERSONAL.value() == status || com.uas.platform.core.model.Status.UNAVAILABLE_RETURN.value() == status || com.uas.platform.core.model.Status.RETURN.value() == status;
+	}
+}

+ 339 - 0
src/main/java/com/uas/platform/b2c/core/constant/Type.java

@@ -0,0 +1,339 @@
+package com.uas.platform.b2c.core.constant;
+
+/**
+ * 类型定义,描述
+ * 
+ * @author chenhao
+ * 
+ */
+
+public enum Type {
+	/**
+	 * {@code 1001  收货地址}
+	 */
+	Address_Shipping_Code(1001, "收货地址"),
+	/**
+	 * {@code 1002 发货地址}
+	 */
+	Address_Sending_Code(1002, "发货地址"),
+	/**
+	 * {@code 1011  增加}
+	 */
+	Add_Code(1011, "增加"),
+	/**
+	 * {@code 1012 扣除}
+	 */
+	Subtract_Code(1012, "扣除"),
+	/**
+	 * {@code 1021  退货}
+	 */
+	Return_Goods_Code(1021, "退货"),
+	/**
+	 * {@code 1022 换货}
+	 */
+	Exchange_Goods_Code(1022, "换货"),
+	/**
+	 * {@code 1030 平台销售换货单}
+	 */
+	Purc_B2c_Change_Code(1030, "平台销售换货单"),
+	/**
+	 * {@code 1031供应商销售换货单}
+	 */
+	Purc_Vender_Change_Code(1031, "供应商销售换货单"),
+	/**
+	 * {@code 1032平台销售退货单}
+	 */
+	Purc_B2c_Return_Code(1032, "平台销售退货单"),
+	/**
+	 * {@code 1033供应商销售退货单}
+	 */
+	Purc_Vender_Return_Code(1033, "供应商销售退货单"),
+	/**
+	 * {@code 1034平台销售验收单}
+	 */
+	Purc_B2c_Accept_Code(1034, "平台销售验收单"),
+	/**
+	 * {@code 1035供应商出货单}
+	 */
+	Invoice_Vender_code(1035, "供应商出货单"),
+	/**
+	 * {@code 1036平台出货单}
+	 */
+	Invoice_B2c_code(1036, "平台出货单"),
+	/**
+	 * {@code 1037供应商换货出货单}
+	 */
+	Invoice_Vender_Change_code(1037, "供应商换货出货单"),
+	/**
+	 * {@code 1038平台换货出货单}
+	 */
+	Invoice_B2c_Change_code(1038, "平台换货出货单"),
+	/**
+	 * {@code 1039订单}
+	 */
+	Order_code(1039, "订单"),
+	/**
+	 * {@code 1040采购订单}
+	 */
+	Purchase_code(1040, "采购单"),
+	/**
+	 * {@code 1041客户退货单}
+	 */
+	Return_Cust_code(1041, "客户退货单"),
+	/**
+	 * {@code 1042平台退货单}
+	 */
+	Return_B2c_code(1042, "平台退货单"),
+	/**
+	 * {@code 1043客户换货单}
+	 */
+	Change_Cust_code(1043, "客户换货单"),
+	/**
+	 * {@code 1044平台换货单}
+	 */
+	Change_B2c_code(1044, "平台换货单"),
+	/**
+	 * {@code 1051  现货}
+	 */
+	Spot_Code(1051, "现货"),
+	/**
+	 * {@code 1052 期货}
+	 */
+	Futures_Code(1052, "期货"),
+	/**
+	 * {@code 1053  进口额外支付费率}
+	 */
+	EXTRA_CHARGE_RATE_IN_IMPORT(1053, "进口额外支付费率"),
+
+	/**
+	 * {@code 1054 提醒卖家发货的类型}
+	 */
+	NOTIFY_SELLER_SHIP(1054, "提醒卖家发货的类型"),
+	/**
+	 * {@code 1061  买家}
+     */
+	BUYER(1061, "买家"),
+	/**
+	 * {@code 1062  商城}
+	 */
+	MALL(1062, "商城"),
+	/**
+	 * {@code 1063  卖家}
+	 */
+	SUP(1063, "卖家"),
+	/**
+	 * {@code 1101 货到付款}
+	 */
+	Payment_CashOnDelivery_Code(1101, "货到付款"),
+	/**
+	 * {@code 1102 在线支付}
+	 */
+	Payment_Online_Code(1102, "在线支付"),
+	/**
+	 * {@code 1103 公司转账}
+	 */
+	Payment_CompanyTransfer_Code(1103, "公司转账"),
+	/**
+	 * {@code 1104 邮局汇款}
+	 */
+	Payment_Remittance_Code(1104, "邮局汇款"),
+	/**
+	 * {@code 120117%增值税可抵扣,累计开票,8%税点}
+	 */
+	Bill_DeductibleCumulative_Code(1201, "17%增值税可抵扣,累计开票,8%税点"),
+	/**
+	 * {@code 1202 17%增值税不可抵扣,累计开票,8%税点}
+	 */
+	Bill_NoDeductibleCumulative_Code(1202, "17%增值税不可抵扣,累计开票,8%税点"),
+	/**
+	 * {@code 1203 17%增值税可抵扣,随元器件一起发货,10%税点}
+	 */
+	Bill_DeductibleNoCumulative_Code(1203, "17%增值税可抵扣,随元器件一起发货,10%税点"),
+	/**
+	 * {@code 1204 17%增值税不可抵扣,,随元器件一起发货,10%税点}
+	 */
+	Bill_NoDeductibleNoCumulative_Code(1204, "17%增值税不可抵扣,,随元器件一起发货,10%税点"),
+	/**
+	 * {@code 1205 增值税专用发票}
+	 */
+	Bill_Deduct(1205, "增值税专用发票"),
+
+	/**
+	 * {@code 1205 增值税普通发票}
+	 */
+	Bill_NoDeduct(1206, "增值税普通发票"),
+
+	/**
+	 * {@code 1207 不需要开票}
+	 */
+	Bill_No(1207, "不需要开票"),
+	/**
+	 * {@code 1301 UU配送}
+	 */
+	Delivery_ByUU_Code(1301, "UU配送"),
+	/**
+	 * {@code 1302 上门自取}
+	 */
+	Delivery_BySelf_Code(1302, "上门自取"),
+
+	/**
+	 * {@code 1311 现货 <b>上架商品类型</b>}
+	 */
+	Goods_Original_Code(1311, "现货"),
+
+	/**
+	 * {@code 1312 呆滞库存 <b>上架商品类型</b>}
+	 */
+	Goods_Inaction_Stock(1312, "呆滞库存"),
+
+	/**
+	 * {@code 1313 废料 <b>上架商品类型</b>}
+	 */
+	// Goods_Wastage_Code(1313, "废料"),
+
+	/**
+	 * {@code 1401 订单发票}
+	 */
+	ORDER_BILL(1401, "订单发票"),
+	
+	/**
+	 * {@code 1402 采购单发票}
+	 */
+	PURCHASE_BILL(1402, "采购单发票"),
+	
+	/**
+	 * {@code 1500  买家待支付时间}
+	 */
+	
+	B2C_PROPERTY_PAYTIEM(1500, "买家付款有效期"),
+
+	/**
+	 * {@code 1501 买家收货后转变成已完成状态的时间}
+	 */
+	B2C_PROPERTY_COMPLETETIME(1501, "买家收货后转变为已完成时间"),
+
+	/**
+	 * {@code 1502  买家自动收货的时间}
+	 */
+	B2C_AUTO_RECEVIED_TIME(1502, "买家自动收货的时间"),
+
+	/**
+	 * 站内信接受角色(卖家)
+	 */
+	SELLER(1507, "SELLER"),
+
+	/**
+	 * 站内信类型(公告)
+	 */
+	PUBLIC(1505, "PUBLIC"),
+
+	/**
+	 * 站内信类型(私信)
+	 */
+	PRIVATE(1506, "PRIVATE"),
+
+	/**
+	 * {@code 1401 订单发票}
+	 */
+	EXCHANGERATE_USD(1600, "USD"),
+
+	/**
+	 * 个人行为
+	 */
+	PERSONAL(1601, "PERSONAL"),
+
+	/**
+	 * 企业行为
+	 */
+	ENTERPRISING(1602, "ENTERPRISING"),
+
+	/**
+	 * 付款给平台
+	 */
+	PAIDTOPLATFORM(1603, "PAIDTOPLATFORM"),
+
+	/**
+	 * 付款给卖家
+	 */
+	PAIDTOVENDOR(1604, "PAIDTOVENDOR"),
+
+	/**
+	 * {@code 1666 企业入库 <b>企业入库</b>}
+	 */
+	STOCK_IN(1666, "入库动作"),
+
+	/**
+	 * {@code 1667 企业出库 <b>企业出库</b>}
+	 */
+	STOCK_OUT(1667, "出库动作"),
+
+	/**
+	 * {@code 1668 企业销售出库 <b>企业销售出库</b>}
+	 */
+	STOCK_SELLER(1668, "销售出库");
+
+	/**
+	 * @param value
+	 *            状态编号
+	 *            <p>
+	 *            1000~1099 <i>交易相关</i>
+	 *            </p>
+	 *            <p>
+	 *            1100~1199 <i>支付方式</i>
+	 *            </p>
+	 *            <p>
+	 *            1200~1299 <i>票据类型</i>
+	 *            </p>
+	 *            <p>
+	 *            1300~1399 <i>配送类型</i>
+	 *            </p>
+	 * @param phrase
+	 *            描述
+	 */
+	private Type(int value, String phrase) {
+		this.value = value;
+		this.phrase = phrase;
+	}
+
+	private final int value;
+
+	private final String phrase;
+
+	/**
+	 * @return 状态的整型编码
+	 */
+	public int value() {
+		return this.value;
+	}
+
+	/**
+	 * @return 状态的描述
+	 */
+	public String getPhrase() {
+		return this.phrase;
+	}
+
+	/**
+	 * @param statusCode
+	 *            状态的编码
+	 * @return 状态
+	 * @throws IllegalArgumentException
+	 *             如果statusCode不存在的话
+	 */
+	public static Type valueOf(int statusCode) {
+		for (Type status : values()) {
+			if (status.value == statusCode) {
+				return status;
+			}
+		}
+		throw new IllegalArgumentException("没有与编号 [" + statusCode + "]匹配的状态");
+	}
+
+	/**
+	 * 返回状态的编号
+	 */
+	@Override
+	public String toString() {
+		return Integer.toString(value);
+	}
+}

+ 23 - 6
src/main/java/com/uas/platform/b2c/fa/payment/controller/InstallmentController.java

@@ -1,7 +1,11 @@
 package com.uas.platform.b2c.fa.payment.controller;
 
+import com.alibaba.fastjson.JSONObject;
+import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.fa.payment.model.Installment;
 import com.uas.platform.b2c.fa.payment.model.InstallmentDetail;
+import com.uas.platform.b2c.fa.payment.service.InstallmentService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 /**
@@ -14,24 +18,37 @@ import org.springframework.web.bind.annotation.*;
 @RequestMapping(value = "/trade/installments")
 public class InstallmentController {
 
+    private final InstallmentService installmentService;
+
+    @Autowired
+    public InstallmentController(InstallmentService installmentService) {
+        this.installmentService = installmentService;
+    }
+
     /**
      * 新增分期信息
-     * @param installment 分期信息
+     * @param json 分期信息及采购单号
      * @return
      */
     @RequestMapping(method = RequestMethod.POST)
-    public Installment createInstallment(@RequestBody  Installment installment) {
-        return null;
+    public Installment createInstallment(@RequestBody String json) {
+        JSONObject jsonObject = FastjsonUtils.fromJson(json, JSONObject.class);
+        Installment installment = (Installment) jsonObject.get("installment");
+        Long purchaseId = jsonObject.getLong("purchaseId");
+        return installmentService.createInstallment(installment, purchaseId);
     }
 
     /**
      * 更新分期信息
-     * @param installment
+     * @param json 分期信息及采购单号
      * @return
      */
     @RequestMapping(method = RequestMethod.PUT)
-    public Installment updateInstallment(@RequestBody Installment installment) {
-        return null;
+    public Installment updateInstallment(@RequestBody String json) {
+        JSONObject jsonObject = FastjsonUtils.fromJson(json, JSONObject.class);
+        Installment installment = (Installment) jsonObject.get("installment");
+        Long purchaseId = jsonObject.getLong("purchaseId");
+        return installmentService.updateInstallment(installment, purchaseId);
     }
 
     /**

+ 15 - 0
src/main/java/com/uas/platform/b2c/fa/payment/controller/InstallmentStoreController.java

@@ -0,0 +1,15 @@
+package com.uas.platform.b2c.fa.payment.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 分期权限店铺controller
+ * @author wangyc
+ *
+ * @version 2017/9/7 11:21 wangyc
+ */
+@RestController
+@RequestMapping("trade/installment-stores")
+public class InstallmentStoreController {
+}

+ 13 - 0
src/main/java/com/uas/platform/b2c/fa/payment/dao/InstallmentDao.java

@@ -13,4 +13,17 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface InstallmentDao extends JpaSpecificationExecutor<Installment>, JpaRepository<Installment, Long>{
+
+    /**
+     * 通过采购单id获取分期信息
+     * @param purchaseId
+     * @return
+     */
+    Installment findByPurchaseId(Long purchaseId);
+
+    /**
+     * 通过采购单id删除分期信息
+     * @param purchaseId
+     */
+    void deleteByPurchaseId(Long purchaseId);
 }

+ 24 - 0
src/main/java/com/uas/platform/b2c/fa/payment/dao/InstallmentStoreDao.java

@@ -0,0 +1,24 @@
+package com.uas.platform.b2c.fa.payment.dao;
+
+import com.uas.platform.b2c.fa.payment.model.InstallmentStore;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 分期店铺权限dao
+ * @author wangyc
+ *
+ * @version 2017/9/7 11:24 wangyc
+ */
+@Repository
+public interface InstallmentStoreDao extends JpaSpecificationExecutor<InstallmentStore>, JpaRepository<InstallmentStore, Long> {
+
+    /**
+     * 通过企业uu获取拥有分期权限店铺
+     * @param enuu 企业uu
+     * @param enable 是否启用
+     * @return
+     */
+    public InstallmentStore findByEnuuAndEnable(Long enuu, Short enable);
+}

+ 14 - 0
src/main/java/com/uas/platform/b2c/fa/payment/model/BankTransfer.java

@@ -31,6 +31,12 @@ public class BankTransfer {
 	@Column(name = "banktf_sn", unique = true)
 	private String banktranssn;
 
+	/**
+	 * 转账类型(转账给卖家,转账给平台)
+	 */
+	@Column(name = "banktf_type")
+	private String type;
+
 	/**
 	 * 状态 TOBEMADEOUTANINVOICE(512, "待开发票"), MADEOUTANINVOICE(513, "已开发票"),
 	 */
@@ -152,6 +158,14 @@ public class BankTransfer {
 		this.banktranssn = banktranssn;
 	}
 
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
 	public Long getCollectenuu() {
 		return collectenuu;
 	}

+ 18 - 3
src/main/java/com/uas/platform/b2c/fa/payment/model/Installment.java

@@ -31,6 +31,12 @@ public class Installment {
     @Column(name = "ins_orderid")
     private Long orderId;
 
+    /**
+     * 采购单id
+     */
+    @Column(name = "insss_purchaseid")
+    private Long purchaseId;
+
     /**
      * 卖家企业uu
      */
@@ -45,6 +51,7 @@ public class Installment {
 
     /**
      * 状态
+     * TOBEPAID(503, "待付款"),PAIDING(523, "付款中"),PAID(504, "已付款")
      */
     @Column(name = "ins_status")
     private Integer status;
@@ -59,7 +66,7 @@ public class Installment {
      * 总期数
      */
     @Column(name = "ins_count")
-    private Short count;
+    private Integer count;
 
     /**
      * 分期明细
@@ -92,6 +99,14 @@ public class Installment {
         this.orderId = orderId;
     }
 
+    public Long getPurchaseId() {
+        return purchaseId;
+    }
+
+    public void setPurchaseId(Long purchaseId) {
+        this.purchaseId = purchaseId;
+    }
+
     public Long getSellerenuu() {
         return sellerenuu;
     }
@@ -124,11 +139,11 @@ public class Installment {
         this.currentNo = currentNo;
     }
 
-    public Short getCount() {
+    public Integer getCount() {
         return count;
     }
 
-    public void setCount(Short count) {
+    public void setCount(Integer count) {
         this.count = count;
     }
 

+ 7 - 6
src/main/java/com/uas/platform/b2c/fa/payment/model/InstallmentDetail.java

@@ -25,14 +25,14 @@ public class InstallmentDetail {
     /**
      * 分期信息id
      */
-    @Column(name = "insd_id")
+    @Column(name = "insd_installmentid")
     private Long installmentId;
 
     /**
      * 分期信息
      */
-    @ManyToOne(cascade = { CascadeType.ALL }, optional = true)
-    @JoinColumn(name = "insd_id", nullable = false)
+    @ManyToOne(cascade = CascadeType.REFRESH)
+    @JoinColumn(name = "insd_installmentid", insertable = false, updatable = false)
     private Installment installment;
 
     /**
@@ -49,9 +49,10 @@ public class InstallmentDetail {
 
     /**
      * 本期状态
+     * TOBEPAID(503, "待付款"),PAID(504, "已付款")
      */
     @Column(name = "insd_status")
-    private Short status;
+    private Integer status;
 
     /**
      * 本期截止日期
@@ -119,11 +120,11 @@ public class InstallmentDetail {
         this.detno = detno;
     }
 
-    public Short getStatus() {
+    public Integer getStatus() {
         return status;
     }
 
-    public void setStatus(Short status) {
+    public void setStatus(Integer status) {
         this.status = status;
     }
 

+ 117 - 0
src/main/java/com/uas/platform/b2c/fa/payment/model/InstallmentStore.java

@@ -0,0 +1,117 @@
+package com.uas.platform.b2c.fa.payment.model;
+
+import com.uas.platform.b2c.common.account.model.Enterprise;
+import com.uas.platform.b2c.prod.store.model.StoreIn;
+
+import javax.persistence.*;
+
+/**
+ * 分期权限店铺
+ * @author wangyc
+ *
+ * @version 2017/9/7 11:12 wangyc
+ */
+@Entity
+@Table(name = "trade$installment_store")
+public class InstallmentStore {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$installment_store_gen")
+    @SequenceGenerator(name = "trade$installment_store_gen", sequenceName = "trade$installment_store_seq", allocationSize = 1)
+    @Column(name = "inss_id")
+    private Long id;
+
+    /**
+     * 店铺uuid
+     */
+    @Column(name = "inss_storeuuid")
+    private String storeUuid;
+
+    /**
+     * 店铺id
+     */
+    @Column(name = "inss_storeid")
+    private Long storeId;
+
+    /**
+     * 店铺信息
+     */
+    @OneToOne(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
+    @JoinColumn(name = "inss_store", insertable = false, updatable = false)
+    private StoreIn store;
+
+    /**
+     * 企业uu
+     */
+    @Column(name = "inss_enuu")
+    private Long enuu;
+
+    /**
+     * 企业信息
+     */
+    @OneToOne(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
+    @JoinColumn(name = "inss_enuu", insertable = false, updatable = false)
+    private Enterprise enterprise;
+
+    /**
+     * 是否启用 启用:1,禁用:0
+     */
+    @Column(name = "inss_enable")
+    private Short enable;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getStoreUuid() {
+        return storeUuid;
+    }
+
+    public void setStoreUuid(String storeUuid) {
+        this.storeUuid = storeUuid;
+    }
+
+    public Long getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Long storeId) {
+        this.storeId = storeId;
+    }
+
+    public StoreIn getStore() {
+        return store;
+    }
+
+    public void setStore(StoreIn store) {
+        this.store = store;
+    }
+
+    public Long getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
+    }
+
+    public Enterprise getEnterprise() {
+        return enterprise;
+    }
+
+    public void setEnterprise(Enterprise enterprise) {
+        this.enterprise = enterprise;
+    }
+
+    public Short getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Short enable) {
+        this.enable = enable;
+    }
+}

+ 25 - 0
src/main/java/com/uas/platform/b2c/fa/payment/service/InstallmentService.java

@@ -1,5 +1,7 @@
 package com.uas.platform.b2c.fa.payment.service;
 
+import com.uas.platform.b2c.fa.payment.model.Installment;
+
 /**
  * 分期支付service
  * @author wangyc
@@ -7,4 +9,27 @@ package com.uas.platform.b2c.fa.payment.service;
  * @version 2017/9/7 9:07 wangyc
  */
 public interface InstallmentService {
+
+    /**
+     * 新增分期信息
+     * @param installment 分期信息
+     * @param purchaseId 采购单id
+     * @return
+     */
+    Installment createInstallment(Installment installment, Long purchaseId);
+
+    /**
+     * 更新分期信息
+     * @param installment 分期信息
+     * @param purchaseId 采购单id
+     * @return
+     */
+    Installment updateInstallment(Installment installment, Long purchaseId);
+
+    /**
+     *
+     * @param installmentDetail
+     * @return
+     */
+//    Installment paidInstallment(InstallmentDetail installmentDetail);
 }

+ 10 - 0
src/main/java/com/uas/platform/b2c/fa/payment/service/InstallmentStoreService.java

@@ -0,0 +1,10 @@
+package com.uas.platform.b2c.fa.payment.service;
+
+/**
+ * 分期权限店铺service
+ * @author wangyc
+ *
+ * @version 2017/9/7 11:22 wangyc
+ */
+public interface InstallmentStoreService {
+}

+ 149 - 0
src/main/java/com/uas/platform/b2c/fa/payment/service/impl/InstallmentServiceImpl.java

@@ -1,8 +1,27 @@
 package com.uas.platform.b2c.fa.payment.service.impl;
 
+import com.uas.platform.b2c.core.constant.Status;
+import com.uas.platform.b2c.core.constant.Type;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.fa.payment.dao.InstallmentDao;
+import com.uas.platform.b2c.fa.payment.dao.InstallmentStoreDao;
+import com.uas.platform.b2c.fa.payment.model.BankInfo;
+import com.uas.platform.b2c.fa.payment.model.Installment;
+import com.uas.platform.b2c.fa.payment.model.InstallmentDetail;
+import com.uas.platform.b2c.fa.payment.model.InstallmentStore;
+import com.uas.platform.b2c.fa.payment.service.BankInfoService;
 import com.uas.platform.b2c.fa.payment.service.InstallmentService;
+import com.uas.platform.b2c.trade.order.dao.OrderDao;
+import com.uas.platform.b2c.trade.order.dao.PurchaseDao;
+import com.uas.platform.b2c.trade.order.model.Order;
+import com.uas.platform.b2c.trade.order.model.Purchase;
+import com.uas.platform.core.exception.IllegalOperatorException;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 分期支付service实现类
  * @author wangyc
@@ -11,4 +30,134 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class InstallmentServiceImpl implements InstallmentService{
+
+    private final InstallmentStoreDao installmentStoreDao;
+
+    private final PurchaseDao purchaseDao;
+
+    private final OrderDao orderDao;
+
+    private final InstallmentDao installmentDao;
+
+    private final BankInfoService bankInfoService;
+
+    @Autowired
+    public InstallmentServiceImpl(InstallmentStoreDao installmentStoreDao, PurchaseDao purchaseDao, OrderDao orderDao, InstallmentDao installmentDao, BankInfoService bankInfoService) {
+        this.installmentStoreDao = installmentStoreDao;
+        this.purchaseDao = purchaseDao;
+        this.orderDao = orderDao;
+        this.installmentDao = installmentDao;
+        this.bankInfoService = bankInfoService;
+    }
+
+    @Override
+    public Installment createInstallment(Installment installment, Long purchaseId) {
+        Purchase purchase = purchaseDao.findOne(purchaseId);
+        // 基础验证
+        if (purchase == null)
+            throw new IllegalOperatorException("此订单不存在,请重新确认信息");
+        if (!SystemSession.getUser().getEnterprise().getUu().equals(purchase.getSellerenuu()))
+            throw new IllegalOperatorException("此订单不属于当前企业,请重新确认信息");
+        if (Status.TOBECONFIRMED.value() != purchase.getStatus().intValue())
+            throw new IllegalOperatorException("此订单状态不为待付款,不可设置分期");
+
+        InstallmentStore installmentStore = installmentStoreDao.findByEnuuAndEnable(SystemSession.getUser().getEnterprise().getUu(), (short) 1);
+        if (installmentStore == null)
+            throw new IllegalOperatorException("当前企业没有设置分期功能权限,如有需要请联系客服");
+
+        List<BankInfo> bankInfos = bankInfoService.getEnterpriseBankInfoContainsStatus(Type.SUP.value(), Status.ALLOW.value());
+        if (CollectionUtils.isEmpty(bankInfos))
+            throw new IllegalOperatorException("当前企业没有设置收款账户,请在 结算中心--收款账户信息 管理您的收款账户信息");
+
+        List<InstallmentDetail> installmentDetails = installment.getInstallmentDetails();
+        if (CollectionUtils.isEmpty(installmentDetails))
+            throw new IllegalOperatorException("分期详情为空,请您设置分期详情");
+
+        for(InstallmentDetail installmentDetail : installmentDetails) {
+            installmentDetail.setStatus(Status.TOBEPAID.value());
+        }
+
+        // 设置分期基本信息
+        installment.setSellerenuu(SystemSession.getUser().getEnterprise().getUu());
+        installment.setStatus(Status.TOBEPAID.value());
+        installment.setCount(installmentDetails.size());
+        installment.setCurrentNo((short) 1);
+        installment.setOrderNum(purchase.getOrderid());
+        installment.setPurchaseId(purchaseId);
+
+        Order order = orderDao.findOrderByOrderid(purchase.getOrderid());
+        if (order == null)
+            throw new IllegalOperatorException("此订单不存在,请重新确认信息");
+
+        installment.setOrderId(order.getId());
+        installment.setPrice(purchase.getPrice());
+        installment.setInstallmentDetails(installmentDetails);
+
+        // 保存分期信息
+        installment = installmentDao.save(installment);
+
+        // 订单、采购单保存分期id
+        purchase.setInstallmentId(installment.getId());
+        order.setInstallmentId(installment.getId());
+
+        return installment;
+    }
+
+    @Override
+    public Installment updateInstallment(Installment installment, Long purchaseId) {
+        Purchase purchase = purchaseDao.findOne(purchaseId);
+        // 基础验证
+        if (purchase == null)
+            throw new IllegalOperatorException("此订单不存在,请重新确认信息");
+        if (!SystemSession.getUser().getEnterprise().getUu().equals(purchase.getSellerenuu()))
+            throw new IllegalOperatorException("此订单不属于当前企业,请重新确认信息");
+        if (Status.TOBECONFIRMED.value() != purchase.getStatus().intValue())
+            throw new IllegalOperatorException("此订单状态不为待付款,不可修改分期信息");
+
+        InstallmentStore installmentStore = installmentStoreDao.findByEnuuAndEnable(SystemSession.getUser().getEnterprise().getUu(), (short) 1);
+        if (installmentStore == null)
+            throw new IllegalOperatorException("当前企业没有设置分期功能权限,如有需要请联系客服");
+
+        List<BankInfo> bankInfos = bankInfoService.getEnterpriseBankInfoContainsStatus(Type.SUP.value(), Status.ALLOW.value());
+        if (CollectionUtils.isEmpty(bankInfos))
+            throw new IllegalOperatorException("当前企业没有设置收款账户,请在 结算中心--收款账户信息 管理您的收款账户信息");
+
+        List<InstallmentDetail> installmentDetails = installment.getInstallmentDetails();
+        if (CollectionUtils.isEmpty(installmentDetails))
+            throw new IllegalOperatorException("分期详情为空,请您设置分期详情");
+
+        Installment oldInstallment = installmentDao.findByPurchaseId(purchaseId);
+        if (oldInstallment == null)
+            throw new IllegalOperatorException("此订单分期信息不存在,请重新确认信息");
+        installmentDao.delete(oldInstallment.getId());
+
+        for(InstallmentDetail installmentDetail : installmentDetails) {
+            installmentDetail.setStatus(Status.TOBEPAID.value());
+        }
+
+        // 设置分期基本信息
+        installment.setSellerenuu(SystemSession.getUser().getEnterprise().getUu());
+        installment.setStatus(Status.TOBEPAID.value());
+        installment.setCount(installmentDetails.size());
+        installment.setCurrentNo((short) 1);
+        installment.setOrderNum(purchase.getOrderid());
+        installment.setPurchaseId(purchaseId);
+
+        Order order = orderDao.findOrderByOrderid(purchase.getOrderid());
+        if (order == null)
+            throw new IllegalOperatorException("此订单不存在,请重新确认信息");
+
+        installment.setOrderId(order.getId());
+        installment.setPrice(purchase.getPrice());
+        installment.setInstallmentDetails(installmentDetails);
+
+        // 保存分期信息
+        installment = installmentDao.save(installment);
+
+        // 订单、采购单保存分期id
+        purchase.setInstallmentId(installment.getId());
+        order.setInstallmentId(installment.getId());
+
+        return installment;
+    }
 }

+ 14 - 0
src/main/java/com/uas/platform/b2c/fa/payment/service/impl/InstallmentStoreServiceImpl.java

@@ -0,0 +1,14 @@
+package com.uas.platform.b2c.fa.payment.service.impl;
+
+import com.uas.platform.b2c.fa.payment.service.InstallmentStoreService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 分期权限店铺service实现类
+ * @author wangyc
+ *
+ * @version 2017/9/7 11:23 wangyc
+ */
+@Service
+public class InstallmentStoreServiceImpl implements InstallmentStoreService {
+}

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsDao.java

@@ -409,7 +409,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param storeUuid 店铺UUID
      * @return the set
      */
-    @Query(value = "select distinct g.kindUuid from Goods g where g.storeid = :storeUuid")
+    @Query(value = "select distinct g.kindUuid from Goods g where g.storeid = :storeUuid and g.status=601")
 	Set<Long> findAllKindsByStoreUuid(@Param("storeUuid") String storeUuid);
 
     /**

+ 30 - 14
src/main/java/com/uas/platform/b2c/trade/order/model/Purchase.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2c.trade.order.model;
 
 import com.uas.platform.b2c.core.utils.DateFormatUtils;
 import com.uas.platform.b2c.core.utils.DoubleArith;
+import com.uas.platform.b2c.fa.payment.model.Installment;
 import com.uas.platform.b2c.trade.aftersale.model.AfterSaleStatus;
 import com.uas.platform.core.exception.IllegalStatusException;
 import com.uas.platform.core.model.Status;
@@ -9,20 +10,7 @@ import com.uas.platform.core.persistence.StatusColumn;
 import org.hibernate.annotations.Cache;
 import org.hibernate.annotations.CacheConcurrencyStrategy;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.OrderBy;
-import javax.persistence.SequenceGenerator;
-import javax.persistence.Table;
-import javax.persistence.Transient;
+import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.HashSet;
@@ -498,6 +486,18 @@ public class Purchase extends Document implements Serializable {
 	@Column(name = "in_sd_addr", length = 2000)
 	private String jsonSdAddress;
 
+	/**
+	 * 分期信息id
+	 */
+	@Column(name = "pu_installmentid")
+	private Long installmentId;
+
+	/**
+	 * 分期信息(不做关联)
+	 */
+	@Transient
+	private Installment installment;
+
     /** 异常相关字段end
      *******************************************************************************/
 
@@ -2104,6 +2104,22 @@ public class Purchase extends Document implements Serializable {
 		return this;
 	}
 
+	public Long getInstallmentId() {
+		return installmentId;
+	}
+
+	public void setInstallmentId(Long installmentId) {
+		this.installmentId = installmentId;
+	}
+
+	public Installment getInstallment() {
+		return installment;
+	}
+
+	public void setInstallment(Installment installment) {
+		this.installment = installment;
+	}
+
 	/**
 	 * 采购单的退货状态
 	 */

+ 15 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java

@@ -20,7 +20,9 @@ import com.uas.platform.b2c.core.utils.DoubleArith;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.fa.payment.dao.BankTransferDao;
+import com.uas.platform.b2c.fa.payment.dao.InstallmentDao;
 import com.uas.platform.b2c.fa.payment.model.BankTransfer;
+import com.uas.platform.b2c.fa.payment.model.Installment;
 import com.uas.platform.b2c.fa.payment.service.BankInfoService;
 import com.uas.platform.b2c.fa.settlement.dao.BillDao;
 import com.uas.platform.b2c.fa.settlement.dao.BillInfoDao;
@@ -186,6 +188,8 @@ public class OrderServiceImpl implements OrderService {
     private StoreInDao storeInDao;
     @Autowired
     private SendMessageService sendMessageService;
+    @Autowired
+    private InstallmentDao installmentDao;
 
     /**
      * 保存订单信息
@@ -2066,6 +2070,17 @@ public class OrderServiceImpl implements OrderService {
         if (!status.contains(order.getStatus())) {
             throw new IllegalOperatorException("此订单已付款,不可取消订单");
         }
+        // 买家取消订单验证
+        if (order.getInstallmentId() != null) {
+            Installment installment = installmentDao.findOne(order.getInstallmentId());
+            if (installment != null) {
+                if (com.uas.platform.b2c.core.constant.Status.TOBEPAID.value() != installment.getStatus()) {
+                    throw new IllegalOperatorException("此订单已付款,不可取消订单");
+                }
+            } else {
+                throw new IllegalOperatorException("此订单分期信息有误,请重新确认订单信息");
+            }
+        }
         Set<String> uuids = new HashSet<>();
         Long uu = SystemSession.getUser().getUserUU();
         order.setStatusUnAvailablePersonal(uu);

+ 24 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseServiceImpl.java

@@ -14,6 +14,8 @@ import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.support.log.TradeBufferedLogger;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.NumberUtil;
+import com.uas.platform.b2c.fa.payment.dao.InstallmentDao;
+import com.uas.platform.b2c.fa.payment.model.Installment;
 import com.uas.platform.b2c.fa.settlement.dao.BillDao;
 import com.uas.platform.b2c.fa.settlement.dao.BillInfoDao;
 import com.uas.platform.b2c.fa.settlement.model.Bill;
@@ -153,6 +155,8 @@ public class PurchaseServiceImpl implements PurchaseService {
     private PurchaseModifyingHistoryDao purchaseModifyingHistoryDao;
 	@Autowired
 	private LogisticsDao logisticsDao;
+	@Autowired
+	private InstallmentDao installmentDao;
 
 	@Override
 	public Purchase save(Purchase purchase) {
@@ -1321,6 +1325,26 @@ public class PurchaseServiceImpl implements PurchaseService {
 
 	@Override
 	public String modifyPurchaseDetailUnitPrice(List<PurchaseModifyingHistory> list){
+		//卖家改价验证
+		if (!CollectionUtils.isEmpty(list)) {
+			PurchaseModifyingHistory purchaseModifyingHistory = list.get(0);
+			PurchaseDetail purchaseDetail = purchaseDetailDao.findByDetailid(purchaseModifyingHistory.getDetailid());
+			Purchase purchase = purchaseDetail.getPurchase();
+			if (purchase != null) {
+				if (purchase.getInstallmentId() != null) {
+					Installment installment = installmentDao.findOne(purchase.getInstallmentId());
+					if (installment != null) {
+						if (com.uas.platform.b2c.core.constant.Status.TOBEPAID.value() != installment.getStatus()) {
+							throw new IllegalOperatorException( "此订单已付款,不可改价" );
+						}
+					} else {
+						throw new IllegalOperatorException( "此订单分期信息有误,请重新确认订单信息" );
+					}
+				}
+			} else {
+				throw new IllegalOperatorException( "此订单不存在,请重新确认订单信息" );
+			}
+		}
 		Iterator<PurchaseModifyingHistory> it = list.iterator();
 		while(it.hasNext()){
 			PurchaseModifyingHistory data = it.next();

+ 1 - 1
src/main/webapp/resources/js/usercenter/app.js

@@ -566,7 +566,7 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 					 size : 'sm',
 					 resolve : {
 						haveAdd : function(){
-							if (data == "success"){
+							if (data.data == "success"){
 								return true;
 							} else{
 								return false;

+ 5 - 0
src/main/webapp/resources/js/usercenter/controllers/ComponentStoreCtrl.js

@@ -18,7 +18,11 @@ define(['app/app'], function(app) {
 			params.page = $scope.pageInfo.page;
 			params.count = $scope.pageInfo.count;
 			collectionService.getStoreByUUAndComponent.call(null, params,function(data) {
+				$scope.isChooseAll = false;
 				$scope.collectInfo = data.content;
+				if ($scope.collectInfo.length==0){
+					$scope.isBatch = false;
+				}
 				$scope.totalElements = data.totalElements;
 				$scope.totalPages = data.totalPages;
 				$scope.number = data.number;
@@ -161,6 +165,7 @@ define(['app/app'], function(app) {
 				}
 				$scope.isBatchDelete = false;
 				$scope.deleteDiv = false;
+				$scope.isChooseAll = false;
 			} else {
 				collectionService.deleteStoreById({id: $scope.deleteID}, null, function(data) {
 					var store = [];

+ 4 - 0
src/main/webapp/resources/js/usercenter/controllers/forstore/browsing_history.js

@@ -12,6 +12,7 @@ define(['app/app'], function(app) {
 
         var loadData = function(){
             GoodsBrowsingHistory.getAllHistoryPage($scope.param, function(data){
+                $scope.isChooseAll = false;
                 $scope.initHistory = data.content;
                 $scope.param.currentPage = data.number;
                 $scope.totalPages = data.totalPages;
@@ -34,6 +35,9 @@ define(['app/app'], function(app) {
                     newhistory.dateList = $scope.midhistory[uniqueArr[i]];
                     $scope.history.push(newhistory);
                 };
+                if ($scope.history.length == 0){
+                    $scope.isBatch = false;
+                }
             },function () {
                 toaster.pop("error", "获取浏览历史记录失败");
             })

+ 4 - 0
src/main/webapp/resources/js/usercenter/controllers/forstore/store_focus_ctrl.js

@@ -16,7 +16,11 @@ define(['app/app'], function(app) {
 		
 		var loadData = function(){
 			StoreFocusService.getStoreFocusPage($scope.param, {}, function(data){
+                $scope.isChooseAll = false;
 				$scope.store = data.content;
+                if ($scope.store.length == 0){
+                    $scope.isBatch = false;
+                }
                 $scope.totalElements = data.totalElements;
                 $scope.param.currentPage = data.number;
                 $scope.totalPages = data.totalPages;

+ 5 - 5
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_delivery_ctrl.js

@@ -425,11 +425,11 @@ define(['app/app'], function(app) {
                     toaster.pop('info', '注意', '物流公司名称为空');
                     return false;
                 }
-                var addrPatt = new RegExp("^[A-Za-z0-9\u4e00-\u9fa5]+$");
-                if (!addrPatt.test($scope.logistics.companyName)){
-                    toaster.pop("error", "注意", '请输入正确的物流公司名称');
-                    return false;
-                }
+                // var addrPatt = new RegExp("^[A-Za-z0-9\u4e00-\u9fa5]+$");
+                // if (!addrPatt.test($scope.logistics.companyName)){
+                //     toaster.pop("error", "注意", '请输入正确的物流公司名称');
+                //     return false;
+                // }
                 var patt = new RegExp("^[A-Za-z0-9]+$");
                 if (!patt.test($scope.logistics.number)){
                     toaster.pop("info", "注意", '请输入正确的物流单号');

+ 1 - 1
src/main/webapp/resources/view/usercenter/componentStore.html

@@ -239,7 +239,7 @@ td {
 <div class="user_right fr">
 	<div class="rt_menu">
 		<span style="color:#5078cb">产品收藏({{totalElements}})</span>
-		<span ng-click="doBatch()" style="margin-left:840px" ng-hide="isBatch"><a>批量操作</a></span>
+		<span ng-click="doBatch()" style="margin-left:840px" ng-hide="isBatch || collectInfo.length == 0 || !collectInfo"><a>批量操作</a></span>
 		<div ng-show="isBatch" class="collect-batch">
 			<span ng-click="cancleBatch()"><a>取消</a></span>
 			<span ng-click="deleteByselected()"><a>移除</a></span>

+ 3 - 3
src/main/webapp/resources/view/usercenter/forstore/browsing_history.html

@@ -389,9 +389,9 @@
             </select>-->
         </div>
         <div class="fr">
-            <span ng-hide="isBatch"ng-click="doBatch()">批量操作</span>
-            <span ng-show="isBatch"ng-click="cancleBatch()">取消</span>
-            <span ng-show="isBatch"ng-click="deleteByIds()">删除</span>
+            <span ng-hide="isBatch || history.length == 0" ng-click="doBatch()">批量操作</span>
+            <span ng-show="isBatch" ng-click="cancleBatch()">取消</span>
+            <span ng-show="isBatch" ng-click="deleteByIds()">删除</span>
             <span ng-show="isBatch">
                 <label class="check-active">
                     <input type="checkbox" id="isChooseAll" ng-checked="isChooseAll" ng-click="chooseAllHistory()">

+ 1 - 1
src/main/webapp/resources/view/usercenter/forstore/store_focus.html

@@ -277,7 +277,7 @@
 	<div class="store-whole">
 		<div class="store-header">
 			<span>全部店铺({{totalElements}})</span>
-			<span style="margin-left:850px;cursor:pointer;" ng-click="doBatch()" ng-hide="isBatch">批量操作</span>
+			<span style="margin-left:850px;cursor:pointer;" ng-click="doBatch()" ng-hide="isBatch || store.length == 0">批量操作</span>
 			<div ng-show="isBatch" class="store-isBatch">
 				<span ng-click="cancelBatch()">取消</span>
 				<span ng-click="deleteByIds()">取消关注</span>

+ 1 - 1
src/main/webapp/resources/view/vendor/forstore/purchase_detail.html

@@ -369,7 +369,7 @@
 					<div ng-class="{'limit-3': !open}">
 						<dd class="oder_l" ng-repeat="detail in purchase.purchaseDetails">
 						<span class="wd02">
-							<a href="store/{{::detail.storeid}}/{{::detail.batchCode}}" target="_blank"><img ng-src="{{detail.img ? detail.img : 'static/img/user/images/pro02.jpg'}}"/></a>
+							<a href="store/{{::detail.storeid}}/{{::detail.batchCode}}" target="_blank"><img ng-src="{{detail.img ? detail.img : 'static/img/store/common/default.png'}}"/></a>
 							<p class="style01" style="margin-top: 10px;">类目:
 								<a ng-bind="detail.kiName" href="product/kind/{{::detail.kindUuid}}" title="{{detail.kiName}}" target="_blank"></a>
 							</p>