Commit 5ffd851f 5ffd851fee76439613df7fdb7f0c1a399e063297 by xianghan@topdraw.cn

V1.0.2.REALESE

1 parent 2bf05374
...@@ -4,6 +4,7 @@ import com.topdraw.business.module.member.domain.Member; ...@@ -4,6 +4,7 @@ import com.topdraw.business.module.member.domain.Member;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
7 import java.util.List;
7 import java.util.Optional; 8 import java.util.Optional;
8 9
9 /** 10 /**
...@@ -13,4 +14,6 @@ import java.util.Optional; ...@@ -13,4 +14,6 @@ import java.util.Optional;
13 public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecificationExecutor<Member> { 14 public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecificationExecutor<Member> {
14 15
15 Optional<Member> findFirstByCode(String code); 16 Optional<Member> findFirstByCode(String code);
17
18 List<Member> findByUserIptvId(Long id);
16 } 19 }
......
...@@ -68,4 +68,6 @@ public interface MemberService { ...@@ -68,4 +68,6 @@ public interface MemberService {
68 * @param member 68 * @param member
69 */ 69 */
70 void doUpdateMemberPoints(Member member); 70 void doUpdateMemberPoints(Member member);
71
72 List<MemberDTO> findByUserIptvId(Long id);
71 } 73 }
......
...@@ -179,5 +179,11 @@ public class MemberServiceImpl implements MemberService { ...@@ -179,5 +179,11 @@ public class MemberServiceImpl implements MemberService {
179 } 179 }
180 } 180 }
181 181
182 @Override
183 public List<MemberDTO> findByUserIptvId(Long id) {
184 List<Member> memberList = this.memberRepository.findByUserIptvId(id);
185 return memberMapper.toDto(memberList);
186 }
187
182 188
183 } 189 }
......
...@@ -51,5 +51,5 @@ public interface UserCollectionService { ...@@ -51,5 +51,5 @@ public interface UserCollectionService {
51 51
52 Optional<UserCollection> findFirstByUserIdAndTypeAndName(Long id, Integer type, String name); 52 Optional<UserCollection> findFirstByUserIdAndTypeAndName(Long id, Integer type, String name);
53 53
54 void save(UserCollection userCollection); 54 UserCollection save(UserCollection userCollection);
55 } 55 }
......
...@@ -111,8 +111,9 @@ public class UserCollectionServiceImpl implements UserCollectionService { ...@@ -111,8 +111,9 @@ public class UserCollectionServiceImpl implements UserCollectionService {
111 } 111 }
112 112
113 @Override 113 @Override
114 public void save(UserCollection userCollection) { 114 public UserCollection save(UserCollection userCollection) {
115 115 this.userCollectionRepository.save(userCollection);
116 return userCollection;
116 } 117 }
117 118
118 119
......
...@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
8 import com.topdraw.annotation.AnonymousAccess; 8 import com.topdraw.annotation.AnonymousAccess;
9 import com.topdraw.annotation.Log; 9 import com.topdraw.annotation.Log;
10 import com.topdraw.business.module.member.profile.domain.MemberProfile; 10 import com.topdraw.business.module.member.profile.domain.MemberProfile;
11 import com.topdraw.business.module.member.service.dto.MemberDTO;
11 import com.topdraw.business.module.user.iptv.domain.UserTv; 12 import com.topdraw.business.module.user.iptv.domain.UserTv;
12 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO; 13 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO;
13 import com.topdraw.business.module.user.weixin.domain.UserWeixin; 14 import com.topdraw.business.module.user.weixin.domain.UserWeixin;
...@@ -38,6 +39,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -38,6 +39,7 @@ import org.springframework.web.bind.annotation.*;
38 39
39 import java.io.IOException; 40 import java.io.IOException;
40 import java.util.HashMap; 41 import java.util.HashMap;
42 import java.util.List;
41 import java.util.Map; 43 import java.util.Map;
42 import java.util.Objects; 44 import java.util.Objects;
43 45
...@@ -54,6 +56,15 @@ public class UserOperationController { ...@@ -54,6 +56,15 @@ public class UserOperationController {
54 @Autowired 56 @Autowired
55 private RedisUtils redisUtils; 57 private RedisUtils redisUtils;
56 58
59 @Log("获取大屏绑定的小屏会员列表")
60 @GetMapping(value = "/findBindByPlatformAccount/{platformAccount}")
61 @AnonymousAccess
62 public ResultInfo findBindByPlatformAccount(@PathVariable("platformAccount") String platformAccount) {
63 log.info("resources :[{}]",platformAccount);
64 List<MemberDTO> result = this.userTvOperationService.findBindByPlatformAccount(platformAccount);
65 return ResultInfo.success(result);
66 }
67
57 @Log("带参二维码") 68 @Log("带参二维码")
58 @PostMapping(value = "/sendQrCodeMessage") 69 @PostMapping(value = "/sendQrCodeMessage")
59 @ApiOperation("带参二维码") 70 @ApiOperation("带参二维码")
...@@ -90,13 +101,14 @@ public class UserOperationController { ...@@ -90,13 +101,14 @@ public class UserOperationController {
90 @AnonymousAccess 101 @AnonymousAccess
91 public ResultInfo addCollection(@RequestBody String content) { 102 public ResultInfo addCollection(@RequestBody String content) {
92 log.info("resources :[{}]",content); 103 log.info("resources :[{}]",content);
93 boolean result = true; 104 boolean result = this.userTvOperationService.addCollection(content);
94 return ResultInfo.success(result); 105 return ResultInfo.success(result);
95 } 106 }
96 107
97 @Log("新增大屏账户同时创建会员信息") 108 @Log("新增大屏账户同时创建会员信息")
98 @PostMapping(value = "/createUserAndCreateMember") 109 @PostMapping(value = "/createUserAndCreateMember")
99 @ApiOperation("新增大屏账户同时创建会员信息") 110 @ApiOperation("新增大屏账户同时创建会员信息")
111 @AnonymousAccess
100 public ResultInfo createUserAndCreateMember(@Validated @RequestBody TempIptvUser resources) { 112 public ResultInfo createUserAndCreateMember(@Validated @RequestBody TempIptvUser resources) {
101 UserTv userTv = new UserTv(); 113 UserTv userTv = new UserTv();
102 BeanUtils.copyProperties(resources,userTv); 114 BeanUtils.copyProperties(resources,userTv);
...@@ -127,6 +139,7 @@ public class UserOperationController { ...@@ -127,6 +139,7 @@ public class UserOperationController {
127 @Log("微信小程序登录") 139 @Log("微信小程序登录")
128 @PostMapping("/appletLogin") 140 @PostMapping("/appletLogin")
129 @ApiOperation("微信小程序登录") 141 @ApiOperation("微信小程序登录")
142 @AnonymousAccess
130 public ResultInfo appletLogin(@Validated @RequestBody WeiXinUserBean resources) { 143 public ResultInfo appletLogin(@Validated @RequestBody WeiXinUserBean resources) {
131 UserWeixinDTO result = this.userTvOperationService.appletLogin(resources); 144 UserWeixinDTO result = this.userTvOperationService.appletLogin(resources);
132 return ResultInfo.success(result); 145 return ResultInfo.success(result);
...@@ -240,9 +253,12 @@ public class UserOperationController { ...@@ -240,9 +253,12 @@ public class UserOperationController {
240 * @author Hongyan Wang 253 * @author Hongyan Wang
241 * @date 2021/8/24 4:54 下午 254 * @date 2021/8/24 4:54 下午
242 */ 255 */
256 @Log("保存大屏侧信息")
243 @PostMapping(value = "/saveUserInfo") 257 @PostMapping(value = "/saveUserInfo")
244 @ApiOperation("保存大屏侧信息") 258 @ApiOperation("保存大屏侧信息")
259 @AnonymousAccess
245 public ResultInfo saveUserInfo(@RequestBody String data) { 260 public ResultInfo saveUserInfo(@RequestBody String data) {
261 log.info("resources :[{}]",data);
246 String s = this.userTvOperationService.saveUserInfo(data); 262 String s = this.userTvOperationService.saveUserInfo(data);
247 return ResultInfo.success(s); 263 return ResultInfo.success(s);
248 } 264 }
......
1 package com.topdraw.business.process.service; 1 package com.topdraw.business.process.service;
2 2
3 import com.topdraw.business.module.member.profile.domain.MemberProfile; 3 import com.topdraw.business.module.member.profile.domain.MemberProfile;
4 import com.topdraw.business.module.member.service.dto.MemberDTO;
4 import com.topdraw.business.module.user.iptv.domain.UserTv; 5 import com.topdraw.business.module.user.iptv.domain.UserTv;
5 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO; 6 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
6 import com.topdraw.business.process.domian.weixin.BuyVipBean; 7 import com.topdraw.business.process.domian.weixin.BuyVipBean;
7 import com.topdraw.business.process.domian.weixin.SubscribeBean; 8 import com.topdraw.business.process.domian.weixin.SubscribeBean;
8 import com.topdraw.business.process.domian.weixin.WeiXinUserBean; 9 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
9 10
11 import java.util.List;
12
10 public interface UserOperationService { 13 public interface UserOperationService {
11 14
12 boolean createMemberByUserTv(UserTv resources); 15 boolean createMemberByUserTv(UserTv resources);
...@@ -30,4 +33,8 @@ public interface UserOperationService { ...@@ -30,4 +33,8 @@ public interface UserOperationService {
30 boolean deleteAllCollection(String content); 33 boolean deleteAllCollection(String content);
31 34
32 boolean deleteCollection(String content); 35 boolean deleteCollection(String content);
36
37 boolean addCollection(String content);
38
39 List<MemberDTO> findBindByPlatformAccount(String platformAccount);
33 } 40 }
......
1 package com.topdraw.business.process.service.impl; 1 package com.topdraw.business.process.service.impl;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.date.DateUtil;
4 import cn.hutool.core.util.ObjectUtil; 5 import cn.hutool.core.util.ObjectUtil;
5 import cn.hutool.core.util.StrUtil; 6 import cn.hutool.core.util.StrUtil;
6 import cn.hutool.http.HttpUtil; 7 import cn.hutool.http.HttpUtil;
...@@ -34,6 +35,7 @@ import com.topdraw.business.process.domian.weixin.SubscribeBean; ...@@ -34,6 +35,7 @@ import com.topdraw.business.process.domian.weixin.SubscribeBean;
34 import com.topdraw.business.process.domian.weixin.UserCollectionMq; 35 import com.topdraw.business.process.domian.weixin.UserCollectionMq;
35 import com.topdraw.business.process.domian.weixin.WeiXinUserBean; 36 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
36 import com.topdraw.business.process.service.UserOperationService; 37 import com.topdraw.business.process.service.UserOperationService;
38 import com.topdraw.business.process.service.mapper.CollectionMq2DetailMapper;
37 import com.topdraw.config.LocalConstants; 39 import com.topdraw.config.LocalConstants;
38 import com.topdraw.config.RedisKeyUtil; 40 import com.topdraw.config.RedisKeyUtil;
39 import com.topdraw.exception.BadRequestException; 41 import com.topdraw.exception.BadRequestException;
...@@ -97,6 +99,8 @@ public class UserOperationServiceImpl implements UserOperationService { ...@@ -97,6 +99,8 @@ public class UserOperationServiceImpl implements UserOperationService {
97 private UserCollectionDetailService userCollectionDetailService; 99 private UserCollectionDetailService userCollectionDetailService;
98 @Autowired 100 @Autowired
99 private UserCollectionDetailRepository userCollectionDetailRepository; 101 private UserCollectionDetailRepository userCollectionDetailRepository;
102 @Autowired
103 private CollectionMq2DetailMapper collectionMq2DetailMapper;
100 104
101 105
102 106
...@@ -853,7 +857,14 @@ public class UserOperationServiceImpl implements UserOperationService { ...@@ -853,7 +857,14 @@ public class UserOperationServiceImpl implements UserOperationService {
853 BeanUtils.copyProperties(resources,userTv); 857 BeanUtils.copyProperties(resources,userTv);
854 userTv.setPlatformAccount(platformAccount); 858 userTv.setPlatformAccount(platformAccount);
855 userTv.setMemberCode(member.getCode()); 859 userTv.setMemberCode(member.getCode());
856 860 userTv.setNickname(platformAccount);
861 userTv.setUsername(platformAccount);
862 userTv.setLoginDays(1);
863 userTv.setStatus(1);
864 userTv.setActiveTime(TimestampUtil.now());
865 userTv.setContinueDays(1);
866 userTv.setCreateBy("system");
867 userTv.setUpdateBy("system");
857 this.userTvService.create(userTv); 868 this.userTvService.create(userTv);
858 869
859 } 870 }
...@@ -1077,6 +1088,70 @@ public class UserOperationServiceImpl implements UserOperationService { ...@@ -1077,6 +1088,70 @@ public class UserOperationServiceImpl implements UserOperationService {
1077 return true; 1088 return true;
1078 } 1089 }
1079 1090
1091 @Override
1092 public boolean addCollection(String content) {
1093 try {
1094 log.info("receive UserCollection add message, content {}", content);
1095 JSONObject jsonObject = JSONObject.parseObject(content);
1096 String platformAccount = jsonObject.getString("platformAccount");
1097 String data = jsonObject.getString("data");
1098 if (StringUtils.isBlank(data) || !data.startsWith("[")) {
1099 return false;
1100 }
1101 UserTvDTO userTvDTO = this.userTvService.findByPlatformAccount(platformAccount);
1102
1103 Long tvUserId = userTvDTO.getId();
1104 List<UserCollectionMq> userCollectionMqList = JSONObject.parseArray(data, UserCollectionMq.class);
1105 if (userCollectionMqList == null || userCollectionMqList.isEmpty()) {
1106 return false;
1107 }
1108 Map<Long, List<UserCollectionMq>> collect = userCollectionMqList.stream().collect(Collectors.groupingBy(UserCollectionMq::getUserCollectionId));
1109 for (Map.Entry<Long, List<UserCollectionMq>> entry : collect.entrySet()) {
1110 List<UserCollectionMq> value = entry.getValue();
1111 UserCollectionMq userCollectionMq = value.get(0);
1112 if (StringUtils.isBlank(userCollectionMq.getName())) {
1113 userCollectionMq.setName("DEFAULT");
1114 }
1115 UserCollection userCollection = this.userCollectionService
1116 .findFirstByUserIdAndTypeAndName(tvUserId, userCollectionMq.getType(), userCollectionMq.getName()).orElseGet(UserCollection::new);
1117 userCollection.setAppId(userCollectionMq.getAppId())
1118 .setUserId(tvUserId)
1119 .setName(userCollectionMq.getName())
1120 .setType(userCollectionMq.getType())
1121 .setCount(userCollection.getCount() == null ? value.size() : userCollection.getCount() + value.size());
1122 UserCollection userCollectionSave = this.userCollectionService.save(userCollection);
1123 for (UserCollectionMq collectionMq : value) {
1124 UserCollectionDetail userCollectionDetail = collectionMq2DetailMapper.toEntity(collectionMq);
1125 Optional<UserCollectionDetail> userCollectionDetailOptional = userCollectionDetailRepository
1126 .findByDetailIdAndDetailTypeAndUserCollectionId(userCollectionDetail.getDetailId(), userCollectionDetail.getDetailType(), userCollectionSave.getId());
1127 //观影记录同一天只存一条记录
1128 if (userCollectionDetailOptional.isPresent() &&
1129 DateUtil.isSameDay(new Date(userCollectionDetailOptional.get().getCreateTime().getTime()), new Date())) {
1130 userCollectionDetail.setId(userCollectionDetailOptional.get().getId());
1131 } else {
1132 userCollectionDetail.setId(null)
1133 .setUserCollectionId(userCollectionSave.getId());
1134 }
1135 userCollectionDetailRepository.save(userCollectionDetail);
1136 }
1137 }
1138 } catch (Exception e) {
1139 log.error("CollectionAddConsumer || UserCollection add error || {}", e.toString(), e);
1140 }
1141 return true;
1142 }
1143
1144 @Override
1145 public List<MemberDTO> findBindByPlatformAccount(String platformAccount) {
1146 UserTvDTO userTvDTO = this.userTvService.findByPlatformAccount(platformAccount);
1147 if (Objects.nonNull(userTvDTO.getId())) {
1148 Long id = userTvDTO.getId();
1149
1150 return this.memberService.findByUserIptvId(id);
1151 }
1152 return null;
1153 }
1154
1080 /** 1155 /**
1081 * 保存、修改会员加密信息 1156 * 保存、修改会员加密信息
1082 * @param resources 1157 * @param resources
......
1 package com.topdraw.business.process.service.mapper;
2
3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.module.user.weixin.collection.domain.UserCollectionDetail;
5 import com.topdraw.business.process.domian.weixin.UserCollectionMq;
6 import org.mapstruct.Mapper;
7 import org.mapstruct.Mapping;
8 import org.mapstruct.Mappings;
9 import org.mapstruct.ReportingPolicy;
10
11 @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
12 public interface CollectionMq2DetailMapper extends BaseMapper<UserCollectionMq, UserCollectionDetail> {
13 @Override
14 @Mappings({
15 @Mapping(target = "detailImg", source = "images")
16 })
17 UserCollectionDetail toEntity(UserCollectionMq dto);
18 }