andrew 4 anni fa
parent
commit
d23b1c943a

+ 15
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Vedi File

@@ -124,6 +124,21 @@ public class CommConstant {
124 124
      */
125 125
     public final static String POINTS_CHANGE_DOCUMENT_VERIFY = "document_verify";
126 126
 
127
+    /**
128
+     * 业主审核通过
129
+     */
130
+    public final static String POINTS_USER_VERIFY = "user_verify";
131
+
132
+    /**
133
+     * 工单评价加积分
134
+     */
135
+    public final static String POINTS_TICKET_EVALUATION = "ticket_evaluation";
136
+
137
+    /**
138
+     * 缴费加积分
139
+     */
140
+    public final static String POINTS_PAYMENT = "payment";
141
+
127 142
     /**
128 143
      * 活动签到
129 144
      */

+ 10
- 1
src/main/java/com/huiju/estateagents/event/EventBus.java Vedi File

@@ -42,7 +42,16 @@ public class EventBus extends ApplicationEvent {
42 42
 		DocumentVerify(7),
43 43
 
44 44
 		// 普通活动扫码签到
45
-		ActivityCheckin(8);
45
+		ActivityCheckin(8),
46
+
47
+		// 业主审核通过
48
+		UserVerify(9),
49
+
50
+		// 评价成功加积分
51
+		TicketEvaluation(10),
52
+
53
+		// 缴费成功加积分
54
+		payment(11);
46 55
 
47 56
 		private Integer type;
48 57
 

+ 26
- 0
src/main/java/com/huiju/estateagents/event/EventLisenter.java Vedi File

@@ -1,11 +1,16 @@
1 1
 package com.huiju.estateagents.event;
2 2
 
3 3
 import com.huiju.estateagents.entity.*;
4
+import com.huiju.estateagents.property.model.BillInvoice;
5
+import com.huiju.estateagents.property.model.BillStatement;
6
+import com.huiju.estateagents.property.model.TaUserVerify;
7
+import com.huiju.estateagents.property.model.TpTicket;
4 8
 import com.huiju.estateagents.service.ITaPointsRecordsService;
5 9
 import lombok.extern.slf4j.Slf4j;
6 10
 import org.springframework.beans.factory.annotation.Autowired;
7 11
 import org.springframework.context.event.EventListener;
8 12
 import org.springframework.stereotype.Component;
13
+import sun.security.krb5.internal.Ticket;
9 14
 
10 15
 /**
11 16
  * @author FXF
@@ -52,11 +57,32 @@ public class EventLisenter {
52 57
 				break;
53 58
 			case ActivityCheckin:
54 59
 				getActivityCheckin((TaActivityDynamicEnlist) event.getSource(), event.getOrgId());
60
+			// 业主认证审核通过
61
+			case UserVerify:
62
+				getUserVerify((TaUserVerify) event.getSource(), event.getOrgId());
63
+			// 工单评价加积分
64
+			case TicketEvaluation:
65
+				getTicketEvaluation((TpTicket) event.getSource(), event.getOrgId());
66
+			// 缴费成功加积分
67
+			case payment:
68
+				getPayment((BillInvoice) event.getSource(), event.getOrgId());
55 69
 			default:
56 70
 				break;
57 71
 		}
58 72
 	}
59 73
 
74
+	private void getPayment(BillInvoice source, Integer orgId) {
75
+		taPointsRecordsService.payment(source,orgId);
76
+	}
77
+
78
+	private void getTicketEvaluation(TpTicket source, Integer orgId) {
79
+		taPointsRecordsService.ticketEvaluationPoints(source,orgId);
80
+	}
81
+
82
+	private void getUserVerify(TaUserVerify source, Integer orgId) {
83
+		taPointsRecordsService.userVerifyPoints(source, orgId);
84
+	}
85
+
60 86
 	// 普通活动扫码签到
61 87
 	private void getActivityCheckin(TaActivityDynamicEnlist source, Integer orgId) {
62 88
 		taPointsRecordsService.checkinActivityPoints(source,orgId);

+ 14
- 0
src/main/java/com/huiju/estateagents/property/controller/SocialController.java Vedi File

@@ -19,6 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired;
19 19
 import org.springframework.web.bind.annotation.*;
20 20
 
21 21
 import javax.servlet.http.HttpServletRequest;
22
+import javax.servlet.http.HttpSession;
23
+
22 24
 /**
23 25
  * @author weichaochao11
24 26
  * @Title: SocialController
@@ -62,4 +64,16 @@ public class SocialController extends BaseController {
62 64
         return announcementList;
63 65
     }
64 66
 
67
+
68
+    @ApiOperation(value = "评价工单内容以及评分", notes = "评价工单内容以及评分")
69
+    @ApiImplicitParams({@ApiImplicitParam(paramType = "path", dataType = "integer", name = "orgId", value = "小区Id"),
70
+            @ApiImplicitParam(name = "parameter", value = "score 评分, comment 评语 ", required = true, dataType = "String"),
71
+            @ApiImplicitParam(paramType = "query", dataType = "integer", name = "ticketId", value = "工单Id")})
72
+    @RequestMapping(value = "/wx/accessTicket/{orgId}", method = RequestMethod.POST)
73
+    public ResponseBean accessTicket(@PathVariable("orgId") Integer orgId, @RequestBody String parameter, @RequestParam("ticketId") String ticketId, HttpServletRequest request) {
74
+        ResponseBean responseBean = new ResponseBean();
75
+        TpTicket tpTicket = JSONObject.parseObject(parameter,TpTicket.class);
76
+        socialServiceI.accessTicket(orgId, tpTicket, ticketId, getPersonId(request));
77
+        return responseBean;
78
+    }
65 79
 }

+ 8
- 0
src/main/java/com/huiju/estateagents/property/service/SocialServiceI.java Vedi File

@@ -37,4 +37,12 @@ public interface SocialServiceI {
37 37
 	 * @return
38 38
 	 */
39 39
 	ResponseBean getAnnouncements(Integer orgId, String title, Integer pageNum, Integer pageSize);
40
+
41
+	/**
42
+	 * 评价工单以及评分
43
+	 * @param orgId
44
+	 * @param tpTicket
45
+	 * @param ticketId
46
+	 */
47
+    void accessTicket(Integer orgId, TpTicket tpTicket, String ticketId, String personId);
40 48
 }

+ 46
- 0
src/main/java/com/huiju/estateagents/property/service/impl/SocialServiceImpl.java Vedi File

@@ -9,6 +9,8 @@ import com.huiju.estateagents.base.ResponseBean;
9 9
 import com.huiju.estateagents.center.taUser.entity.TaUser;
10 10
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
11 11
 import com.huiju.estateagents.center.taUser.service.ITaUserService;
12
+import com.huiju.estateagents.event.EventBus;
13
+import com.huiju.estateagents.mapper.TaPersonMapper;
12 14
 import com.huiju.estateagents.property.common.Constant;
13 15
 import com.huiju.estateagents.property.common.UserElement;
14 16
 import com.huiju.estateagents.property.dao.*;
@@ -22,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
22 24
 import org.springframework.util.StringUtils;
23 25
 
24 26
 import java.io.IOException;
27
+import java.time.LocalDateTime;
25 28
 import java.util.*;
26 29
 import java.util.stream.Collectors;
27 30
 
@@ -43,6 +46,18 @@ public class SocialServiceImpl implements SocialServiceI {
43 46
     @Autowired
44 47
     private TdImagesMapper tdImagesMapper;
45 48
 
49
+    @Autowired
50
+    private TpTicketMapper tpTicketMapper;
51
+
52
+    @Autowired
53
+    private TpTicketRecordMapper tpTicketRecordMapper;
54
+
55
+    @Autowired
56
+    private TaPersonMapper taPersonMapper;
57
+
58
+    @Autowired
59
+    private ApplicationContext applicationContext;
60
+
46 61
     @Override
47 62
     @Transactional
48 63
     public TpAnnouncement findAnnouncementDetail(Integer id, Integer orgId, Integer userId) {
@@ -86,6 +101,37 @@ public class SocialServiceImpl implements SocialServiceI {
86 101
         return responseBean;
87 102
     }
88 103
 
104
+    /**
105
+     * 评价工单以及评分
106
+     *
107
+     * @param orgId
108
+     * @param tpTicket
109
+     * @param ticketId
110
+     * @param personId
111
+     */
112
+    @Override
113
+    public void accessTicket(Integer orgId, TpTicket tpTicket, String ticketId, String personId) {
114
+
115
+        //修改工单内容和评分
116
+        tpTicket.setId(Integer.valueOf(ticketId));
117
+        tpTicket.setStatus("5");
118
+        tpTicketMapper.updateById(tpTicket);
119
+        //根据1.4版本需要被终止时,清空当前工单受理人
120
+        tpTicketMapper.updateTpUserId(Integer.valueOf(ticketId));
121
+        //工单处理表新增评分记录
122
+        TpTicketRecord record = new TpTicketRecord();
123
+        record.setOrgId(orgId);
124
+        record.setTicketId(Integer.valueOf(ticketId));
125
+        record.setStatus("5");
126
+        record.setContent(tpTicket.getComment());
127
+        record.setCreateUser(personId);
128
+        record.setCreateDate(LocalDateTime.now());
129
+        tpTicketRecordMapper.insert(record);
130
+
131
+        TpTicket tic = tpTicketMapper.selectById(Integer.valueOf(ticketId));
132
+        // 评价成功加积分
133
+        applicationContext.publishEvent(new EventBus(tic, EventBus.EventType.DocumentVerify,1));
134
+    }
89 135
 
90 136
 
91 137
     /**

+ 10
- 0
src/main/java/com/huiju/estateagents/property/service/impl/TaUserVerifyServiceImpl.java Vedi File

@@ -9,6 +9,7 @@ import com.huiju.estateagents.base.ResponseBean;
9 9
 import com.huiju.estateagents.center.taUser.entity.TaUser;
10 10
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
11 11
 import com.huiju.estateagents.entity.TaPerson;
12
+import com.huiju.estateagents.event.EventBus;
12 13
 import com.huiju.estateagents.mapper.TaPersonMapper;
13 14
 import com.huiju.estateagents.property.common.Constant;
14 15
 import com.huiju.estateagents.property.common.UserElement;
@@ -21,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
21 22
 import org.apache.commons.lang3.StringUtils;
22 23
 import org.apache.poi.ss.formula.functions.T;
23 24
 import org.springframework.beans.factory.annotation.Autowired;
25
+import org.springframework.context.ApplicationContext;
24 26
 import org.springframework.stereotype.Service;
25 27
 import org.springframework.transaction.annotation.Transactional;
26 28
 
@@ -69,6 +71,9 @@ public class TaUserVerifyServiceImpl extends ServiceImpl<TaUserVerifyMapper, TaU
69 71
     @Autowired
70 72
     private MessageMapper tpmessageMapper;
71 73
 
74
+    @Autowired
75
+    private ApplicationContext applicationContext;
76
+
72 77
     @Override
73 78
     public ResponseBean selectAll(String phone, String userName, String idCard, Integer pageNum, Integer pageSize, TaUser userElement) {
74 79
         ResponseBean responseBean = new ResponseBean();
@@ -126,6 +131,11 @@ public class TaUserVerifyServiceImpl extends ServiceImpl<TaUserVerifyMapper, TaU
126 131
         userVerify.setVerifyName(user.getUserName());
127 132
         taUserVerifyMapper.updateById(userVerify);
128 133
 
134
+        if (Constant.APPROVED.equals(status)){
135
+            // 审核通过加20积分
136
+            applicationContext.publishEvent(new EventBus(userVerify, EventBus.EventType.DocumentVerify,1));
137
+        }
138
+
129 139
         String[] messageArr= new messagePush().messagePushAll( );
130 140
         for (String count : messageArr) {
131 141
             Message message = new Message();

+ 3
- 0
src/main/java/com/huiju/estateagents/property/service/impl/WxPayServiceImpl.java Vedi File

@@ -14,6 +14,7 @@ import com.huiju.estateagents.common.wxpay.WXPayUtil;
14 14
 import com.huiju.estateagents.common.wxpay.WxConfig;
15 15
 import com.huiju.estateagents.entity.TaPerson;
16 16
 import com.huiju.estateagents.entity.TaWxPayConfig;
17
+import com.huiju.estateagents.event.EventBus;
17 18
 import com.huiju.estateagents.mapper.TaPersonMapper;
18 19
 import com.huiju.estateagents.mapper.TaWxPayConfigMapper;
19 20
 import com.huiju.estateagents.property.common.Constant;
@@ -248,6 +249,8 @@ public class WxPayServiceImpl implements WxPayServiceI {
248 249
 			// 缴费方式  0:微信支付  1:线下缴费 2.支付宝支付
249 250
 			tpBillInvoice.setPayType(resultMap.get("pay_type"));
250 251
 			tpBillInvoiceMapper.updateById(tpBillInvoice);
252
+			// 同时加积分
253
+			applicationContext.publishEvent(new EventBus(tpBillInvoice, EventBus.EventType.payment,1));
251 254
 
252 255
 			//插入流水账单表
253 256
 			BillStatement tpBillStatement = new BillStatement();

+ 25
- 0
src/main/java/com/huiju/estateagents/service/ITaPointsRecordsService.java Vedi File

@@ -3,6 +3,10 @@ package com.huiju.estateagents.service;
3 3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4 4
 import com.baomidou.mybatisplus.extension.service.IService;
5 5
 import com.huiju.estateagents.entity.*;
6
+import com.huiju.estateagents.property.model.BillInvoice;
7
+import com.huiju.estateagents.property.model.BillStatement;
8
+import com.huiju.estateagents.property.model.TaUserVerify;
9
+import com.huiju.estateagents.property.model.TpTicket;
6 10
 
7 11
 /**
8 12
  * <p>
@@ -71,4 +75,25 @@ public interface ITaPointsRecordsService extends IService<TaPointsRecords> {
71 75
 	void saveGroupRecord(TaPerson person, Integer integral, String buildingId, Integer groupActivityId);
72 76
 
73 77
 	Integer sumPointByPersonId(String personId);
78
+
79
+	/**
80
+	 * 业主审核通过 
81
+	 * @param source
82
+	 * @param orgId
83
+	 */
84
+	void userVerifyPoints(TaUserVerify source, Integer orgId);
85
+
86
+	/**
87
+	 * 工单评价加积分
88
+	 * @param source
89
+	 * @param orgId
90
+	 */
91
+    void ticketEvaluationPoints(TpTicket source, Integer orgId);
92
+
93
+	/**
94
+	 * 缴费加积分
95
+	 * @param source
96
+	 * @param orgId
97
+	 */
98
+	void payment(BillInvoice source, Integer orgId);
74 99
 }

+ 96
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPointsRecordsServiceImpl.java Vedi File

@@ -13,6 +13,11 @@ import com.huiju.estateagents.entity.*;
13 13
 import com.huiju.estateagents.mapper.TaPersonMapper;
14 14
 import com.huiju.estateagents.mapper.TaPointsRecordsMapper;
15 15
 import com.huiju.estateagents.mapper.TdPointsRulesMapper;
16
+import com.huiju.estateagents.property.dao.TaUserVerifyMapper;
17
+import com.huiju.estateagents.property.model.BillInvoice;
18
+import com.huiju.estateagents.property.model.BillStatement;
19
+import com.huiju.estateagents.property.model.TaUserVerify;
20
+import com.huiju.estateagents.property.model.TpTicket;
16 21
 import com.huiju.estateagents.service.ITaPointsRecordsService;
17 22
 import org.springframework.beans.factory.annotation.Autowired;
18 23
 import org.springframework.stereotype.Service;
@@ -41,6 +46,9 @@ public class TaPointsRecordsServiceImpl extends ServiceImpl<TaPointsRecordsMappe
41 46
     @Autowired
42 47
     private TaPointsRecordsMapper taPointsRecordsMapper;
43 48
 
49
+    @Autowired
50
+    private TaUserVerifyMapper taUserVerifyMapper;
51
+
44 52
     /**
45 53
      * 获取规则积分, 0 代表未启用
46 54
      *
@@ -434,4 +442,92 @@ public class TaPointsRecordsServiceImpl extends ServiceImpl<TaPointsRecordsMappe
434 442
     public Integer sumPointByPersonId(String personId) {
435 443
         return taPointsRecordsMapper.sumPointByPersonId(personId);
436 444
     }
445
+
446
+    /**
447
+     * 业主审核通过
448
+     *
449
+     * @param userVerify
450
+     * @param orgId
451
+     */
452
+    @Override
453
+    public void userVerifyPoints(TaUserVerify userVerify, Integer orgId) {
454
+        //
455
+        String changeType = CommConstant.POINTS_USER_VERIFY;
456
+        // 是否开启积分规则
457
+        Integer pointsAmount = getRulePoints(changeType, orgId);
458
+        if (pointsAmount == 0) {
459
+            return;
460
+        }
461
+
462
+        // 已经领取过的不会再次领取
463
+        boolean hasJoined = isPointsRecordsExist(userVerify.getPersonId(), changeType, null);
464
+        if (hasJoined) {
465
+            return;
466
+        }
467
+
468
+        // 发放积分
469
+        TaPerson person = taPersonMapper.selectById(userVerify.getPersonId());
470
+        if (savePoints(person, changeType, null, pointsAmount, orgId)) {
471
+            taPersonMapper.setPointsIncrement(person.getPersonId(), pointsAmount);
472
+        }
473
+    }
474
+
475
+    /**
476
+     * 工单评价加积分
477
+     *
478
+     * @param source
479
+     * @param orgId
480
+     */
481
+    @Override
482
+    public void ticketEvaluationPoints(TpTicket source, Integer orgId) {
483
+        //
484
+        String changeType = CommConstant.POINTS_TICKET_EVALUATION;
485
+        // 是否开启积分规则
486
+        Integer pointsAmount = getRulePoints(changeType, orgId);
487
+        if (pointsAmount == 0) {
488
+            return;
489
+        }
490
+
491
+        // 已经领取过的不会再次领取
492
+        boolean hasJoined = isPointsRecordsExist(source.getPersonId(), changeType, null);
493
+        if (hasJoined) {
494
+            return;
495
+        }
496
+
497
+        // 发放积分
498
+        TaPerson person = taPersonMapper.selectById(source.getPersonId());
499
+        if (savePoints(person, changeType, null, pointsAmount, orgId)) {
500
+            taPersonMapper.setPointsIncrement(person.getPersonId(), pointsAmount);
501
+        }
502
+    }
503
+
504
+    /**
505
+     * 缴费加积分
506
+     *
507
+     * @param source
508
+     * @param orgId
509
+     */
510
+    @Override
511
+    public void payment(BillInvoice source, Integer orgId) {
512
+        //
513
+        String changeType = CommConstant.POINTS_PAYMENT;
514
+        // 是否开启积分规则
515
+        Integer pointsAmount = getRulePoints(changeType, orgId);
516
+        if (pointsAmount == 0) {
517
+            return;
518
+        }
519
+        // 缴费金额乘以积分加积分
520
+        Integer roomNoId = source.getRoomNoId();
521
+        QueryWrapper<TaUserVerify> taUserVerifyQueryWrapper = new QueryWrapper<>();
522
+        taUserVerifyQueryWrapper.eq("room_no_id",roomNoId);
523
+        taUserVerifyQueryWrapper.eq("verify_status",1);
524
+        TaUserVerify taUserVerify = taUserVerifyMapper.selectOne(taUserVerifyQueryWrapper);
525
+
526
+        int money = source.getPayPrice() / 100;
527
+        // 发放积分
528
+        TaPerson person = taPersonMapper.selectById(taUserVerify.getPersonId());
529
+        if (savePoints(person, changeType, null, pointsAmount * money, orgId)) {
530
+            taPersonMapper.setPointsIncrement(person.getPersonId(), pointsAmount);
531
+        }
532
+    }
437 533
 }