package com.yeshi.fanli.service.impl.count;
|
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.apache.commons.beanutils.PropertyUtils;
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.fanli.dao.mybatis.user.UserSystemCouponCountMapper;
|
import com.yeshi.fanli.dto.ChartTDO;
|
import com.yeshi.fanli.entity.bus.user.UserInfo;
|
import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
|
import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord;
|
import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
|
import com.yeshi.fanli.service.inter.config.SystemCouponService;
|
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
|
import com.yeshi.fanli.service.inter.count.UserSystemCouponCountService;
|
import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
|
import com.yeshi.fanli.service.inter.order.OrderHongBaoMapService;
|
import com.yeshi.fanli.service.inter.user.UserInfoService;
|
import com.yeshi.fanli.vo.user.SystemCouponVO;
|
import com.yeshi.fanli.vo.user.UserSystemCouponCountVO;
|
|
@Service
|
public class UserSystemCouponCountServiceImpl implements UserSystemCouponCountService {
|
|
|
@Resource
|
private UserSystemCouponCountMapper userSystemCouponCountMapper;
|
|
@Resource
|
private UserInfoService userInfoService;
|
|
@Resource
|
private OrderHongBaoMapService orderHongBaoMapService;
|
|
@Resource
|
private CommonOrderCountService commonOrderCountService;
|
|
@Resource
|
private HongBaoV2CountService hongBaoV2CountService;
|
|
@Resource
|
private SystemCouponService systemCouponService;
|
|
/**
|
* 奖励券统计
|
*/
|
@Override
|
public List<UserSystemCouponCountVO> listRebateCoupon(long start,int count, String key, Integer keyType,
|
Integer state, Integer percent){
|
|
List<UserSystemCouponCountVO> list = userSystemCouponCountMapper.listRebateCoupon(start, count, key,
|
keyType, state, percent);
|
|
if (list == null ) {
|
list = new ArrayList<UserSystemCouponCountVO>();
|
}
|
|
for (UserSystemCouponCountVO userSystemCouponVO: list) {
|
// 用户信息
|
Long uid = userSystemCouponVO.getUid();
|
UserInfo userInfo = userInfoService.selectByPKey(uid);
|
if (userInfo == null) {
|
userInfo = new UserInfo();
|
userInfo.setId(uid);
|
}
|
userSystemCouponVO.setUserInfo(userInfo);
|
|
UserSystemCouponRecord couponRecord = userSystemCouponVO.getUserSystemCouponRecord();
|
if (couponRecord != null) {
|
String orderNo = couponRecord.getOrderNo();
|
// 获取奖励金额
|
BigDecimal royaltyMoney = orderHongBaoMapService.getCouponHongbaoByOrderNo(orderNo, uid);
|
if (royaltyMoney == null) {
|
royaltyMoney = new BigDecimal(0);
|
}
|
userSystemCouponVO.setRoyaltyMoney(royaltyMoney);
|
|
BigDecimal orderMoney = commonOrderCountService.getMoneyByOrderNo(orderNo);
|
if (orderMoney == null) {
|
orderMoney = new BigDecimal(0);
|
}
|
userSystemCouponVO.setOrderMoney(orderMoney);
|
|
}
|
}
|
|
return list;
|
}
|
|
@Override
|
public long countRebateCoupon(String key, Integer keyType, Integer state, Integer percent){
|
return userSystemCouponCountMapper.countRebateCoupon(key, keyType, state, percent);
|
}
|
|
|
/**
|
* 系统奖励券统计
|
*/
|
@Override
|
public List<SystemCouponVO> listSystemCouponByRebate(long start,int count, String key, Integer sort){
|
|
List<SystemCouponVO> list = userSystemCouponCountMapper.listSystemCouponByRebate(start, count, key, sort);
|
|
if (list == null ) {
|
list = new ArrayList<SystemCouponVO>();
|
}
|
|
for (SystemCouponVO systemCouponVO: list) {
|
|
BigDecimal money = userSystemCouponCountMapper.countRebateMoneyByCouponId(systemCouponVO.getId());
|
if (money == null) {
|
money = new BigDecimal(0);
|
}
|
systemCouponVO.setMoney(money);
|
}
|
return list;
|
}
|
|
@Override
|
public long countSystemCouponRebate(String key){
|
return userSystemCouponCountMapper.countSystemCouponRebate(key);
|
}
|
|
|
/**
|
* 系统免单券统计
|
*/
|
@Override
|
public List<SystemCouponVO> listSystemCouponByFree(long start,int count, String key, Integer sort){
|
|
List<SystemCouponVO> list = userSystemCouponCountMapper.listSystemCouponByFree(start, count, key, sort);
|
|
if (list == null ) {
|
list = new ArrayList<SystemCouponVO>();
|
}
|
|
for (SystemCouponVO systemCouponVO: list) {
|
BigDecimal money = null;
|
if (systemCouponVO.getType() != CouponTypeEnum.freeCouponGive)
|
money = userSystemCouponCountMapper.countFreeMoneyByCouponId(systemCouponVO.getId());
|
|
if (money == null)
|
money = new BigDecimal(0);
|
|
systemCouponVO.setMoney(money);
|
}
|
return list;
|
}
|
|
@Override
|
public long countSystemCouponFree(String key){
|
return userSystemCouponCountMapper.countSystemCouponFree(key);
|
}
|
|
|
|
@Override
|
public List<UserSystemCouponCountVO> listFreeCoupon(long start,int count, String key, Integer keyType,
|
Integer state, Integer activated){
|
|
List<UserSystemCouponCountVO> list = userSystemCouponCountMapper.listFreeCoupon(start, count, key,
|
keyType, state, activated);
|
|
if (list == null ) {
|
list = new ArrayList<UserSystemCouponCountVO>();
|
}
|
|
for (UserSystemCouponCountVO userSystemCouponVO: list) {
|
// 用户信息
|
Long uid = userSystemCouponVO.getUid();
|
UserInfo userInfo = userInfoService.selectByPKey(uid);
|
if (userInfo == null) {
|
userInfo = new UserInfo();
|
userInfo.setId(uid);
|
}
|
userSystemCouponVO.setUserInfo(userInfo);
|
|
UserSystemCouponRecord couponRecord = userSystemCouponVO.getUserSystemCouponRecord();
|
if (couponRecord != null) {
|
String orderNo = couponRecord.getOrderNo();
|
BigDecimal orderMoney = commonOrderCountService.getMoneyByOrderNo(orderNo);
|
if (orderMoney == null) {
|
orderMoney = new BigDecimal(0);
|
}
|
userSystemCouponVO.setOrderMoney(orderMoney);
|
}
|
}
|
|
return list;
|
}
|
|
|
@Override
|
public long countFreeCoupon(String key, Integer keyType, Integer state,Integer activated){
|
return userSystemCouponCountMapper.countFreeCoupon(key, keyType, state, activated);
|
}
|
|
|
@Override
|
public List<UserSystemCouponCountVO> listFreeCouponRecord(long start,int count, String key, Integer keyType,
|
Integer state){
|
|
List<UserSystemCouponRecord> list = userSystemCouponCountMapper.listFreeCouponRecord(start, count, key,
|
keyType, state);
|
|
if (list == null || list.size() == 0) {
|
return null;
|
}
|
|
List<UserSystemCouponCountVO> listvo = new ArrayList<UserSystemCouponCountVO>();
|
|
for (UserSystemCouponRecord couponRecord: list) {
|
|
UserSystemCouponCountVO vo = new UserSystemCouponCountVO();
|
UserSystemCoupon userSystemCoupon = couponRecord.getUserSystemCoupon();
|
try {
|
PropertyUtils.copyProperties(vo, userSystemCoupon);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
vo.setUserSystemCouponRecord(couponRecord);
|
|
// SystemCoupon systemCoupon = userSystemCoupon.getSystemCoupon();
|
// SystemCoupon baseCoupon = systemCouponService.selectByPrimaryKey(systemCoupon.getId());
|
// if (baseCoupon == null || baseCoupon.getId() == null) {
|
// continue;
|
// }
|
// vo.setSystemCoupon(baseCoupon);
|
|
// 用户信息
|
Long uid = userSystemCoupon.getUid();
|
UserInfo userInfo = userInfoService.selectByPKey(uid);
|
if (userInfo == null) {
|
userInfo = new UserInfo();
|
userInfo.setId(uid);
|
}
|
vo.setUserInfo(userInfo);
|
|
String orderNo = couponRecord.getOrderNo();
|
BigDecimal orderMoney = commonOrderCountService.getMoneyByOrderNo(orderNo);
|
if (orderMoney == null) {
|
orderMoney = new BigDecimal(0);
|
}
|
vo.setOrderMoney(orderMoney);
|
|
listvo.add(vo);
|
}
|
return listvo;
|
}
|
|
|
@Override
|
public long countFreeCouponRecord(String key, Integer keyType, Integer state){
|
return userSystemCouponCountMapper.countFreeCouponRecord(key, keyType, state);
|
}
|
|
|
@Override
|
public List<ChartTDO> getRebateCouponUsedNumToCharts(Integer dateType, String year,
|
String startTime, String endTime){
|
return userSystemCouponCountMapper.getRebateCouponUsedNumToCharts(dateType, year, startTime, endTime);
|
}
|
|
@Override
|
public List<ChartTDO> getRebateCouponMoneyToCharts(Integer dateType, String year,
|
String startTime, String endTime){
|
return userSystemCouponCountMapper.getRebateCouponMoneyToCharts(dateType, year, startTime, endTime);
|
}
|
|
@Override
|
public List<ChartTDO> getFreeCouponMoneyToCharts(Integer dateType, String year, String startTime,
|
String endTime, String couponType){
|
return userSystemCouponCountMapper.getFreeCouponMoneyToCharts(dateType, year, startTime, endTime, couponType);
|
}
|
|
}
|