package com.youzan.pfcase.web.account; import java.util.List; import javax.inject.Inject; import com.youzan.pfcase.domain.Account; import com.youzan.pfcase.domain.UserDetails; import com.youzan.pfcase.service.AccountService; import org.dozer.Mapper; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; @Component public class AccountHelper { @Inject protected Mapper beanMapper; @Inject protected AccountService accountService; public void newAccount(com.youzan.pfcase.web.account.AccountForm form) { Account account = beanMapper.map(form, Account.class); accountService.insertAccount(account); } public void editAccount(com.youzan.pfcase.web.account.AccountForm form) { UserDetails userDetails = (UserDetails) SecurityContextHolder .getContext().getAuthentication().getPrincipal(); Account account = userDetails.getAccount(); // does not map "username" to use that of session object beanMapper.map(form, account, "accountExcludeUsername"); accountService.updateAccount(account); // reflect new value to session object beanMapper.map(accountService.getAccount(account.getUsername()), account); } }