package com.zhujizheng.IHome.aoperation.service;
import com.zhujizheng.IHome.generator.dao.PYEveryMoment;
import com.zhujizheng.IHome.generator.dao.PYEveryMomentImg;
import com.zhujizheng.IHome.generator.dao.PYUserAlbum;
import com.zhujizheng.IHome.generator.dao.PYUserInfo;
import com.zhujizheng.IHome.generator.mapper.PYEveryMomentImgMapper;
import com.zhujizheng.IHome.generator.mapper.PYEveryMomentMapper;
import com.zhujizheng.IHome.generator.mapper.PYUserAlbumMapper;
import com.zhujizheng.IHome.generator.mapper.PYUserInfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Created with IntelliJ IDEA
*
* Author: yons
* Date: 2019/09/18
* Time: 00:24
* Description:
* Copyright © 2019年 com.zhujizheng. All rights reserved.
*/
@Service
@Transactional(rollbackFor = RuntimeException.class)
public class PYAOperationServiceImpl implements PYAOperationService {
@Autowired
private PYEveryMomentImgMapper everyMomentImgMapper;
@Autowired
private PYEveryMomentMapper everyMomentMapper;
@Autowired
private PYUserInfoMapper userInfoMapper;
@Autowired
private PYUserAlbumMapper userAlbumMapper;
@Override
public int updateUserIdAndTagAndUploadTime() {
List list = everyMomentMapper.selectAllEveryMoment();
if (list == null) {
return 0;
}
System.out.println("list.size = " + list.size());
AtomicInteger reslut = new AtomicInteger(1);
for (PYEveryMoment everyMoment : list) {
if (everyMoment.getId() == 0) {
System.out.println("emId = 0");
continue;
}
if (everyMoment.getTag() == null) {
System.out.println("tag为空");
continue;
}
List imgList = everyMomentImgMapper.selectImgByEmId(everyMoment.getId());
if (imgList.size() > 0) {
System.out.println("emId = " + everyMoment.getId() + " userId = " + everyMoment.getUserId() + " tag = " + everyMoment.getTag() + " releaseTime = " + everyMoment.getReleaseTime());
int r = everyMomentImgMapper.updateUserIdAndTagAndUploadTime(everyMoment.getId(), everyMoment.getUserId(), everyMoment.getTag(), everyMoment.getReleaseTime());
if (r == 0) {
reslut.set(0);
}
}
}
return reslut.get();
}
@Override
public int syncUserAlbumData() {
AtomicInteger result = new AtomicInteger(1);
List userInfoList = userInfoMapper.selectAllUserInfo();
for (PYUserInfo userInfo : userInfoList) {
List imgList = everyMomentImgMapper.selectAllImgWithUserId(userInfo.getId());
List tagList = new ArrayList<>();
for (PYEveryMomentImg img : imgList) {
if (img.getTag() == null) {
System.out.println("img.getTag() = null, img.getId() = " + img.getId());
continue;
}
tagList.add(img.getTag());
}
List newTagList = new ArrayList<>(new HashSet<>(tagList));
System.out.println("userId = " + userInfo.getId() + "newTagList.size() = " + newTagList.size());
for (String tag: newTagList) {
List tagImgList = everyMomentImgMapper.selectAllImgWithUserIdAndTag(userInfo.getId(), tag);
if (tagImgList.size() > 0) {
PYEveryMomentImg lastTagImg = tagImgList.get(tagImgList.size() - 1);
PYUserAlbum userAlbum = new PYUserAlbum();
userAlbum.setTag(tag);
userAlbum.setUserId(userInfo.getId());
userAlbum.setImgOrientation(lastTagImg.getOrientation());
userAlbum.setImgUrl(lastTagImg.getImgUrl());
userAlbum.setNum(tagImgList.size());
int r = userAlbumMapper.insertUserAlbum(userAlbum);
if (r == 0) {
result.set(0);
}
}
}
}
return result.get();
}
}