|  | @@ -489,6 +489,7 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
 | 
	
		
			
				|  |  |              try {
 | 
	
		
			
				|  |  |                  WxMaJscode2SessionResult session = wxService.getUserService().getSessionInfo(param.getCode());
 | 
	
		
			
				|  |  |                  openId = session.getOpenid();
 | 
	
		
			
				|  |  | +                logger.info("修改或新增openId:{},userId:{},appId:{}",session.getOpenid(),param.getUser().getUserId(),param.getAppId());
 | 
	
		
			
				|  |  |                  handleFsUserWx(param.getUser(),param.getAppId(),session);
 | 
	
		
			
				|  |  |              } catch (WxErrorException e){
 | 
	
		
			
				|  |  |                  return R.error("openId获取失败," + e.getMessage());
 | 
	
	
		
			
				|  | @@ -519,26 +520,41 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private void handleFsUserWx(FsUser user,String appId,WxMaJscode2SessionResult session) {
 | 
	
		
			
				|  |  |          // 尝试更新
 | 
	
		
			
				|  |  | -        boolean updated = fsUserWxService.lambdaUpdate()
 | 
	
		
			
				|  |  | -                .eq(FsUserWx::getFsUserId, user.getUserId())
 | 
	
		
			
				|  |  | -                .eq(FsUserWx::getAppId,appId )
 | 
	
		
			
				|  |  | -                .eq(FsUserWx::getOpenId, session.getOpenid())
 | 
	
		
			
				|  |  | -                .set(FsUserWx::getUnionId, session.getUnionid() == null ? "" : session.getUnionid())
 | 
	
		
			
				|  |  | -                .set(FsUserWx::getUpdateTime, new Date())
 | 
	
		
			
				|  |  | -                .update();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // 如果更新失败(记录不存在),则插入
 | 
	
		
			
				|  |  | -        if (!updated) {
 | 
	
		
			
				|  |  | -            FsUserWx fsUserWx = new FsUserWx();
 | 
	
		
			
				|  |  | -            fsUserWx.setType(1);
 | 
	
		
			
				|  |  | -            fsUserWx.setFsUserId(user.getUserId());
 | 
	
		
			
				|  |  | -            fsUserWx.setAppId(appId);
 | 
	
		
			
				|  |  | -            fsUserWx.setOpenId(session.getOpenid());
 | 
	
		
			
				|  |  | -            fsUserWx.setUnionId(session.getUnionid() == null ? "" : session.getUnionid());
 | 
	
		
			
				|  |  | -            fsUserWx.setCreateTime(new Date());
 | 
	
		
			
				|  |  | -            fsUserWx.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | -            fsUserWxService.save(fsUserWx);
 | 
	
		
			
				|  |  | +        FsUserWx userWx = fsUserWxService.selectByAppIdAndUserId(appId,user.getUserId(),1);
 | 
	
		
			
				|  |  | +        if (userWx!=null && !userWx.getOpenId().equals(session.getOpenid())){
 | 
	
		
			
				|  |  | +            userWx.setOpenId(session.getOpenid());
 | 
	
		
			
				|  |  | +            fsUserWxService.updateById(userWx);
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +            userWx = new FsUserWx();
 | 
	
		
			
				|  |  | +            userWx.setType(1);
 | 
	
		
			
				|  |  | +            userWx.setFsUserId(user.getUserId());
 | 
	
		
			
				|  |  | +            userWx.setAppId(appId);
 | 
	
		
			
				|  |  | +            userWx.setOpenId(session.getOpenid());
 | 
	
		
			
				|  |  | +            userWx.setUnionId(session.getUnionid() == null ? "" : session.getUnionid());
 | 
	
		
			
				|  |  | +            userWx.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +            userWx.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +            fsUserWxService.save(userWx);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +//        boolean updated = fsUserWxService.lambdaUpdate()
 | 
	
		
			
				|  |  | +//                .eq(FsUserWx::getFsUserId, user.getUserId())
 | 
	
		
			
				|  |  | +//                .eq(FsUserWx::getAppId,appId )
 | 
	
		
			
				|  |  | +//                .eq(FsUserWx::getOpenId, session.getOpenid())
 | 
	
		
			
				|  |  | +//                .set(FsUserWx::getUnionId, session.getUnionid() == null ? "" : session.getUnionid())
 | 
	
		
			
				|  |  | +//                .set(FsUserWx::getUpdateTime, new Date())
 | 
	
		
			
				|  |  | +//                .update();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 如果更新失败(记录不存在),则插入
 | 
	
		
			
				|  |  | +//        if (!updated) {
 | 
	
		
			
				|  |  | +//            FsUserWx fsUserWx = new FsUserWx();
 | 
	
		
			
				|  |  | +//            fsUserWx.setType(1);
 | 
	
		
			
				|  |  | +//            fsUserWx.setFsUserId(user.getUserId());
 | 
	
		
			
				|  |  | +//            fsUserWx.setAppId(appId);
 | 
	
		
			
				|  |  | +//            fsUserWx.setOpenId(session.getOpenid());
 | 
	
		
			
				|  |  | +//            fsUserWx.setUnionId(session.getUnionid() == null ? "" : session.getUnionid());
 | 
	
		
			
				|  |  | +//            fsUserWx.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +//            fsUserWx.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +//            fsUserWxService.save(fsUserWx);
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 |