Commit 9ce6111e 9ce6111ef1bcb63da62d05c3e99b2855c515c496 by xianghan

1.优化

1 parent bee83e21
...@@ -170,13 +170,87 @@ public class UserOperationServiceImpl implements UserOperationService { ...@@ -170,13 +170,87 @@ public class UserOperationServiceImpl implements UserOperationService {
170 String headimgurl = resources.getHeadimgurl(); 170 String headimgurl = resources.getHeadimgurl();
171 Integer sex = resources.getSex(); 171 Integer sex = resources.getSex();
172 172
173 // 检查小屏账户是否存在 173 // 账户和会员都存在
174 UserWeixinDTO userWeixinDTO = this.findFirstByUnionIdAndAppIdAndOpenId(unionId, appId, openId); 174 UserWeixinDTO userWeixinDTO = this.findFirstByAppIdAndOpenId(appId, openId);
175 if (Objects.nonNull(userWeixinDTO.getId())) { 175 if (Objects.nonNull(userWeixinDTO.getId()) && Objects.nonNull(userWeixinDTO.getMemberId())) {
176 log.error("createWeixinUserAndMember ==>> result ==>> [{}]", userWeixinDTO); 176 log.error("createWeixinUserAndMember ==>> result ==>> [{}]", userWeixinDTO);
177 throw new BadRequestException(GlobeExceptionMsg.OPERATION_FORBID + "==>> " + GlobeExceptionMsg.ENTITY_ALREADY_EXISTS); 177 throw new BadRequestException(GlobeExceptionMsg.OPERATION_FORBID + "==>> " + GlobeExceptionMsg.ENTITY_ALREADY_EXISTS);
178 } 178 }
179 179
180 // 账号存在但无会员
181 if (Objects.nonNull(userWeixinDTO.getId()) && Objects.isNull(userWeixinDTO.getMemberId())) {
182
183 // 当前用户的任意微信app,因为同一unionId的会员是唯一的
184 UserWeixinDTO _userWeixinDTO = this.findFirstByUnionId(unionId);
185 if (Objects.nonNull(_userWeixinDTO.getId())) {
186
187 if (Objects.nonNull(_userWeixinDTO.getMemberId())) {
188
189 // 有其他账号的话,将此账号与对应的会员进行绑定
190 MemberDTO memberDTO = this.findMemberById(_userWeixinDTO.getMemberId());
191 userWeixinDTO.setMemberId(memberDTO.getId());
192 userWeixinDTO.setMemberCode(memberDTO.getCode());
193 if (StringUtils.isBlank(userWeixinDTO.getUnionid())) {
194 userWeixinDTO.setUnionid(unionId);
195 }
196 UserWeixin userWeixin = new UserWeixin();
197 BeanUtils.copyProperties(userWeixinDTO, userWeixin);
198 UserWeixinDTO _userWeixinDTO1 = this.updateWeixin(userWeixin);
199 return _userWeixinDTO1;
200
201 } else {
202
203 // 有其他账号但都无会员,新建会员并将此账号绑定新建的这个会员
204 Member _member =
205 MemberBuilder.build(LocalConstants.MEMBER_PLATFORM_TYPE_WEIXIN,
206 headimgurl, nickname, 0, sex);
207
208 MemberDTO memberDTO = this.createMember(_member);
209
210 if (Objects.nonNull(memberDTO)) {
211 userWeixinDTO.setMemberId(memberDTO.getId());
212 userWeixinDTO.setMemberCode(memberDTO.getCode());
213 if (StringUtils.isBlank(userWeixinDTO.getUnionid())) {
214 userWeixinDTO.setUnionid(unionId);
215 }
216 UserWeixin userWeixin = new UserWeixin();
217 BeanUtils.copyProperties(userWeixinDTO, userWeixin);
218 UserWeixinDTO _userWeixinDTO1 = this.updateWeixin(userWeixin);
219 return _userWeixinDTO1;
220
221 }
222
223 }
224
225 } else {
226
227 // 该账号存在但无其他账号,新建会员
228 Member _member =
229 MemberBuilder.build(LocalConstants.MEMBER_PLATFORM_TYPE_WEIXIN,
230 headimgurl, nickname, 0, sex);
231
232 MemberDTO memberDTO = this.createMember(_member);
233
234 if (Objects.nonNull(memberDTO)) {
235 userWeixinDTO.setMemberId(memberDTO.getId());
236 userWeixinDTO.setMemberCode(memberDTO.getCode());
237 if (StringUtils.isBlank(userWeixinDTO.getUnionid())) {
238 userWeixinDTO.setUnionid(unionId);
239 }
240 UserWeixin userWeixin = new UserWeixin();
241 BeanUtils.copyProperties(userWeixinDTO, userWeixin);
242 UserWeixinDTO _userWeixinDTO1 = this.updateWeixin(userWeixin);
243 return _userWeixinDTO1;
244
245 }
246
247 }
248
249 }
250
251 // 无账号
252 if (Objects.isNull(userWeixinDTO.getId())) {
253
180 // 当前用户的任意微信app,因为同一unionId的会员是唯一的 254 // 当前用户的任意微信app,因为同一unionId的会员是唯一的
181 UserWeixinDTO _userWeixinDTO = this.findFirstByUnionId(unionId); 255 UserWeixinDTO _userWeixinDTO = this.findFirstByUnionId(unionId);
182 if (Objects.nonNull(_userWeixinDTO.getId())) { 256 if (Objects.nonNull(_userWeixinDTO.getId())) {
...@@ -227,6 +301,9 @@ public class UserOperationServiceImpl implements UserOperationService { ...@@ -227,6 +301,9 @@ public class UserOperationServiceImpl implements UserOperationService {
227 301
228 } 302 }
229 303
304 return userWeixinDTO;
305 }
306
230 307
231 /** 308 /**
232 * 服务号登录 309 * 服务号登录
...@@ -1114,11 +1191,21 @@ public class UserOperationServiceImpl implements UserOperationService { ...@@ -1114,11 +1191,21 @@ public class UserOperationServiceImpl implements UserOperationService {
1114 * @param openId 1191 * @param openId
1115 * @return 1192 * @return
1116 */ 1193 */
1117 private UserWeixinDTO findFirstByUnionIdAndAppIdAndOpenId( String unionId,String appId, String openId) { 1194 private UserWeixinDTO findFirstByUnionIdAndAppIdAndOpenId(String unionId, String appId, String openId) {
1118 return this.userWeixinService.findFirstByUnionIdAndAppIdAndOpenId(unionId,appId,openId); 1195 return this.userWeixinService.findFirstByUnionIdAndAppIdAndOpenId(unionId,appId,openId);
1119 } 1196 }
1120 1197
1121 /** 1198 /**
1199 * 获取小屏账户
1200 * @param appId
1201 * @param openId
1202 * @return
1203 */
1204 private UserWeixinDTO findFirstByAppIdAndOpenId(String appId, String openId) {
1205 return this.userWeixinService.findFirstByAppIdAndOpenId(appId, openId);
1206 }
1207
1208 /**
1122 * 1209 *
1123 * @param member 1210 * @param member
1124 * @return 1211 * @return
......