浏览代码

增加分佣账户管理

周箭河 6 年之前
父节点
当前提交
eee0ff78f7

+ 13 - 0
src/main/java/com/ym/mec/collectfee/dao/AccountDao.java

@@ -0,0 +1,13 @@
+package com.ym.mec.collectfee.dao;
+
+import com.ym.mec.collectfee.common.dao.BaseDAO;
+import com.ym.mec.collectfee.entity.Account;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Component;
+
+@Component
+public interface AccountDao extends BaseDAO<Integer, Account> {
+
+    Account getAccountByBranchId(@Param("branchId") int branchId);
+	
+}

+ 2 - 0
src/main/java/com/ym/mec/collectfee/dao/OrderDao.java

@@ -16,4 +16,6 @@ public interface OrderDao extends BaseDAO<Integer, Order> {
     int countOrder(@Param("poName") String poName,@Param("voicePort") String voicePort);
 
     Order getOrderByOrderNo(@Param("orderNo") String orderNo);
+
+    int getPayOrderNums();
 }

+ 70 - 0
src/main/java/com/ym/mec/collectfee/entity/Account.java

@@ -0,0 +1,70 @@
+package com.ym.mec.collectfee.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(account):
+ */
+public class Account {
+
+	/** id */
+	private Integer id;
+	
+	/** 分部id 为个人用户 */
+	private Integer branchId;
+	
+	/** 收款账户 */
+	private String sellerNo;
+	
+	/** 最大收款金额 */
+	private java.math.BigDecimal maxRouting;
+	
+	/** 已收金额 */
+	private java.math.BigDecimal hasRouting;
+	
+	public void setId(Integer id){
+		this.id = id;
+	}
+	
+	public Integer getId(){
+		return this.id;
+	}
+			
+	public void setBranchId(Integer branchId){
+		this.branchId = branchId;
+	}
+	
+	public Integer getBranchId(){
+		return this.branchId;
+	}
+			
+	public void setSellerNo(String sellerNo){
+		this.sellerNo = sellerNo;
+	}
+	
+	public String getSellerNo(){
+		return this.sellerNo;
+	}
+			
+	public void setMaxRouting(java.math.BigDecimal maxRouting){
+		this.maxRouting = maxRouting;
+	}
+	
+	public java.math.BigDecimal getMaxRouting(){
+		return this.maxRouting;
+	}
+			
+	public void setHasRouting(java.math.BigDecimal hasRouting){
+		this.hasRouting = hasRouting;
+	}
+	
+	public java.math.BigDecimal getHasRouting(){
+		return this.hasRouting;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 126 - 45
src/main/java/com/ym/mec/collectfee/entity/Order.java

@@ -14,83 +14,125 @@ import java.util.Date;
 public class Order {
 
 	/**  */
-	@ApiModelProperty(hidden = true)
+	@ApiModelProperty(name = "id", value = "主键", hidden = true)
 	private Integer id;
-	
+
 	/** 订单号。订单流水号 */
+	@ApiModelProperty(name = "oid", value = "mec订单号(废弃)", hidden = true)
 	private Integer oid;
 
+	/** 订单号。订单流水号 */
+	@ApiModelProperty(name = "branchId", value = "分部id", hidden = false)
+	private Integer branchId;
+
 	/**自己系统订单号 */
+	@ApiModelProperty(name = "orderNo", value = "系统订单号", hidden = true)
 	private String orderNo;
-	
+
 	/** 学员的用户编号 */
+	@ApiModelProperty(name = "userId", value = "学员编号",required = true)
 	private Integer userId;
-	
+
 	/** 订单总金额(分) */
+	@ApiModelProperty(name = "amount", value = "订单总金额",required = true)
 	private BigDecimal amount;
-	
+
 	/** 支付成功金额(分)。本次在线支付(充值)的金额,该金额通常应该等于订单总金额;如果该金额少于订单总金额,则自动使用学员账户余额补足订单总金额;该金额不能大于订单总金额 */
+	@ApiModelProperty(name = "pay", value = "支付成功金额",hidden = true)
 	private BigDecimal pay;
-	
+
 	/** 在线支付平台 */
+	@ApiModelProperty(name = "bank", value = "支付平台",hidden = true)
 	private String bank;
-	
+
 	/** 公司收款帐号。本次接收学员款项的公司在线支付平台(支付宝、微信等)账户号 */
+	@ApiModelProperty(name = "account", value = "公司收款账号",hidden = true)
 	private String account;
-	
+
 	/** 学员付款帐号。本次在线支付学员使用的支付宝或微信账户号。银行卡支付可为空。 */
+	@ApiModelProperty(name = "uAccount", value = "学院付款账号",hidden = true)
 	private String uAccount;
-	
+
 	/** 支付流水号或代理商订单号。银行/在线支付平台生成的支付流水号或代理商生成的订单号(必须唯一不重复) */
+	@ApiModelProperty(name = "payId", value = "支付平台流水号",hidden = true)
 	private String payId;
-	
+
 	/** 支付到帐时间 */
+	@ApiModelProperty(name = "payTime", value = "支付到账时间",hidden = true)
 	private Date payTime;
-	
+
 	/** 交易订单明细 */
+	@ApiModelProperty(name = "remark", value = "订单明细",hidden = true)
 	private String remark;
-	
+
 	/** 小课编号 */
+	@ApiModelProperty(name = "classId", value = "小课编号")
 	private Integer classId;
-	
+
 	/** 支付状态,0成功,1支付中,2失败 */
+	@ApiModelProperty(name = "status", value = "支付状态",hidden = true)
 	private Integer status;
-	
+
 	/** 创建时间 */
+	@ApiModelProperty(name = "createTime", value = "创建时间",hidden = true)
 	private Date createTime;
-	
+
 	/** 乐团名称 */
+	@ApiModelProperty(name = "poName", value = "乐团名称")
 	private String poName;
-	
+
+	/** 课程组信息 */
+	@ApiModelProperty(name = "courseId", value = "课程组id",required = true)
+	private String courseId;
+
 	/** 声部 */
+	@ApiModelProperty(name = "voicyPart", value = "声部")
 	private String voicyPart;
-	
+
 	/** 账户扣款金额 */
+	@ApiModelProperty(name = "balance", value = "账号扣款金额",hidden = true)
 	private BigDecimal balance;
-	
+
 	/** 批次号 */
+	@ApiModelProperty(name = "batchNum", value = "批次号",hidden = true)
 	private String batchNum;
-	
+
+	/** 课程 */
+	@ApiModelProperty(name = "course", value = "课程内容-价格(以json内容)",required = true)
+	private String course;
+
+	/** 乐器 */
+	@ApiModelProperty(name = "musicalInstruments", value = "乐器-价格(以json内容)")
+	private String musicalInstruments;
+
+	/** 辅件 */
+	@ApiModelProperty(name = "adjunct", value = "辅件-价格json(以json内容)")
+	private String adjunct;
+
+	/** 其他 */
+	@ApiModelProperty(name = "other", value = "其他-价格json(以json内容)")
+	private String other;
+
 	public void setId(Integer id){
 		this.id = id;
 	}
-	
+
 	public Integer getId(){
 		return this.id;
 	}
-			
+
 	public void setOid(Integer oid){
 		this.oid = oid;
 	}
-	
+
 	public Integer getOid(){
 		return this.oid;
 	}
-			
+
 	public void setUserId(Integer userId){
 		this.userId = userId;
 	}
-	
+
 	public Integer getUserId(){
 		return this.userId;
 	}
@@ -130,79 +172,79 @@ public class Order {
 	public void setAccount(String account){
 		this.account = account;
 	}
-	
+
 	public String getAccount(){
 		return this.account;
 	}
-			
+
 	public void setUAccount(String uAccount){
 		this.uAccount = uAccount;
 	}
-	
+
 	public String getUAccount(){
 		return this.uAccount;
 	}
-			
+
 	public void setPayId(String payId){
 		this.payId = payId;
 	}
-	
+
 	public String getPayId(){
 		return this.payId;
 	}
-			
+
 	public void setPayTime(java.util.Date payTime){
 		this.payTime = payTime;
 	}
-	
+
 	public java.util.Date getPayTime(){
 		return this.payTime;
 	}
-			
+
 	public void setRemark(String remark){
 		this.remark = remark;
 	}
-	
+
 	public String getRemark(){
 		return this.remark;
 	}
-			
+
 	public void setClassId(Integer classId){
 		this.classId = classId;
 	}
-	
+
 	public Integer getClassId(){
 		return this.classId;
 	}
-			
+
 	public void setStatus(Integer status){
 		this.status = status;
 	}
-	
+
 	public Integer getStatus(){
 		return this.status;
 	}
-			
+
 	public void setCreateTime(java.util.Date createTime){
 		this.createTime = createTime;
 	}
-	
+
 	public java.util.Date getCreateTime(){
 		return this.createTime;
 	}
-			
+
 	public void setPoName(String poName){
 		this.poName = poName;
 	}
-	
+
 	public String getPoName(){
 		return this.poName;
 	}
-			
+
 	public void setVoicyPart(String voicyPart){
 		this.voicyPart = voicyPart;
 	}
-	
+
 	public String getVoicyPart(){
 		return this.voicyPart;
 	}
@@ -218,7 +260,7 @@ public class Order {
 	public void setBatchNum(String batchNum){
 		this.batchNum = batchNum;
 	}
-	
+
 	public String getBatchNum(){
 		return this.batchNum;
 	}
@@ -231,10 +273,49 @@ public class Order {
 	public void setOrderNo(String orderNo) {
 		this.orderNo = orderNo;
 	}
-			
+
+	public String getCourse() {
+		return course;
+	}
+
+	public void setCourse(String course) {
+		this.course = course;
+	}
+
+	public String getMusicalInstruments() {
+		return musicalInstruments;
+	}
+
+	public void setMusicalInstruments(String musicalInstruments) {
+		this.musicalInstruments = musicalInstruments;
+	}
+
+	public String getAdjunct() {
+		return adjunct;
+	}
+
+	public void setAdjunct(String adjunct) {
+		this.adjunct = adjunct;
+	}
+
+	public String getOther() {
+		return other;
+	}
+
+	public void setOther(String other) {
+		this.other = other;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
+	public Integer getBranchId() {
+		return branchId;
+	}
+
+	public void setBranchId(Integer branchId) {
+		this.branchId = branchId;
+	}
 }

+ 15 - 0
src/main/java/com/ym/mec/collectfee/service/AccountService.java

@@ -0,0 +1,15 @@
+package com.ym.mec.collectfee.service;
+
+import com.ym.mec.collectfee.common.service.BaseService;
+import com.ym.mec.collectfee.entity.Account;
+import com.ym.mec.collectfee.entity.Order;
+
+public interface AccountService extends BaseService<Integer, Account> {
+
+    /**
+     * 根据分部id获取收款账户信息
+     * @param branchId 分部id
+     * @return
+     */
+    Account getAccountByBranchId(int branchId);
+}

+ 6 - 0
src/main/java/com/ym/mec/collectfee/service/OrderService.java

@@ -44,4 +44,10 @@ public interface OrderService extends BaseService<Integer, Order> {
      * @return
      */
     Object getSchoolDetail(Integer schoolId,Integer clazzId);
+
+    /**
+     * 获取支付中和成功的订单数
+     * @return
+     */
+    int getPayOrderNums();
 }

+ 26 - 0
src/main/java/com/ym/mec/collectfee/service/impl/AccountServiceImpl.java

@@ -0,0 +1,26 @@
+package com.ym.mec.collectfee.service.impl;
+
+import com.ym.mec.collectfee.common.dao.BaseDAO;
+import com.ym.mec.collectfee.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.ym.mec.collectfee.entity.Account;
+import com.ym.mec.collectfee.service.AccountService;
+import com.ym.mec.collectfee.dao.AccountDao;
+import org.springframework.stereotype.Service;
+
+@Service
+public class AccountServiceImpl extends BaseServiceImpl<Integer, Account> implements AccountService {
+
+	@Autowired
+	AccountDao accountDao;
+
+	@Override
+	public BaseDAO<Integer, Account> getDAO() {
+		return accountDao;
+	}
+
+	public Account getAccountByBranchId(int branchId){
+		return accountDao.getAccountByBranchId(branchId);
+	}
+	
+}

+ 4 - 0
src/main/java/com/ym/mec/collectfee/service/impl/OrderServiceImpl.java

@@ -143,4 +143,8 @@ public class OrderServiceImpl extends BaseServiceImpl<Integer, Order> implements
 		}
 		return sb.toString();
 	}
+
+	public int getPayOrderNums(){
+		return orderDao.getPayOrderNums();
+	}
 }

+ 61 - 0
src/main/resources/config/mybatis/AccountMapper.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.collectfee.dao.AccountDao">
+	
+	<resultMap type="com.ym.mec.collectfee.entity.Account" id="Account">
+		<result column="id" property="id" />
+		<result column="branch_id" property="branchId" />
+		<result column="seller_no" property="sellerNo" />
+		<result column="max_routing" property="maxRouting" />
+		<result column="has_routing" property="hasRouting" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="Account" >
+		SELECT * FROM `account` WHERE id = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="Account">
+		SELECT * FROM `account` ORDER BY id
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.collectfee.entity.Account" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!--
+		<selectKey resultClass="int" keyProperty="id" > 
+		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
+		</selectKey>
+		-->
+		INSERT INTO `account` (id,branch_id,seller_no,max_routing,has_routing) VALUES(#{id},#{branchId},#{sellerNo},#{maxRouting},#{hasRouting})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.collectfee.entity.Account">
+		UPDATE `account` SET has_routing = #{hasRouting},seller_no = #{sellerNo},max_routing = #{maxRouting},branch_id = #{branchId},id = #{id} WHERE id = #{id} 
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM `account` WHERE id = #{id} 
+	</delete>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="Account" parameterType="map">
+		SELECT * FROM `account` ORDER BY id <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM `account`
+	</select>
+
+	<!-- 根据分部id获取分部收款账户 -->
+	<select id="getAccountByBranchId" resultMap="Account" >
+		SELECT * FROM `account` WHERE branch_id = #{branchId} AND `max_routing` > `has_routing` ORDER BY `id` ASC LIMIT 1
+	</select>
+</mapper>

+ 20 - 13
src/main/resources/config/mybatis/OrderMapper.xml

@@ -5,10 +5,11 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.ym.mec.collectfee.dao.OrderDao">
-	
+
 	<resultMap type="com.ym.mec.collectfee.entity.Order" id="Order">
 		<result column="id" property="id" />
 		<result column="oid" property="oid" />
+		<result column="branch_id" property="branchId" />
 		<result column="order_no" property="orderNo" />
 		<result column="user_id" property="userId" />
 		<result column="amount" property="amount" />
@@ -27,42 +28,42 @@
 		<result column="balance" property="balance" />
 		<result column="batch_num" property="batchNum" />
 	</resultMap>
-	
+
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="Order" >
 		SELECT * FROM `order` WHERE id = #{id}
 	</select>
-	
+
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="Order">
 		SELECT * FROM `order` ORDER BY id
 	</select>
-	
+
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.collectfee.entity.Order" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
+		<selectKey resultClass="int" keyProperty="id" >
+		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
 		</selectKey>
 		-->
-		INSERT INTO `order` (id,oid,order_no,user_id,amount,pay,bank,account,u_account,pay_id,pay_time,remark,class_id,status,create_time,po_name,voicy_part,balance,batch_num) VALUES(#{id},#{oid},#{orderNo},#{userId},#{amount},#{pay},#{bank},#{account},#{uAccount},#{payId},#{payTime},#{remark},#{classId},#{status},#{createTime},#{poName},#{voicyPart},#{balance},#{batchNum})
+		INSERT INTO `order` (id,oid,order_no,branch_id,user_id,amount,pay,bank,account,u_account,pay_id,pay_time,remark,class_id,status,create_time,po_name,voicy_part,balance,batch_num) VALUES(#{id},#{oid},#{branchId},#{orderNo},#{userId},#{amount},#{pay},#{bank},#{account},#{uAccount},#{payId},#{payTime},#{remark},#{classId},#{status},#{createTime},#{poName},#{voicyPart},#{balance},#{batchNum})
 	</insert>
-	
+
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.collectfee.entity.Order">
 		UPDATE `order` SET amount = #{amount},create_time = #{createTime},class_id = #{classId},pay = #{pay},u_account = #{uAccount},remark = #{remark},oid = #{oid},batch_num = #{batchNum},pay_time = #{payTime},bank = #{bank},balance = #{balance},user_id = #{userId},voicy_part = #{voicyPart},po_name = #{poName},id = #{id},pay_id = #{payId},account = #{account},status = #{status} WHERE id = #{id}
 	</update>
-	
+
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
 		DELETE FROM `order` WHERE id = #{id}
 	</delete>
-	
+
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="Order" parameterType="map">
 		SELECT * FROM `order` ORDER BY id <include refid="global.limit"/>
 	</select>
-	
+
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM `order`
@@ -76,10 +77,16 @@
 		SELECT * FROM `order` WHERE batch_num = #{batchNum}
 	</select>
 	<select id="countOrder" resultType="java.lang.Integer">
-		SELECT COUNT(DISTINCT user_id) num FROM `order` WHERE po_name = #{poName} AND voicy_part = #{voicePort} AND status != 2
+		SELECT COUNT(DISTINCT user_id) num FROM `order` WHERE po_name = #{poName} AND voicy_part = #{voicePort} AND status >= 1
 	</select>
 
+	<!-- 根据系统订单号获取订单-->
 	<select id="getOrderByOrderNo" resultMap="Order">
-		SELECT * FROM `order` WHERE order_no = #{orderNo} AND status = 1
+		SELECT * FROM `order` WHERE order_no = #{orderNo}
+	</select>
+
+	<!-- 获取支付中和成功的订单数-->
+	<select id="getPayOrderNums" resultType="java.lang.Integer">
+		SELECT COUNT(*) FROM `order` WHERE status >= 1
 	</select>
 </mapper>

+ 24 - 0
src/main/resources/templates/reg/order.ftl

@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="zh_cn">
+<head>
+    <meta charset="UTF-8">
+    <title>register</title>
+</head>
+<body>
+<form action="https://qyfapi.95epay.com/api/api/hPay/toPayHtml" method="POST" id="sent_register">
+    <p>First merNo: <input type="text" name="merNo" value="${info.merNo}"/></p>
+    <p>Last version: <input type="text" name="version" value="${info.version}"/></p>
+    <p>Last notifyUrl: <input type="text" name="notifyUrl" value="${info.notifyUrl}"/></p>
+    <p>Last timestamp: <input type="text" name="timestamp" value="${info.timestamp}"/></p>
+    <p>Last apiContent: <input type="text" name="apiContent" value='${info.apiContent}'/></p>
+    <p>Last signType: <input type="text" name="signType" value="${info.signType}"/></p>
+    <p>Last sign: <input type="text" name="sign" value="${info.sign}"/></p>
+    <input type="submit">
+</form>
+</body>
+<script type="text/javascript">
+    window.onload = function () {
+        document.getElementById("sent_register").submit()
+    }
+</script>
+</html>