dingxin 6 年之前
父節點
當前提交
6dcd6f4814

+ 24
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/BillController.java 查看文件

@@ -4,6 +4,7 @@ import com.community.commom.constant.Constant;
4 4
 import com.community.commom.mode.ResponseBean;
5 5
 import com.community.commom.session.UserElement;
6 6
 import com.community.huiju.service.BillServiceI;
7
+import com.sun.org.apache.regexp.internal.RE;
7 8
 import io.swagger.annotations.Api;
8 9
 import io.swagger.annotations.ApiImplicitParam;
9 10
 import io.swagger.annotations.ApiImplicitParams;
@@ -72,4 +73,27 @@ public class BillController extends BaseController {
72 73
 		responseBean.addSuccess(billInvoiceMap);
73 74
 		return responseBean;
74 75
 	}
76
+
77
+	@ApiOperation(value = "获取历史缴费", notes = "获取历史缴费")
78
+	@ApiImplicitParams({
79
+			@ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token")
80
+	})
81
+	@RequestMapping(value = "/bill/pay/history", method = RequestMethod.GET)
82
+	public ResponseBean payHistory(HttpSession session) {
83
+		ResponseBean responseBean = new ResponseBean();
84
+		UserElement userElement = getUserElement(session);
85
+		responseBean = billServiceI.payHistory(userElement);
86
+		return responseBean;
87
+	}
88
+
89
+	@ApiOperation(value = "获取订单详情", notes = "获取订单详情")
90
+	@ApiImplicitParams({
91
+			@ApiImplicitParam(paramType = "path", dataTypeClass = String.class, name = "orderNumber", value = "订单号")
92
+	})
93
+	@RequestMapping(value = "/bill/order/info/{orderNumber}", method = RequestMethod.GET)
94
+	public ResponseBean getOrderInfo(HttpSession session, @PathVariable("orderNumber") String orderNumber) {
95
+		ResponseBean responseBean = new ResponseBean();
96
+		responseBean = billServiceI.getOrderInfo(orderNumber);
97
+		return responseBean;
98
+	}
75 99
 }

+ 5
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TpBillMapper.java 查看文件

@@ -3,6 +3,9 @@ package com.community.huiju.dao;
3 3
 import com.community.huiju.model.TpBill;
4 4
 import org.apache.ibatis.annotations.Mapper;
5 5
 import org.apache.ibatis.annotations.Param;
6
+import org.apache.ibatis.annotations.Select;
7
+
8
+import java.util.List;
6 9
 
7 10
 @Mapper
