Commit 5e4b097f by huluobin

update

parent c20fd9ec
...@@ -27,6 +27,7 @@ import com.gogirl.shared.market.command.SetTimesCardCommand; ...@@ -27,6 +27,7 @@ import com.gogirl.shared.market.command.SetTimesCardCommand;
import com.gogirl.shared.market.command.SetUpInnerCouponCommand; import com.gogirl.shared.market.command.SetUpInnerCouponCommand;
import com.gogirl.shared.market.command.SetUpOuterCouponCommand; import com.gogirl.shared.market.command.SetUpOuterCouponCommand;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -551,51 +552,89 @@ public class MarketServiceImpl implements MarketService { ...@@ -551,51 +552,89 @@ public class MarketServiceImpl implements MarketService {
} }
@Data
static class CalcFreePay {
private Integer orderServeId;
private List<Integer> serveIds = new ArrayList<>();
private BigDecimal payPrice;
}
private List<OrderServe> queryCanDiscount(OrderManage orderManage, List<Integer> serveIds, Integer counponId) { private List<OrderServe> queryCanDiscount(OrderManage orderManage, List<Integer> serveIds, Integer counponId) {
List<Integer> freeCouponIds = discountConfigMapper.selectList(new LambdaQueryWrapper<>()).stream().map(DiscountConfig::getCouponId) List<Integer> freeCouponIds = discountConfigMapper.selectList(new LambdaQueryWrapper<>()).stream().map(DiscountConfig::getCouponId)
.filter(Objects::nonNull).collect(Collectors.toList()); .filter(Objects::nonNull).collect(Collectors.toList());
//免单也是用活动价的
if (freeCouponIds.contains(counponId)) { if (freeCouponIds.contains(counponId)) {
Set<OrderServe> set = new HashSet<>();
List<String> meijia = Lists.newArrayList("全手光疗延长", "单指光疗延长", List<String> meijia = Lists.newArrayList("全手光疗延长", "单指光疗延长",
"精细日式卸甲(手部)", "精细日式卸甲(脚部)", "单指跳色"); "精细日式卸甲(手部)", "精细日式卸甲(脚部)", "单指跳色");
List<String> meijie = Lists.newArrayList("睫毛(卸除)", "加彩色睫毛", List<String> meijie = Lists.newArrayList("睫毛(卸除)", "加彩色睫毛",
"加种睫毛", "加彩色睫毛", "下睫毛"); "加种睫毛", "加彩色睫毛", "下睫毛");
OrderServe maxOrderServe = orderManage.getListOrderServer() //美甲辅助服务
.stream() List<OrderServe> meijiaSupport = orderManage.getListOrderServer().stream()
.filter(orderServe -> meijia.contains(orderServe.getServeName()))
.filter(orderServe -> orderServe.getBindInnerCoupon() == 2) .filter(orderServe -> orderServe.getBindInnerCoupon() == 2)
.filter(orderServe -> orderServe.getBindTimesCard() == 2) .filter(orderServe -> orderServe.getBindTimesCard() == 2)
.filter(orderServe -> orderServe.getBindOuterCoupon() == 2) .filter(orderServe -> orderServe.getBindOuterCoupon() == 2)
.filter(orderServe -> serveIds.contains(orderServe.getServeId())) .filter(orderServe -> serveIds.contains(orderServe.getServeId())).collect(Collectors.toList());
.max(Comparator.comparing(OrderServe::getPayPrice))
.orElse(null); //美睫辅助服务
set.add(maxOrderServe); List<OrderServe> meijieSupport = orderManage.getListOrderServer().stream()
if (maxOrderServe != null) {
if (maxOrderServe.getServeType().equals("美甲")) {
set.addAll(orderManage.getListOrderServer().stream()
.filter(orderServe -> meijia.contains(orderServe.getServeName()))
.collect(Collectors.toList()));
}
if (maxOrderServe.getServeType().equals("美睫")) {
set.addAll(orderManage.getListOrderServer().stream()
.filter(orderServe -> meijie.contains(orderServe.getServeName())) .filter(orderServe -> meijie.contains(orderServe.getServeName()))
.collect(Collectors.toList())); .filter(orderServe -> orderServe.getBindInnerCoupon() == 2)
} .filter(orderServe -> orderServe.getBindTimesCard() == 2)
.filter(orderServe -> orderServe.getBindOuterCoupon() == 2)
.filter(orderServe -> serveIds.contains(orderServe.getServeId())).collect(Collectors.toList());
//主服务
List<OrderServe> mainServe = orderManage.getListOrderServer().stream()
.filter(orderServe -> !meijiaSupport.contains(orderServe))
.filter(orderServe -> !meijieSupport.contains(orderServe))
.filter(orderServe -> orderServe.getBindInnerCoupon() == 2)
.filter(orderServe -> orderServe.getBindTimesCard() == 2)
.filter(orderServe -> orderServe.getBindOuterCoupon() == 2)
.filter(orderServe -> serveIds.contains(orderServe.getServeId()))
.collect(Collectors.toList());
List<CalcFreePay> calcFreePayList = new ArrayList<>();
mainServe.forEach(orderServe -> {
CalcFreePay calcFreePay = new CalcFreePay();
calcFreePay.setOrderServeId(orderServe.getId());
//美甲
if (orderServe.getServeType().equals("美甲")) {
calcFreePay.setServeIds(meijiaSupport.stream().map(OrderServe::getId).collect(Collectors.toList()));
calcFreePay.setPayPrice(orderServe.getPayPrice().add(meijiaSupport.stream().map(OrderServe::getPayPrice).reduce(BigDecimal.ZERO, BigDecimal::add)));
}
//美睫
else if (orderServe.getServeType().equals("美睫")) {
calcFreePay.setServeIds(meijieSupport.stream().map(OrderServe::getId).collect(Collectors.toList()));
calcFreePay.setPayPrice(orderServe.getPayPrice().add(meijieSupport.stream().map(OrderServe::getPayPrice).reduce(BigDecimal.ZERO, BigDecimal::add)));
}
//无
else {
calcFreePay.setServeIds(new ArrayList<>());
calcFreePay.setPayPrice(orderServe.getPayPrice());
} }
return new ArrayList<>(set).stream().filter(Objects::nonNull).collect(Collectors.toList()); calcFreePayList.add(calcFreePay);
});
Optional<CalcFreePay> max = calcFreePayList.stream().max(Comparator.comparing(CalcFreePay::getPayPrice));
return orderManage.getListOrderServer().stream().filter(orderServe ->
max.map(calcFreePay -> {
calcFreePay.getServeIds().add(calcFreePay.getOrderServeId());
return calcFreePay.getServeIds();
}).orElse(new ArrayList<>())
.contains(orderServe.getId()))
.collect(Collectors.toList());
} else { } else {
return orderManage.getListOrderServer() return orderManage.getListOrderServer()
.stream() .stream()
.filter(orderServe -> serveIds.contains(orderServe.getServeId())) .filter(orderServe -> serveIds.contains(orderServe.getServeId()))
.filter(orderServe -> orderServe.getLeisureDiscountConfigId() == null || orderServe.getLeisureDiscountConfigId() == 0) .filter(orderServe -> !orderServe.isActivity())
.filter(orderServe -> orderServe.getProducePromotionTimeId() == null)
.filter(orderServe -> {
if (orderServe.getProduceId() != null) {
return orderServe.getProduceCurrentPrice().compareTo(orderServe.getProduceBargainPrice()) > -1;
}
return true;
})
.filter(orderServe -> orderServe.getBindTimesCard() == 2) .filter(orderServe -> orderServe.getBindTimesCard() == 2)
.filter(orderServe -> orderServe.getBindTimesCard() == 2) .filter(orderServe -> orderServe.getBindTimesCard() == 2)
.filter(orderServe -> orderServe.getBindOuterCoupon() == 2) .filter(orderServe -> orderServe.getBindOuterCoupon() == 2)
...@@ -619,14 +658,7 @@ public class MarketServiceImpl implements MarketService { ...@@ -619,14 +658,7 @@ public class MarketServiceImpl implements MarketService {
return orderManage.getListOrderServer() return orderManage.getListOrderServer()
.stream() .stream()
.filter(orderServe -> serveIds.contains(orderServe.getServeId())) .filter(orderServe -> serveIds.contains(orderServe.getServeId()))
.filter(orderServe -> orderServe.getLeisureDiscountConfigId() == null || orderServe.getLeisureDiscountConfigId() == 0) .filter(orderServe -> !orderServe.isActivity())
.filter(orderServe -> orderServe.getProducePromotionTimeId() == null)
.filter(orderServe -> {
if (orderServe.getProduceId() != null) {
return orderServe.getProduceCurrentPrice().compareTo(orderServe.getProduceBargainPrice()) > -1;
}
return true;
})
.filter(orderServe -> orderServe.getBindInnerCoupon() == 2) .filter(orderServe -> orderServe.getBindInnerCoupon() == 2)
.filter(orderServe -> orderServe.getBindOuterCoupon() == 2) .filter(orderServe -> orderServe.getBindOuterCoupon() == 2)
.filter(orderServe -> orderServe.getBindTimesCard() == 2) .filter(orderServe -> orderServe.getBindTimesCard() == 2)
......
...@@ -60,6 +60,11 @@ public class TakeLeaveEventCmdServiceImpl implements TakeLeaveEventCmdService { ...@@ -60,6 +60,11 @@ public class TakeLeaveEventCmdServiceImpl implements TakeLeaveEventCmdService {
@Override @Override
public void applyTakeLeave(ApplyTakeLeaveCommand cmd) { public void applyTakeLeave(ApplyTakeLeaveCommand cmd) {
List<TakeLeaveEvent> appliedList = takeLeaveEventRepository.appliedList(cmd.getApplyTechnicianId(), cmd.getStartTime().getTime(), cmd.getEndTime().getTime());
if (ListUtil.isNotEmpty(appliedList)) {
throw new RRException("重复时间提交");
}
TakeLeaveEvent takeLeaveEvent = applyTakeLeaveCommandAssembler.apply(cmd); TakeLeaveEvent takeLeaveEvent = applyTakeLeaveCommandAssembler.apply(cmd);
takeLeaveEvent.setStatus(TakeLeaveEvent.STATUS_UN_APPROVAL); takeLeaveEvent.setStatus(TakeLeaveEvent.STATUS_UN_APPROVAL);
...@@ -82,15 +87,6 @@ public class TakeLeaveEventCmdServiceImpl implements TakeLeaveEventCmdService { ...@@ -82,15 +87,6 @@ public class TakeLeaveEventCmdServiceImpl implements TakeLeaveEventCmdService {
.collect(Collectors.toList()); .collect(Collectors.toList());
//检查总调休时间 //检查总调休时间
if (takeLeaveEvent.getTimeLength()
.compareTo(overTimeRecordLogList.stream().map(OverTimeRecordLog::getLengthTime).reduce(BigDecimal.ZERO, BigDecimal::add)) != 0) {
log.info("申请时间:{}", takeLeaveEvent.getTimeLength());
log.info("选择的时间{},", overTimeRecordLogList.stream().map(OverTimeRecordLog::getLengthTime).reduce(BigDecimal.ZERO, BigDecimal::add));
throw new RRException(500, "调休时间有误");
}
//检查总调休时间
if (!takeLeaveEvent.getTimeLength().toString() if (!takeLeaveEvent.getTimeLength().toString()
.equals(overTimeRecordLogList.stream().map(OverTimeRecordLog::getLengthTime).reduce(BigDecimal.ZERO, BigDecimal::add).toString())) { .equals(overTimeRecordLogList.stream().map(OverTimeRecordLog::getLengthTime).reduce(BigDecimal.ZERO, BigDecimal::add).toString())) {
throw new RRException(500, "调休时间有误"); throw new RRException(500, "调休时间有误");
......
...@@ -11,7 +11,7 @@ public interface BaseFeaturesMapper extends BaseMapper<BaseFeatures> { ...@@ -11,7 +11,7 @@ public interface BaseFeaturesMapper extends BaseMapper<BaseFeatures> {
List<BaseFeatures> queryProduceFeatures(@Param("serveTypeId") Integer serveTypeId); List<BaseFeatures> queryProduceFeatures(@Param("serveTypeId") Integer serveTypeId);
List<BaseFeatures> queryServeFeatures(@Param("typeId") Integer typeId); List<BaseFeatures> queryServeFeatures(@Param("serveTypeId") Integer serveTypeId);
} }
...@@ -2,8 +2,12 @@ package com.gogirl.infrastructure.mapper.store.oa; ...@@ -2,8 +2,12 @@ package com.gogirl.infrastructure.mapper.store.oa;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gogirl.domain.store.oa.TakeLeaveEvent; import com.gogirl.domain.store.oa.TakeLeaveEvent;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TakeLeaveEventMapper extends BaseMapper<TakeLeaveEvent> { public interface TakeLeaveEventMapper extends BaseMapper<TakeLeaveEvent> {
List<TakeLeaveEvent> appliedList(@Param("applyTechnicianId") Integer applyTechnicianId, @Param("startTime") long startTime, @Param("endTime") long endTime);
} }
...@@ -40,7 +40,7 @@ public class OverTimeRecordController { ...@@ -40,7 +40,7 @@ public class OverTimeRecordController {
// 获取前月的第一天 // 获取前月的第一天
cale = Calendar.getInstance(); cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 0); cale.add(Calendar.MONTH, -1);
cale.set(Calendar.DAY_OF_MONTH, 1); cale.set(Calendar.DAY_OF_MONTH, 1);
Date firstDay = cale.getTime(); Date firstDay = cale.getTime();
Date paramDate = new Date(firstDay.getTime() - 7 * 24 * 60 * 60 * 1000); Date paramDate = new Date(firstDay.getTime() - 7 * 24 * 60 * 60 * 1000);
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<select id="queryServeFeatures" resultType="com.gogirl.domain.product.serve.BaseFeatures"> <select id="queryServeFeatures" resultType="com.gogirl.domain.product.serve.BaseFeatures">
from base_features t1 select t1.* from base_features t1
INNER JOIN features_mapping t2 on t1.id = t2.features_id INNER JOIN features_mapping t2 on t1.id = t2.features_id
LEFT JOIN base_produce t3 on t2.data_id = t3.id LEFT JOIN base_produce t3 on t2.data_id = t3.id
left join base_serve bs on t3.service_id = bs.id left join base_serve bs on t3.service_id = bs.id
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.gogirl.infrastructure.mapper.store.oa.TakeLeaveEventMapper">
<select id="appliedList" resultType="com.gogirl.domain.store.oa.TakeLeaveEvent">
SELECT *
from take_leave_event
where (start_time &lt;= #{endTime} and end_time &gt;= #{endTime}
or start_time &lt;= #{startTime} and start_time &gt;= #{startTime})
and apply_technician_id = #{applyTechnicianId}
and `status` != 3
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment