package com.yeshi.fanli.service.impl.user;
|
|
import java.io.Serializable;
|
import java.math.BigDecimal;
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.fanli.dao.mybatis.AccountDetailsMapper;
|
import com.yeshi.fanli.dao.user.AccountDetailsDao;
|
import com.yeshi.fanli.entity.bus.user.AccountDetails;
|
import com.yeshi.fanli.entity.money.UserMoneyDetail;
|
import com.yeshi.fanli.exception.money.UserMoneyDetailException;
|
import com.yeshi.fanli.service.inter.user.AccountDetailsService;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.TimeUtil;
|
import com.yeshi.fanli.util.factory.AccountDetailsFactory;
|
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
|
|
@Service
|
public class AccountDetailsServiceImpl implements AccountDetailsService {
|
|
@Resource
|
private AccountDetailsDao dao;
|
|
@Resource
|
private AccountDetailsMapper accountDetailsMapper;
|
|
@Override
|
public List<AccountDetails> findAccountDetailsList(long uid, int page) {
|
|
return dao.list("from AccountDetails ad where ad.userInfo.id=? order by createTime desc",
|
(page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, new Serializable[] { uid });
|
}
|
|
@Override
|
public int getCount(long uid) {
|
return (int) dao.getCount("select count(*) from AccountDetails ad where ad.userInfo.id=?",
|
new Serializable[] { uid });
|
}
|
|
@Override
|
public void save(AccountDetails accountDetails) {
|
if (accountDetails != null)
|
dao.save(accountDetails);
|
}
|
|
@Override
|
public List<AccountDetails> findAccountDetailsListWithState(long uid, int page) {
|
return accountDetailsMapper.selectByUidWithState(uid, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE);
|
}
|
|
@Override
|
public long getCountWithState(long uid) {
|
return accountDetailsMapper.selectCountByUidWithState(uid);
|
}
|
|
@Override
|
public UserMoneyDetail convert(AccountDetails accountDetail) {
|
UserMoneyDetail userMoneyDetail = null;
|
switch (accountDetail.getType()) {
|
case AccountDetailsFactory.FANLI:
|
try {
|
userMoneyDetail = UserMoneyDetailFactory.createOldFanLi(accountDetail.getUserInfo().getId(),
|
accountDetail, new BigDecimal(accountDetail.getMoney().replace("+", "")));
|
} catch (UserMoneyDetailException e) {
|
e.printStackTrace();
|
}
|
|
break;
|
case AccountDetailsFactory.HUIKUAN:
|
try {
|
userMoneyDetail = UserMoneyDetailFactory.createExtractReject(accountDetail.getExtract());
|
|
} catch (UserMoneyDetailException e) {
|
e.printStackTrace();
|
}
|
|
break;
|
case AccountDetailsFactory.QITA:// 暂无数据
|
break;
|
case AccountDetailsFactory.SHARE_GOODS:// 暂无数据
|
break;
|
case AccountDetailsFactory.SHARE_GOODS_DRAWBACK:
|
// 售后退款
|
try {
|
userMoneyDetail = UserMoneyDetailFactory.createOldWeiQuan(accountDetail);
|
|
} catch (UserMoneyDetailException e) {
|
e.printStackTrace();
|
}
|
|
break;
|
case AccountDetailsFactory.TICHENG:
|
try {
|
userMoneyDetail = UserMoneyDetailFactory.createShareAndInvite(accountDetail);
|
|
} catch (UserMoneyDetailException e) {
|
e.printStackTrace();
|
}
|
|
break;
|
case AccountDetailsFactory.TIXIAN:
|
try {
|
userMoneyDetail = UserMoneyDetailFactory.createExtract(accountDetail.getExtract());
|
|
} catch (UserMoneyDetailException e) {
|
e.printStackTrace();
|
}
|
break;
|
case AccountDetailsFactory.TUIKUAN:
|
if (accountDetail.getTitle().contains("账号合并")) {
|
try {
|
userMoneyDetail = UserMoneyDetailFactory.createOldNewerHongBaoDeduct(accountDetail);
|
|
} catch (UserMoneyDetailException e) {
|
e.printStackTrace();
|
}
|
} else {// 售后退款
|
try {
|
userMoneyDetail = UserMoneyDetailFactory.createOldWeiQuan(accountDetail);
|
|
} catch (UserMoneyDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
break;
|
case AccountDetailsFactory.VALID_ALIPAY_ACCOUNT:
|
try {
|
userMoneyDetail = UserMoneyDetailFactory.createOldExtractAccountValid(accountDetail);
|
} catch (UserMoneyDetailException e) {
|
e.printStackTrace();
|
}
|
break;
|
case AccountDetailsFactory.XINREN:
|
try {
|
userMoneyDetail = UserMoneyDetailFactory.createOldNewerHongBao(accountDetail);
|
} catch (UserMoneyDetailException e) {
|
e.printStackTrace();
|
}
|
break;
|
}
|
|
if (userMoneyDetail != null) {
|
userMoneyDetail.setCreateTime(
|
new Date(TimeUtil.convertToTimeTemp(accountDetail.getCreateTime(), "yyyy-MM-dd HH:mm:ss")));
|
userMoneyDetail.setUpdateTime(userMoneyDetail.getCreateTime());
|
userMoneyDetail.setId(accountDetail.getId());
|
}
|
return userMoneyDetail;
|
}
|
|
}
|