diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java index 0c753f255..41af172c2 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java @@ -331,6 +331,14 @@ public interface OrderBasicInfoMapper { List getOrderInfoByNXJT(NXJTQueryOrdersInfoDTO dto); OrderTotalDataVO getOrderTotalData(QueryOrderDTO dto); - List queryRepayOrder(String memberId); + + + /** + * 根据集团编号查询订单列表 + * 条件:订单完成状态;余额支付;有集团优惠 + * @param groupCode 集团编号 + * @return 订单列表 + */ + List queryOrderListByGroupCode(String groupCode); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberGroupService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberGroupService.java index 12ae7c6b6..bb720a083 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberGroupService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberGroupService.java @@ -2,6 +2,7 @@ package com.jsowell.pile.service; import com.jsowell.pile.domain.MemberGroup; import com.jsowell.pile.dto.MemberGroupDTO; +import com.jsowell.pile.vo.base.MemberGroupConsumptionVO; import com.jsowell.pile.vo.base.MemberGroupStationVO; import com.jsowell.pile.vo.uniapp.MemberVO; import com.jsowell.pile.vo.web.MemberDiscountVO; @@ -104,4 +105,9 @@ public interface MemberGroupService { List queryStationList(MemberGroupDTO dto); int removeStationFromMemberGroup(MemberGroupDTO dto); + + /** + * 根据memberGroup查询车辆消费记录 + */ + List queryMemberGroupConsumptionList(String groupCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java index fa54bdcae..eceea1990 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java @@ -401,4 +401,6 @@ public interface OrderBasicInfoService{ * @return */ List getOrderRefundInfoList(OrderBasicInfo orderBasicInfo); + + List queryOrderListByGroupCode(String groupCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberGroupServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberGroupServiceImpl.java index 84359649e..6f19b04ce 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberGroupServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberGroupServiceImpl.java @@ -10,9 +10,11 @@ import com.jsowell.common.util.id.IdUtils; import com.jsowell.pile.domain.MemberBasicInfo; import com.jsowell.pile.domain.MemberGroup; import com.jsowell.pile.domain.MemberGroupRelation; +import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.dto.MemberGroupDTO; import com.jsowell.pile.mapper.MemberGroupMapper; import com.jsowell.pile.service.*; +import com.jsowell.pile.vo.base.MemberGroupConsumptionVO; import com.jsowell.pile.vo.base.MemberGroupStationVO; import com.jsowell.pile.vo.uniapp.MemberVO; import com.jsowell.pile.vo.web.BillingTemplateVO; @@ -26,7 +28,9 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; /** * 会员组Service业务层处理 @@ -52,6 +56,9 @@ public class MemberGroupServiceImpl implements MemberGroupService { @Autowired private PileBillingTemplateService pileBillingTemplateService; + @Autowired + private OrderBasicInfoService orderBasicInfoService; + /** * 查询会员组 * @@ -292,6 +299,49 @@ public class MemberGroupServiceImpl implements MemberGroupService { return result; } + @Override + public List queryMemberGroupConsumptionList(String groupCode) { + List resultList = Lists.newArrayList(); + List orderList = orderBasicInfoService.queryOrderListByGroupCode(groupCode); + if (CollectionUtils.isEmpty(orderList)) { + return resultList; + } + // key:会员id,value:订单列表 + Map> listMap = orderList.stream().collect(Collectors.groupingBy(OrderBasicInfo::getMemberId)); + MemberGroupConsumptionVO vo = null; + for (Map.Entry> entry : listMap.entrySet()) { + List orderBasicInfoList = entry.getValue(); + if (CollectionUtils.isEmpty(orderBasicInfoList)) { + continue; + } + vo = new MemberGroupConsumptionVO(); + + String vinCode = null; + String licensePlateNumber = null; + BigDecimal totalConsumptionAmount = BigDecimal.ZERO; + for (int i = 0; i < orderBasicInfoList.size(); i++) { + OrderBasicInfo orderBasicInfo = orderBasicInfoList.get(i); + if (i == 0) { + vinCode = orderBasicInfo.getVinCode(); + licensePlateNumber = orderBasicInfo.getPlateNumber(); + } + + // 订单消费金额 + BigDecimal orderAmount = orderBasicInfo.getOrderAmount(); + // 优惠金额 + BigDecimal discountAmount = orderBasicInfo.getDiscountAmount() == null ? BigDecimal.ZERO : orderBasicInfo.getDiscountAmount(); + // 汇总消费金额 + totalConsumptionAmount = totalConsumptionAmount.add(orderAmount.subtract(discountAmount)); + } + + vo.setMemberId(entry.getKey()); + vo.setVinCode(vinCode); + vo.setLicensePlateNumber(licensePlateNumber); + vo.setTotalConsumptionAmount(totalConsumptionAmount.toString()); + } + return resultList; + } + /** * 会员与集团的关系保存到数据库 * @param memberId 会员id diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 799feba07..246ec21e6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -3636,6 +3636,11 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return orderRefundInfoList; } + @Override + public List queryOrderListByGroupCode(String groupCode) { + return orderBasicInfoMapper.queryOrderListByGroupCode(groupCode); + } + @Override public int deleteByPrimaryKey(Integer id) { return orderBasicInfoMapper.deleteByPrimaryKey(id); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/MemberGroupConsumptionVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/MemberGroupConsumptionVO.java new file mode 100644 index 000000000..0c9233607 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/MemberGroupConsumptionVO.java @@ -0,0 +1,31 @@ +package com.jsowell.pile.vo.base; + +import lombok.*; + +/** + * 集团会员消费列表VO + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class MemberGroupConsumptionVO { + // 会员id + private String memberId; + + /** + * 车牌号 + */ + private String licensePlateNumber; + + /** + * vin + */ + private String vinCode; + + /** + * 总消费金额 + */ + private String totalConsumptionAmount; +} diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index ab09f4d8b..52e1675d4 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -2782,9 +2782,19 @@ + + \ No newline at end of file