RiskSaleServiceImpl.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package vip.xiaonuo.risk.service.impl;
  2. import cn.hutool.core.date.DateTime;
  3. import cn.hutool.core.date.DateUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import vip.xiaonuo.risk.entity.RiskSale;
  8. import vip.xiaonuo.risk.mapper.RiskSaleMapper;
  9. import vip.xiaonuo.risk.param.RiskSaleParam;
  10. import vip.xiaonuo.risk.service.IRiskSaleService;
  11. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  12. import org.springframework.stereotype.Service;
  13. import vip.xiaonuo.sale.entity.SaleDetail;
  14. import vip.xiaonuo.sale.mapper.SaleDetailMapper;
  15. import java.math.BigDecimal;
  16. import java.math.RoundingMode;
  17. import java.util.ArrayList;
  18. import java.util.Date;
  19. import java.util.List;
  20. /**
  21. * <p>
  22. * 风控销售回款 服务实现类
  23. * </p>
  24. *
  25. * @author author
  26. * @since 2024-12-09
  27. */
  28. @Service
  29. public class RiskSaleServiceImpl extends ServiceImpl<RiskSaleMapper, RiskSale> implements IRiskSaleService {
  30. @Autowired
  31. private RiskSaleMapper saleMapper;
  32. @Autowired
  33. private SaleDetailMapper saleDetailMapper;
  34. @Override
  35. public List<RiskSale> getList(RiskSaleParam riskSaleParam) {
  36. String orgId = riskSaleParam.getOrgId();
  37. Integer timeType = riskSaleParam.getTimeType();
  38. QueryWrapper<SaleDetail> queryWrapper = new QueryWrapper<>();
  39. queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
  40. queryWrapper.select(" IFNULL(sum(sale_money),'0') saleMoney,create_time createTime");
  41. if (1 == timeType) {
  42. queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
  43. } else {
  44. queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
  45. }
  46. queryWrapper.orderByAsc("create_time");
  47. List<SaleDetail> saleDetails = saleDetailMapper.selectList(queryWrapper);
  48. List<RiskSale> list = new ArrayList<>();
  49. BigDecimal math = new BigDecimal("10000");
  50. if (saleDetails.size() != 0) {
  51. for (SaleDetail saleDetail : saleDetails) {
  52. RiskSale riskSale = new RiskSale();
  53. BigDecimal bg = new BigDecimal(saleDetail.getSaleMoney());
  54. riskSale.setSaleMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
  55. riskSale.setBackMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
  56. riskSale.setCreateTime(saleDetail.getCreateTime());
  57. list.add(riskSale);
  58. }
  59. }
  60. return list;
  61. }
  62. }