Przeglądaj źródła

订单列表接口增加金额统计和手续费

周箭河 5 lat temu
rodzic
commit
e3df6c0053

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

@@ -7,6 +7,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 @Component
 public interface AccountDao extends BaseDAO<Integer, Account> {
@@ -15,4 +16,5 @@ public interface AccountDao extends BaseDAO<Integer, Account> {
 
     int upByIdAndVersion(Account account);
 
+    String getAccountsStr();
 }

+ 7 - 8
src/main/java/com/ym/mec/collectfee/dao/OrderDao.java

@@ -1,13 +1,10 @@
 package com.ym.mec.collectfee.dao;
 
 import com.ym.mec.collectfee.common.dao.BaseDAO;
-import com.ym.mec.collectfee.entity.ApplyInfoPage;
 import com.ym.mec.collectfee.entity.Order;
-import com.ym.mec.collectfee.entity.OrderPage;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -16,15 +13,15 @@ public interface OrderDao extends BaseDAO<Integer, Order> {
 
     List<Order> getOrderByUserId(Integer userId);
 
-    List<Order> getOrderByClassId(@Param("account") Integer account,@Param("classId") Integer classId,@Param("type") Integer type, @Param("voicyPart")String voicyPart, @Param("startTime") String startTime, @Param("endTime") String endTime,@Param("branchId") Integer branchId);
+    List<Order> getOrderByClassId(@Param("account") Integer account, @Param("classId") Integer classId, @Param("type") Integer type, @Param("voicyPart") String voicyPart, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("branchId") Integer branchId);
 
     List<Order> getOrderByBatch(String batchNum);
 
-    int countOrder(@Param("poName") String poName,@Param("voicePort") String voicePort);
+    int countOrder(@Param("poName") String poName, @Param("voicePort") String voicePort);
 
     Order getOrderByOrderNo(@Param("orderNo") String orderNo);
 
-    Order findOrderByStatus(@Param("userId") Integer userId,@Param("status") Integer status);
+    Order findOrderByStatus(@Param("userId") Integer userId, @Param("status") Integer status);
 
     int getPayOrderNums();
 
@@ -32,13 +29,15 @@ public interface OrderDao extends BaseDAO<Integer, Order> {
 
     int updateByIdAndStatus(Map upMap);
 
-    List<Order> findPayingOrdersOver(Map<String,Object> map);
+    List<Order> findPayingOrdersOver(Map<String, Object> map);
 
     Integer getPayingOrderNums(int groupId);
 
-    Order findRegOrderByStatus(@Param("userId") Integer userId,@Param("status") Integer status);
+    Order findRegOrderByStatus(@Param("userId") Integer userId, @Param("status") Integer status);
 
     int queryOrderCount(Map<String, Object> params);
 
     List<Order> queryOrderPage(Map<String, Object> queryInfo);
+
+    Map queryFeeAmount(Map<String, Object> params);
 }

+ 11 - 0
src/main/java/com/ym/mec/collectfee/entity/Order.java

@@ -132,6 +132,9 @@ public class Order {
 //	@ApiModelProperty(name = "goodsFee", value = "杂费名称",hidden = true)
 	private String sdName;
 
+	//手续费
+	private BigDecimal commission;
+
 	public BigDecimal getTuiFee() {
 		return tuiFee;
 	}
@@ -386,4 +389,12 @@ public class Order {
 	public void setType(Integer type) {
 		this.type = type;
 	}
+
+	public BigDecimal getCommission() {
+		return commission;
+	}
+
+	public void setCommission(BigDecimal commission) {
+		this.commission = commission;
+	}
 }

+ 0 - 36
src/main/java/com/ym/mec/collectfee/entity/OrderPage.java

@@ -1,36 +0,0 @@
-package com.ym.mec.collectfee.entity;
-
-import java.math.BigDecimal;
-
-public class OrderPage extends Order {
-
-    private BigDecimal amount;
-
-    private String subName;
-
-    private String schoolName;
-
-    public String getSchoolName() {
-        return schoolName;
-    }
-
-    public void setSchoolName(String schoolName) {
-        this.schoolName = schoolName;
-    }
-
-    public BigDecimal getAmount() {
-        return amount;
-    }
-
-    public void setAmount(BigDecimal amount) {
-        this.amount = amount;
-    }
-
-    public String getSubName() {
-        return subName;
-    }
-
-    public void setSubName(String subName) {
-        this.subName = subName;
-    }
-}

+ 77 - 0
src/main/java/com/ym/mec/collectfee/entity/OrderPageInfo.java

@@ -0,0 +1,77 @@
+package com.ym.mec.collectfee.entity;
+
+import com.ym.mec.collectfee.common.page.PageInfo;
+
+import java.math.BigDecimal;
+
+public class OrderPageInfo<T> extends PageInfo {
+    private BigDecimal amount;
+
+    private BigDecimal tuiFeeAmount;
+
+    private BigDecimal goodsFeeAmount;
+
+    private BigDecimal sdFeeAmount;
+
+    private BigDecimal commissionAmount;
+
+
+    public OrderPageInfo() {
+    }
+
+    public OrderPageInfo(Integer pageNo) {
+        if (pageNo == null || pageNo < 1)
+            pageNo = 1;
+        this.setPageNo(pageNo);
+    }
+
+    /** 构造函数 */
+    public OrderPageInfo(Integer pageNo, int pageSize) {
+        if (pageNo == null || pageNo < 1)
+            pageNo = 1;
+        this.setPageNo(pageNo);
+        super.setLimit(pageSize);
+        this.setOffset((pageNo - 1) * pageSize);
+    }
+
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public BigDecimal getTuiFeeAmount() {
+        return tuiFeeAmount;
+    }
+
+    public void setTuiFeeAmount(BigDecimal tuiFeeAmount) {
+        this.tuiFeeAmount = tuiFeeAmount;
+    }
+
+    public BigDecimal getGoodsFeeAmount() {
+        return goodsFeeAmount;
+    }
+
+    public void setGoodsFeeAmount(BigDecimal goodsFeeAmount) {
+        this.goodsFeeAmount = goodsFeeAmount;
+    }
+
+    public BigDecimal getSdFeeAmount() {
+        return sdFeeAmount;
+    }
+
+    public void setSdFeeAmount(BigDecimal sdFeeAmount) {
+        this.sdFeeAmount = sdFeeAmount;
+    }
+
+    public BigDecimal getCommissionAmount() {
+        return commissionAmount;
+    }
+
+    public void setCommissionAmount(BigDecimal commissionAmount) {
+        this.commissionAmount = commissionAmount;
+    }
+}

+ 22 - 3
src/main/java/com/ym/mec/collectfee/service/impl/OrderServiceImpl.java

@@ -5,6 +5,7 @@ import com.thoughtworks.xstream.XStream;
 import com.ym.mec.collectfee.common.dao.BaseDAO;
 import com.ym.mec.collectfee.common.page.PageInfo;
 import com.ym.mec.collectfee.common.service.impl.BaseServiceImpl;
+import com.ym.mec.collectfee.dao.AccountDao;
 import com.ym.mec.collectfee.dao.OrderDao;
 import com.ym.mec.collectfee.entity.*;
 import com.ym.mec.collectfee.service.CourseGroupInfoService;
@@ -39,6 +40,8 @@ public class OrderServiceImpl extends BaseServiceImpl<Integer, Order> implements
     private SchoolService schoolService;
     @Autowired
     private CourseGroupInfoService courseGroupInfoService;
+    @Autowired
+    private AccountDao accountDao;
 
     //公共密钥
     @Value("${common.properties.mec-publicKey}")
@@ -181,7 +184,7 @@ public class OrderServiceImpl extends BaseServiceImpl<Integer, Order> implements
 
     @Override
     public List<Order> getOrderByClassId(Integer account, Integer classId, Integer type, String voicyPart, String startTime, String endTime, Integer branchId) {
-        return orderDao.getOrderByClassId(account,classId, type, voicyPart, startTime, endTime, branchId);
+        return orderDao.getOrderByClassId(account, classId, type, voicyPart, startTime, endTime, branchId);
     }
 
     public static void main(String[] args) {
@@ -217,20 +220,36 @@ public class OrderServiceImpl extends BaseServiceImpl<Integer, Order> implements
     }
 
     @Override
-    public PageInfo<Order> queryOrderPage(OrderQueryInfo queryInfo) {
-        PageInfo<Order> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+    public OrderPageInfo<Order> queryOrderPage(OrderQueryInfo queryInfo) {
+        OrderPageInfo<Order> pageInfo = new OrderPageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();
+        if (queryInfo.getAccount() != null) {
+            String account = queryInfo.getAccount().equals("com") ? "0023115" : accountDao.getAccountsStr();
+            queryInfo.setAccount(account);
+        }
+
         MapUtil.populateMap(params, queryInfo);
 
         List<Order> dataList = null;
         int count = orderDao.queryOrderCount(params);
+
         if (count > 0) {
+            Map<String, Object> queryFeeAmount = orderDao.queryFeeAmount(params);
+            pageInfo.setAmount((BigDecimal) queryFeeAmount.get("amount"));
+            pageInfo.setTuiFeeAmount((BigDecimal) queryFeeAmount.get("tuiFeeAmount"));
+            pageInfo.setGoodsFeeAmount((BigDecimal) queryFeeAmount.get("goodsFeeAmount"));
+            pageInfo.setSdFeeAmount((BigDecimal) queryFeeAmount.get("sdFeeAmount"));
+            pageInfo.setCommissionAmount((BigDecimal) queryFeeAmount.get("commissionAmount"));
             int page = count % pageInfo.getLimit() > 0 ? 1 : 0;
             int totalPage = count / pageInfo.getLimit() + page;
             pageInfo.setTotal(count);
             pageInfo.setTotalPage(totalPage);
             params.put("offset", pageInfo.getOffset());
             dataList = orderDao.queryOrderPage(params);
+            for (Order order : dataList) {
+                BigDecimal commission = order.getAmount().multiply(new BigDecimal(0.28)).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);//手续费
+                order.setCommission(commission);
+            }
         }
         if (count == 0) {
             dataList = new ArrayList<>();

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

@@ -79,4 +79,10 @@
 	<update id="upByIdAndVersion" parameterType="com.ym.mec.collectfee.entity.Account">
 		UPDATE `account` SET `has_routing` = #{hasRouting},`version` = `version`+1 WHERE id = #{id} AND `version`=#{version}
 	</update>
+
+	<!-- 获取私人所有收款账户 -->
+	<select id="getAccountsStr" resultType="string">
+		SELECT group_concat(seller_no) FROM `account` WHERE `branch_id`=0
+	</select>
+
 </mapper>

+ 9 - 2
src/main/resources/config/mybatis/OrderMapper.xml

@@ -165,7 +165,7 @@
             and voicy_part like '%${voicyPart}%'
         </if>
         <if test="account != null">
-           and account = #{account}
+            and account = #{account}
         </if>
         <if test="startTime != null and startTime != ''">
             <![CDATA[ and pay_time >= ]]>#{startTime}
@@ -244,7 +244,7 @@
     </select>
     <sql id="orderPage">
         <if test="account != null">
-            and account = #{account}
+            and FIND_IN_SET(account,#{account})
         </if>
         <if test="classId != null">
             and class_id = #{classId}
@@ -272,6 +272,13 @@
         <include refid="orderPage"/>
     </select>
 
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryFeeAmount" resultType="map">
+        SELECT SUM(amount) AS amount,SUM(tui_fee) as tuiFeeAmount,SUM(goods_fee) AS goodsFeeAmount,SUM(sd_Fee) AS
+        sdFeeAmount, SUM(ROUND(amount*0.28/100,2)) as commissionAmount FROM `order` WHERE status=2
+        <include refid="orderPage"/>
+    </select>
+
     <select id="queryOrderPage" resultMap="Order" parameterType="map">
         SELECT * FROM `order` WHERE status=2
         <include refid="orderPage"/>