package com.doumee.service.business.impl; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.FundMapper; import com.doumee.dao.business.join.FundJoinMapper; import com.doumee.dao.business.model.Activity; import com.doumee.dao.business.model.ActivitySign; import com.doumee.dao.business.model.Fund; import com.doumee.dao.business.model.Member; import com.doumee.service.business.FundService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; /** * 资金明细信息表Service实现 * @author 江蹄蹄 * @date 2023/03/21 15:48 */ @Service public class FundServiceImpl implements FundService { @Autowired private FundMapper fundMapper; @Autowired private FundJoinMapper fundJoinMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Override public Integer create(Fund fund) { fundMapper.insert(fund); return fund.getId(); } @Override public void deleteById(Integer id) { fundMapper.deleteById(id); } @Override public void delete(Fund fund) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(fund); fundMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } fundMapper.deleteBatchIds(ids); } @Override public void updateById(Fund fund) { fundMapper.updateById(fund); } @Override public void updateByIdInBatch(List funds) { if (CollectionUtils.isEmpty(funds)) { return; } for (Fund fund: funds) { this.updateById(fund); } } @Override public Fund findById(Integer id) { return fundMapper.selectById(id); } @Override public Fund findOne(Fund fund) { QueryWrapper wrapper = new QueryWrapper<>(fund); return fundMapper.selectOne(wrapper); } @Override public List findList(Fund fund) { QueryWrapper wrapper = new QueryWrapper<>(fund); return fundMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.selectAll(Fund.class); queryWrapper.selectAs(Member::getNickname,Fund::getNickName); queryWrapper.selectAs(Member::getImgurl,Fund::getImgurl); queryWrapper.selectAs(Member::getPhone,Fund::getPhone); queryWrapper.leftJoin(Member.class,Member::getId,Fund::getMemberId); queryWrapper.eq(pageWrap.getModel().getType()!=null,Fund::getType,pageWrap.getModel().getType()); queryWrapper.and(pageWrap.getModel().getNickName()!=null,ms->ms.like(Member::getNickname,pageWrap.getModel().getNickName()) .or().like(Member::getPhone,pageWrap.getModel().getNickName()) ); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getOrderCode()),Fund::getOrderCode,pageWrap.getModel().getOrderCode()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getTitle()),Fund::getTitle,pageWrap.getModel().getTitle()); if (pageWrap.getModel().getStarttime() != null) { queryWrapper.ge(Fund::getCreateDate, pageWrap.getModel().getStarttime()); } if (pageWrap.getModel().getEndtime() != null) { queryWrapper.le(Fund::getCreateDate, pageWrap.getModel().getEndtime()); } queryWrapper.eq(Fund::getIsdeleted, Constants.ZERO); queryWrapper.orderByDesc(Fund::getCreateDate); IPage result = fundJoinMapper.selectJoinPage(page, Fund.class, queryWrapper); String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.MEMBER_FILE).getCode(); for(Fund model:result.getRecords()){ if(StringUtils.isNotBlank(model.getImgurl())){ model.setImgurl(path+model.getImgurl()); } } return PageData.from(result); } @Override public List exportMonthExcel(Fund pageWrap) { MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); // queryWrapper.selectSum(Fund::getNum,Fund::getPay); queryWrapper.select("(select sum(num) from fund where type=0 and date_format(t.CREATE_DATE,'%Y-%m') = date_format(CREATE_DATE,'%Y-%m') and ISDELETED=0 ) as income "); queryWrapper.select("(select sum(num) from fund where type=1 and date_format(t.CREATE_DATE,'%Y-%m') = date_format(CREATE_DATE,'%Y-%m') and ISDELETED=0 ) as pay "); queryWrapper.eq(Fund::getIsdeleted, Constants.ZERO); queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getYear()),"YEAR(t.CREATE_DATE)", pageWrap.getYear()); queryWrapper.groupBy("date_format(t.CREATE_DATE,'%Y-%m') "); queryWrapper.orderByDesc("date_format(t.CREATE_DATE,'%Y-%m') "); List result = fundJoinMapper.selectJoinList(Fund.class, queryWrapper); return result; } @Override public long count(Fund fund) { QueryWrapper wrapper = new QueryWrapper<>(fund); return fundMapper.selectCount(wrapper); } }