浏览代码

新需求调整

傅行帆 4 年前
父节点
当前提交
91cc69aa95

+ 2
- 1
src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java 查看文件

@@ -75,7 +75,8 @@ public class AccessInterceptor implements HandlerInterceptor {
75 75
             "/api/notify",//微信支付所有回调放过
76 76
             "/api/refund/",//微信退款所有回调放过
77 77
             "/api/fadd/",//所有的法大大回调放过
78
-            "/api/third"
78
+            "/api/third",
79
+            "/api/third/redirect/"
79 80
     };
80 81
 
81 82
     /*

+ 11
- 16
src/main/java/com/huiju/estateagents/third/controller/WxRedpackController.java 查看文件

@@ -3,7 +3,6 @@ package com.huiju.estateagents.third.controller;
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 4
 import com.huiju.estateagents.base.ResponseBean;
5 5
 import com.huiju.estateagents.common.CommConstant;
6
-import com.huiju.estateagents.redpack.entity.TaMpPerson;
7 6
 import com.huiju.estateagents.third.entity.TaMpInfo;
8 7
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
9 8
 import com.huiju.estateagents.third.service.ITaMpInfoService;
@@ -20,7 +19,9 @@ import org.springframework.stereotype.Controller;
20 19
 import org.springframework.web.bind.annotation.*;
21 20
 
22 21
 import javax.servlet.http.HttpServletRequest;
22
+import java.util.HashMap;
23 23
 import java.util.List;
24
+import java.util.Map;
24 25
 import java.util.stream.Collectors;
25 26
 
26 27
 /**
@@ -45,27 +46,23 @@ public class WxRedpackController {
45 46
      * @return
46 47
      */
47 48
     @GetMapping("/third/redirect/{mpAppid}/greet")
