package com.wanrong.distribution.server.impl;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.util.StringUtils;
import com.wanrong.distribution.dao.AppUserDao;
import com.wanrong.distribution.share.dto.UserDTO;
import com.wanrong.distribution.share.interfaces.AppUserHierarchyService;
import com.wanrong.distribution.share.interfaces.AppUserService;
import com.wanrong.distribution.share.query.UserQuery;
import com.wanrong.module.commons.QueryResult;
import com.wanrong.module.commons.Result;
import com.wanrong.module.commons.SingleResult;
import com.wanrong.web.share.dto.EvidenceInfoDTO;
import com.wanrong.web.share.dto.MerchantInfoDTO;
import com.wanrong.web.share.dto.MerchantProudctDTO;
import com.wanrong.web.share.query.MerchantInfoQuery;
import com.wanrong.web.share.query.MerchantProudctQuery;
@Service("appUserService")
public class AppUserServiceImpl implements AppUserService {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
AppUserDao appUserDao;
@Autowired
AppUserHierarchyService appUserHierarchyService;
@Resource(name = "transactionManager")
private PlatformTransactionManager platformTransactionManager;
/**
* 新增AppUser
*/
public Result insertAppUser(UserDTO info){
Result result = new Result();
//关闭事务自动提交
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
TransactionStatus status = platformTransactionManager.getTransaction(def);
try {
//插入用户
appUserDao.insertAppUser(info);
//查询商户的父UserId
int fatherUserId = 0;
UserDTO userFather = appUserDao.queryAppUserBySpid(info.getParentSpId());
if(!StringUtils.isEmpty(userFather)){
fatherUserId = userFather.getId();
}
//插入商户层级关系
Result rest = appUserHierarchyService.insertAppUserHierarchy(false,info.getId(),fatherUserId);
if(!rest.isSuccess()){
platformTransactionManager.rollback(status); // 添加失败 回滚事务;
result.setSuccess(false);
}else{
result.setSuccess(true);
platformTransactionManager.commit(status); //提交事务
}
} catch (Exception e) {
result.setSuccess(false);
platformTransactionManager.rollback(status); //添加失败 回滚事务;
logger.error("",e);
}
return result;
}
@Override
public SingleResult<UserDTO> queryAppUser(UserQuery userQuery) {
// TODO Auto-generated method stub
return null;
}
@Override
public SingleResult<UserDTO> queryAppUserBySpid(String spId) {
// TODO Auto-generated method stub
return null;
}
@Override
public QueryResult<UserDTO> queryAppUserList(UserQuery query) {
// TODO Auto-generated method stub
return null;
}
@Override
public int queryMyAppUserCount(UserQuery query) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Result updateAppUser(UserDTO userDTO) {
// TODO Auto-generated method stub
return null;
}
@Override
public Result uploadFile(EvidenceInfoDTO evidenceInfoDTO) {
// TODO Auto-generated method stub
return null;
}
@Override
public QueryResult<MerchantProudctDTO> queryMerchantProductList(MerchantProudctQuery query) {
// TODO Auto-generated method stub
return null;
}
@Override
public SingleResult<MerchantInfoDTO> queryMerchantInfo(MerchantInfoQuery query) {
// TODO Auto-generated method stub
return null;
}
}