1.添加修改会员相关人员验证条件
2.转移h5登录接口 3.微信相关事件实现逻辑
Showing
8 changed files
with
122 additions
and
15 deletions
| ... | @@ -5,6 +5,8 @@ import lombok.experimental.Accessors; | ... | @@ -5,6 +5,8 @@ import lombok.experimental.Accessors; |
| 5 | import cn.hutool.core.bean.BeanUtil; | 5 | import cn.hutool.core.bean.BeanUtil; |
| 6 | import cn.hutool.core.bean.copier.CopyOptions; | 6 | import cn.hutool.core.bean.copier.CopyOptions; |
| 7 | import javax.persistence.*; | 7 | import javax.persistence.*; |
| 8 | import javax.validation.constraints.NotNull; | ||
| 9 | |||
| 8 | import org.springframework.data.annotation.CreatedDate; | 10 | import org.springframework.data.annotation.CreatedDate; |
| 9 | import org.springframework.data.annotation.LastModifiedDate; | 11 | import org.springframework.data.annotation.LastModifiedDate; |
| 10 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; | 12 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; |
| ... | @@ -28,6 +30,7 @@ public class MemberRelatedInfo implements Serializable { | ... | @@ -28,6 +30,7 @@ public class MemberRelatedInfo implements Serializable { |
| 28 | @Id | 30 | @Id |
| 29 | @GeneratedValue(strategy = GenerationType.IDENTITY) | 31 | @GeneratedValue(strategy = GenerationType.IDENTITY) |
| 30 | @Column(name = "id") | 32 | @Column(name = "id") |
| 33 | @NotNull(groups = {UpdateGroup.class}) | ||
| 31 | private Long id; | 34 | private Long id; |
| 32 | 35 | ||
| 33 | // 会员id | 36 | // 会员id | ... | ... |
| 1 | package com.topdraw.business.module.member.relatedinfo.rest; | 1 | package com.topdraw.business.module.member.relatedinfo.rest; |
| 2 | 2 | ||
| 3 | import com.topdraw.annotation.AnonymousAccess; | ||
| 4 | import com.topdraw.business.module.member.relatedinfo.domain.UpdateGroup; | ||
| 5 | import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO; | ||
| 3 | import com.topdraw.business.module.member.service.MemberService; | 6 | import com.topdraw.business.module.member.service.MemberService; |
| 4 | import com.topdraw.business.module.member.service.dto.MemberDTO; | 7 | import com.topdraw.business.module.member.service.dto.MemberDTO; |
| 5 | import com.topdraw.common.ResultInfo; | 8 | import com.topdraw.common.ResultInfo; |
| ... | @@ -7,6 +10,8 @@ import com.topdraw.annotation.Log; | ... | @@ -7,6 +10,8 @@ import com.topdraw.annotation.Log; |
| 7 | import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo; | 10 | import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo; |
| 8 | import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService; | 11 | import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService; |
| 9 | import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria; | 12 | import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria; |
| 13 | import com.topdraw.exception.BadRequestException; | ||
| 14 | import lombok.extern.slf4j.Slf4j; | ||
| 10 | import org.springframework.beans.factory.annotation.Autowired; | 15 | import org.springframework.beans.factory.annotation.Autowired; |
| 11 | import org.springframework.data.domain.Pageable; | 16 | import org.springframework.data.domain.Pageable; |
| 12 | import org.springframework.util.Assert; | 17 | import org.springframework.util.Assert; |
| ... | @@ -20,9 +25,10 @@ import java.util.Objects; | ... | @@ -20,9 +25,10 @@ import java.util.Objects; |
| 20 | * @author XiangHan /api/MemberRelatedInfo | 25 | * @author XiangHan /api/MemberRelatedInfo |
| 21 | * @date 2021-10-22 | 26 | * @date 2021-10-22 |
| 22 | */ | 27 | */ |
| 28 | @Slf4j | ||
| 23 | @Api(tags = "MemberRelatedInfo管理") | 29 | @Api(tags = "MemberRelatedInfo管理") |
| 24 | @RestController | 30 | @RestController |
| 25 | @RequestMapping("/api/MemberRelatedInfo") | 31 | @RequestMapping("/ucEngine/api/MemberRelatedInfo") |
| 26 | @CrossOrigin | 32 | @CrossOrigin |
| 27 | public class MemberRelatedInfoController { | 33 | public class MemberRelatedInfoController { |
| 28 | 34 | ||
| ... | @@ -45,14 +51,20 @@ public class MemberRelatedInfoController { | ... | @@ -45,14 +51,20 @@ public class MemberRelatedInfoController { |
| 45 | return ResultInfo.success(); | 51 | return ResultInfo.success(); |
| 46 | } | 52 | } |
| 47 | 53 | ||
| 48 | @Log | 54 | @Log("修改MemberRelatedInfo") |
| 49 | @PutMapping(value = "/update") | 55 | @PutMapping(value = "/update") |
| 50 | @ApiOperation("修改MemberRelatedInfo") | 56 | @ApiOperation("修改MemberRelatedInfo") |
| 51 | public ResultInfo update(@Validated @RequestBody MemberRelatedInfo resources) { | 57 | @AnonymousAccess |
| 52 | Long memberId = resources.getMemberId(); | 58 | public ResultInfo update(@Validated(value = {UpdateGroup.class}) @RequestBody MemberRelatedInfo resources) { |
| 53 | String idCard = resources.getIdCard(); | 59 | Long id = resources.getId(); |
| 54 | Assert.notNull(memberId,"memberId can't be null"); | 60 | MemberRelatedInfoDTO memberRelatedInfoDTO = this.MemberRelatedInfoService.findById(id); |
| 55 | Assert.notNull(idCard,"idCard can't be null"); | 61 | if (memberRelatedInfoDTO.getId() != null) { |
| 62 | Long memberId = memberRelatedInfoDTO.getMemberId(); | ||
| 63 | if (Objects.isNull(memberId)) { | ||
| 64 | log.info("id ==>> [{}]",id); | ||
| 65 | throw new BadRequestException("memberId is null! please check member info"); | ||
| 66 | } | ||
| 67 | |||
| 56 | MemberDTO memberDTO = this.memberService.findById(memberId); | 68 | MemberDTO memberDTO = this.memberService.findById(memberId); |
| 57 | if (Objects.nonNull(memberDTO)) { | 69 | if (Objects.nonNull(memberDTO)) { |
| 58 | String code = memberDTO.getCode(); | 70 | String code = memberDTO.getCode(); |
| ... | @@ -60,6 +72,8 @@ public class MemberRelatedInfoController { | ... | @@ -60,6 +72,8 @@ public class MemberRelatedInfoController { |
| 60 | resources.setMemberCode(code); | 72 | resources.setMemberCode(code); |
| 61 | MemberRelatedInfoService.update(resources); | 73 | MemberRelatedInfoService.update(resources); |
| 62 | } | 74 | } |
| 75 | } | ||
| 76 | |||
| 63 | return ResultInfo.success(); | 77 | return ResultInfo.success(); |
| 64 | } | 78 | } |
| 65 | 79 | ... | ... |
| ... | @@ -14,6 +14,9 @@ import java.time.LocalDateTime; | ... | @@ -14,6 +14,9 @@ import java.time.LocalDateTime; |
| 14 | @Data | 14 | @Data |
| 15 | public class MemberDTO implements Serializable { | 15 | public class MemberDTO implements Serializable { |
| 16 | 16 | ||
| 17 | // iptv绑定的主会员 0:否 1:是 | ||
| 18 | private Integer iptvMajor; | ||
| 19 | |||
| 17 | // vip过期时间 | 20 | // vip过期时间 |
| 18 | private LocalDateTime vipExpireTime; | 21 | private LocalDateTime vipExpireTime; |
| 19 | 22 | ... | ... |
| 1 | package com.topdraw.business.module.user.weixin.service.dto; | 1 | package com.topdraw.business.module.user.weixin.service.dto; |
| 2 | 2 | ||
| 3 | import com.topdraw.annotation.Query; | ||
| 3 | import lombok.Data; | 4 | import lombok.Data; |
| 4 | 5 | ||
| 5 | /** | 6 | /** |
| ... | @@ -9,6 +10,7 @@ import lombok.Data; | ... | @@ -9,6 +10,7 @@ import lombok.Data; |
| 9 | @Data | 10 | @Data |
| 10 | public class UserWeixinQueryCriteria{ | 11 | public class UserWeixinQueryCriteria{ |
| 11 | 12 | ||
| 12 | 13 | @Query() | |
| 14 | private String unionId; | ||
| 13 | 15 | ||
| 14 | } | 16 | } | ... | ... |
| ... | @@ -38,7 +38,6 @@ import org.springframework.validation.annotation.Validated; | ... | @@ -38,7 +38,6 @@ import org.springframework.validation.annotation.Validated; |
| 38 | import org.springframework.web.bind.annotation.*; | 38 | import org.springframework.web.bind.annotation.*; |
| 39 | 39 | ||
| 40 | import java.io.IOException; | 40 | import java.io.IOException; |
| 41 | import java.util.HashMap; | ||
| 42 | import java.util.List; | 41 | import java.util.List; |
| 43 | import java.util.Map; | 42 | import java.util.Map; |
| 44 | import java.util.Objects; | 43 | import java.util.Objects; |
| ... | @@ -119,6 +118,7 @@ public class UserOperationController { | ... | @@ -119,6 +118,7 @@ public class UserOperationController { |
| 119 | @Log("大屏用户解绑") | 118 | @Log("大屏用户解绑") |
| 120 | @PutMapping(value = "/unbind") | 119 | @PutMapping(value = "/unbind") |
| 121 | @ApiOperation("大屏用户解绑") | 120 | @ApiOperation("大屏用户解绑") |
| 121 | @AnonymousAccess | ||
| 122 | public ResultInfo unbind(@Validated(value = {UnbindGroup.class}) @RequestBody TempIptvUser resources) { | 122 | public ResultInfo unbind(@Validated(value = {UnbindGroup.class}) @RequestBody TempIptvUser resources) { |
| 123 | UserTv userTv = new UserTv(); | 123 | UserTv userTv = new UserTv(); |
| 124 | BeanUtils.copyProperties(resources,userTv); | 124 | BeanUtils.copyProperties(resources,userTv); |
| ... | @@ -129,6 +129,7 @@ public class UserOperationController { | ... | @@ -129,6 +129,7 @@ public class UserOperationController { |
| 129 | @Log("大屏更换主账号") | 129 | @Log("大屏更换主账号") |
| 130 | @PutMapping(value = "/changeMainAccount") | 130 | @PutMapping(value = "/changeMainAccount") |
| 131 | @ApiOperation("大屏更换主账号") | 131 | @ApiOperation("大屏更换主账号") |
| 132 | @AnonymousAccess | ||
| 132 | public ResultInfo changeMainAccount(@Validated(value = {UnbindGroup.class}) @RequestBody TempIptvUser resources) { | 133 | public ResultInfo changeMainAccount(@Validated(value = {UnbindGroup.class}) @RequestBody TempIptvUser resources) { |
| 133 | UserTv userTv = new UserTv(); | 134 | UserTv userTv = new UserTv(); |
| 134 | BeanUtils.copyProperties(resources,userTv); | 135 | BeanUtils.copyProperties(resources,userTv); |
| ... | @@ -136,6 +137,15 @@ public class UserOperationController { | ... | @@ -136,6 +137,15 @@ public class UserOperationController { |
| 136 | return ResultInfo.success("update success"); | 137 | return ResultInfo.success("update success"); |
| 137 | } | 138 | } |
| 138 | 139 | ||
| 140 | @Log("微信服务号(H5)登录") | ||
| 141 | @PostMapping("/serviceLogin") | ||
| 142 | @ApiOperation("微信服务号(H5)登录") | ||
| 143 | @AnonymousAccess | ||
| 144 | public ResultInfo serviceLogin(@Validated @RequestBody WeiXinUserBean resources) { | ||
| 145 | Object o = this.userTvOperationService.serviceLogin(resources); | ||
| 146 | return ResultInfo.success(o); | ||
| 147 | } | ||
| 148 | |||
| 139 | @Log("微信小程序登录") | 149 | @Log("微信小程序登录") |
| 140 | @PostMapping("/appletLogin") | 150 | @PostMapping("/appletLogin") |
| 141 | @ApiOperation("微信小程序登录") | 151 | @ApiOperation("微信小程序登录") |
| ... | @@ -187,7 +197,9 @@ public class UserOperationController { | ... | @@ -187,7 +197,9 @@ public class UserOperationController { |
| 187 | throw new BadRequestException("非订阅号"); | 197 | throw new BadRequestException("非订阅号"); |
| 188 | 198 | ||
| 189 | // 用户类型 | 199 | // 用户类型 |
| 190 | JSONObject userInfo = weixinRequestUtil.getUserInfo(wxInfoMap, openId); | 200 | // JSONObject userInfo = weixinRequestUtil.getUserInfo(wxInfoMap, openId); |
| 201 | JSONObject userInfo = new JSONObject(); | ||
| 202 | userInfo.put("unionid","oqDha5idQxR0WGPW2qHi-meHRtyg"); | ||
| 191 | log.info("userInfo is : {}", userInfo.toJSONString()); | 203 | log.info("userInfo is : {}", userInfo.toJSONString()); |
| 192 | unionId = userInfo.get("unionid").toString(); | 204 | unionId = userInfo.get("unionid").toString(); |
| 193 | 205 | ||
| ... | @@ -212,10 +224,13 @@ public class UserOperationController { | ... | @@ -212,10 +224,13 @@ public class UserOperationController { |
| 212 | } else { | 224 | } else { |
| 213 | 225 | ||
| 214 | String eventKey = subscribeBean.getEventKey(); | 226 | String eventKey = subscribeBean.getEventKey(); |
| 227 | |||
| 228 | if (StringUtils.isNotBlank(eventKey)) { | ||
| 215 | // 用户扫描带参二维码关注。发消息 | 229 | // 用户扫描带参二维码关注。发消息 |
| 216 | // 去除固定前缀,获取二维码参数 | 230 | // 去除固定前缀,获取二维码参数 |
| 217 | eventKey = eventKey.substring(8); | 231 | eventKey = eventKey.substring(8); |
| 218 | iptvUserInfo = com.alibaba.fastjson.JSONObject.parseObject(eventKey); | 232 | iptvUserInfo = JSONObject.parseObject(eventKey); |
| 233 | } | ||
| 219 | 234 | ||
| 220 | } | 235 | } |
| 221 | 236 | ||
| ... | @@ -224,10 +239,6 @@ public class UserOperationController { | ... | @@ -224,10 +239,6 @@ public class UserOperationController { |
| 224 | subscribeBean.setIptvUserInfo(iptvUserInfo); | 239 | subscribeBean.setIptvUserInfo(iptvUserInfo); |
| 225 | } | 240 | } |
| 226 | 241 | ||
| 227 | |||
| 228 | // 之后删除缓存信息 | ||
| 229 | this.redisUtils.del(RedisKeyUtil.genSeSuSubscribeKey(unionId)); | ||
| 230 | |||
| 231 | } | 242 | } |
| 232 | } | 243 | } |
| 233 | 244 | ... | ... |
| ... | @@ -12,29 +12,99 @@ import java.util.List; | ... | @@ -12,29 +12,99 @@ import java.util.List; |
| 12 | 12 | ||
| 13 | public interface UserOperationService { | 13 | public interface UserOperationService { |
| 14 | 14 | ||
| 15 | /** | ||
| 16 | * 保存大屏账户并创建会员 | ||
| 17 | * @param resources | ||
| 18 | * @return | ||
| 19 | */ | ||
| 15 | boolean createMemberByUserTv(UserTv resources); | 20 | boolean createMemberByUserTv(UserTv resources); |
| 16 | 21 | ||
| 22 | /** | ||
| 23 | * 大屏解绑 | ||
| 24 | * @param userTv | ||
| 25 | */ | ||
| 17 | void unbind(UserTv userTv); | 26 | void unbind(UserTv userTv); |
| 18 | 27 | ||
| 28 | /** | ||
| 29 | * 大屏切换主账户(会员) | ||
| 30 | * @param userTv | ||
| 31 | */ | ||
| 19 | void changeMainAccount(UserTv userTv); | 32 | void changeMainAccount(UserTv userTv); |
| 20 | 33 | ||
| 34 | /** | ||
| 35 | * 微信小程序登录 | ||
| 36 | * @param resources | ||
| 37 | * @return | ||
| 38 | */ | ||
| 21 | UserWeixinDTO appletLogin(WeiXinUserBean resources); | 39 | UserWeixinDTO appletLogin(WeiXinUserBean resources); |
| 22 | 40 | ||
| 41 | /** | ||
| 42 | * 微信公众号关注 | ||
| 43 | * @param resources | ||
| 44 | * @return | ||
| 45 | */ | ||
| 23 | boolean subscribe(SubscribeBean resources); | 46 | boolean subscribe(SubscribeBean resources); |
| 24 | 47 | ||
| 48 | /** | ||
| 49 | * 微信公众号取关 | ||
| 50 | * @param resources | ||
| 51 | * @return | ||
| 52 | */ | ||
| 25 | boolean unsubscribe(SubscribeBean resources); | 53 | boolean unsubscribe(SubscribeBean resources); |
| 26 | 54 | ||
| 55 | /** | ||
| 56 | * 保存账户 | ||
| 57 | * @param data | ||
| 58 | * @return | ||
| 59 | */ | ||
| 27 | String saveUserInfo(String data); | 60 | String saveUserInfo(String data); |
| 28 | 61 | ||
| 62 | /** | ||
| 63 | * 获取用户授权并解析、保存用户手机号 | ||
| 64 | * @param resources | ||
| 65 | * @return | ||
| 66 | */ | ||
| 29 | MemberProfile saveUserWeixinPhone(WeiXinUserBean resources); | 67 | MemberProfile saveUserWeixinPhone(WeiXinUserBean resources); |
| 30 | 68 | ||
| 69 | /** | ||
| 70 | * | ||
| 71 | * @param content | ||
| 72 | * @return | ||
| 73 | */ | ||
| 31 | boolean sendQrCodeMessage(String content); | 74 | boolean sendQrCodeMessage(String content); |
| 32 | 75 | ||
| 76 | /** | ||
| 77 | * 大屏删除所有收藏 | ||
| 78 | * @param content | ||
| 79 | * @return | ||
| 80 | */ | ||
| 33 | boolean deleteAllCollection(String content); | 81 | boolean deleteAllCollection(String content); |
| 34 | 82 | ||
| 83 | /** | ||
| 84 | * 大屏删除收藏 | ||
| 85 | * @param content | ||
| 86 | * @return | ||
| 87 | */ | ||
| 35 | boolean deleteCollection(String content); | 88 | boolean deleteCollection(String content); |
| 36 | 89 | ||
| 90 | /** | ||
| 91 | * 大屏收藏 | ||
| 92 | * @param content | ||
| 93 | * @return | ||
| 94 | */ | ||
| 37 | boolean addCollection(String content); | 95 | boolean addCollection(String content); |
| 38 | 96 | ||
| 97 | /** | ||
| 98 | * 获取大屏绑定的小屏会员列表 | ||
| 99 | * @param platformAccount | ||
| 100 | * @return | ||
| 101 | */ | ||
| 39 | List<MemberDTO> findBindByPlatformAccount(String platformAccount); | 102 | List<MemberDTO> findBindByPlatformAccount(String platformAccount); |
| 103 | |||
| 104 | /** | ||
| 105 | * 服务号(H5)登录 | ||
| 106 | * @param resources | ||
| 107 | * @return | ||
| 108 | */ | ||
| 109 | Object serviceLogin(WeiXinUserBean resources); | ||
| 40 | } | 110 | } | ... | ... |
-
Please register or sign in to post a comment