傅行帆 пре 4 година
родитељ
комит
91cc69aa95

+ 2
- 1
src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java Прегледај датотеку

75
             "/api/notify",//微信支付所有回调放过
75
             "/api/notify",//微信支付所有回调放过
76
             "/api/refund/",//微信退款所有回调放过
76
             "/api/refund/",//微信退款所有回调放过
77
             "/api/fadd/",//所有的法大大回调放过
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
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
 import com.huiju.estateagents.base.ResponseBean;
4
 import com.huiju.estateagents.base.ResponseBean;
5
 import com.huiju.estateagents.common.CommConstant;
5
 import com.huiju.estateagents.common.CommConstant;
6
-import com.huiju.estateagents.redpack.entity.TaMpPerson;
7
 import com.huiju.estateagents.third.entity.TaMpInfo;
6
 import com.huiju.estateagents.third.entity.TaMpInfo;
8
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
7
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
9
 import com.huiju.estateagents.third.service.ITaMpInfoService;
8
 import com.huiju.estateagents.third.service.ITaMpInfoService;
20
 import org.springframework.web.bind.annotation.*;
19
 import org.springframework.web.bind.annotation.*;
21
 
20
 
22
 import javax.servlet.http.HttpServletRequest;
21
 import javax.servlet.http.HttpServletRequest;
22
+import java.util.HashMap;
23
 import java.util.List;
23
 import java.util.List;
24
+import java.util.Map;
24
 import java.util.stream.Collectors;
25
 import java.util.stream.Collectors;
25
 
26
 
26
 /**
27
 /**
45
      * @return
46
      * @return
46
      */
47
      */
47
     @GetMapping("/third/redirect/{mpAppid}/greet")
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
         WxMpService wxService = getWxMpService();
50
         WxMpService wxService = getWxMpService();
50
         if (!wxService.switchover(mpAppid)) {
51
         if (!wxService.switchover(mpAppid)) {
51
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
52
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
52
         }
53
         }
53
-        TaMpPerson taMpPerson = new TaMpPerson();
54
+        Map<String,Object> map = new HashMap<>();
54
         try {
55
         try {
55
             //换取openid
56
             //换取openid
56
             WxMpOAuth2AccessToken accessToken = wxService.oauth2getAccessToken(code);
57
             WxMpOAuth2AccessToken accessToken = wxService.oauth2getAccessToken(code);
57
             WxMpUser user = wxService.oauth2getUserInfo(accessToken, null);
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
         } catch (WxErrorException e) {
62
         } catch (WxErrorException e) {
66
             e.printStackTrace();
63
             e.printStackTrace();
67
         }
64
         }
68
-        return ResponseBean.success(taMpPerson);
65
+        return ResponseBean.success(map);
69
     }
66
     }
70
 
67
 
