This commit is contained in:
齐天大圣 2024-01-20 11:14:29 +08:00
parent 3df54fd625
commit 3cc44f8272
3 changed files with 62 additions and 3 deletions

View File

@ -438,10 +438,16 @@ public class ActiveExchangeServiceImpl implements ActiveExchangeService {
Integer storeId = paymentActiveDTO.getStoreId();
double finalAmount = 0.00;
Integer userId = TokenUtil.getNowAccountInfo().getId();
//折扣
//折扣有限制
List<ActiveDiscountPayVO> activeDiscountVOList = oilOrderMapper.selectActiveDiscount(storeId,paymentActiveDTO.getAmount(),paymentActiveDTO.getOilId(),paymentActiveDTO.getMtUserLevel());
//满减
//折扣无限制
List<ActiveDiscountPayVO> activeDiscountVOLists = oilOrderMapper.selectActiveDiscounts(storeId,paymentActiveDTO.getAmount(),paymentActiveDTO.getOilId(),paymentActiveDTO.getMtUserLevel());
activeDiscountVOList.addAll(activeDiscountVOLists);
//满减有限制
List<ActiveDiscountPayVO> activeFuletVOList = oilOrderMapper.selectActiveFule(storeId,paymentActiveDTO.getAmount(),paymentActiveDTO.getOilId(),paymentActiveDTO.getMtUserLevel());
//满减无限制
List<ActiveDiscountPayVO> activeFuletVOLists = oilOrderMapper.selectActiveFules(storeId,paymentActiveDTO.getAmount(),paymentActiveDTO.getOilId(),paymentActiveDTO.getMtUserLevel());
activeFuletVOList.addAll(activeFuletVOLists);
//优惠券
paymentActiveDTO.setUserId(userId);
List<CardFavorableRecordVO> canUserCardFavorableList = cardFavorableRecordMapper.getCanUserCardFavorableList(paymentActiveDTO);

View File

@ -91,6 +91,7 @@ public interface OilOrderMapper extends BaseMapper<OilOrder> {
* @return
*/
List<ActiveDiscountPayVO> selectActiveDiscount(@Param("storeId") Integer storeId, @Param("amount") BigDecimal amount,@Param("oilId") Integer oilId,@Param("levelId") Integer levelId);
List<ActiveDiscountPayVO> selectActiveDiscounts(@Param("storeId") Integer storeId, @Param("amount") BigDecimal amount,@Param("oilId") Integer oilId,@Param("levelId") Integer levelId);
/**
* 满减
@ -99,6 +100,7 @@ public interface OilOrderMapper extends BaseMapper<OilOrder> {
* @return
*/
List<ActiveDiscountPayVO> selectActiveFule(@Param("storeId") Integer storeId, @Param("amount")BigDecimal amount,@Param("oilId") Integer oilId,@Param("levelId") Integer levelId);
List<ActiveDiscountPayVO> selectActiveFules(@Param("storeId") Integer storeId, @Param("amount")BigDecimal amount,@Param("oilId") Integer oilId,@Param("levelId") Integer levelId);
/**
* 消费有礼

View File

@ -371,9 +371,35 @@
AND ad.STATUS = 0
AND concat(',',ad.adapt_oil,',') like concat('%',#{oilId},'%')
AND concat(',',ad.diesel_user_level,',') like concat('%',#{levelId},'%')
AND ad.participation_acount = 1
GROUP BY ad.id
HAVING IFNULL(sum(adr.id),0) <![CDATA[ < ]]> limitAcount
</select>
<select id="selectActiveDiscounts" resultType="com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO">
SELECT
ad.id activeId,
ad.NAME activeName,
ad.diesel_user_level adaptUser,
ad.adapt_oil oilId,
ad.limit_acount as limitAcount,
ad.participation_condition,
max((case ad.store_id when ${storeId} then adc.amount * (1-(adc.discount * 0.1))
end)) as discount
FROM
active_discount ad
LEFT JOIN active_discount_child adc ON ad.id = adc.active_discount_id
left join active_discount_records adr on adr.active_discount_id = ad.id
WHERE
ad.store_id = #{storeId}
AND adc.amount <![CDATA[ <= ]]> #{amount}
and now() BETWEEN ad.active_start_time
AND ad.active_end_time
AND ad.STATUS = 0
AND concat(',',ad.adapt_oil,',') like concat('%',#{oilId},'%')
AND concat(',',ad.diesel_user_level,',') like concat('%',#{levelId},'%')
AND ad.participation_acount = 0
GROUP BY ad.id
</select>
<select id="selectActiveFule" resultType="com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO">
SELECT
@ -387,7 +413,7 @@
FROM
active_fullminus af
LEFT JOIN active_discount_child adc ON af.id = adc.active_fullminus_id
left join active_fullminus_records afr on afr.active_fullminus_id = ad.id
left join active_fullminus_records afr on afr.active_fullminus_id = af.id
WHERE
af.store_id = #{storeId}
AND adc.amount <![CDATA[ <= ]]> #{amount}
@ -396,9 +422,34 @@
AND af.STATUS = 0
AND concat(',',af.adapt_oil,',') like concat('%',#{oilId},'%')
AND concat(',',af.diesel_user_level,',') like concat('%',#{levelId},'%')
AND af.participation_acount = 1
GROUP BY af.id
HAVING IFNULL(sum(afr.id),0) <![CDATA[ < ]]> limitAcount
</select>
<select id="selectActiveFules" resultType="com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO">
SELECT
af.id activeId,
af.NAME activeName,
af.diesel_user_level adaptUser,
af.adapt_oil oilId,
af.limit_acount as limitAcount,
af.participation_condition,
max(adc.deduction_amount) discount
FROM
active_fullminus af
LEFT JOIN active_discount_child adc ON af.id = adc.active_fullminus_id
left join active_fullminus_records afr on afr.active_fullminus_id = af.id
WHERE
af.store_id = #{storeId}
AND adc.amount <![CDATA[ <= ]]> #{amount}
and now() BETWEEN af.active_start_time
AND af.active_end_time
AND af.STATUS = 0
AND concat(',',af.adapt_oil,',') like concat('%',#{oilId},'%')
AND concat(',',af.diesel_user_level,',') like concat('%',#{levelId},'%')
AND af.participation_acount = 0
GROUP BY af.id
</select>
<select id="selectActiveConsumption" resultType="com.fuint.business.marketingActivity.activeDiscount.vo.ActiveConsumptionVO">
SELECT