package tkio.service.impl; import common.model.Contract; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import security.annotation.Authorization; import tkio.model.Account; import tkio.repository.AccountRepository; import tkio.service.AccountService; import util.DateUtil; import util.ValidateUtil; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * Created by mxq on 2018/1/23. */ @Service public class AccountServiceImpl implements AccountService { @Autowired AccountRepository accountRepository; @Override public Account update(Contract contract) { Account account = accountRepository.findByEmail(contract.getEmail()); String today = DateUtil.getBeforeDays(0); Date pubDate = DateUtil.getDate(contract.getStartDate()); account.setPubDate(pubDate); account.setPastDate(contract.getEndDate()); account.setPricelevel(contract.getPriceLevel()); account.setModifyTime(new Date()); account.setModifyAccount(0l); if(account.getStartByContract()){ account.setNewContract(true); account.setModifyPricelevelTime(contract.getStartDate()); } if(!(contract.getEndDate().compareTo(today) < 0)){ account.setStatus(1); } if(contract.getProduct().contains("io")){ account.setAllowBehavior(true); }else{ account.setAllowBehavior(false); } Account save = accountRepository.save(account); //修改子账号 List<Account> accountList = accountRepository.findByRootParent(account.getId()); if (ValidateUtil.isValid(accountList)){ List<Account> list = new ArrayList<>(); for(Account ac : accountList){ ac.setPastDate(contract.getEndDate()); ac.setPubDate(pubDate); ac.setModifyPricelevelTime(contract.getStartDate()); ac.setPricelevel(contract.getPriceLevel()); ac.setAllowBehavior(save.getAllowBehavior()); list.add(ac); } accountRepository.save(list); } return save; } @Override public Account forbiden(Contract contract) { Account account = accountRepository.findByEmail(contract.getEmail()); account.setStatus(0); return accountRepository.save(account); } }