|
@@ -0,0 +1,89 @@
|
|
|
+package com.chelvc.cloud.vehicle.server.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.chelvc.cloud.vehicle.api.dto.CouponActivityDTO;
|
|
|
+import com.chelvc.cloud.vehicle.api.param.CouponActivityModifyParam;
|
|
|
+import com.chelvc.cloud.vehicle.api.param.CouponActivityPagingParam;
|
|
|
+import com.chelvc.cloud.vehicle.server.copier.CouponActivityCopier;
|
|
|
+import com.chelvc.cloud.vehicle.server.dao.CouponActivityMapper;
|
|
|
+import com.chelvc.cloud.vehicle.server.entity.CouponActivity;
|
|
|
+import com.chelvc.cloud.vehicle.server.service.CouponActivityService;
|
|
|
+import com.chelvc.framework.base.util.ResourceUtils;
|
|
|
+import com.chelvc.framework.common.model.Pagination;
|
|
|
+import com.chelvc.framework.database.util.PagingUtils;
|
|
|
+import lombok.NonNull;
|
|
|
+import org.apache.dubbo.config.annotation.DubboService;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 优惠券活动业务操作实现
|
|
|
+ *
|
|
|
+ * @author qizai
|
|
|
+ * @date 2023/11/10
|
|
|
+ */
|
|
|
+@DubboService(interfaceClass = com.chelvc.cloud.vehicle.api.service.CouponActivityService.class)
|
|
|
+public class CouponActivityServiceImpl extends ServiceImpl<CouponActivityMapper, CouponActivity> implements CouponActivityService,
|
|
|
+ com.chelvc.cloud.vehicle.api.service.CouponActivityService {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Long addCouponActivity(@NonNull CouponActivityModifyParam param) {
|
|
|
+ CouponActivity couponActivity = CouponActivityCopier.INSTANCE.copying(param);
|
|
|
+ this.save(couponActivity);
|
|
|
+ return couponActivity.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updateCouponActivity(@NonNull Long id, @NonNull CouponActivityModifyParam param) {
|
|
|
+ CouponActivity couponActivity = ResourceUtils.required(this.getById(id), "优惠券活动不存在");
|
|
|
+ CouponActivityCopier.INSTANCE.copying(param, couponActivity);
|
|
|
+ this.updateById(couponActivity);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void deleteCouponActivity(@NonNull Long id) {
|
|
|
+ ResourceUtils.required(this.getById(id), "优惠券活动不存在");
|
|
|
+ this.baseMapper.deleteById(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CouponActivityDTO getCouponActivity(@NonNull Long id) {
|
|
|
+ CouponActivity couponActivity = ResourceUtils.required(this.getById(id), "优惠券活动不存在");
|
|
|
+ return this.convert(couponActivity);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Pagination<CouponActivityDTO> getCouponActivityPaging(@NonNull CouponActivityPagingParam param) {
|
|
|
+ // 查询优惠券列表
|
|
|
+ Page<CouponActivity> page = this.lambdaQuery()
|
|
|
+ .eq(Objects.nonNull(param.getMerchantId()), CouponActivity::getMerchantId, param.getMerchantId())
|
|
|
+ .eq(Objects.nonNull(param.getCouponType()), CouponActivity::getCouponActivityType, param.getCouponType())
|
|
|
+ .eq(Objects.nonNull(param.getCouponStatus()), CouponActivity::getCouponFrequency, param.getCouponStatus())
|
|
|
+ .eq(Objects.nonNull(param.getCouponClaimType()), CouponActivity::getActivityScope, param.getCouponClaimType())
|
|
|
+ .or().like(!StringUtils.isEmpty(param.getKeyword()), CouponActivity::getPromotionName, param.getKeyword())
|
|
|
+ .orderByDesc(CouponActivity::getCreateTime).page(PagingUtils.convert(param.getPaging()));
|
|
|
+ List<CouponActivity> records = page.getRecords();
|
|
|
+ if (CollectionUtils.isEmpty(records)) {
|
|
|
+ return Pagination.empty();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建优惠券信息
|
|
|
+ List<CouponActivityDTO> clients = records.stream().map(this::convert).collect(Collectors.toList());
|
|
|
+ return PagingUtils.convert(page, clients);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 转换优惠券活动信息
|
|
|
+ *
|
|
|
+ * @param couponActivity 优惠券活动实例
|
|
|
+ * @return 优惠券活动信息
|
|
|
+ */
|
|
|
+ private CouponActivityDTO convert(CouponActivity couponActivity) {
|
|
|
+ return CouponActivityCopier.INSTANCE.copying(couponActivity);
|
|
|
+ }
|
|
|
+}
|