Просмотр исходного кода

Merge branch 'master' of http://git.dayaedu.com/yonge/collect_fee

zouxuan 5 лет назад
Родитель
Сommit
e64276cbfc

+ 184 - 17
src/main/java/com/ym/mec/collectfee/controller/YqPayController.java

@@ -3,10 +3,7 @@ package com.ym.mec.collectfee.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.collectfee.common.web.BaseController;
-import com.ym.mec.collectfee.entity.Account;
-import com.ym.mec.collectfee.entity.CourseGroupInfo;
-import com.ym.mec.collectfee.entity.Instrument;
-import com.ym.mec.collectfee.entity.Order;
+import com.ym.mec.collectfee.entity.*;
 import com.ym.mec.collectfee.service.*;
 import com.ym.mec.collectfee.utils.GenerateNum;
 import com.ym.mec.collectfee.utils.yqpay.*;
@@ -27,6 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
 import java.io.InputStreamReader;
+import java.io.SyncFailedException;
 import java.math.BigDecimal;
 import java.util.*;
 
@@ -51,7 +49,7 @@ public class YqPayController extends BaseController {
 
 
     /**
-     * 统一下单
+     * 统一下单(乐团缴费)
      *
      * @return String
      * @throws Exception
@@ -59,22 +57,65 @@ public class YqPayController extends BaseController {
     @ApiOperation(value = "提交支付", notes = "易乾支付统一下单")
     @PostMapping("/toPay")
     @Transactional
-    public Map toPay(@ModelAttribute @Validated Order order) throws Exception {
+    public Object toPay(@ModelAttribute @Validated Order order) throws Exception {
+        BigDecimal amount = new BigDecimal("0");
+        //1、判断已报名人数
+        CourseGroupInfo courseGroupInfo = CourseGroupInfoService.get(order.getCourseId());
+        if (courseGroupInfo.getRegNum() >= courseGroupInfo.getPlanNum()) {
+            return failed("乐团人数暂时已满,请稍后再试");
+        }
 
-        //2、判断已报名人数
-        CourseGroupInfo courseGroupInfo = CourseGroupInfoService.get(order.getCourse_id());
+        //课程组价格
+        BigDecimal courseFee = courseGroupInfo.getFeeAmount();
+        amount = amount.add(courseFee);
+
+        ClassPathResource classPathResource = new ClassPathResource("instruments.json");
+
+        BigDecimal instrumentPrice = new BigDecimal("0");//乐器价格
+        String instrumentName = "";//乐器名称
+
+        //获取乐器的价格
+        String instrumentId = order.getInstrument();
+        String jsonString = IOUtils.toString(new InputStreamReader(classPathResource.getInputStream(), "UTF-8"));
+        Instrument instrument = JSONObject.parseObject(jsonString, Instrument.class);
+
+        if (order.getInstrument() != null && !order.getInstrument().isEmpty()) {
+            instrumentPrice = new BigDecimal(instrument.getInstruments().get(instrumentId).get("referencePrice"));
+            instrumentName = (String) instrument.getInstruments().get(instrumentId).get("index") + "-" +
+                    (String) instrument.getInstruments().get(instrumentId).get("name");
+        }
+
+        //2 版本为3.0( 26),不收乐器费用,收押金800放乐器费用
+        if (courseGroupInfo.getFeeType().equals("26")) {
+            instrumentPrice = new BigDecimal("800");
+        }
+        amount = amount.add(instrumentPrice);
+
+        //辅件价格
+        String adjunctIds = order.getAdjunct();
+        BigDecimal adjunctPrice = new BigDecimal("0");//辅件价格
+        String adjunctName = "";//辅件名称
+        if (adjunctIds != null && !adjunctIds.isEmpty()) {
+            String[] adjunctIdArr = adjunctIds.split(",");
+            for (String adjunctId : adjunctIdArr) {
+                adjunctPrice = adjunctPrice.add(new BigDecimal(instrument.getAuxiliaries().get(adjunctId).get("referencePrice")));
+                adjunctName += (String) instrument.getAuxiliaries().get(adjunctId).get("name") + "|";
+            }
+        }
+
+        amount = amount.add(adjunctPrice);
+        order.setAmount(amount);
+        order.setRemark(instrumentName);
+        order.setTuiFee(courseFee);
+        order.setGoodsFee(instrumentPrice);
+        order.setSdName(adjunctName + "教材|琴谱");
+        order.setSdFee(adjunctPrice);
 
-//        ClassPathResource classPathResource = new ClassPathResource("instruments.json");
-//
-//        String str = IOUtils.toString(new InputStreamReader(classPathResource.getInputStream(),"UTF-8"));
-//        Instrument instrument = JSONObject.parseObject(str, Instrument.class);
-//
-//        System.out.println(instrument.getInstruments().get("flute").get("config"));
 
         String notifyUrl = "http://47.99.212.176:9000/yqpay/notify"; //异步通知地址
         String returnUrl = "http://dev.dayaedu.com";//支付后返回页面
         String payUrl = "https://qyfapi.95epay.com/api/api/hPay/toPayHtml";//支付跳转页
-        String payChannels = "{\"fastpayXy\":true,\"weChatPay\":true,\"weChatPayMobile\":false,\"aliPay\":true,\"aliPayMobile\":true,\"balancePay\":false}";//支付方式配置
+        String payChannels = "{\"fastpayXy\":true,\"weChatPay\":true,\"weChatPayMobile\":false,\"aliPay\":true,\"aliPayMobile\":false,\"balancePay\":false}";//支付方式配置
 
         String orderNo = GenerateNum.getInstance().GenerateOrderNo(); //自己系统订单号
         order.setOrderNo(orderNo);
@@ -101,11 +142,12 @@ public class YqPayController extends BaseController {
         List<Map> tempRoutingList = new ArrayList();
         tempRoutingList.add(routingList);
 
+        order.setAccount(routingMerNo);
 
         //1、插入订单
         orderService.insert(order);
         //2、修改已报名人数
-        courseGroupInfo.setRegNum(courseGroupInfo.getRegNum()+1);
+        courseGroupInfo.setRegNum(courseGroupInfo.getRegNum() + 1);
         CourseGroupInfoService.upByIdAndVersion(courseGroupInfo);
         //3、修改分佣账户已收金额
         accountService.upByIdAndVersion(account);
@@ -130,9 +172,134 @@ public class YqPayController extends BaseController {
         resultMap.put("tempRoutingList", JSON.toJSONString(tempRoutingList));//分账设置
         Map rqMap = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
         rqMap.put("host", payUrl);
-        return rqMap;
+
+        return succeed(rqMap);
     }
 
+
+    /**
+     * 续费支付
+     *
+     * @return String
+     * @throws Exception
+     */
+    @ApiOperation(value = "续费支付", notes = "易乾支付统一下单")
+    @PostMapping("/renewalsPay")
+    @Transactional
+//    public Object renewalsPay(@ModelAttribute @Validated Renewals renewals) throws Exception {
+//        BigDecimal amount = new BigDecimal("0");
+//
+//        //课程组价格
+//        BigDecimal courseFee = courseGroupInfo.getFeeAmount();
+//        amount = amount.add(courseFee);
+//
+//        ClassPathResource classPathResource = new ClassPathResource("instruments.json");
+//
+//        BigDecimal instrumentPrice = new BigDecimal("0");//乐器价格
+//        String instrumentName = "";//乐器名称
+//
+//        //获取乐器的价格
+//        String instrumentId = order.getInstrument();
+//        String jsonString = IOUtils.toString(new InputStreamReader(classPathResource.getInputStream(), "UTF-8"));
+//        Instrument instrument = JSONObject.parseObject(jsonString, Instrument.class);
+//
+//        if (order.getInstrument() != null && !order.getInstrument().isEmpty()) {
+//            instrumentPrice = new BigDecimal(instrument.getInstruments().get(instrumentId).get("referencePrice"));
+//            instrumentName = (String) instrument.getInstruments().get(instrumentId).get("index") + "-" +
+//                    (String) instrument.getInstruments().get(instrumentId).get("name");
+//        }
+//
+//        //2 版本为3.0( 26),不收乐器费用,收押金800放乐器费用
+//        if (courseGroupInfo.getFeeType().equals("26")) {
+//            instrumentPrice = new BigDecimal("800");
+//        }
+//        amount = amount.add(instrumentPrice);
+//
+//        //辅件价格
+//        String adjunctIds = order.getAdjunct();
+//        BigDecimal adjunctPrice = new BigDecimal("0");//辅件价格
+//        String adjunctName = "";//辅件名称
+//        if (adjunctIds != null && !adjunctIds.isEmpty()) {
+//            String[] adjunctIdArr = adjunctIds.split(",");
+//            for (String adjunctId : adjunctIdArr) {
+//                adjunctPrice = adjunctPrice.add(new BigDecimal(instrument.getAuxiliaries().get(adjunctId).get("referencePrice")));
+//                adjunctName += (String) instrument.getAuxiliaries().get(adjunctId).get("name") + "|";
+//            }
+//        }
+//
+//        amount = amount.add(adjunctPrice);
+//        order.setAmount(amount);
+//        order.setRemark(instrumentName);
+//        order.setTuiFee(courseFee);
+//        order.setGoodsFee(instrumentPrice);
+//        order.setSdName(adjunctName + "教材|琴谱");
+//        order.setSdFee(adjunctPrice);
+//
+//
+//        String notifyUrl = "http://47.99.212.176:9000/yqpay/notify"; //异步通知地址
+//        String returnUrl = "http://dev.dayaedu.com";//支付后返回页面
+//        String payUrl = "https://qyfapi.95epay.com/api/api/hPay/toPayHtml";//支付跳转页
+//        String payChannels = "{\"fastpayXy\":true,\"weChatPay\":true,\"weChatPayMobile\":false,\"aliPay\":true,\"aliPayMobile\":true,\"balancePay\":false}";//支付方式配置
+//
+//        String orderNo = GenerateNum.getInstance().GenerateOrderNo(); //自己系统订单号
+//        order.setOrderNo(orderNo);
+//        order.setCreateTime(new Date()); //订单提交时间
+//        order.setStatus(1); //订单状态
+//
+//        //获取支付成功跟支付中的订单数
+//        int branchId = order.getBranchId();
+//        int payOrderNums = orderService.getPayOrderNums();
+//        //分佣账户(1、每10笔,前四笔收入私户 2、私户每个商户最多收款400万)
+//        if ((payOrderNums + 1) % 10 <= 4) { //私人账户
+//            branchId = 0;
+//        }
+//
+//        //获取分佣账户
+//        Account account = accountService.getAccountByBranchId(branchId);
+//        String routingMerNo = account.getSellerNo();
+//        BigDecimal HasRouting = account.getHasRouting().add(order.getAmount());
+//        account.setHasRouting(HasRouting);
+//
+//        Map<String, Object> routingList = new LinkedHashMap<String, Object>();
+//        routingList.put("routingMerNo", routingMerNo);//分佣账户
+//        routingList.put("routingFee", order.getAmount()); //分佣金额
+//        List<Map> tempRoutingList = new ArrayList();
+//        tempRoutingList.add(routingList);
+//
+//        order.setAccount(routingMerNo);
+//
+//        //1、插入订单
+//        orderService.insert(order);
+//        //2、修改已报名人数
+//        courseGroupInfo.setRegNum(courseGroupInfo.getRegNum() + 1);
+//        CourseGroupInfoService.upByIdAndVersion(courseGroupInfo);
+//        //3、修改分佣账户已收金额
+//        accountService.upByIdAndVersion(account);
+//
+//
+//        /*订单信息*/
+//        String orderBody = "大雅乐盟培训课程";
+//        /*订单标题*/
+//        String orderSubject = "培训订单";
+//
+//
+//        Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
+//        resultMap.put("sellerNo", "0021677"); //收款商户号
+//        resultMap.put("payChannels", payChannels); //支付方式
+//        resultMap.put("orderBody", orderBody); //订单信息
+//        resultMap.put("payAmount", order.getAmount()); //支付金额
+//        resultMap.put("apiPayType", "1"); //*API支付类型1-即时支付,2-担保支付,3-预授权支付*/
+//        resultMap.put("tradeType", "0"); //*交易类型1—充值,0—收款*
+//        resultMap.put("merMerOrderNo", orderNo); //商户订单号
+//        resultMap.put("orderSubject", orderSubject); //订单标题
+//        resultMap.put("returnUrl", returnUrl); //前台页面地址
+//        resultMap.put("tempRoutingList", JSON.toJSONString(tempRoutingList));//分账设置
+//        Map rqMap = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
+//        rqMap.put("host", payUrl);
+//
+//        return succeed(rqMap);
+//    }
+
     /**
      * 交易查询
      *

+ 12 - 0
src/main/java/com/ym/mec/collectfee/dao/RenewalsDao.java

@@ -0,0 +1,12 @@
+package com.ym.mec.collectfee.dao;
+
+
+import com.ym.mec.collectfee.common.dao.BaseDAO;
+import com.ym.mec.collectfee.entity.Renewals;
+import org.springframework.stereotype.Component;
+
+@Component
+public interface RenewalsDao extends BaseDAO<Integer, Renewals> {
+
+	
+}

+ 17 - 4
src/main/java/com/ym/mec/collectfee/entity/Instrument.java

@@ -1,10 +1,23 @@
 package com.ym.mec.collectfee.entity;
-
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
 
 public class Instrument {
-    private Map<String, Map<String,Map>> instruments;
+    private Map<String, Map<String,String>> instruments;
+    private Map<String, Map<String,String>> auxiliaries;
+
+    public Map<String, Map<String, String>> getInstruments() {
+        return instruments;
+    }
+
+    public void setInstruments(Map<String, Map<String, String>> instruments) {
+        this.instruments = instruments;
+    }
+
+    public Map<String, Map<String, String>> getAuxiliaries() {
+        return auxiliaries;
+    }
 
+    public void setAuxiliaries(Map<String, Map<String, String>> auxiliaries) {
+        this.auxiliaries = auxiliaries;
+    }
 }

+ 9 - 21
src/main/java/com/ym/mec/collectfee/entity/Order.java

@@ -83,7 +83,7 @@ public class Order {
 
 	/** 课程组信息 */
 	@ApiModelProperty(name = "courseId", value = "课程组id",required = true)
-	private String courseId;
+	private Integer courseId;
 
 	/** 声部 */
 	@ApiModelProperty(name = "voicyPart", value = "声部")
@@ -97,10 +97,6 @@ public class Order {
 	@ApiModelProperty(name = "batchNum", value = "批次号",hidden = true)
 	private String batchNum;
 
-	/** 课程 */
-	@ApiModelProperty(name = "course", value = "课程内容-价格(以json内容)",required = true)
-	private String course;
-
 	/** 乐器 */
 	@ApiModelProperty(name = "instrument", value = "乐器")
 	private String instrument;
@@ -113,21 +109,20 @@ public class Order {
 	@ApiModelProperty(name = "other", value = "其他")
 	private String other;
 
-	/** 课程组id */
-	@ApiModelProperty(name = "course_id", value = "课程组id")
-	private Integer course_id;
-
-
 	//学费金额(元)。本次缴纳的学费金额。
+	@ApiModelProperty(name = "tuiFee", value = "学费金额",hidden = true)
 	private BigDecimal tuiFee;
 
 	//乐器费用(元)
+	@ApiModelProperty(name = "goodsFee", value = "乐器费用",hidden = true)
 	private BigDecimal goodsFee;
 
 	//杂费金额(元)
+	@ApiModelProperty(name = "goodsFee", value = "杂费金额",hidden = true)
 	private BigDecimal sdFee;
 
 	//杂费名称,如:乐保、教谱等。
+	@ApiModelProperty(name = "goodsFee", value = "杂费名称",hidden = true)
 	private String sdName;
 
 	public BigDecimal getTuiFee() {
@@ -323,13 +318,6 @@ public class Order {
 		this.orderNo = orderNo;
 	}
 
-	public String getCourse() {
-		return course;
-	}
-
-	public void setCourse(String course) {
-		this.course = course;
-	}
 
 	public String getInstrument() {
 		return instrument;
@@ -368,11 +356,11 @@ public class Order {
 		this.branchId = branchId;
 	}
 
-	public Integer getCourse_id() {
-		return course_id;
+	public Integer getCourseId() {
+		return courseId;
 	}
 
-	public void setCourse_id(Integer course_id) {
-		this.course_id = course_id;
+	public void setCourseId(Integer courseId) {
+		this.courseId = courseId;
 	}
 }

+ 136 - 0
src/main/java/com/ym/mec/collectfee/entity/Renewals.java

@@ -0,0 +1,136 @@
+package com.ym.mec.collectfee.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(renewals):
+ */
+public class Renewals {
+
+	/** id */
+	@ApiModelProperty(name = "id", value = "主键", hidden = true)
+	private Integer id;
+	
+	/** 用户id */
+	@ApiModelProperty(name = "userId", value = "用户id",required = true)
+	private Integer userId;
+	
+	/** 乐团id */
+	@ApiModelProperty(name = "classId", value = "乐团id",required = true)
+	private Integer classId;
+
+	/** 分部id */
+	@ApiModelProperty(name = "branchId", value = "分部id",required = true)
+	private Integer branchId;
+	
+	/** 支付方式 */
+	@ApiModelProperty(name = "way", value = "支付方式",required = true)
+	private Integer way;
+	
+	/** 支付金额 */
+	@ApiModelProperty(name = "pay", value = "支付金额",required = true)
+	private java.math.BigDecimal pay;
+	
+	/** 收费方式 */
+	@ApiModelProperty(name = "changeMode", value = "收费方式",required = true)
+	private Integer changeMode;
+	
+	/** 学费单价 */
+	@ApiModelProperty(name = "price", value = "学费单价",required = true)
+	private java.math.BigDecimal price;
+	
+	/** 购买数量 */
+	@ApiModelProperty(name = "buy", value = "购买数量",required = true)
+	private Integer buy;
+	
+	/** 订单号 */
+	@ApiModelProperty(name = "buy", value = "订单号")
+	private Integer orderId;
+	
+	public void setId(Integer id){
+		this.id = id;
+	}
+	
+	public Integer getId(){
+		return this.id;
+	}
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	public void setClassId(Integer classId){
+		this.classId = classId;
+	}
+	
+	public Integer getClassId(){
+		return this.classId;
+	}
+			
+	public void setWay(Integer way){
+		this.way = way;
+	}
+	
+	public Integer getWay(){
+		return this.way;
+	}
+			
+	public void setPay(java.math.BigDecimal pay){
+		this.pay = pay;
+	}
+	
+	public java.math.BigDecimal getPay(){
+		return this.pay;
+	}
+			
+	public void setChangeMode(Integer changeMode){
+		this.changeMode = changeMode;
+	}
+	
+	public Integer getChangeMode(){
+		return this.changeMode;
+	}
+			
+	public void setPrice(java.math.BigDecimal price){
+		this.price = price;
+	}
+	
+	public java.math.BigDecimal getPrice(){
+		return this.price;
+	}
+			
+	public void setBuy(Integer buy){
+		this.buy = buy;
+	}
+	
+	public Integer getBuy(){
+		return this.buy;
+	}
+			
+	public void setOrderId(Integer orderId){
+		this.orderId = orderId;
+	}
+	
+	public Integer getOrderId(){
+		return this.orderId;
+	}
+
+	public Integer getBranchId() {
+		return branchId;
+	}
+
+	public void setBranchId(Integer branchId) {
+		this.branchId = branchId;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 10 - 0
src/main/java/com/ym/mec/collectfee/service/RenewalsService.java

@@ -0,0 +1,10 @@
+package com.ym.mec.collectfee.service;
+
+import java.util.List;
+
+import com.ym.mec.collectfee.common.service.BaseService;
+import com.ym.mec.collectfee.entity.Renewals;
+
+public interface RenewalsService extends BaseService<Integer, Renewals> {
+
+}

+ 23 - 0
src/main/java/com/ym/mec/collectfee/service/impl/RenewalsServiceImpl.java

@@ -0,0 +1,23 @@
+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 com.ym.mec.collectfee.dao.RenewalsDao;
+import com.ym.mec.collectfee.entity.Renewals;
+import com.ym.mec.collectfee.service.RenewalsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RenewalsServiceImpl extends BaseServiceImpl<Integer, Renewals> implements RenewalsService {
+	
+	@Autowired
+	private RenewalsDao renewalsDao;
+
+	@Override
+	public BaseDAO<Integer, Renewals> getDAO() {
+		return renewalsDao;
+	}
+	
+}

+ 1 - 1
src/main/resources/config/mybatis/OrderMapper.xml

@@ -50,7 +50,7 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
 		</selectKey>
 		-->
-		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 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,tui_fee,goods_fee,sd_name,sd_fee) VALUES(#{id},#{oid},#{orderNo},#{branchId},#{userId},#{amount},#{pay},#{bank},#{account},#{uAccount},#{payId},#{payTime},#{remark},#{classId},#{status},#{createTime},#{poName},#{voicyPart},#{balance},#{batchNum},#{tuiFee},#{goodsFee},#{sdName},#{sdFee})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->

+ 61 - 0
src/main/resources/config/mybatis/RenewalsMapper.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.RenewalsDao">
+	
+	<resultMap type="com.ym.mec.collectfee.entity.Renewals" id="Renewals">
+		<result column="id" property="id" />
+		<result column="user_id" property="userId" />
+		<result column="class_id" property="classId" />
+		<result column="way" property="way" />
+		<result column="pay" property="pay" />
+		<result column="change_mode" property="changeMode" />
+		<result column="price" property="price" />
+		<result column="buy" property="buy" />
+		<result column="order_id" property="orderId" />
+		<result column="branch_id" property="branchId" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="Renewals" >
+		SELECT * FROM renewals WHERE id = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="Renewals">
+		SELECT * FROM renewals ORDER BY id
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.collectfee.entity.Renewals" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!--
+		<selectKey resultClass="int" keyProperty="id" > 
+		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
+		</selectKey>
+		-->
+		INSERT INTO renewals (id,user_id,branch_id,class_id,way,pay,change_mode,price,buy,order_id) VALUES(#{id},#{userId},#{branchId},#{classId},#{way},#{pay},#{changeMode},#{price},#{buy},#{orderId})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.collectfee.entity.Renewals">
+		UPDATE renewals SET user_id = #{userId},price = #{price},class_id = #{classId},buy = #{buy},pay = #{pay},id = #{id},change_mode = #{changeMode},order_id = #{orderId},way = #{way} WHERE id = #{id} 
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM renewals WHERE id = #{id} 
+	</delete>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="Renewals" parameterType="map">
+		SELECT * FROM renewals ORDER BY id <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM renewals
+	</select>
+</mapper>

+ 150 - 354
src/main/resources/instruments.json

@@ -1,366 +1,162 @@
 {
   "instruments": {
-    "flute": {
-      "name": "长笛",
-      "config": {
-        "初级配置": {
-          "default": 1,
-          "name": "初级配置",
-          "marketPrice": 3150,
-          "referencePrice": 2680,
-          "checked": true,
-          "texture": "白铜管体"
-        },
-        "初级配置": {
-          "default": 0,
-          "name": "标准配置",
-          "marketPrice": 4500,
-          "referencePrice": 3570,
-          "checked": false,
-          "texture": "进口镍白铜管体、法式键"
-        }
-      },
-      "configuration": "C调 表面镀银厚度:8μm  管材厚度:0.42mm",
-      "auxiliaries": [
-        {
-          "name": "节拍器",
-          "marketPrice": 120,
-          "referencePrice": 95,
-          "checked": false
-        },
-        {
-          "name": "谱架",
-          "marketPrice": 80,
-          "referencePrice": 65,
-          "checked": false
-        },
-        {
-          "name": "乐器维护",
-          "marketPrice": 480,
-          "referencePrice": 300,
-          "checked": false
-        }
-      ]
+    "1": {
+      "index": "长笛",
+      "default": 1,
+      "name": "初级配置",
+      "marketPrice": 3150,
+      "referencePrice": 2680,
+      "checked": true,
+      "texture": "白铜管体"
     },
-    "clarinet": {
-      "name": "单簧管",
-      "config": [
-        {
-          "default": 1,
-          "name": "初级配置",
-          "marketPrice": 3280,
-          "referencePrice": 2780,
-          "checked": true,
-          "texture": "胶木"
-        },
-        {
-          "default": 0,
-          "name": "标准配置",
-          "marketPrice": 4580,
-          "referencePrice": 3650,
-          "checked": false,
-          "texture": "聚碳酸酯、蓝钢针弹簧线"
-        }
-      ],
-      "configuration": "降B调、八字螺丝固定键柱 按键铍铜、镍白铜 喇叭口直径:8cm",
-      "auxiliaries": [
-        {
-          "name": "节拍器",
-          "marketPrice": 120,
-          "checked": false,
-          "referencePrice": 95
-        },
-        {
-          "name": "谱架",
-          "marketPrice": 80,
-          "checked": false,
-          "referencePrice": 65
-        },
-        {
-          "name": "软木膏",
-          "marketPrice": 30,
-          "checked": false,
-          "referencePrice": 25
-        },
-        {
-          "name": "哨片",
-          "marketPrice": 150,
-          "checked": false,
-          "referencePrice": 120
-        },
-        {
-          "name": "乐器维护",
-          "marketPrice": 480,
-          "checked": false,
-          "referencePrice": 300
-        }
-      ]
+    "2": {
+      "index": "长笛",
+      "default": 0,
+      "name": "标准配置",
+      "marketPrice": 4500,
+      "referencePrice": 3570,
+      "checked": false,
+      "texture": "进口镍白铜管体、法式键"
     },
-    "saxophone": {
-      "name": "萨克斯管",
-      "config": [
-        {
-          "default": 1,
-          "name": "初级配置",
-          "marketPrice": 4200,
-          "referencePrice": 3550,
-          "checked": true,
-          "texture": "/"
-        },
-        {
-          "default": 0,
-          "name": "标准配置",
-          "marketPrice": 6080,
-          "referencePrice": 4500,
-          "checked": false,
-          "texture": "68铜、实心保护盖、蓝钢针弹簧线"
-        }
-      ],
-      "configuration": "降E调、黄铜材质、表面电泳处理 喇叭口直径:11.8cm",
-      "auxiliaries": [
-        {
-          "name": "节拍器",
-          "marketPrice": 120,
-          "checked": false,
-          "referencePrice": 95
-        },
-        {
-          "name": "谱架",
-          "marketPrice": 80,
-          "checked": false,
-          "referencePrice": 65
-        },
-        {
-          "name": "软木膏",
-          "marketPrice": 30,
-          "checked": false,
-          "referencePrice": 25
-        },
-        {
-          "name": "哨片",
-          "marketPrice": 150,
-          "checked": false,
-          "referencePrice": 120
-        },
-        {
-          "name": "乐器维护",
-          "marketPrice": 480,
-          "checked": false,
-          "referencePrice": 300
-        }
-      ]
+    "3": {
+      "index": "单簧管",
+      "default": 1,
+      "name": "初级配置",
+      "marketPrice": 3280,
+      "referencePrice": 2780,
+      "checked": true,
+      "texture": "胶木"
     },
-    "trumpet": {
-      "name": "小号",
-      "config": [
-        {
-          "default": 1,
-          "name": "标准配置",
-          "marketPrice": 4800,
-          "referencePrice": 3650,
-          "checked": true,
-          "texture": "白铜变音管磷铜发音管"
-        }
-      ],
-      "configuration": "降B调 特殊结构:可调试调音管控制环 喇叭口直径:123mm 内管:11.66mm",
-      "auxiliaries": [
-        {
-          "name": "节拍器",
-          "marketPrice": 120,
-          "checked": false,
-          "referencePrice": 95
-        },
-        {
-          "name": "谱架",
-          "marketPrice": 80,
-          "checked": false,
-          "referencePrice": 65
-        },
-        {
-          "name": "活塞油",
-          "marketPrice": 30,
-          "checked": false,
-          "referencePrice": 25
-        },
-        {
-          "name": "调音管油",
-          "marketPrice": 30,
-          "checked": false,
-          "referencePrice": 25
-        },
-        {
-          "name": "乐器维护",
-          "marketPrice": 480,
-          "checked": false,
-          "referencePrice": 300
-        }
-      ]
+    "4": {
+      "index": "单簧管",
+      "default": 0,
+      "name": "标准配置",
+      "marketPrice": 4580,
+      "referencePrice": 3650,
+      "checked": false,
+      "texture": "聚碳酸酯、蓝钢针弹簧线"
     },
-    "trombone": {
-      "name": "长号",
-      "config": [
-        {
-          "default": 1,
-          "name": "标准配置",
-          "marketPrice": 5550,
-          "referencePrice": 3870,
-          "checked": true,
-          "texture": "白铜内外伸缩管"
-        }
-      ],
-      "configuration": "降B/F调、喇叭口:215mm、内管:13.9mm管:13.9mm",
-      "auxiliaries": [
-        {
-          "name": "节拍器",
-          "marketPrice": 120,
-          "checked": false,
-          "referencePrice": 95
-        },
-        {
-          "name": "谱架",
-          "marketPrice": 80,
-          "checked": false,
-          "referencePrice": 65
-        },
-        {
-          "name": "活塞油",
-          "marketPrice": 30,
-          "checked": false,
-          "referencePrice": 25
-        },
-        {
-          "name": "拉杆油",
-          "marketPrice": 30,
-          "checked": false,
-          "referencePrice": 25
-        },
-        {
-          "name": "乐器维护",
-          "marketPrice": 480,
-          "checked": false,
-          "referencePrice": 300
-        }
-      ]
+    "5": {
+      "index": "萨克斯管",
+      "default": 1,
+      "name": "初级配置",
+      "marketPrice": 4200,
+      "referencePrice": 3550,
+      "checked": true,
+      "texture": "/"
     },
-    "horn": {
-      "name": "圆号",
-      "config": [
-        {
-          "default": 1,
-          "name": "标准配置",
-          "marketPrice": 5500,
-          "referencePrice": 3910,
-          "checked": true,
-          "texture": "白铜变音管磷铜发音管"
-        }
-      ],
-      "configuration": "降B/F调、结构:双排管 喇叭口直径:306mm 内管:11.5mm",
-      "auxiliaries": [
-        {
-          "name": "节拍器",
-          "marketPrice": 120,
-          "checked": false,
-          "referencePrice": 95
-        },
-        {
-          "name": "谱架",
-          "marketPrice": 80,
-          "checked": false,
-          "referencePrice": 65
-        },
-        {
-          "name": "活塞油",
-          "marketPrice": 30,
-          "checked": false,
-          "referencePrice": 25
-        },
-        {
-          "name": "调音管油",
-          "marketPrice": 30,
-          "checked": false,
-          "referencePrice": 25
-        },
-        {
-          "name": "乐器维护",
-          "marketPrice": 480,
-          "checked": false,
-          "referencePrice": 300
-        }
-      ]
+    "6": {
+      "index": "萨克斯管",
+      "default": 0,
+      "name": "标准配置",
+      "marketPrice": 6080,
+      "referencePrice": 4500,
+      "checked": false,
+      "texture": "68铜、实心保护盖、蓝钢针弹簧线"
     },
-    "upperBass": {
-      "name": "上低音号",
-      "config": [
-        {
-          "default": 1,
-          "name": "标准配置",
-          "marketPrice": 5800,
-          "referencePrice": 3980,
-          "checked": true,
-          "texture": "白铜变音管磷铜发音管"
-        }
-      ],
-      "configuration": "降B调、结构:三立键 喇叭口直径:278mm、内管:13.4mm",
-      "auxiliaries": [
-        {
-          "name": "节拍器",
-          "marketPrice": 120,
-          "checked": false,
-          "referencePrice": 95
-        },
-        {
-          "name": "谱架",
-          "marketPrice": 80,
-          "checked": false,
-          "referencePrice": 65
-        },
-        {
-          "name": "活塞油",
-          "marketPrice": 30,
-          "checked": false,
-          "referencePrice": 25
-        },
-        {
-          "name": "调音管油",
-          "marketPrice": 30,
-          "checked": false,
-          "referencePrice": 25
-        },
-        {
-          "name": "乐器维护",
-          "marketPrice": 480,
-          "checked": false,
-          "referencePrice": 300
-        }
-      ]
+    "7": {
+      "index": "小号",
+      "default": 1,
+      "name": "标准配置",
+      "marketPrice": 4800,
+      "referencePrice": 3650,
+      "checked": true,
+      "texture": "白铜变音管磷铜发音管"
     },
-    "snareDrum": {
-      "name": "小军鼓",
-      "config": [
-        {
-          "default": 1,
-          "name": "标准配置",
-          "marketPrice": 3700,
-          "referencePrice": 3190,
-          "checked": true,
-          "texture": ""
-        }
-      ],
-      "configuration": "珍珠镍小军鼓,桦木鼓腔,高碳钢纱带",
-      "auxiliaries": {
-        "1": {
-          "name": "节拍器",
-          "marketPrice": 120,
-          "checked": false,
-          "referencePrice": 95
-        },
-        "2": {
-          "name": "谱架",
-          "marketPrice": 80,
-          "checked": false,
-          "referencePrice": 65
-        }
-      }
+    "8": {
+      "index": "长号",
+      "default": 1,
+      "name": "标准配置",
+      "marketPrice": 5550,
+      "referencePrice": 3870,
+      "checked": true,
+      "texture": "白铜内外伸缩管"
+    },
+    "9": {
+      "index": "圆号",
+      "default": 1,
+      "name": "标准配置",
+      "marketPrice": 5500,
+      "referencePrice": 3910,
+      "checked": true,
+      "texture": "白铜变音管磷铜发音管"
+    },
+    "10": {
+      "index": "上低音号",
+      "default": 1,
+      "name": "标准配置",
+      "marketPrice": 5800,
+      "referencePrice": 3980,
+      "checked": true,
+      "texture": "白铜变音管磷铜发音管"
+    },
+    "11": {
+      "index": "小军鼓",
+      "default": 1,
+      "name": "标准配置",
+      "marketPrice": 3700,
+      "referencePrice": 3190,
+      "checked": true,
+      "texture": ""
+    },
+    "99": {
+      "index": "小号",
+      "default": 1,
+      "name": "标准配置",
+      "marketPrice": 0,
+      "referencePrice": 0,
+      "checked": true,
+      "texture": "白铜内外伸缩管"
+    }
+  },
+  "auxiliaries": {
+    "1": {
+      "name": "节拍器",
+      "marketPrice": "120",
+      "checked": false,
+      "referencePrice": "95"
+    },
+    "2": {
+      "name": "谱架",
+      "marketPrice": "80",
+      "checked": false,
+      "referencePrice": "65"
+    },
+    "3": {
+      "name": "活塞油",
+      "marketPrice": "30",
+      "checked": false,
+      "referencePrice": "25"
+    },
+    "4": {
+      "name": "软木膏",
+      "marketPrice": "30",
+      "checked": false,
+      "referencePrice": "25"
+    },
+    "5": {
+      "name": "哨片",
+      "marketPrice": "150",
+      "checked": false,
+      "referencePrice": "120"
+    },
+    "6": {
+      "name": "拉杆油",
+      "marketPrice": "30",
+      "checked": false,
+      "referencePrice": "25"
+    },
+    "7": {
+      "name": "调音管油",
+      "marketPrice": "30",
+      "checked": false,
+      "referencePrice": "25"
+    },
+    "8": {
+      "name": "乐器维护",
+      "marketPrice": "480",
+      "checked": false,
+      "referencePrice": "300"
     }
   }
 }