| | |
| | | @Slf4j |
| | | public class GoodsorderServiceImpl implements GoodsorderService { |
| | | |
| | | |
| | | |
| | | @Autowired |
| | | private GoodsorderMapper goodsorderMapper; |
| | | |
| | |
| | | MPJLambdaWrapper<Goodsorder> queryWrapper = initQueryParamByModel(model); |
| | | queryWrapper.orderByAsc(Goodsorder::getPayDate); |
| | | goodsorderList = goodsorderJoinMapper.selectJoinList(GoodsorderExportVO.class,queryWrapper); |
| | | |
| | | }else{ |
| | | MPJLambdaWrapper<Refund> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAs(Refund::getMoney,GoodsorderExportVO::getRefundMoney); |
| | |
| | | MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Goodsorder.class); |
| | | queryWrapper.selectAs(Member::getOpenid, Goodsorder::getOpenid); |
| | | queryWrapper.selectAs(DiscountMember::getName, Goodsorder::getDiscountName); |
| | | queryWrapper.leftJoin(Member.class, Member::getId ,Goodsorder::getMemberId); |
| | | queryWrapper.leftJoin(DiscountMember.class, DiscountMember::getId ,Goodsorder::getObjId); |
| | | queryWrapper.select("(select max(r.done_date) from refund r where r.obj_id=t.id and r.status=2 ) as refund_date"); |
| | | queryWrapper.select("(select sum(r.money) from refund r where r.obj_id=t.id and r.status=2) as refund_money"); |
| | | queryWrapper.select("(select r.name from discount_member r where r.isdeleted=0 and r.goodsorder_id=t.id limit 1) as discountName"); |
| | | queryWrapper.select("(select max(r.done_date) from refund r where r.obj_id=t.id and r.status in(0,2)) as refund_date"); |
| | | queryWrapper.select("(select sum(r.money) from refund r where r.obj_id=t.id and r.status in(0,2)) as refund_money"); |
| | | //时间段筛选 |
| | | if (Objects.nonNull(model.getStartDate())){ |
| | | queryWrapper.ge(Goodsorder::getPayDate, Utils.Date.getStart(model.getStartDate())); |
| | |
| | | if (Objects.nonNull(model.getEndDate())){ |
| | | queryWrapper.le( Goodsorder::getPayDate, Utils.Date.getEnd(model.getEndDate())); |
| | | } |
| | | |
| | | queryWrapper.eq(model.getPayStatus() !=null,Goodsorder::getPayStatus,model.getPayStatus()); |
| | | queryWrapper.eq(Constants.equalsInteger(model.getType(),Constants.ONE)&&model.getPayStatus() !=null,Goodsorder::getPayStatus,model.getPayStatus()); |
| | | queryWrapper.like(model.getCode() !=null,Goodsorder::getCode,model.getCode()); |
| | | queryWrapper.like(model.getId() !=null,Goodsorder::getId,model.getId()); |
| | | queryWrapper.eq(model.getStatus() !=null,Goodsorder::getStatus,model.getStatus()); |
| | | queryWrapper.like(model.getOnlineOrderid() !=null,Goodsorder::getOnlineOrderid,model.getOnlineOrderid()); |
| | | queryWrapper.like(model.getOpenid() !=null,Member::getOpenid,model.getOpenid()); |
| | | queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.eq(Goodsorder::getPayStatus,Constants.ONE); |
| | | //如果是骑行订单只显示支付成功的 |
| | | queryWrapper.eq(Constants.equalsInteger(model.getType(),Constants.ZERO),Goodsorder::getPayStatus,Constants.ONE); |
| | | |
| | | return queryWrapper; |
| | | } |
| | |
| | | MPJLambdaWrapper<Goodsorder> queryWrapper = initQueryParamByModel(pageWrap.getModel()); |
| | | queryWrapper.orderByDesc(Goodsorder::getPayDate); |
| | | queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Goodsorder::getType,pageWrap.getModel().getType()); |
| | | |
| | | queryWrapper.select("(select sum(er.discount_price) from member_rides er where er.ordre_id=t.id and er.isdeleted=0) as discountMoney," + |
| | | "(select er.status from member_rides er where er.ordre_id=t.id order by er.create_date desc limit 1) as memberRidesStatus"); |
| | | queryWrapper.select("( select s.realname from refund r left join system_user s on r.creator = s.id where r.obj_id = t.id order by r.id desc limit 1 ) ",Goodsorder::getRefundUserName); |
| | |
| | | } |
| | | return PageData.from(goodsorderIPage); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public long count(Goodsorder goodsorder) { |
| | |
| | | goodsorderDetailVO.setMember(member); |
| | | } |
| | | //查询商品信息 |
| | | DiscountMember discountMember = discountMemberMapper.selectById(goodsorder.getObjId()); |
| | | DiscountMember discountMember = discountMemberMapper.selectOne(new QueryWrapper<DiscountMember>().lambda() |
| | | .eq(DiscountMember::getIsdeleted,Constants.ZERO) |
| | | .eq(DiscountMember::getGoodsorderId,goodsorder.getId())); |
| | | if(Objects.nonNull(discountMember)){ |
| | | goodsorderDetailVO.setDiscountMember(discountMember); |
| | | } |
| | |
| | | doRefundTransactions(refund); |
| | | //退款乐行 |
| | | int type =Constants.formatIntegerNum(refund.getType()); |
| | | Goodsorder goodsorder = goodsorderMapper.selectById(refund.getObjId()); |
| | | closeGoodsorderDoneNoRefund(goodsorder,refund.getType(),refund.getMoney(),refund.getId(),null); |
| | | /* log.error("========================================"+JSONObject.toJSONString(goodsorder)); |
| | | if(goodsorder ==null || Constants.formatIntegerNum(goodsorder.getStatus()) != Constants.GOODSORDER_STATUS.HAVING_PAY.getKey()){ |
| | | return; |
| | | if(type == 0|| type ==1 || type==2){ |
| | | //如果是阶段退款 |
| | | Goodsorder goodsorder = goodsorderMapper.selectById(refund.getObjId()); |
| | | closeGoodsorderDoneNoRefund(goodsorder,type,refund.getMoney(),refund.getId(),null); |
| | | } |
| | | //进行订单结算业务处理 |
| | | List<MemberRides> memberRides = getMemberRidesForClose(refund.getObjId()); |
| | | //默认结算为押金金额 |
| | | if (!CollectionUtils.isEmpty(memberRides)){ |
| | | //骑行总时长 |
| | | for(MemberRides model :memberRides){ |
| | | MemberRides up = new MemberRides(); |
| | | up.setId(model.getId()); |
| | | up.setActualPrice(model.getActualPrice()); |
| | | up.setCloseDate(goodsorder.getEditDate()); |
| | | up.setCloseStatus(Constants.ONE); |
| | | up.setEditor(goodsorder.getEditor()); |
| | | up.setEditDate(goodsorder.getEditDate()); |
| | | //更新骑行记录的计算金额和状态 |
| | | memberRidesJoinMapper.updateById(up); |
| | | } |
| | | } |
| | | |
| | | Goodsorder update = new Goodsorder(); |
| | | update.setId(goodsorder.getId()); |
| | | update.setStatus(Constants.GOODSORDER_STATUS.CLOSE.getKey()); |
| | | update.setCloseMoney(closeMoney); |
| | | update.setCloseStatus(Constants.ONE); |
| | | update.setCloseDate(new Date()); |
| | | update.setCloseInfo(Constants.REFUND_TYPE.get(refund.getType()).getInfo()); |
| | | update.setCloseUserId(goodsorder.getEditor()); |
| | | if(Constants.REFUND_TYPE.PLAT_FORCE.getKey() == type){ |
| | | //如果是强制结算 |
| | | update.setCloseType(Constants.ONE); |
| | | // LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | // update.setEditor(principal.getId()); |
| | | }else if(Constants.REFUND_TYPE.NORMAL.getKey() == type){ |
| | | //如果是自行結算 |
| | | update.setCloseType(Constants.ZERO); |
| | | }else{ |
| | | //如果是平台自动结算 |
| | | update.setCloseType(Constants.TWO); |
| | | } |
| | | update.setCloseId(refund.getId()); |
| | | //存储 消费交易流水 |
| | | Transactions transactions = new Transactions(); |
| | | transactions.setId(Constants.getUUID()); |
| | | transactions.setMemberId(goodsorder.getMemberId()); |
| | | transactions.setCreateDate(new Date()); |
| | | transactions.setIsdeleted(Constants.ZERO); |
| | | transactions.setOrderId(goodsorder.getId()); |
| | | transactions.setMoney(goodsorder.getMoney().subtract(Constants.formatDecimalNum(refund.getMoney()))); |
| | | transactions.setType(Constants.TRANSACTIONS_TYPE.CONSUMPTION.getKey()); |
| | | transactions.setDoneDate(new Date()); |
| | | transactions.setTitle(Constants.TRANSACTIONS_TYPE.CONSUMPTION.getName()); |
| | | transactions.setContent(Constants.TRANSACTIONS_TYPE.CONSUMPTION.getInfo()); |
| | | transactions.setBalance(BigDecimal.ZERO); |
| | | transactions.setObjId(goodsorder.getId()); |
| | | transactions.setObjType(Constants.ONE); |
| | | transactionsMapper.insert(transactions); |
| | | //修改订单信息 |
| | | goodsorderMapper.updateById(update);*/ |
| | | } |
| | | } |
| | | |
| | | private void doRefundTransactions(Refund refund ) { |
| | | //存储交易流水表 |
| | |
| | | if(goodsorder == null){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,订单信息不存在,请刷新页面重试!"); |
| | | } |
| | | if (Constants.formatIntegerNum(goodsorder.getStatus()) != Constants.GOODSORDER_STATUS.CLOSE.getKey()){ |
| | | if (Constants.equalsInteger(goodsorder.getType(),Constants.ZERO) && |
| | | Constants.formatIntegerNum(goodsorder.getStatus()) != Constants.GOODSORDER_STATUS.CLOSE.getKey()){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该订单请结算后再退款~"); |
| | | } |
| | | if (Constants.equalsInteger(goodsorder.getType(),Constants.ONE) && |
| | | Constants.formatIntegerNum(goodsorder.getStatus()) != Constants.GOODSORDER_STATUS.HAVING_PAY.getKey()){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该订单请支付后再退款~"); |
| | | } |
| | | QueryWrapper<Refund> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(Refund::getObjId,goodsorderBackDTO.getOrderId()) |
| | | .eq(Refund::getStatus,Constants.TWO) |
| | | .in(Refund::getStatus,Constants.TWO,Constants.ZERO) |
| | | .eq(Refund::getIsdeleted,Constants.ZERO) ; |
| | | wrapper.select("sum(money) as money").last(" limit 1"); |
| | | Refund total = refundMapper.selectOne(wrapper); |
| | |
| | | refundDTO.setType(Constants.REFUND_TYPE.BACK.getKey()); |
| | | //退货退款 查看套餐订单状态 更新订单信息 |
| | | if(Constants.equalsInteger(goodsorderBackDTO.getBackType(),Constants.ZERO)&&Constants.equalsInteger(goodsorder.getType(),Constants.ONE)){ |
| | | DiscountMember discountMember = discountMemberMapper.selectById(goodsorder.getObjId()); |
| | | DiscountMember discountMember = discountMemberMapper.selectOne(new QueryWrapper<DiscountMember>().lambda(). |
| | | eq(DiscountMember::getGoodsorderId,goodsorder.getId()) |
| | | .eq(DiscountMember::getIsdeleted,Constants.ZERO) |
| | | .last("limit 1")); |
| | | if(Objects.isNull(discountMember)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到套餐卡信息"); |
| | | } |
| | |
| | | QueryWrapper<Refund> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(Refund::getObjId,orderId) |
| | | .eq(Refund::getStatus,Constants.TWO) |
| | | .in(Refund::getStatus,Constants.TWO,Constants.ZERO) |
| | | .eq(Refund::getIsdeleted,Constants.ZERO) ; |
| | | wrapper.select("sum(money) as money").last(" limit 1"); |
| | | Refund total = refundMapper.selectOne(wrapper); |
| | |
| | | "and d.isdeleted = 0 and d.type = 0 and EXTRACT(DAY FROM d.create_date) = EXTRACT(DAY FROM CURRENT_DATE) " , DiscountMember::getUseTime)//查询今日已使用时间 |
| | | .eq(DiscountMember::getStatus,Constants.ZERO) |
| | | .eq(DiscountMember::getMemberId,memberId) |
| | | .ge(DiscountMember::getUseStartDate, Utils.Date.getStart(DateUtil.StringToDate(today))) |
| | | .le(DiscountMember::getUseEndDate, Utils.Date.getEnd(DateUtil.StringToDate(today))) |
| | | .ge(DiscountMember::getUseStartDate, Utils.Date.getStart(DateUtil.stringToDate(today,"yyyy-MM-dd"))) |
| | | .le(DiscountMember::getUseEndDate, Utils.Date.getEnd(DateUtil.stringToDate(today,"yyyy-MM-dd"))) |
| | | .eq(Constants.equalsInteger(holiday,Constants.ONE),DiscountMember::getUseHoliday,Constants.ONE) |
| | | .orderByDesc(DiscountMember::getLimitType) |
| | | .orderByDesc(DiscountMember::getLimitTime) |