Commit 5e4b097f by huluobin

update

parent c20fd9ec
......@@ -27,6 +27,7 @@ import com.gogirl.shared.market.command.SetTimesCardCommand;
import com.gogirl.shared.market.command.SetUpInnerCouponCommand;
import com.gogirl.shared.market.command.SetUpOuterCouponCommand;
import com.google.common.collect.Lists;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -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) {
List<Integer> freeCouponIds = discountConfigMapper.selectList(new LambdaQueryWrapper<>()).stream().map(DiscountConfig::getCouponId)
.filter(Objects::nonNull).collect(Collectors.toList());
//免单也是用活动价的
if (freeCouponIds.contains(counponId)) {
Set<OrderServe> set = new HashSet<>();
List<String> meijia = 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.getBindTimesCard() == 2)
.filter(orderServe -> orderServe.getBindOuterCoupon() == 2)
.filter(orderServe -> serveIds.contains(orderServe.getServeId())).collect(Collectors.toList());
//美睫辅助服务
List<OrderServe> meijieSupport = orderManage.getListOrderServer().stream()
.filter(orderServe -> meijie.contains(orderServe.getServeName()))
.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()))
.max(Comparator.comparing(OrderServe::getPayPrice))
.orElse(null);
set.add(maxOrderServe);
if (maxOrderServe != null) {
if (maxOrderServe.getServeType().equals("美甲")) {
set.addAll(orderManage.getListOrderServer().stream()
.filter(orderServe -> meijia.contains(orderServe.getServeName()))
.collect(Collectors.toList()));
.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)));
}
if (maxOrderServe.getServeType().equals("美睫")) {
set.addAll(orderManage.getListOrderServer().stream()
.filter(orderServe -> meijie.contains(orderServe.getServeName()))
.collect(Collectors.toList()));
//美睫
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)));
}
}
return new ArrayList<>(set).stream().filter(Objects::nonNull).collect(Collectors.toList());
//无
else {
calcFreePay.setServeIds(new ArrayList<>());
calcFreePay.setPayPrice(orderServe.getPayPrice());
}
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 {
return orderManage.getListOrderServer()
.stream()
.filter(orderServe -> serveIds.contains(orderServe.getServeId()))
.filter(orderServe -> orderServe.getLeisureDiscountConfigId() == null || orderServe.getLeisureDiscountConfigId() == 0)
.filter(orderServe -> orderServe.getProducePromotionTimeId() == null)
.filter(orderServe -> {
if (orderServe.getProduceId() != null) {
return orderServe.getProduceCurrentPrice().compareTo(orderServe.getProduceBargainPrice()) > -1;
}
return true;
})
.filter(orderServe -> !orderServe.isActivity())
.filter(orderServe -> orderServe.getBindTimesCard() == 2)
.filter(orderServe -> orderServe.getBindTimesCard() == 2)
.filter(orderServe -> orderServe.getBindOuterCoupon() == 2)
......@@ -619,14 +658,7 @@ public class MarketServiceImpl implements MarketService {
return orderManage.getListOrderServer()
.stream()
.filter(orderServe -> serveIds.contains(orderServe.getServeId()))
.filter(orderServe -> orderServe.getLeisureDiscountConfigId() == null || orderServe.getLeisureDiscountConfigId() == 0)
.filter(orderServe -> orderServe.getProducePromotionTimeId() == null)
.filter(orderServe -> {
if (orderServe.getProduceId() != null) {
return orderServe.getProduceCurrentPrice().compareTo(orderServe.getProduceBargainPrice()) > -1;
}
return true;
})
.filter(orderServe -> !orderServe.isActivity())
.filter(orderServe -> orderServe.getBindInnerCoupon() == 2)
.filter(orderServe -> orderServe.getBindOuterCoupon() == 2)
.filter(orderServe -> orderServe.getBindTimesCard() == 2)
......
......@@ -60,6 +60,11 @@ public class TakeLeaveEventCmdServiceImpl implements TakeLeaveEventCmdService {
@Override
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.setStatus(TakeLeaveEvent.STATUS_UN_APPROVAL);
......@@ -82,15 +87,6 @@ public class TakeLeaveEventCmdServiceImpl implements TakeLeaveEventCmdService {
.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()
.equals(overTimeRecordLogList.stream().map(OverTimeRecordLog::getLengthTime).reduce(BigDecimal.ZERO, BigDecimal::add).toString())) {
throw new RRException(500, "调休时间有误");
......
......@@ -11,7 +11,7 @@ public interface BaseFeaturesMapper extends BaseMapper<BaseFeatures> {
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;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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> {
List<TakeLeaveEvent> appliedList(@Param("applyTechnicianId") Integer applyTechnicianId, @Param("startTime") long startTime, @Param("endTime") long endTime);
}
......@@ -40,7 +40,7 @@ public class OverTimeRecordController {
// 获取前月的第一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 0);
cale.add(Calendar.MONTH, -1);
cale.set(Calendar.DAY_OF_MONTH, 1);
Date firstDay = cale.getTime();
Date paramDate = new Date(firstDay.getTime() - 7 * 24 * 60 * 60 * 1000);
......
......@@ -4,7 +4,7 @@
<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
LEFT JOIN base_produce t3 on t2.data_id = t3.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