8 11
 public interface TpBillMapper {
@@ -19,4 +22,6 @@ public interface TpBillMapper {
19 22
     int updateByPrimaryKey(TpBill record);
20 23
 
21 24
     TpBill selectById(@Param("id") Integer id);
25
+
26
+
22 27
 }

+ 28
- 5
CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TpBillOrderMapper.java 查看文件

@@ -1,10 +1,7 @@
1 1
 package com.community.huiju.dao;
2 2
 
3 3
 import com.community.huiju.model.TpBillOrder;
4
-import org.apache.ibatis.annotations.Mapper;
5
-import org.apache.ibatis.annotations.Param;
6
-import org.apache.ibatis.annotations.ResultMap;
7
-import org.apache.ibatis.annotations.Select;
4
+import org.apache.ibatis.annotations.*;
8 5
 
9 6
 import java.util.List;
10 7
 
@@ -29,7 +26,33 @@ public interface TpBillOrderMapper {
29 26
      */
30 27
     int batchInsertSelective(List<TpBillOrder> list);
31 28
 
29
+    /**
30
+     * 根据订单查询, 所有数据
31
+     * @param orderNumber
32
+     * @return
33
+     */
32 34
     @ResultMap("BaseResultMap")
33
-    @Select("select * from tp_bill_order where order_bumber=#{orderNumber}")
35
+    @Select("select " +
36
+            "tbo.* from tp_bill_order tbo where tbo.order_bumber=#{orderNumber}")
34 37
     List<TpBillOrder> selectByOrderBumber(@Param("orderNumber") String orderNumber);
38
+
39
+    /**
40
+     * 根据房间号查询订单
41
+     * @param roomNoId
42
+     * @return
43
+     */
44
+    @ResultMap("BaseResultMap")
45
+    @Select("SELECT tbo.* FROM tp_bill_order tbo LEFT JOIN tp_bill_invoice tbi on tbo.tp_bill_invoice_id = tbi.id " +
46
+            "WHERE tbi.room_no_id = #{roomNoId} GROUP BY tbo.order_bumber")
47
+    List<TpBillOrder> selectByRoomNoId(@Param("roomNoId") Integer roomNoId);
48
+
49
+    /**
50
+     * 根据订单号 查询缴费组
51
+     * @param orderBumber
52
+     * @return
53
+     */
54
+    @ResultMap("BaseResultMap")
55
+    @Select("SELECT * FROM tp_bill_order WHERE order_bumber = #{orderBumber} GROUP BY tp_bill_id")
56
+    List<TpBillOrder> selectByOrderNumberBill(@Param("orderBumber") String orderBumber);
57
+
35 58
 }

+ 12
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TpBillStatementMapper.java 查看文件

@@ -2,6 +2,8 @@ package com.community.huiju.dao;
2 2
 
3 3
 import com.community.huiju.model.TpBillStatement;
4 4
 import org.apache.ibatis.annotations.Mapper;
5
+import org.apache.ibatis.annotations.ResultMap;
6
+import org.apache.ibatis.annotations.Select;
5 7
 
6 8
 @Mapper
7 9
 public interface TpBillStatementMapper {
@@ -16,4 +18,14 @@ public interface TpBillStatementMapper {
16 18
     int updateByPrimaryKeySelective(TpBillStatement record);
17 19
 
18 20
     int updateByPrimaryKey(TpBillStatement record);
21
+
22
+    /**
23
+     * 根据小区id,缴费单id 查询
24
+     * @param communityId
25
+     * @param tpBillInvoiceId
26
+     * @return
27
+     */
28
+    @ResultMap("BaseResultMap")
29
+    @Select("select *  from tp_bill_statement where community_id = #{communityId} and bill_invoice_id = #{tpBillInvoiceId}")
30
+    TpBillStatement selectByCommunityIdAndBillInvoiceId(Integer communityId, Integer tpBillInvoiceId);
19 31
 }

+ 27
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TpBillOrder.java 查看文件

@@ -1,6 +1,7 @@
1 1
 package com.community.huiju.model;
2 2
 
3 3
 import java.util.Date;
4
+import java.util.List;
4 5
 
5 6
 public class TpBillOrder {
6 7
     private Integer id;
@@ -31,6 +32,16 @@ public class TpBillOrder {
31 32
      */
32 33
     private String payPhone;
33 34
 
35
+    /**
36
+     * 订单总额
37
+     */
38
+    private Long sumPrice;
39
+
40
+    /**
41
+     * 缴费组集合
42
+     */
43
+    private List<TpBill> billList;
44
+
34 45
     public Integer getId() {
35 46
         return id;
36 47
     }
@@ -118,4 +129,20 @@ public class TpBillOrder {
118 129
     public void setPayPhone(String payPhone) {
119 130
         this.payPhone = payPhone;
120 131
     }
132
+
133
+    public Long getSumPrice() {
134
+        return sumPrice;
135
+    }
136
+
137
+    public void setSumPrice(Long sumPrice) {
138
+        this.sumPrice = sumPrice;
139
+    }
140
+
141
+    public List<TpBill> getBillList() {
142
+        return billList;
143
+    }
144
+
145
+    public void setBillList(List<TpBill> billList) {
146
+        this.billList = billList;
147
+    }
121 148
 }

+ 15
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/BillServiceI.java 查看文件

@@ -1,5 +1,6 @@
1 1
 package com.community.huiju.service;
2 2
 
3
+import com.community.commom.mode.ResponseBean;
3 4
 import com.community.commom.session.UserElement;
4 5
 
5 6
 import java.util.List;
@@ -23,4 +24,18 @@ public interface BillServiceI {
23 24
 	 * @return
24 25
 	 */
25 26
 	Map<String, Object> getBillInvoiceDetail(Integer communityId,Integer billInvoiceId);
27
+
28
+	/**
29
+	 * 获取缴费历史
30
+	 * @param userElement
31
+	 * @return
32
+	 */
33
+	ResponseBean payHistory(UserElement userElement);
34
+
35
+	/**
36
+	 * 订单详情
37
+	 * @param orderNumber
38
+	 * @return
39
+	 */
40
+	ResponseBean getOrderInfo(String orderNumber);
26 41
 }

+ 80
- 15
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/BillServiceImpl.java 查看文件

@@ -1,20 +1,20 @@
1 1
 package com.community.huiju.service.impl;
2 2
 
3
+import com.community.commom.mode.ResponseBean;
3 4
 import com.community.commom.session.UserElement;
4 5
 import com.community.huiju.dao.*;
5
-import com.community.huiju.model.TaSysRole;
6
-import com.community.huiju.model.TaUser;
7
-import com.community.huiju.model.TaUserVerify;
8
-import com.community.huiju.model.TpBuildingOwnerInfo;
6
+import com.community.huiju.model.*;
9 7
 import com.community.huiju.service.BillServiceI;
10 8
 import com.github.pagehelper.Page;
11 9
 import com.github.pagehelper.PageHelper;
12 10
 import com.google.common.collect.Maps;
11
+import org.apache.commons.collections.CollectionUtils;
13 12
 import org.springframework.beans.factory.annotation.Autowired;
14 13
 import org.springframework.stereotype.Service;
15 14
 
16 15
 import java.util.List;
17 16
 import java.util.Map;
17
+import java.util.stream.Collectors;
18 18
 
19 19
 /**
20 20
  * @author FXF
@@ -37,6 +37,15 @@ public class BillServiceImpl implements BillServiceI {
37 37
 
38 38
 	@Autowired
39 39
 	private TpBuildingOwnerInfoMapper tpBuildingOwnerInfoMapper;
40
+
41
+	@Autowired
42
+	private TpBillOrderMapper tpBillOrderMapper;
43
+
44
+	@Autowired
45
+	private TpBillMapper tpBillMapper;
46
+
47
+	@Autowired
48
+	private TpBillStatementMapper tpBillStatementMapper;
40 49
 	
41 50
 	/**
42 51
 	 * 根据payType分页获取缴费或未缴费的数据
@@ -54,17 +63,6 @@ public class BillServiceImpl implements BillServiceI {
54 63
 		 * 账单 关联的是房产,
55 64
  		 */
56 65
 
57
-//		TaUserVerify userVerify = taUserVerifyMapper.selectCommunityAndAddressAndRoleId(userElement.getCommunityId(),
58
-//										userElement.getPhaseId(), userElement.getBuildingId(), userElement.getUnitId(),
59
-//										userElement.getLevelId(), userElement.getRoomNoId());
60
-//		// 业主信息
61
-//		TaUser user = taUserMapper.selectByPrimaryKey(userVerify.getUserId());
62
-//
63
-//		TpBuildingOwnerInfo tpBuildingOwnerInfo = tpBuildingOwnerInfoMapper.selectCommunityAndAddressAndPhone(userElement.getCommunityId(),
64
-//				userElement.getPhaseId(), userElement.getBuildingId(), userElement.getUnitId(),
65
-//				userElement.getLevelId(), userElement.getRoomNoId(), user.getLoginName());
66
-
67
-
68 66
 		//使用分页插件
69 67
 		Page<Map<String,Object>> page = PageHelper.startPage(pageNum, pageSize);
70 68
 		List<Map<String,Object>> billsList = tpBillInvoiceMapper.getBillsList(userElement.getCommunityId(), userElement.getRoomNoId(), payType);
@@ -92,4 +90,71 @@ public class BillServiceImpl implements BillServiceI {
92 90
 		billInvoiceDetail.put("payPrice", payPriceDouble);
93 91
 		return billInvoiceDetail;
94 92
 	}
93
+
94
+	@Override
95
+	public ResponseBean payHistory(UserElement userElement) {
96
+		ResponseBean responseBean = new ResponseBean();
97
+
98
+		//1. 查询所有订单
99
+		//2. 根据订单
100
+
101
+
102
+		// 所有订单
103
+		List<TpBillOrder> billOrderList = tpBillOrderMapper.selectByRoomNoId(userElement.getRoomNoId());
104
+		billOrderList.forEach(e->{
105
+			// 缴费组
106
+			List<TpBill> billsCollect = billOrderList.stream().map(billOrder -> tpBillMapper.selectByPrimaryKey(billOrder.getTpBillId())).collect(Collectors.toList());
107
+			// 所有缴费组的总额
108
+			Long billCountPrice = billsCollect.stream().map(billCount -> Integer.parseInt(billCount.getPayPrice())).count();
109
+
110
+			e.setBillList(billsCollect);
111
+			e.setSumPrice(billCountPrice);
112
+		});
113
+
114
+		responseBean.addSuccess(billOrderList);
115
+		return responseBean;
116
+	}
117
+
118
+	@Override
119
+	public ResponseBean getOrderInfo(String orderNumber) {
120
+		ResponseBean responseBean = new ResponseBean();
121
+
122
+		/**
123
+		 * 1.根据订单号获取所有缴费组
124
+		 * 2.获取其中的一条缴费订单数据, 因为订单号再库里面是多条,取第一条就可以
125
+		 * 3.计算出所有缴费组的总额
126
+		 * 4.获取一个缴费的流水记录, 因为 订单号对应多个缴费单,每一个缴费单对应一个缴费流水, 然后通过缴费流水可以知道缴费人,缴费类型,缴费备注等等
127
+		 */
128
+
129
+		// 这个订单所有的缴费组记录, 拿到每一个缴费组的id
130
+		List<TpBillOrder> billOrderList = tpBillOrderMapper.selectByOrderNumberBill(orderNumber);
131
+		if (CollectionUtils.isEmpty(billOrderList)) {
132
+			responseBean.addError("订单号不存在!");
133
+			return responseBean;
134
+		}
135
+		// 每个缴费组数据
136
+		List<TpBill> tpBillList = billOrderList.stream().map(e -> tpBillMapper.selectByPrimaryKey(e.getTpBillId())).collect(Collectors.toList());
137
+		// 所有缴费组的总额
138
+		Long billCountPrice = tpBillList.stream().map(billCount -> Integer.parseInt(billCount.getPayPrice())).count();
139
+
140
+		// 因为订单号是多条,取第一条即可
141
+		TpBillOrder tpBillOrder = billOrderList.get(0);
142
+
143
+		// 获取一条流水
144
+		TpBillStatement tpBillStatement = tpBillStatementMapper.selectByCommunityIdAndBillInvoiceId(tpBillOrder.getCommunityId(), tpBillOrder.getTpBillInvoiceId());
145
+
146
+
147
+		Map<String, Object> map = Maps.newHashMap();
148
+		map.put("orderNumber", orderNumber);
149
+		map.put("createDate", tpBillOrder.getCreateDate());
150
+		map.put("sumPrice", billCountPrice);
151
+		map.put("payName", tpBillStatement.getPayName());
152
+		map.put("updateDate", tpBillOrder.getUpdateDate());
153
+		map.put("payType", tpBillStatement.getPayType());
154
+		map.put("payRemark", tpBillStatement.getPayRemark());
155
+		map.put("list", tpBillList);
156
+
157
+		responseBean.addSuccess(map);
158
+		return responseBean;
159
+	}
95 160
 }