48
-    public ResponseBean greetUser(@PathVariable String mpAppid, @RequestParam String code, @RequestParam String personId, HttpServletRequest request) {
49
+    public ResponseBean greetUser(@PathVariable String mpAppid, @RequestParam String code, @RequestParam String personId,@RequestParam String sponsorPersonId,@RequestParam String drainageId, HttpServletRequest request) {
49 50
         WxMpService wxService = getWxMpService();
50 51
         if (!wxService.switchover(mpAppid)) {
51 52
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
52 53
         }
53
-        TaMpPerson taMpPerson = new TaMpPerson();
54
+        Map<String,Object> map = new HashMap<>();
54 55
         try {
55 56
             //换取openid
56 57
             WxMpOAuth2AccessToken accessToken = wxService.oauth2getAccessToken(code);
57 58
             WxMpUser user = wxService.oauth2getUserInfo(accessToken, null);
58 59
 
59
-            //获取H5项目相关信息
60
-            String xAppid = request.getHeader("x-appid");
61
-             //获取小程序appid
62
-            String miniAppid = request.getHeader("appid");
63 60
             //插入公众号人员信息并插入表
64
-            taMpPerson = iTaThirdPartyMiniappConfigService.newMpPerson(user, mpAppid, xAppid, miniAppid, personId);
61
+            map = iTaThirdPartyMiniappConfigService.newMpPerson(user, mpAppid, drainageId, sponsorPersonId, personId);
65 62
         } catch (WxErrorException e) {
66 63
             e.printStackTrace();
67 64
         }
68
-        return ResponseBean.success(taMpPerson);
65
+        return ResponseBean.success(map);
69 66
     }
70 67
 
71 68
     private WxMpService getWxMpService() {
@@ -95,16 +92,15 @@ public class WxRedpackController {
95 92
      * @return
96 93
      */
97 94
     @PostMapping("/third/activity/{mpAppid}/participate")
98
-    public ResponseBean participateActivity(@PathVariable String mpAppid, @RequestParam String mpPersonId, HttpServletRequest request) {
95
+    public ResponseBean participateActivity(@PathVariable String mpAppid, @RequestParam String mpPersonId,@RequestParam String drainageId, HttpServletRequest request) {
99 96
         WxMpService wxService = getWxMpService();
100 97
         if (!wxService.switchover(mpAppid)) {
101 98
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
102 99
         }
103 100
         //获取H5项目相关信息
104
-        String xAppid = request.getHeader("x-appid");
105 101
         QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();
106 102
 
107
-        taThirdPartyMiniappConfigQueryWrapper.eq("appid", xAppid);
103
+        taThirdPartyMiniappConfigQueryWrapper.eq("appid", drainageId);
108 104
         TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = iTaThirdPartyMiniappConfigService.getOne(taThirdPartyMiniappConfigQueryWrapper);
109 105
         if (null == taThirdPartyMiniappConfig){
110 106
             return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
@@ -126,22 +122,21 @@ public class WxRedpackController {
126 122
      * @return
127 123
      */
128 124
     @PostMapping("/third/activity/{mpAppid}/help")
129
-    public ResponseBean helpActivity(@PathVariable String mpAppid, @RequestParam String mpPersonId, @RequestParam String parentMpPersonId ,HttpServletRequest request) {
125
+    public ResponseBean helpActivity(@PathVariable String mpAppid, @RequestParam String mpPersonId, @RequestParam String sponsorPersonId,@RequestParam String drainageId, HttpServletRequest request) {
130 126
         WxMpService wxService = getWxMpService();
131 127
         if (!wxService.switchover(mpAppid)) {
132 128
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
133 129
         }
134 130
         //获取H5项目相关信息
135
-        String xAppid = request.getHeader("x-appid");
136 131
         QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();
137 132
 
138
-        taThirdPartyMiniappConfigQueryWrapper.eq("appid", xAppid);
133
+        taThirdPartyMiniappConfigQueryWrapper.eq("appid", drainageId);
139 134
         TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = iTaThirdPartyMiniappConfigService.getOne(taThirdPartyMiniappConfigQueryWrapper);
140 135
         if (null == taThirdPartyMiniappConfig){
141 136
             return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
142 137
         }
143 138
         try {
144
-            ResponseBean res = iTaThirdPartyMiniappConfigService.helpActivity(mpAppid, mpPersonId, parentMpPersonId, taThirdPartyMiniappConfig.getTargetId(),taThirdPartyMiniappConfig.getOrgId());
139
+            ResponseBean res = iTaThirdPartyMiniappConfigService.helpActivity(mpAppid, mpPersonId, sponsorPersonId, taThirdPartyMiniappConfig.getTargetId(),taThirdPartyMiniappConfig.getOrgId());
145 140
             return res;
146 141
         }catch (Exception e){
147 142
             e.printStackTrace();

+ 7
- 6
src/main/java/com/huiju/estateagents/third/service/ITaThirdPartyMiniappConfigService.java 查看文件

@@ -2,10 +2,11 @@ package com.huiju.estateagents.third.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4 4
 import com.huiju.estateagents.base.ResponseBean;
5
-import com.huiju.estateagents.redpack.entity.TaMpPerson;
6 5
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
7 6
 import me.chanjar.weixin.mp.bean.result.WxMpUser;
8 7
 
8
+import java.util.Map;
9
+
9 10
 /**
10 11
  * <p>
11 12
  *   服务类
@@ -28,11 +29,11 @@ public interface ITaThirdPartyMiniappConfigService extends IService<TaThirdParty
28 29
 	/**
29 30
 	 * 创建公众号人员并关联上小程序人员
30 31
 	 * @param user
31
-	 * @param xAppid
32
-	 * @param miniAppid
32
+	 * @param drainageId
33
+	 * @param sponsorPersonId
33 34
 	 * @param personId
34 35
 	 */
35
-	TaMpPerson newMpPerson(WxMpUser user, String mpAppid, String xAppid, String miniAppid, String personId);
36
+	Map<String,Object> newMpPerson(WxMpUser user, String mpAppid, String drainageId, String sponsorPersonId, String personId);
36 37
 
37 38
 	/**
38 39
 	 * 参加活动生成参与记录等
@@ -47,10 +48,10 @@ public interface ITaThirdPartyMiniappConfigService extends IService<TaThirdParty
47 48
 	 * 助力活动接口
48 49
 	 * @param mpAppid
49 50
 	 * @param mpPersonId
50
-	 * @param parentMpPersonId
51
+	 * @param sponsorPersonId
51 52
 	 * @param targetId
52 53
 	 * @param orgId
53 54
 	 * @return
54 55
 	 */
55
-	ResponseBean helpActivity(String mpAppid, String mpPersonId, String parentMpPersonId, String targetId, Integer orgId);
56
+	ResponseBean helpActivity(String mpAppid, String mpPersonId, String sponsorPersonId, String targetId, Integer orgId);
56 57
 }

+ 43
- 8
src/main/java/com/huiju/estateagents/third/service/impl/TaThirdPartyMiniappConfigServiceImpl.java 查看文件

@@ -11,6 +11,7 @@ import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
11 11
 import com.huiju.estateagents.base.ResponseBean;
12 12
 import com.huiju.estateagents.common.CommConstant;
13 13
 import com.huiju.estateagents.common.CommonUtils;
14
+import com.huiju.estateagents.common.JWTUtils;
14 15
 import com.huiju.estateagents.common.MD5Utils;
15 16
 import com.huiju.estateagents.drainage.entity.TaDrainage;
16 17
 import com.huiju.estateagents.drainage.mapper.TaDrainageMapper;
@@ -30,7 +31,9 @@ import org.springframework.stereotype.Service;
30 31
 
31 32
 import java.net.InetAddress;
32 33
 import java.time.LocalDateTime;
34
+import java.util.HashMap;
33 35
 import java.util.List;
36
+import java.util.Map;
34 37
 import java.util.Random;
35 38
 import java.util.stream.Collectors;
36 39
 
@@ -131,12 +134,13 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
131 134
 	 * 创建公众号人员并关联上小程序人员
132 135
 	 *
133 136
 	 * @param user
134
-	 * @param xAppid
135
-	 * @param miniAppid
137
+	 * @param drainageId
138
+	 * @param sponsorPersonId
136 139
 	 * @param personId
137 140
 	 */
138 141
 	@Override
139
-	public TaMpPerson newMpPerson(WxMpUser user,String mpAppid, String xAppid, String miniAppid, String personId) {
142
+	public Map<String,Object> newMpPerson(WxMpUser user, String mpAppid, String drainageId, String sponsorPersonId, String personId) {
143
+		Map<String,Object> map = new HashMap<>();
140 144
 		//查询这个人员是否存在
141 145
 		TaMpPerson mpPerson = taMpPersonMapper.selectOne(new QueryWrapper<TaMpPerson>().eq("mp_openid", user.getOpenId()));
142 146
 		//不存在就新建
@@ -149,7 +153,6 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
149 153
 			taMpPerson.setCreateDate(LocalDateTime.now());
150 154
 			taMpPerson.setHeadimgurl(user.getHeadImgUrl());
151 155
 			taMpPerson.setMpOpenid(user.getOpenId());
152
-			taMpPerson.setMpPersonId(personId);
153 156
 			taMpPerson.setNickname(user.getNickname());
154 157
 			taMpPerson.setProvince(user.getProvince());
155 158
 			taMpPerson.setSex(user.getSex());
@@ -167,7 +170,39 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
167 170
 			taMpMiniappMapper.insert(taMpMiniapp);
168 171
 		}
169 172
 
170
-		return mpPerson;
173
+		//我的小程序信息
174
+		TaPerson minePerson = taPersonMapper.selectById(personId);
175
+		map.put("minePerson",minePerson);
176
+
177
+		//我要助力的人的小程序信息
178
+		if (StringUtils.isNotEmpty(sponsorPersonId)){
179
+			TaPerson parentPerson = taPersonMapper.selectById(sponsorPersonId);
180
+			map.put("parentPerson",parentPerson);
181
+		}
182
+
183
+		//第一步根据drainggeid查询出红包表对应的记录
184
+		TaDrainage taDrainage = taDrainageMapper.selectById(drainageId);
185
+		//第二步查询出这个H5对应的活动
186
+		TaRedPacket taRedPacket = taRedPacketMapper.selectById(taDrainage.getActivityId());
187
+		//活动信息
188
+		map.put("taRedPacket",taRedPacket);
189
+
190
+		//是否我的红包助力报名信息
191
+		QueryWrapper<TaRedPacketPerson> queryWrapper = new QueryWrapper<>();
192
+		queryWrapper.eq("activity_id",taRedPacket.getActivityId());
193
+		queryWrapper.eq("org_id",taRedPacket.getOrgId());
194
+		queryWrapper.eq("mp_person_id",taMpMiniapp.getMpPersonId());
195
+		queryWrapper.eq("miniapp_person_id",taMpMiniapp.getMiniappPersonId());
196
+		TaRedPacketPerson mineRedPacketPerson = taRedPacketPersonMapper.selectOne(queryWrapper);
197
+		map.put("mineRedPacketPerson",mineRedPacketPerson);
198
+		//token
199
+		Map<Object, Object> tokenMap = new HashMap<>();
200
+		tokenMap.put("openId", user.getOpenId());
201
+		tokenMap.put("orgId", taRedPacket.getOrgId());
202
+		tokenMap.put("personId", taMpMiniapp.getMiniappPersonId());//小程序的personid
203
+		map.put("token", JWTUtils.newTokenByMap(tokenMap));
204
+
205
+		return map;
171 206
 	}
172 207
 
173 208
 	/**
@@ -236,13 +271,13 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
236 271
 	 *
237 272
 	 * @param mpAppid 公众号appid
238 273
 	 * @param mpPersonId 公众号personId
239
-	 * @param parentMpPersonId 公众号被助力者的peisonId
274
+	 * @param sponsorPersonId 公众号发起人id
240 275
 	 * @param drainageId H5活动id
241 276
 	 * @param orgId 小程序id
242 277
 	 * @return
243 278
 	 */
244 279
 	@Override
245
-	public ResponseBean helpActivity(String mpAppid, String mpPersonId, String parentMpPersonId, String drainageId, Integer orgId) {
280
+	public ResponseBean helpActivity(String mpAppid, String mpPersonId, String sponsorPersonId, String drainageId, Integer orgId) {
246 281
 		//第一步根据drainggeid查询出红包表对应的记录
247 282
 		TaDrainage taDrainage = taDrainageMapper.selectById(drainageId);
248 283
 		//第二步查询出这个H5对应的活动
@@ -259,7 +294,7 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
259 294
 		TaMpMiniapp taMpMiniapp = taMpMiniappMapper.selectOne(new QueryWrapper<TaMpMiniapp>().eq("mp_person_id", mpPersonId));
260 295
 
261 296
 		//查询被助力者的绑定的小程序用户
262
-		TaMpMiniapp parentMpMiniapp = taMpMiniappMapper.selectOne(new QueryWrapper<TaMpMiniapp>().eq("mp_person_id", parentMpPersonId));
297
+		TaMpMiniapp parentMpMiniapp = taMpMiniappMapper.selectOne(new QueryWrapper<TaMpMiniapp>().eq("mp_person_id", sponsorPersonId));
263 298
 
264 299
 		//根据活动id查询这个活动的助力规则
265 300
 		TaRedPacketHelp taRedPacketHelp = taRedPacketHelpMapper.selectById(taDrainage.getActivityId());