Commit 783f2ad8 by huluobin

闲时折扣

parent bd32e539
...@@ -12,6 +12,7 @@ import com.gogirl.application.product.serve.BaseTypeService; ...@@ -12,6 +12,7 @@ import com.gogirl.application.product.serve.BaseTypeService;
import com.gogirl.application.store.store.StoreClassesTechnicianService; import com.gogirl.application.store.store.StoreClassesTechnicianService;
import com.gogirl.application.user.customer.CustomerService; import com.gogirl.application.user.customer.CustomerService;
import com.gogirl.domain.market.discount.LeisureDiscountConfig; import com.gogirl.domain.market.discount.LeisureDiscountConfig;
import com.gogirl.domain.market.discount.LeisureDiscountConfigLimit;
import com.gogirl.domain.order.serve.*; import com.gogirl.domain.order.serve.*;
import com.gogirl.domain.product.purchase.PurchaseSku; import com.gogirl.domain.product.purchase.PurchaseSku;
import com.gogirl.domain.product.serve.*; import com.gogirl.domain.product.serve.*;
...@@ -918,6 +919,39 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -918,6 +919,39 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
return this.queryAvailableTechnician(leisureScheduleServeResp.getDepartmentId(), baseServe.getId(), startTime, endTime); return this.queryAvailableTechnician(leisureScheduleServeResp.getDepartmentId(), baseServe.getId(), startTime, endTime);
} }
private void handleLeisureDiscountConfig(ScheduleManage scheduleManage) {
List<ScheduleServe> oldScheduleServeList;
if (scheduleManage.getId() != null) {
oldScheduleServeList = scheduleServeMapper.selectList(new LambdaQueryWrapper<ScheduleServe>().eq(ScheduleServe::getSchId, scheduleManage.getId()));
} else {
oldScheduleServeList = Lists.newArrayList();
}
String date = new SimpleDateFormat("yyyy-MM-dd").format(scheduleManage.getScheduledTime());
oldScheduleServeList.forEach(scheduleServe -> {
if (scheduleServe.getLeisureDiscountConfigId() != null) {
LeisureDiscountConfigLimit leisureDiscountConfigLimit = leisureDiscountConfigLimitMapper.selectConfigLimit(date, scheduleServe.getLeisureDiscountConfigId());
if (leisureDiscountConfigLimit != null) {
leisureDiscountConfigLimit.setLeftTimes(leisureDiscountConfigLimit.getLeftTimes() + 1);
leisureDiscountConfigLimitMapper.updateById(leisureDiscountConfigLimit);
}
}
});
scheduleManage.getListScheduleServer().forEach(scheduleServe -> {
if (scheduleServe.getLeisureDiscountConfigId() != null) {
LeisureDiscountConfigLimit leisureDiscountConfigLimit = leisureDiscountConfigLimitMapper.selectConfigLimit(date, scheduleServe.getLeisureDiscountConfigId());
if (leisureDiscountConfigLimit != null) {
leisureDiscountConfigLimit.setLeftTimes(leisureDiscountConfigLimit.getLeftTimes() - 1);
if (leisureDiscountConfigLimit.getLeftTimes() < 0) {
throw new RRException("闲时预约次数不足,请重新预约");
}
}
leisureDiscountConfigLimitMapper.updateById(leisureDiscountConfigLimit);
}
});
}
/** /**
* 参数补全 * 参数补全
* *
...@@ -1164,6 +1198,8 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -1164,6 +1198,8 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
scheduleManage.addScheduleServeList(scheduleServeList); scheduleManage.addScheduleServeList(scheduleServeList);
Set<ScheduleServe> scheduleServes = scheduleManage.getListScheduleServer(); Set<ScheduleServe> scheduleServes = scheduleManage.getListScheduleServer();
scheduleManage.setTotalPrice(scheduleServes.stream().map(ScheduleServe::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add)); scheduleManage.setTotalPrice(scheduleServes.stream().map(ScheduleServe::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
this.handleLeisureDiscountConfig(scheduleManage);
return scheduleManage; return scheduleManage;
} }
......
...@@ -14,4 +14,6 @@ import com.gogirl.domain.market.discount.LeisureDiscountConfigLimit; ...@@ -14,4 +14,6 @@ import com.gogirl.domain.market.discount.LeisureDiscountConfigLimit;
public interface LeisureDiscountConfigLimitMapper extends BaseMapper<LeisureDiscountConfigLimit> { public interface LeisureDiscountConfigLimitMapper extends BaseMapper<LeisureDiscountConfigLimit> {
void syncWeekConfigLimit(); void syncWeekConfigLimit();
LeisureDiscountConfigLimit selectConfigLimit(String date, Integer leisureDiscountConfigId);
} }
...@@ -10,4 +10,10 @@ ...@@ -10,4 +10,10 @@
LEFT JOIN leisure_discount_config t3 on t2.leisure_discount_config_id = t3.id LEFT JOIN leisure_discount_config t3 on t2.leisure_discount_config_id = t3.id
where t3.id is not null where t3.id is not null
</insert> </insert>
<select id="selectConfigLimit" resultType="com.gogirl.domain.market.discount.LeisureDiscountConfigLimit">
SELECT *
from leisure_discount_config_limit t1
where t1.date = #{date}
and t1.leisure_discount_config_id = #{leisureDiscountConfigId}
</select>
</mapper> </mapper>
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