71
     private WxMpService getWxMpService() {
68
     private WxMpService getWxMpService() {
95
      * @return
92
      * @return
96
      */
93
      */
97
     @PostMapping("/third/activity/{mpAppid}/participate")
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
         WxMpService wxService = getWxMpService();
96
         WxMpService wxService = getWxMpService();
100
         if (!wxService.switchover(mpAppid)) {
97
         if (!wxService.switchover(mpAppid)) {
101
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
98
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
102
         }
99
         }
103
         //获取H5项目相关信息
100
         //获取H5项目相关信息
104
-        String xAppid = request.getHeader("x-appid");
105
         QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();
101
         QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();
106
 
102
 
107
-        taThirdPartyMiniappConfigQueryWrapper.eq("appid", xAppid);
103
+        taThirdPartyMiniappConfigQueryWrapper.eq("appid", drainageId);
108
         TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = iTaThirdPartyMiniappConfigService.getOne(taThirdPartyMiniappConfigQueryWrapper);
104
         TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = iTaThirdPartyMiniappConfigService.getOne(taThirdPartyMiniappConfigQueryWrapper);
109
         if (null == taThirdPartyMiniappConfig){
105
         if (null == taThirdPartyMiniappConfig){
110
             return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
106
             return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
126
      * @return
122
      * @return
127
      */
123
      */
128
     @PostMapping("/third/activity/{mpAppid}/help")
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
         WxMpService wxService = getWxMpService();
126
         WxMpService wxService = getWxMpService();
131
         if (!wxService.switchover(mpAppid)) {
127
         if (!wxService.switchover(mpAppid)) {
132
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
128
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
133
         }
129
         }
134
         //获取H5项目相关信息
130
         //获取H5项目相关信息
135
-        String xAppid = request.getHeader("x-appid");
136
         QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();
131
         QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();
137
 
132
 
138
-        taThirdPartyMiniappConfigQueryWrapper.eq("appid", xAppid);
133
+        taThirdPartyMiniappConfigQueryWrapper.eq("appid", drainageId);
139
         TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = iTaThirdPartyMiniappConfigService.getOne(taThirdPartyMiniappConfigQueryWrapper);
134
         TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = iTaThirdPartyMiniappConfigService.getOne(taThirdPartyMiniappConfigQueryWrapper);
140
         if (null == taThirdPartyMiniappConfig){
135
         if (null == taThirdPartyMiniappConfig){
141
             return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
136
             return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
142
         }
137
         }
143
         try {
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
             return res;
140
             return res;
146
         }catch (Exception e){
141
         }catch (Exception e){
147
             e.printStackTrace();
142
             e.printStackTrace();

+ 7
- 6
src/main/java/com/huiju/estateagents/third/service/ITaThirdPartyMiniappConfigService.java Прегледај датотеку

2
 
2
 
3
 import com.baomidou.mybatisplus.extension.service.IService;
3
 import com.baomidou.mybatisplus.extension.service.IService;
4
 import com.huiju.estateagents.base.ResponseBean;
4
 import com.huiju.estateagents.base.ResponseBean;
5
-import com.huiju.estateagents.redpack.entity.TaMpPerson;
6
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
5
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
7
 import me.chanjar.weixin.mp.bean.result.WxMpUser;
6
 import me.chanjar.weixin.mp.bean.result.WxMpUser;
8
 
7
 
8
+import java.util.Map;
9
+
9
 /**
10
 /**
10
  * <p>
11
  * <p>
11
  *   服务类
12
  *   服务类
28
 	/**
29
 	/**
29
 	 * 创建公众号人员并关联上小程序人员
30
 	 * 创建公众号人员并关联上小程序人员
30
 	 * @param user
31
 	 * @param user
31
-	 * @param xAppid
32
-	 * @param miniAppid
32
+	 * @param drainageId
33
+	 * @param sponsorPersonId
33
 	 * @param personId
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
 	 * 助力活动接口
48
 	 * 助力活动接口
48
 	 * @param mpAppid
49
 	 * @param mpAppid
49
 	 * @param mpPersonId
50
 	 * @param mpPersonId
50
-	 * @param parentMpPersonId
51
+	 * @param sponsorPersonId
51
 	 * @param targetId
52
 	 * @param targetId
52
 	 * @param orgId
53
 	 * @param orgId
53
 	 * @return
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
 import com.huiju.estateagents.base.ResponseBean;
11
 import com.huiju.estateagents.base.ResponseBean;
12
 import com.huiju.estateagents.common.CommConstant;
12
 import com.huiju.estateagents.common.CommConstant;
13
 import com.huiju.estateagents.common.CommonUtils;
13
 import com.huiju.estateagents.common.CommonUtils;
14
+import com.huiju.estateagents.common.JWTUtils;
14
 import com.huiju.estateagents.common.MD5Utils;
15
 import com.huiju.estateagents.common.MD5Utils;
15
 import com.huiju.estateagents.drainage.entity.TaDrainage;
16
 import com.huiju.estateagents.drainage.entity.TaDrainage;
16
 import com.huiju.estateagents.drainage.mapper.TaDrainageMapper;
17
 import com.huiju.estateagents.drainage.mapper.TaDrainageMapper;
30
 
31
 
31
 import java.net.InetAddress;
32
 import java.net.InetAddress;
32
 import java.time.LocalDateTime;
33
 import java.time.LocalDateTime;
34
+import java.util.HashMap;
33
 import java.util.List;
35
 import java.util.List;
36
+import java.util.Map;
34
 import java.util.Random;
37
 import java.util.Random;
35
 import java.util.stream.Collectors;
38
 import java.util.stream.Collectors;
36
 
39
 
131
 	 * 创建公众号人员并关联上小程序人员
134
 	 * 创建公众号人员并关联上小程序人员
132
 	 *
135
 	 *
133
 	 * @param user
136
 	 * @param user
134
-	 * @param xAppid
135
-	 * @param miniAppid
137
+	 * @param drainageId
138
+	 * @param sponsorPersonId
136
 	 * @param personId
139
 	 * @param personId
137
 	 */
140
 	 */
138
 	@Override
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
 		TaMpPerson mpPerson = taMpPersonMapper.selectOne(new QueryWrapper<TaMpPerson>().eq("mp_openid", user.getOpenId()));
145
 		TaMpPerson mpPerson = taMpPersonMapper.selectOne(new QueryWrapper<TaMpPerson>().eq("mp_openid", user.getOpenId()));
142
 		//不存在就新建
146
 		//不存在就新建
149
 			taMpPerson.setCreateDate(LocalDateTime.now());
153
 			taMpPerson.setCreateDate(LocalDateTime.now());
150
 			taMpPerson.setHeadimgurl(user.getHeadImgUrl());
154
 			taMpPerson.setHeadimgurl(user.getHeadImgUrl());
151
 			taMpPerson.setMpOpenid(user.getOpenId());
155
 			taMpPerson.setMpOpenid(user.getOpenId());
152
-			taMpPerson.setMpPersonId(personId);
153
 			taMpPerson.setNickname(user.getNickname());
156
 			taMpPerson.setNickname(user.getNickname());
154
 			taMpPerson.setProvince(user.getProvince());
157
 			taMpPerson.setProvince(user.getProvince());
155
 			taMpPerson.setSex(user.getSex());
158
 			taMpPerson.setSex(user.getSex());
167
 			taMpMiniappMapper.insert(taMpMiniapp);
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
 	 *
271
 	 *
237
 	 * @param mpAppid 公众号appid
272
 	 * @param mpAppid 公众号appid
238
 	 * @param mpPersonId 公众号personId
273
 	 * @param mpPersonId 公众号personId
239
-	 * @param parentMpPersonId 公众号被助力者的peisonId
274
+	 * @param sponsorPersonId 公众号发起人id
240
 	 * @param drainageId H5活动id
275
 	 * @param drainageId H5活动id
241
 	 * @param orgId 小程序id
276
 	 * @param orgId 小程序id
242
 	 * @return
277
 	 * @return
243
 	 */
278
 	 */
244
 	@Override
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
 		//第一步根据drainggeid查询出红包表对应的记录
281
 		//第一步根据drainggeid查询出红包表对应的记录
247
 		TaDrainage taDrainage = taDrainageMapper.selectById(drainageId);
282
 		TaDrainage taDrainage = taDrainageMapper.selectById(drainageId);
248
 		//第二步查询出这个H5对应的活动
283
 		//第二步查询出这个H5对应的活动
259
 		TaMpMiniapp taMpMiniapp = taMpMiniappMapper.selectOne(new QueryWrapper<TaMpMiniapp>().eq("mp_person_id", mpPersonId));
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
 		//根据活动id查询这个活动的助力规则
299
 		//根据活动id查询这个活动的助力规则
265
 		TaRedPacketHelp taRedPacketHelp = taRedPacketHelpMapper.selectById(taDrainage.getActivityId());
300
 		TaRedPacketHelp taRedPacketHelp = taRedPacketHelpMapper.selectById(taDrainage.getActivityId());