|  | @@ -9,11 +9,14 @@ import com.zanxiang.game.back.serve.dao.mapper.GameOceanengineUserLogMapper;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.back.serve.oceanengine.MiniGameCallback;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.back.serve.oceanengine.OceanengineCallbackException;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.back.serve.pojo.dto.GameOceanengineUserLogDTO;
 | 
	
		
			
				|  |  | +import com.zanxiang.game.back.serve.pojo.entity.GameBackPolicy;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.back.serve.pojo.entity.GameOceanengineBackLog;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.back.serve.pojo.entity.GameOceanengineUserLog;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.back.serve.pojo.enums.BackStatusEnum;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.back.serve.pojo.vo.GameOceanengineUserLogVO;
 | 
	
		
			
				|  |  | +import com.zanxiang.game.back.serve.service.IGameBackPolicyService;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.back.serve.service.IGameOceanengineBackLogService;
 | 
	
		
			
				|  |  | +import com.zanxiang.game.back.serve.service.IGameOceanengineRoleRegisterLogService;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.back.serve.service.IGameOceanengineUserLogService;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.module.base.ServerInfo;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.module.base.pojo.vo.AgentRpcVO;
 | 
	
	
		
			
				|  | @@ -38,6 +41,8 @@ import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  public class GameOceanengineUserLogServiceImpl extends ServiceImpl<GameOceanengineUserLogMapper, GameOceanengineUserLog>
 | 
	
		
			
				|  |  |          implements IGameOceanengineUserLogService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private IGameBackPolicyService gameBackPolicyService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private MiniGameCallback miniGameCallback;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
	
		
			
				|  | @@ -150,6 +155,54 @@ public class GameOceanengineUserLogServiceImpl extends ServiceImpl<GameOceanengi
 | 
	
		
			
				|  |  |                  .backStatus(backStatus.getBackStatus())
 | 
	
		
			
				|  |  |                  .errMsg(errMsg)
 | 
	
		
			
				|  |  |                  .build());
 | 
	
		
			
				|  |  | +        //判断是否开启注册回传创角
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            this.regCallBackRole(userLog);
 | 
	
		
			
				|  |  | +        } catch (Exception ignored) {
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //返回回传结果
 | 
	
		
			
				|  |  |          return backStatus;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private void regCallBackRole(GameOceanengineUserLog userLog) {
 | 
	
		
			
				|  |  | +        GameBackPolicy gameBackPolicy = userLog.getBackPolicyId() == null ? null
 | 
	
		
			
				|  |  | +                : gameBackPolicyService.getById(userLog.getBackPolicyId());
 | 
	
		
			
				|  |  | +        //判断策略是否控制注册回传创角
 | 
	
		
			
				|  |  | +        if (gameBackPolicy == null || !Objects.equals(gameBackPolicy.getRoleBackSwitch(), Boolean.TRUE)) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //创角回传
 | 
	
		
			
				|  |  | +        MiniGameCallback.MiniGameCallbackRequest request = MiniGameCallback.MiniGameCallbackRequest.builder()
 | 
	
		
			
				|  |  | +                .clue_token(userLog.getClueToken())
 | 
	
		
			
				|  |  | +                .open_id(userLog.getOpenId())
 | 
	
		
			
				|  |  | +                .union_id(userLog.getUnionId())
 | 
	
		
			
				|  |  | +                .event_type(String.valueOf(MiniGameCallback.EventType.ACTIVE_REGISTER.getEventType()))
 | 
	
		
			
				|  |  | +                .build();
 | 
	
		
			
				|  |  | +        BackStatusEnum backStatus = BackStatusEnum.SUCCESS;
 | 
	
		
			
				|  |  | +        String errMsg = null;
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            miniGameCallback.doCallback(userLog.getAccountReportUrl(), userLog.getAccountReportToken(), request);
 | 
	
		
			
				|  |  | +        } catch (OceanengineCallbackException e) {
 | 
	
		
			
				|  |  | +            log.error(e.getMessage(), e);
 | 
	
		
			
				|  |  | +            backStatus = BackStatusEnum.FAILED;
 | 
	
		
			
				|  |  | +            errMsg = e.getMsg();
 | 
	
		
			
				|  |  | +        } catch (Exception e) {
 | 
	
		
			
				|  |  | +            log.error(e.getMessage(), e);
 | 
	
		
			
				|  |  | +            backStatus = BackStatusEnum.FAILED;
 | 
	
		
			
				|  |  | +            errMsg = "系统异常:" + e.getMessage();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        gameOceanengineBackLogService.save(GameOceanengineBackLog.builder()
 | 
	
		
			
				|  |  | +                .appId(userLog.getAppId())
 | 
	
		
			
				|  |  | +                .openId(userLog.getOpenId())
 | 
	
		
			
				|  |  | +                .unionId(userLog.getUnionId())
 | 
	
		
			
				|  |  | +                .gameId(userLog.getGameId())
 | 
	
		
			
				|  |  | +                .accountId(userLog.getAccountId())
 | 
	
		
			
				|  |  | +                .clueToken(userLog.getClueToken())
 | 
	
		
			
				|  |  | +                .eventType(request.getEvent_type())
 | 
	
		
			
				|  |  | +                .eventLogId(userLog.getId())
 | 
	
		
			
				|  |  | +                .createTime(LocalDateTime.now())
 | 
	
		
			
				|  |  | +                .backStatus(backStatus.getBackStatus())
 | 
	
		
			
				|  |  | +                .errMsg(errMsg)
 | 
	
		
			
				|  |  | +                .build());
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |