| | |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.MultifileMapper; |
| | | import com.doumee.dao.business.OrdersMapper; |
| | | import com.doumee.dao.business.OtherOrdersMapper; |
| | | import com.doumee.dao.business.PricingRuleMapper; |
| | | import com.doumee.dao.business.RevenueMapper; |
| | | import com.doumee.dao.business.ShopInfoMapper; |
| | |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Multifile; |
| | | import com.doumee.dao.business.model.Orders; |
| | | import com.doumee.dao.business.model.OtherOrders; |
| | | import com.doumee.dao.business.model.PricingRule; |
| | | import com.doumee.dao.business.model.Revenue; |
| | | import com.doumee.dao.business.model.ShopInfo; |
| | |
| | | |
| | | @Autowired |
| | | private CategoryMapper categoryMapper; |
| | | |
| | | @Autowired |
| | | private OtherOrdersMapper otherOrdersMapper; |
| | | |
| | | @Override |
| | | public Integer create(ShopInfo shopInfo) { |
| | |
| | | newChange.setCreateTime(now); |
| | | newChange.setUpdateTime(now); |
| | | newChange.setRegionMemberId(member.getId()); |
| | | newChange.setRevenueShareConfig(changeVersion.getRevenueShareConfig()); |
| | | newChange.setDeliveryArea(changeVersion.getDeliveryArea()); |
| | | setDepositAmountFromPricingRule(newChange); |
| | | shopInfoMapper.insert(newChange); |
| | | |
| | |
| | | changeVersion.setAuditUserId(auditDTO.getAuditUser()); |
| | | changeVersion.setRevenueShareConfig(revenueShareConfig); |
| | | changeVersion.setUpdateTime(now); |
| | | setDefaultDeliveryRange(changeVersion); |
| | | shopInfoMapper.updateById(changeVersion); |
| | | |
| | | // 标记历史的变更版本为删除 |
| | |
| | | vo.setTagId(tag.getId()); |
| | | vo.setTagName(tag.getName()); |
| | | vo.setShopCount(count != null ? count.intValue() : 0); |
| | | vo.setSortnum(tag.getSortnum()); |
| | | result.add(vo); |
| | | } |
| | | |
| | | // 按门店数量倒序,相同时按排序码降序 |
| | | result.sort((a, b) -> { |
| | | int cmp = Integer.compare( |
| | | b.getShopCount() != null ? b.getShopCount() : 0, |
| | | a.getShopCount() != null ? a.getShopCount() : 0); |
| | | if (cmp != 0) return cmp; |
| | | return Integer.compare( |
| | | b.getSortnum() != null ? b.getSortnum() : 0, |
| | | a.getSortnum() != null ? a.getSortnum() : 0); |
| | | }); |
| | | |
| | | // 总数放在列表第一个 |
| | | Long totalCount = shopInfoMapper.selectCount(baseQw); |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | ShopCenterVO vo = new ShopCenterVO(); |
| | | vo.setId(shop.getId()); |
| | | vo.setShopName(shop.getName()); |
| | | vo.setLinkName(shop.getLinkName()); |
| | | vo.setCompanyType(shop.getCompanyType()); |
| | |
| | | .count(); |
| | | vo.setFinishedOrderCount((int) finishedCount); |
| | | |
| | | // 总营收金额 = sum(totalAmount - refundAmount) |
| | | long totalRevenue = orders.stream() |
| | | // 总营收金额 = sum(支付金额 - 退款金额) + 逾期金额 |
| | | long baseRevenue = orders.stream() |
| | | .mapToLong(o -> { |
| | | long total = o.getTotalAmount() != null ? o.getTotalAmount() : 0L; |
| | | long pay = o.getPayAmount() != null ? o.getPayAmount() : 0L; |
| | | long refund = o.getRefundAmount() != null ? o.getRefundAmount() : 0L; |
| | | return total - refund; |
| | | return pay - refund; |
| | | }).sum(); |
| | | vo.setTotalRevenue(totalRevenue); |
| | | |
| | | // 查询该门店参与的逾期费用(从other_orders表获取,type=2已支付) |
| | | QueryWrapper<OtherOrders> overdueQw = new QueryWrapper<>(); |
| | | overdueQw.lambda() |
| | | .eq(OtherOrders::getDeleted, Constants.ZERO) |
| | | .eq(OtherOrders::getType, Constants.TWO) |
| | | .eq(OtherOrders::getPayStatus, Constants.ONE) |
| | | .inSql(OtherOrders::getOrderId, |
| | | "SELECT id FROM orders WHERE DELETED = 0 AND (DEPOSIT_SHOP_ID = " + shopId + " OR TAKE_SHOP_ID = " + shopId + ")"); |
| | | if (query.getStartDate() != null) { |
| | | overdueQw.lambda().ge(OtherOrders::getCreateTime, query.getStartDate()); |
| | | } |
| | | if (query.getEndDate() != null) { |
| | | overdueQw.lambda().le(OtherOrders::getCreateTime, Utils.Date.getEnd(query.getEndDate())); |
| | | } |
| | | List<OtherOrders> overdueOrders = otherOrdersMapper.selectList(overdueQw); |
| | | long overdueTotal = overdueOrders.stream() |
| | | .mapToLong(o -> o.getPayAccount() != null ? o.getPayAccount() : 0L) |
| | | .sum(); |
| | | |
| | | vo.setTotalRevenue(baseRevenue + overdueTotal); |
| | | |
| | | // 门店分成金额 |
| | | long shopFee = 0L; |