From d96f28993db5d9d4c3f2ac25b9e9a84fa6857dc2 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 31 八月 2023 11:15:13 +0800
Subject: [PATCH] 更新版本
---
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java | 164 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 117 insertions(+), 47 deletions(-)
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java
index 6bb9d6e..f0fbe97 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java
@@ -1,8 +1,12 @@
package com.stylefeng.guns.modular.system.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.util.DateUtil;
+import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.controller.resp.TAgentResp;
import com.stylefeng.guns.modular.system.dao.*;
import com.stylefeng.guns.modular.system.enums.OrderStateEnum;
@@ -10,8 +14,12 @@
import com.stylefeng.guns.modular.system.enums.StatusEnum;
import com.stylefeng.guns.modular.system.enums.UserTypeEnum;
import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.IDivisionRecordService;
import com.stylefeng.guns.modular.system.service.ITAgentService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.util.MallBook.model.InterfaceResponse;
+import com.stylefeng.guns.modular.system.util.MallBook.model.QueryBalance;
+import com.stylefeng.guns.modular.system.util.MallBook.util.TrhRequest;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -55,6 +63,9 @@
@Autowired
private TUserToCouponMapper tUserToCouponMapper;
+ @Autowired
+ private IDivisionRecordService divisionRecordService;
+
@Override
public EntityWrapper<TAgent> getAgentWrapper(String principal, String principalPhone, String createTime,Integer status) {
EntityWrapper<TAgent> wrapper = new EntityWrapper<>();
@@ -95,6 +106,7 @@
model.addAttribute("startTimeToEndTime",new SimpleDateFormat("yyyy-MM-dd").format(tAgent.getCreateTime()).replace("-",".") + "-" +
new SimpleDateFormat("yyyy-MM-dd").format(new Date()).replace("-","."));
+ model.addAttribute("id", agentId);
model.addAttribute("principal",tAgent.getPrincipal());
model.addAttribute("principalPhone",tAgent.getPrincipalPhone());
model.addAttribute("email",tAgent.getEmail());
@@ -108,24 +120,6 @@
List<TOrder> orders = orderList.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()))
&& 0 < order.getOrderMoney().compareTo(new BigDecimal("14")) && order.getAgentId().equals(tAgent.getId())).collect(Collectors.toList());
model.addAttribute("validOrder",orders.size());
- // 过滤已使用优惠券
- List<TOrder> usedCoupon = orderList.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()))
- && Objects.nonNull(order.getCouponId()) && order.getAgentId().equals(tAgent.getId())).collect(Collectors.toList());
- model.addAttribute("usedCoupon",usedCoupon.size());
- // 已使用优惠券金额求和,已使用优惠券id
-// List<Integer> usedCouponId = usedCoupon.stream().map(TOrder::getCouponId).collect(Collectors.toList());
-// if(CollectionUtils.isEmpty(usedCouponId)){
-// // 如果优惠券为空
-// model.addAttribute("couponPriceSum", BigDecimal.ZERO);
-// }else {
-// // 查询已使用优惠券金额求和
-// List<TCoupon> tCoupons1 = tCouponMapper.selectList(new EntityWrapper<TCoupon>().in("id", usedCouponId));
-// if(CollectionUtils.isEmpty(tCoupons1)){
-// model.addAttribute("couponPriceSum", BigDecimal.ZERO);
-// }else {
-// tCoupons1.stream().map(TCoupon::getCouponPreferentialAmount).reduce(BigDecimal::add).ifPresent(bigDecimal -> model.addAttribute("couponPriceSum", bigDecimal));
-// }
-// }
// 优惠券信息
// 过滤代理商发放的优惠券
List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(new EntityWrapper<TUserToCoupon>().eq("objectId",tAgent.getId())
@@ -133,25 +127,29 @@
BigDecimal couponPriceSum = BigDecimal.ZERO;
for (TUserToCoupon userToCoupon : tUserToCoupons) {
TCoupon tCoupons1 = tCouponMapper.selectById(userToCoupon.getCouponId());
- couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount().multiply(new BigDecimal(userToCoupon.getCouponTotal())));
+ if(Objects.nonNull(tCoupons1)){
+ couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount().multiply(new BigDecimal(userToCoupon.getCouponTotal())));
+ }
}
model.addAttribute("couponPriceSum", couponPriceSum);
// 过滤代理商发放的优惠券
int sum = tUserToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum();
model.addAttribute("issuedCoupon",sum);
- // 司机信息
- // 司机数
- List<TDriver> drivers = tDriverMapper.selectList(new EntityWrapper<TDriver>().eq("agentId", tAgent.getId()));
- model.addAttribute("driverCount",drivers.size());
- // 司机充值计算
- List<Integer> driverIds = drivers.stream().map(TDriver::getId).collect(Collectors.toList());
- List<TRechargeRecord> tRechargeRecords = tRechargeRecordMapper.selectList(new EntityWrapper<TRechargeRecord>().in("userId", driverIds)
- .eq("type", UserTypeEnum.DRIVER.getCode())
- .eq("payStatus", PayStatusEnum.FINISH.getCode()));
- if(CollectionUtils.isEmpty(tRechargeRecords)){
- model.addAttribute("driverRecharge",BigDecimal.ZERO);
- }else {
- tRechargeRecords.stream().map(TRechargeRecord::getAmount).reduce(BigDecimal::add).ifPresent(record->model.addAttribute("driverRecharge",record));
+ // 总量减去有效数量和过期数量为使用数量
+ int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum();//有效数量
+ int expireCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum();//过期数量
+ model.addAttribute("usedCoupon",sum-validCount-expireCount);
+
+ Double aDouble = divisionRecordService.queryTotalMoney(2, agentId);
+ model.addAttribute("income",aDouble);
+ QueryBalance queryBalance = new QueryBalance();
+ queryBalance.setUserId(tAgent.getMerchantNumber());
+ TrhRequest<QueryBalance> request = new TrhRequest();
+ InterfaceResponse execute = request.execute(queryBalance, QueryBalance.SERVICE_CODE);
+ model.addAttribute("balance", 0);
+ if("0000".equals(execute.getCode())){
+ JSONObject jsonObject = JSON.parseObject(execute.getResult());
+ model.addAttribute("balance", jsonObject.getDoubleValue("settledAmount") / 100);
}
}
@@ -161,7 +159,7 @@
List<TOrder> tOrders = tOrderMapper.selectList(new EntityWrapper<TOrder>());
// 查询优惠券
List<TCoupon> tCoupons = tCouponMapper.selectList(new EntityWrapper<TCoupon>());
- // 用户
+ // 用户优惠券
List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(new EntityWrapper<TUserToCoupon>());
// 查询司机信息
List<TDriver> tDrivers = tDriverMapper.selectList(new EntityWrapper<TDriver>());
@@ -185,7 +183,13 @@
// 过滤已使用优惠券
List<TOrder> usedCoupon = tOrders.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()))
&& Objects.nonNull(order.getCouponId()) && tAgent.getId().equals(order.getAgentId())).collect(Collectors.toList());
+ // 通过订单总量获取已完成订单的使用优惠券数量及优惠券金额
tAgentResp.setUsedCoupon(usedCoupon.size());
+ // 金额
+ Optional<BigDecimal> reduce = usedCoupon.stream().map(TOrder::getDiscountedPrice).reduce(BigDecimal::add);
+ reduce.ifPresent(tAgentResp::setCouponPriceSum);
+
+
// 已使用优惠券金额求和,已使用优惠券id
// List<Integer> usedCouponId = usedCoupon.stream().map(TOrder::getCouponId).collect(Collectors.toList());
// if(CollectionUtils.isEmpty(usedCouponId)){
@@ -201,18 +205,24 @@
// }
}
- if(!CollectionUtils.isEmpty(tUserToCoupons)){
- // 过滤代理商发放的优惠券
- List<TUserToCoupon> userToCoupons = tUserToCoupons.stream().filter(coupon -> tAgent.getId().equals(coupon.getObjectId()) && coupon.getRoleType() == 3).collect(Collectors.toList());
- int sum = userToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum();
- tAgentResp.setIssuedCoupon(sum);
- BigDecimal couponPriceSum = BigDecimal.ZERO;
- for (TUserToCoupon userToCoupon : userToCoupons) {
- TCoupon tCoupons1 = tCouponMapper.selectById(userToCoupon.getCouponId());
- couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount().multiply(new BigDecimal(userToCoupon.getCouponTotal())));
- }
- tAgentResp.setCouponPriceSum(couponPriceSum);
- }
+// if(!CollectionUtils.isEmpty(tUserToCoupons)){
+// // 过滤代理商发放的优惠券
+// List<TUserToCoupon> userToCoupons = tUserToCoupons.stream().filter(coupon -> tAgent.getId().equals(coupon.getObjectId()) && coupon.getRoleType() == 3).collect(Collectors.toList());
+// int sum = userToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum();
+// tAgentResp.setIssuedCoupon(sum);
+// // 总量减去有效数量和过期数量为使用数量
+// int validCount = userToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum();//有效数量
+// int expireCount = userToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum();//过期数量
+// tAgentResp.setUsedCoupon(sum-validCount-expireCount);
+// BigDecimal couponPriceSum = BigDecimal.ZERO;
+// for (TUserToCoupon userToCoupon : userToCoupons) {
+// TCoupon tCoupons1 = tCouponMapper.selectById(userToCoupon.getCouponId());
+// if(Objects.nonNull(tCoupons1)){
+// couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount().multiply(new BigDecimal(userToCoupon.getCouponTotal())));
+// }
+// }
+// tAgentResp.setCouponPriceSum(couponPriceSum);
+// }
if(!CollectionUtils.isEmpty(tDrivers)){
// 司机数
@@ -220,8 +230,9 @@
tAgentResp.setDriverCount(drivers.size());
// 司机充值计算
List<Integer> driverIds = drivers.stream().map(TDriver::getId).collect(Collectors.toList());
- List<TRechargeRecord> tRechargeRecords = tRechargeRecordMapper.selectList(new EntityWrapper<TRechargeRecord>().in("userId", driverIds)
- .eq("type", UserTypeEnum.DRIVER.getCode())
+ List<TRechargeRecord> tRechargeRecords = tRechargeRecordMapper.selectList(new EntityWrapper<TRechargeRecord>()
+ .eq("agentId", tAgent.getId())
+ .eq("type", UserTypeEnum.AGENT.getCode())
.eq("payStatus", PayStatusEnum.FINISH.getCode()));
tRechargeRecords.stream().map(TRechargeRecord::getAmount).reduce(BigDecimal::add).ifPresent(tAgentResp::setDriverRecharge);
}
@@ -264,4 +275,63 @@
map.put("agentTotal",agentTotal);
map.put("agentMonthTotal",agentMonthTotal);
}
+
+
+ @Override
+ public Map<String, Object> queryAgentSummaryData(Integer id, String time) {
+ // 查询代理商用户信息
+ TAgent tAgent = tAgentMapper.selectById(id);
+ Map<String, Object> map = new HashMap<>();
+ String startTime = "";
+ String endTime = "";
+ if(ToolUtil.isNotEmpty(time)){
+ startTime = time.split(" - ")[0];
+ endTime = time.split(" - ")[1];
+ }
+ Wrapper<TOrder> agentId = new EntityWrapper<TOrder>().eq("agentId", tAgent.getId());
+ if(ToolUtil.isNotEmpty(time)){
+ agentId.last(" and DATE_FORMAT(createTime, '%Y-%m-%d') between '" + startTime + "' and '" + endTime + "'");
+ }
+ List<TOrder> orderList = tOrderMapper.selectList(agentId);
+ map.put("orderSum",orderList.size());
+ // 过滤已完成和待评价订单,且支付金额在14元以上
+ List<TOrder> orders = orderList.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()))
+ && 0 < order.getOrderMoney().compareTo(new BigDecimal("14")) && order.getAgentId().equals(tAgent.getId())).collect(Collectors.toList());
+ map.put("validOrder",orders.size());
+ // 优惠券信息
+ // 过滤代理商发放的优惠券
+ Wrapper<TUserToCoupon> wrapper = new EntityWrapper<TUserToCoupon>().eq("objectId", tAgent.getId())
+ .eq("roleType", 3);
+ if(ToolUtil.isNotEmpty(time)){
+ wrapper.last(" and DATE_FORMAT(createTime, '%Y-%m-%d') between '" + startTime + "' and '" + endTime + "'");
+ }
+ List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(wrapper);
+ BigDecimal couponPriceSum = BigDecimal.ZERO;
+ for (TUserToCoupon userToCoupon : tUserToCoupons) {
+ TCoupon tCoupons1 = tCouponMapper.selectById(userToCoupon.getCouponId());
+ if(Objects.nonNull(tCoupons1)){
+ couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount().multiply(new BigDecimal(userToCoupon.getCouponTotal())));
+ }
+ }
+ map.put("couponPriceSum", couponPriceSum);
+ // 过滤代理商发放的优惠券
+ int sum = tUserToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum();
+ // 总量减去有效数量和过期数量为使用数量
+ int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum();//有效数量
+ int expireCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum();//过期数量
+ map.put("usedCoupon",sum-validCount-expireCount);
+
+ Double aDouble = divisionRecordService.queryTotalMoney(2, id);
+ map.put("income",aDouble);
+ QueryBalance queryBalance = new QueryBalance();
+ queryBalance.setUserId(tAgent.getMerchantNumber());
+ TrhRequest<QueryBalance> request = new TrhRequest();
+ InterfaceResponse execute = request.execute(queryBalance, QueryBalance.SERVICE_CODE);
+ map.put("balance", 0);
+ if("0000".equals(execute.getCode())){
+ JSONObject jsonObject = JSON.parseObject(execute.getResult());
+ map.put("balance", jsonObject.getDoubleValue("settledAmount") / 100);
+ }
+ return map;
+ }
}
--
Gitblit v1.7.1