@Override public boolean removeAccount(Long id, String account) { SystemUserDTO byUserName = systemUserDAO.findByUserName(account); boolean Master = false; if (byUserName != null && byUserName.getBaiduAccounts().size() > 0) { for (int i = 0; i < byUserName.getBaiduAccounts().size(); i++) { if (byUserName.getBaiduAccounts().get(i).getId().compareTo(id) == 0) { if (byUserName.getBaiduAccounts().get(i).isDfault()) {} byUserName.getBaiduAccounts().remove(i); --i; } } List<BaiduAccountInfoDTO> baiduAccountInfoDTOs = byUserName.getBaiduAccounts(); if (baiduAccountInfoDTOs.size() > 0 && Master) { baiduAccountInfoDTOs.get(0).setDfault(true); } int falg = systemUserDAO.removeAccountInfo(baiduAccountInfoDTOs, account); if (falg > 0) { return true; } } return false; }
/** * 获取当前登录用户的所有百度账户信息 * * @param currUserName * @return */ @Override public List<BaiduAccountInfoDTO> getBaiduAccountItems(String currUserName) { SystemUserDTO systemUserDTO = systemUserDAO.findByUserName(currUserName); if (systemUserDTO != null) { return systemUserDTO.getBaiduAccounts(); } return Collections.emptyList(); }
@Override public Iterable<SystemUserDTO> findAll() { return systemUserDAO.findAll(); }
@Override public SystemUserDTO findByUserName(String userName) { return systemUserDAO.findByUserName(userName); }
@Override public List<Long> getLocalCreativeIds(Long accountId, List<Long> adgroupIds) { return systemUserDAO.getLocalCreativeIds(accountId, adgroupIds); }
@Override public List<Long> getLocalAdgroupIds(Long accountId, List<Long> campaignIds) { return systemUserDAO.getLocalAdgroupIds(accountId, campaignIds); }
@Override public void clearCreativeData(Long accountId, List<Long> creativeIds) { systemUserDAO.clearCreativeData(accountId, creativeIds); }
@Override public void clearKeywordData(Long accountId, List<Long> keywordIds) { systemUserDAO.clearKeywordData(accountId, keywordIds); }
@Override public void clearAdgroupData(Long accountId, List<Long> adgroupIds) { systemUserDAO.clearAdgroupData(accountId, adgroupIds); }
@Override public void clearCampaignData(Long accountId, List<Long> campaignIds) { systemUserDAO.clearCampaignData(accountId, campaignIds); }
@Override public void clearAccountData(Long accountId) { systemUserDAO.clearAccountData(accountId); }
@Override public SystemUserDTO findByAid(long aid) { return systemUserDAO.findByAid(aid); }
@Override public void initAccount(String userName, Long accountId) { logger.info("开始导入数据: 用户名=" + userName + ", 账号= " + accountId); SystemUserDTO systemUserDTO = getSystemUser(userName); if (systemUserDTO == null) { logger.warn("没有此账号: " + userName); return; } logger.info("清理已有数据..."); clearAccountData(accountId); logger.info("清理数据完成!"); for (BaiduAccountInfoDTO baiduAccountInfoDTO : systemUserDTO.getBaiduAccounts()) { Long aid = baiduAccountInfoDTO.getId(); if (!Objects.equals(aid, accountId)) continue; CommonService commonService = BaiduServiceSupport.getCommonService( baiduAccountInfoDTO.getBaiduUserName(), baiduAccountInfoDTO.getBaiduPassword(), baiduAccountInfoDTO.getToken()); BaiduApiService apiService = new BaiduApiService(commonService); logger.info("查询账户信息..."); // 初始化账户数据 AccountInfoType accountInfoType = apiService.getAccountInfo(); if (accountInfoType == null) { logger.error("获取账户信息错误: " + ResHeaderUtil.getJsonResHeader(false).toString()); continue; } boolean isDefault = baiduAccountInfoDTO.isDfault(); baiduAccountInfoDTO = ObjectUtils.convert(accountInfoType, BaiduAccountInfoDTO.class); baiduAccountInfoDTO.setId(accountInfoType.getUserid()); baiduAccountInfoDTO.setBaiduUserName(baiduAccountInfoDTO.getBaiduUserName()); baiduAccountInfoDTO.setBaiduPassword(baiduAccountInfoDTO.getBaiduPassword()); baiduAccountInfoDTO.setToken(baiduAccountInfoDTO.getToken()); baiduAccountInfoDTO.setDfault(isDefault); // 新增百度账户 systemUserDAO.insertAccountInfo(userName, baiduAccountInfoDTO); logger.info("查询账户推广计划..."); List<CampaignType> campaignTypes = apiService.getAllCampaign(); logger.info("查询结束: 计划数=" + campaignTypes.size()); List<CampaignDTO> campaignEntities = EntityConvertUtils.convertToCamEntity(campaignTypes); // 查询推广单元 List<Long> ids = new ArrayList<>(campaignEntities.size()); for (CampaignDTO campaignEntity : campaignEntities) { campaignEntity.setAccountId(aid); ids.add(campaignEntity.getCampaignId()); } logger.info("查询账户推广单元..."); List<AdgroupType> adgroupTypeList = apiService.getAllAdGroup(ids); logger.info("查询结束: 单元数=" + adgroupTypeList.size()); List<AdgroupDTO> adgroupEntities = EntityConvertUtils.convertToAdEntity(adgroupTypeList); ids.clear(); for (AdgroupDTO adgroupEntity : adgroupEntities) { adgroupEntity.setAccountId(aid); ids.add(adgroupEntity.getAdgroupId()); } logger.info("查询账户推广关键词..."); // List<KeywordType> keywordTypes = apiService.getAllKeyword(ids); // logger.info("查询结束: 关键词数=" + keywordTypes.size()); // // List<KeywordDTO> keywordEntities = // EntityConvertUtils.convertToKwEntity(keywordTypes); // // for (KeywordDTO keywordEntity : keywordEntities) { // keywordEntity.setAccountId(aid); // } // 分批次请求关键词数据 List<Long> subList = new ArrayList<>(4); for (int i = 1; i <= ids.size(); i++) { Long adgroupId = ids.get(i - 1); subList.add(adgroupId); if (i % 4 == 0) { List<KeywordType> keywordTypes = apiService.getAllKeyword(subList); List<KeywordDTO> keywordEntities = EntityConvertUtils.convertToKwEntity(keywordTypes); for (KeywordDTO keywordEntity : keywordEntities) { keywordEntity.setAccountId(aid); } keywordDAO.save(keywordEntities); subList.clear(); } } if (!subList.isEmpty()) { List<KeywordType> keywordTypes = apiService.getAllKeyword(subList); List<KeywordDTO> keywordEntities = EntityConvertUtils.convertToKwEntity(keywordTypes); for (KeywordDTO keywordEntity : keywordEntities) { keywordEntity.setAccountId(aid); } keywordDAO.save(keywordEntities); subList.clear(); } logger.info("查询账户推广创意..."); List<CreativeType> creativeTypes = apiService.getAllCreative(ids); logger.info("查询结束: 普通创意数=" + creativeTypes.size()); List<CreativeDTO> creativeEntityList = EntityConvertUtils.convertToCrEntity(creativeTypes); for (CreativeDTO creativeEntity : creativeEntityList) { creativeEntity.setAccountId(aid); } // 开始保存数据 campaignDAO.save(campaignEntities); adgroupDAO.save(adgroupEntities); creativeDAO.save(creativeEntityList); } }
@Override public void addAccount(String user, BaiduAccountInfoDTO baiduAccountInfoDTO) { systemUserDAO.insertAccountInfo(user, baiduAccountInfoDTO); }
@Override public void save(SystemUserDTO systemUserDTO) { systemUserDAO.save(systemUserDTO); }
@Override public List<SystemUserDTO> getAllValidUser() { return Lists.newArrayList(systemUserDAO.getAllValidUser()); }