diff --git a/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java b/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java index 1a892f6..be0e26b 100644 --- a/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java +++ b/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java @@ -124,6 +124,15 @@ public class ArtificerController { sort,authentication,by,status,city,classifyId,phone,null,isStart,technicianType,isBack,isGoods); } + @GetMapping("/selectArtificerListPc") + @ApiOperation("查询技师列表PC端") + public Result selectArtificerListPc(Integer page, Integer limit, Long massageTypeId, String artificerName, + String longitude,String latitude,Integer sort,Integer authentication, + Integer by,Integer status,String city,String classifyId,String phone,Integer isStart,Integer technicianType,String isBack,Integer isGoods){ + return artificerService.selectArtificerListPc(page, limit, massageTypeId, artificerName,longitude,latitude, + sort,authentication,by,status,city,classifyId,phone,null,isStart,technicianType,isBack,isGoods); + } + @GetMapping("/selectArtificer") @ApiOperation("查询技师列表(不带分页)") public Result selectArtificer(String city,String classifyId,String artificerName){ diff --git a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java index 23b3ffd..98e583a 100644 --- a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java +++ b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java @@ -84,6 +84,8 @@ public interface OrdersDao extends BaseMapper { List selectOrdersStatusByTime(String time); + List selectNotAcceptedOrders(String time); + IPage> selectShopMoney(Page page,String userName,String phone,String flag,String time); IPage> selectOneUserMoney(Page page,String userName,String phone,String flag,String time); diff --git a/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java b/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java index f43b317..2986925 100644 --- a/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java +++ b/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java @@ -17,6 +17,10 @@ public interface ArtificerService extends IService { String longitude,String latitude,Integer sort,Integer authentication, Integer by,Integer status,String city,String classifyId,String phone,Integer user, Integer isStart,Integer technicianType,String isBack, Integer isGoods); + Result selectArtificerListPc(Integer page, Integer limit, Long massageTypeId, String artificerName, + String longitude,String latitude,Integer sort,Integer authentication, + Integer by,Integer status,String city,String classifyId,String phone,Integer user, Integer isStart,Integer technicianType,String isBack, Integer isGoods); + Artificer selectArtificerById(Long userId,Long artificerId,String longitude,String latitude); Artificer selectArtificerByUserId(Long userId); diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/AppArtificerIntegralServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/AppArtificerIntegralServiceImpl.java index 56bfe6a..379fbc8 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/AppArtificerIntegralServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/AppArtificerIntegralServiceImpl.java @@ -20,11 +20,14 @@ import com.sqx.modules.artificer.service.AppArtificerIntegralService; import com.sqx.modules.artificer.vo.HomeVO; import com.sqx.modules.artificer.vo.UserArtificerVO; import com.sqx.modules.bl.artificer.dao.ArtificerPartitioningDetailsDao; +import com.sqx.modules.bl.artificer.entity.ArtificerIntegralStatistics; import com.sqx.modules.bl.artificer.entity.ArtificerPartitioningDetails; +import com.sqx.modules.bl.artificer.service.ArtificerIntegralStatisticsService; import com.sqx.modules.common.dao.CommonInfoDao; import com.sqx.modules.common.entity.CommonInfo; import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -45,7 +48,8 @@ public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralServ private final CommonInfoDao commonInfoDao; private final ArtificerDao artificerDao; private final UserDao userDao; - + @Autowired + ArtificerIntegralStatisticsService artificerIntegralStatisticsService; @Override public Result home(Long artificerId) { @@ -63,22 +67,28 @@ public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralServ } orders.setGrade(grade); + ArtificerIntegralStatistics artificerIntegralStatistics =artificerIntegralStatisticsService.getIntegralStatistics(artificerId,startDate,endDate,null); //当期业绩 - Integer currentPerformance = ordersDao.selectOrdersArtificerIntegralAchievement(artificerId, endDate, startDate); +// Integer currentPerformance = ordersDao.selectOrdersArtificerIntegralAchievement(artificerId, endDate, startDate); + BigDecimal currentPerformance = artificerIntegralStatistics.getAchievement(); orders.setCurrentPerformance(String.valueOf(currentPerformance)); //当期收益 // String earnings = ordersDao.earnings(artificerId, endDate, startDate); - BigDecimal earnings = ordersDao.selectOrdersArtificerIntegralEarnings(artificerId, endDate, startDate); - earnings = earnings.setScale(2,BigDecimal.ROUND_HALF_UP); - orders.setEarnings(earnings.toString()); +// BigDecimal earnings = ordersDao.selectOrdersArtificerIntegralEarnings(artificerId, endDate, startDate); +// earnings = earnings.setScale(2,BigDecimal.ROUND_HALF_UP); +// orders.setEarnings(earnings.toString()); + BigDecimal earnings = artificerIntegralStatistics.getIncome(); + orders.setEarnings(String.valueOf(earnings)); //当日收益 String todayEndIncome = DateUtil.formatDateTime(DateUtil.endOfDay(new Date())); // String dailyEarnings = ordersDao.earnings(artificerId, todayEndIncome, String.valueOf(DateUtil.beginOfDay(new Date()))); - BigDecimal dailyEarnings = ordersDao.selectOrdersArtificerIntegralEarnings(artificerId, todayEndIncome, String.valueOf(DateUtil.beginOfDay(new Date()))); - dailyEarnings = dailyEarnings.setScale(2,BigDecimal.ROUND_HALF_UP); - orders.setDailyEarnings(dailyEarnings.toString()); +// BigDecimal dailyEarnings = ordersDao.selectOrdersArtificerIntegralEarnings(artificerId, todayEndIncome, String.valueOf(DateUtil.beginOfDay(new Date()))); +// dailyEarnings = dailyEarnings.setScale(2,BigDecimal.ROUND_HALF_UP); +// orders.setDailyEarnings(dailyEarnings.toString()); + ArtificerIntegralStatistics todayStatistics =artificerIntegralStatisticsService.getIntegralStatistics(artificerId,startDate,todayEndIncome,null); + orders.setDailyEarnings(String.valueOf(todayStatistics.getIncome())); //当月收益 //当月结束日 @@ -103,14 +113,17 @@ public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralServ // BigDecimal add = a.add(b); //获取所有积分方法 - Map jfMap = getJifenList(artificerId, startDate, endDate); - String zxjf = jfMap.get("zxscjf").toString(); +// Map jfMap = getJifenList(artificerId, startDate, endDate); +// String zxjf = jfMap.get("zxscjf").toString(); +// BigDecimal b = new BigDecimal(zxjf); //当前周在线积分数 - BigDecimal b = new BigDecimal(zxjf); + ArtificerIntegralStatistics zxjfStatistics =artificerIntegralStatisticsService.getIntegralStatistics(artificerId,startDate,todayEndIncome,1); + BigDecimal b = zxjfStatistics.getIntegral(); //总积分 - String sumJf = jfMap.get("sumJf").toString(); - BigDecimal add = new BigDecimal(sumJf); +// String sumJf = jfMap.get("sumJf").toString(); +// BigDecimal add = new BigDecimal(sumJf); + BigDecimal add = artificerIntegralStatistics.getIntegral(); orders.setIntegral(add); //当期订单数:计算订单发生了按摩行为的订单数,订单状态经历了开始服务到订单结束。 @@ -147,21 +160,21 @@ public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralServ //业绩后面的显示 List lists = artificerPartitioningDetailsDao.selectList(Wrappers.lambdaQuery()); for (int i = 0; i < lists.size(); i++) { - if (currentPerformance >= lists.get(i).getOutstandingAchievement().intValue()) { + if (currentPerformance.compareTo(lists.get(i).getOutstandingAchievement())>=0) { if (i + 1 < lists.size()) { BigDecimal bigDecimal = lists.get(i + 1).getOutstandingAchievement(); if (Objects.nonNull(bigDecimal)) { orders.setSuffix(NumberUtil.toStr(bigDecimal)); } } - } else if (currentPerformance <= lists.get(i).getOutstandingAchievement().intValue()) { + } else if (currentPerformance.compareTo(lists.get(i).getOutstandingAchievement())<=0) { orders.setSuffix(NumberUtil.toStr(artificerPartitioningDetailsDao.selectById(5).getOutstandingAchievement())); } } return getResult(currentPerformance, clockRate, divide1, b, add, orders, artificer, classifyId); } - private Result getResult(Integer currentPerformance, BigDecimal clockRate, BigDecimal divide1, BigDecimal b, BigDecimal add, HomeVO orders, Artificer artificer, String classifyId) { + private Result getResult(BigDecimal currentPerformance, BigDecimal clockRate, BigDecimal divide1, BigDecimal b, BigDecimal add, HomeVO orders, Artificer artificer, String classifyId) { List artificerPartitioningDetails = artificerPartitioningDetailsDao.selectList(Wrappers.lambdaQuery() .ne(ArtificerPartitioningDetails::getGrade, "A0")); @@ -186,14 +199,14 @@ public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralServ ArtificerPartitioningDetails items = artificerPartitioningDetails.get(i + 1); - if (currentPerformance >= outstandingAchievement.intValue() + if (currentPerformance.compareTo(outstandingAchievement)>=0 && clockRate.compareTo(clockRate1) > -1 && divide1.compareTo(depositRate) > -1 && b.intValue() >= durationOnline && add.intValue() >= Integer.valueOf(integral) && Objects.nonNull(items) ) { - BigDecimal p1 = new BigDecimal(currentPerformance); + BigDecimal p1 = currentPerformance; //还差多少业绩加钟率积分提升等级 BigDecimal siq = new BigDecimal(items.getOutstandingAchievement().toString()); diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java index f138048..50e2981 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java @@ -332,7 +332,63 @@ public class ArtificerServiceImpl extends ServiceImpl i } } } + return Result.success().put("data",new PageUtils(artificerIPage)); + } + @Override + public Result selectArtificerListPc(Integer page, Integer limit, Long massageTypeId,String artificerName, + String longitude,String latitude,Integer sort,Integer authentication, + Integer by,Integer status,String city,String classifyId,String phone,Integer user, Integer isStart,Integer technicianType,String isBack, Integer isGoods){ + Page pages=new Page<>(page,limit); + + if(StringUtils.isEmpty(longitude)){ + longitude = "125.430896"; + } + if(StringUtils.isEmpty(latitude)){ + latitude = "43.880798"; + } + if(StringUtils.isEmpty(city)||StringUtils.equals("请选择城市",city)){ + city = "长春市"; + } + + List userIdList = new ArrayList<>(); + if(classifyId!=null && !classifyId.equals("")){ + String[] classifyIdArr = classifyId.split(","); + List classifyIdList = new ArrayList<>(); + if(classifyIdArr.length>0){ + for(int i=0;i0){ + userIdList = artificerClassifyService.getUserIdByClassify(classifyIdList); + } + } + IPage artificerIPage = baseMapper.selectArtificerList(pages, massageTypeId, artificerName, + longitude, latitude, sort, authentication, by, status, city, classifyId,phone,user,isStart,technicianType,isBack,userIdList,isGoods); + + List records = artificerIPage.getRecords(); + for(Artificer artificer:records){ + String classifyIds = artificer.getClassifyId(); + String[] classifyArr = classifyIds.split(","); + if(classifyArr.length>0){ + List artificerClassifyList = new ArrayList(); + for(int i=0;i implements baseMapper.updateById(ordersOld);//原单暂变成挂单状态 } } + + //超过服务时间N分钟未接单,取消订单 + String value2 = commonInfoService.findOne(465).getValue(); + ordersList = baseMapper.selectNotAcceptedOrders(value2); + for (Orders orders : ordersList) { + if (orders.getUserPackageDetailId() != null) { + cancelPackageOrders(orders.getUserId(), orders, BigDecimal.ZERO, BigDecimal.ZERO); + } else { + cancelMassageOrders(orders.getUserId(), orders, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO); + } + } } @Override diff --git a/src/main/java/com/sqx/modules/bl/artificer/dao/ArtificerIntegralStatisticsDao.java b/src/main/java/com/sqx/modules/bl/artificer/dao/ArtificerIntegralStatisticsDao.java index 2397f40..0bbb08b 100644 --- a/src/main/java/com/sqx/modules/bl/artificer/dao/ArtificerIntegralStatisticsDao.java +++ b/src/main/java/com/sqx/modules/bl/artificer/dao/ArtificerIntegralStatisticsDao.java @@ -6,5 +6,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ArtificerIntegralStatisticsDao extends BaseMapper { - + ArtificerIntegralStatistics getIntegralStatistics(Long artificerId,String startDate,String endDate,Integer classify); } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/artificer/service/ArtificerIntegralStatisticsService.java b/src/main/java/com/sqx/modules/bl/artificer/service/ArtificerIntegralStatisticsService.java index 5791605..78c181f 100644 --- a/src/main/java/com/sqx/modules/bl/artificer/service/ArtificerIntegralStatisticsService.java +++ b/src/main/java/com/sqx/modules/bl/artificer/service/ArtificerIntegralStatisticsService.java @@ -4,5 +4,5 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.sqx.modules.bl.artificer.entity.ArtificerIntegralStatistics; public interface ArtificerIntegralStatisticsService extends IService { - + ArtificerIntegralStatistics getIntegralStatistics(Long artificerId,String startDate,String endDate,Integer classify); } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/artificer/service/impl/ArtificerIntegralStatisticsServiceImpl.java b/src/main/java/com/sqx/modules/bl/artificer/service/impl/ArtificerIntegralStatisticsServiceImpl.java index cda6e0d..34207db 100644 --- a/src/main/java/com/sqx/modules/bl/artificer/service/impl/ArtificerIntegralStatisticsServiceImpl.java +++ b/src/main/java/com/sqx/modules/bl/artificer/service/impl/ArtificerIntegralStatisticsServiceImpl.java @@ -8,5 +8,7 @@ import org.springframework.stereotype.Service; @Service public class ArtificerIntegralStatisticsServiceImpl extends ServiceImpl implements ArtificerIntegralStatisticsService { - + public ArtificerIntegralStatistics getIntegralStatistics(Long artificerId,String startDate,String endDate,Integer classify){ + return baseMapper.getIntegralStatistics(artificerId,startDate,endDate,classify); + } } \ No newline at end of file diff --git a/src/main/resources/mapper/artificer/OrdersDao.xml b/src/main/resources/mapper/artificer/OrdersDao.xml index a849864..b746429 100644 --- a/src/main/resources/mapper/artificer/OrdersDao.xml +++ b/src/main/resources/mapper/artificer/OrdersDao.xml @@ -1042,6 +1042,10 @@ select * from orders where now()>= DATE_ADD( create_time, INTERVAL #{time} MINUTE ) and status=1 + + + select + sum(case when type = 1 then IFNULL(achievement,0) else -IFNULL(achievement,0) end) AS achievement, + sum(case when type = 1 then IFNULL(income,0) else -IFNULL(income,0) end) AS income, + sum(case when type = 1 then IFNULL(integral,0) else -IFNULL(integral,0) end) AS integral + from bl_artificer_integral_statistics + where artificer_id = #{artificerId} + and date_format(create_time,'%Y-%m-%d %H:%i:%s') >= #{startDate} + and date_format(create_time,'%Y-%m-%d %H:%i:%s') <= #{endDate} + + and classify = #{classify} + + + \ No newline at end of file