| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.doumee.core.constants.Constants; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.RefundMapper; |
| | | import com.doumee.dao.business.join.RefundJoinMapper; |
| | | import com.doumee.dao.business.model.Goodsorder; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Refund; |
| | | import com.doumee.dao.business.model.RefundPlatExportVO; |
| | | import com.doumee.dao.business.vo.GoodsorderExportVO; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.service.business.RefundService; |
| | | 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.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.sql.Ref; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private RefundMapper refundMapper; |
| | | @Autowired |
| | | private RefundJoinMapper refundJoinMapper; |
| | | |
| | | @Override |
| | | public String create(Refund refund) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public PageData<Refund> findPage(PageWrap<Refund> pageWrap) { |
| | | IPage<Refund> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<Refund> queryWrapper = new QueryWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(Refund::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(Refund::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(Refund::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(Refund::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(Refund::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(Refund::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.lambda().eq(Refund::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(Refund::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getInfo() != null) { |
| | | queryWrapper.lambda().eq(Refund::getInfo, pageWrap.getModel().getInfo()); |
| | | } |
| | | if (pageWrap.getModel().getCode() != null) { |
| | | queryWrapper.lambda().eq(Refund::getCode, pageWrap.getModel().getCode()); |
| | | } |
| | | if (pageWrap.getModel().getMemberId() != null) { |
| | | queryWrapper.lambda().eq(Refund::getMemberId, pageWrap.getModel().getMemberId()); |
| | | } |
| | | if (pageWrap.getModel().getMoney() != null) { |
| | | queryWrapper.lambda().eq(Refund::getMoney, pageWrap.getModel().getMoney()); |
| | | } |
| | | if (pageWrap.getModel().getStatus() != null) { |
| | | queryWrapper.lambda().eq(Refund::getStatus, pageWrap.getModel().getStatus()); |
| | | } |
| | | if (pageWrap.getModel().getPreOrderid() != null) { |
| | | queryWrapper.lambda().eq(Refund::getPreOrderid, pageWrap.getModel().getPreOrderid()); |
| | | } |
| | | if (pageWrap.getModel().getOnlineOrderid() != null) { |
| | | queryWrapper.lambda().eq(Refund::getOnlineOrderid, pageWrap.getModel().getOnlineOrderid()); |
| | | } |
| | | if (pageWrap.getModel().getPayWay() != null) { |
| | | queryWrapper.lambda().eq(Refund::getPayWay, pageWrap.getModel().getPayWay()); |
| | | } |
| | | if (pageWrap.getModel().getDoneDate() != null) { |
| | | queryWrapper.lambda().ge(Refund::getDoneDate, Utils.Date.getStart(pageWrap.getModel().getDoneDate())); |
| | | queryWrapper.lambda().le(Refund::getDoneDate, Utils.Date.getEnd(pageWrap.getModel().getDoneDate())); |
| | | } |
| | | if (pageWrap.getModel().getType() != null) { |
| | | queryWrapper.lambda().eq(Refund::getType, pageWrap.getModel().getType()); |
| | | } |
| | | if (pageWrap.getModel().getObjId() != null) { |
| | | queryWrapper.lambda().eq(Refund::getObjId, pageWrap.getModel().getObjId()); |
| | | } |
| | | if (pageWrap.getModel().getReason() != null) { |
| | | queryWrapper.lambda().eq(Refund::getReason, pageWrap.getModel().getReason()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | public PageData<Refund> findPlatPage(PageWrap<Refund> pageWrap) { |
| | | pageWrap.getModel().setTypeList(new ArrayList<>()); |
| | | //强制结算退款 和 结算后退款 |
| | | pageWrap.getModel().getTypeList().add(Constants.REFUND_TYPE.PLAT_FORCE.getKey()); |
| | | pageWrap.getModel().getTypeList().add(Constants.REFUND_TYPE.BACK.getKey()); |
| | | pageWrap.getModel().setStatus(Constants.TWO); |
| | | IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Refund> queryWrapper = initQueryParamByModel(pageWrap.getModel()); |
| | | return PageData.from(refundJoinMapper.selectJoinPage(page, Refund.class,queryWrapper)); |
| | | } |
| | | @Override |
| | | public List<RefundPlatExportVO> findPlatExportPage( Refund pageWrap) { |
| | | pageWrap.setTypeList(new ArrayList<>()); |
| | | //强制结算退款 和 结算后退款 |
| | | pageWrap.getTypeList().add(Constants.REFUND_TYPE.PLAT_FORCE.getKey()); |
| | | pageWrap.getTypeList().add(Constants.REFUND_TYPE.BACK.getKey()); |
| | | pageWrap.setStatus(Constants.TWO); |
| | | MPJLambdaWrapper<Refund> queryWrapper = initQueryParamByModel(pageWrap); |
| | | |
| | | List<Refund> list = refundJoinMapper.selectJoinList( Refund.class,queryWrapper); |
| | | List<RefundPlatExportVO> result = new ArrayList<>(); |
| | | |
| | | if(list!=null){ |
| | | for(Refund order : list){ |
| | | RefundPlatExportVO vo = new RefundPlatExportVO(); |
| | | vo.setId(order.getId()); |
| | | vo.setOpenid(order.getOpenid()); |
| | | vo.setDoneDate(order.getDoneDate()); |
| | | vo.setMoney(Constants.formatDecimalNum(order.getMoney()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP)); |
| | | vo.setCanBanlance(Constants.formatDecimalNum(order.getCanBanlance()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP)); |
| | | vo.setOnlineOrderid(order.getOnlineOrderid()); |
| | | vo.setPayOnlineOrderid(order.getPayOnlineOrderid()); |
| | | vo.setCreatorName(order.getCreatorName()); |
| | | vo.setReason(order.getReason()); |
| | | result.add(vo); |
| | | } |
| | | } |
| | | return PageData.from(refundMapper.selectPage(page, queryWrapper)); |
| | | return result; |
| | | } |
| | | |
| | | private MPJLambdaWrapper<Refund> initQueryParamByModel(Refund model) { |
| | | MPJLambdaWrapper<Refund> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(model); |
| | | //只查询支付成功的 |
| | | queryWrapper.selectAll(Refund.class); |
| | | queryWrapper.selectAs(SystemUser::getRealname, Refund::getCreatorName); |
| | | queryWrapper.selectAs(Member::getOpenid, Refund::getOpenid); |
| | | queryWrapper.leftJoin(Goodsorder.class, Goodsorder::getId ,Refund::getObjId); |
| | | queryWrapper.leftJoin(Member.class, Member::getId ,Goodsorder::getMemberId); |
| | | queryWrapper.leftJoin(SystemUser.class, SystemUser::getId ,Refund::getCreator); |
| | | //时间段筛选 |
| | | queryWrapper.ge(model.getStartDate()!=null, Refund::getDoneDate, model.getStartDate()); |
| | | queryWrapper.le(model.getEndDate()!=null, Refund::getDoneDate, model.getEndDate()); |
| | | queryWrapper.eq(model.getCreator() !=null,Refund::getCreator,model.getCreator()); |
| | | queryWrapper.eq(model.getStatus() !=null,Refund::getStatus,model.getStatus()); |
| | | queryWrapper.like(model.getPayOnlineOrderid() !=null,Goodsorder::getOnlineOrderid,model.getPayOnlineOrderid()); |
| | | queryWrapper.like(model.getOnlineOrderid() !=null,Refund::getOnlineOrderid,model.getOnlineOrderid()); |
| | | queryWrapper.like(model.getOpenid() !=null,Member::getOpenid,model.getOpenid()); |
| | | queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.orderByDesc(Refund::getDoneDate); |
| | | return queryWrapper; |
| | | } |
| | | @Override |
| | | public PageData<Refund> findPage(PageWrap<Refund> pageWrap) { |
| | | IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Refund> queryWrapper = initQueryParamByModel(pageWrap.getModel()); |
| | | return PageData.from(refundJoinMapper.selectJoinPage(page, Refund.class,queryWrapper)); |
| | | } |
| | | |
| | | @Override |