Browse Source

批量发券,删除多余代码

skyline 10 months ago
parent
commit
eea3484a86

+ 2 - 2
admin-web/src/views/admin/activity/coupon/index.vue

@@ -281,7 +281,7 @@ const handleChooseAccount = (accountList:Array<any>)=>{
   }
   }
   let params ={
   let params ={
     userIds:accountList.map(k=>k.userId),
     userIds:accountList.map(k=>k.userId),
-    couponIds:[state.handleCoupon.id]
+    couponId:state.handleCoupon.id
   }
   }
   $body(`coupon/issueCoupons`,params).then(()=>{
   $body(`coupon/issueCoupons`,params).then(()=>{
     Msg.message('发放成功')
     Msg.message('发放成功')
@@ -298,7 +298,7 @@ const handleImportAccountPhone = (phoneList:Array<any>) => {
   }
   }
   let params ={
   let params ={
     phones:phoneList?.dataList?.map(k=>k.mobilePhone),
     phones:phoneList?.dataList?.map(k=>k.mobilePhone),
-    couponIds:[state.handleCoupon.id]
+    couponId:state.handleCoupon.id
   }
   }
   $body(`coupon/issueCoupons`,params).then(()=>{
   $body(`coupon/issueCoupons`,params).then(()=>{
     Msg.message('发放成功')
     Msg.message('发放成功')

+ 6 - 1
entity/src/main/java/com/kym/entity/admin/vo/UserCouponsIssueVo.java

@@ -20,5 +20,10 @@ public class UserCouponsIssueVo {
     /**
     /**
      * 优惠券id
      * 优惠券id
      */
      */
-    private List<Long> couponIds;
+    private Long couponId;
+
+    /**
+     * 优惠券发放数量
+     */
+    private Integer couponCount = 1;
 }
 }

+ 0 - 3
service/src/main/java/com/kym/service/admin/StationService.java

@@ -9,7 +9,6 @@ import com.kym.entity.admin.EquipmentInfo;
 import com.kym.entity.admin.Station;
 import com.kym.entity.admin.Station;
 import com.kym.entity.admin.queryParams.StationQueryParam;
 import com.kym.entity.admin.queryParams.StationQueryParam;
 import com.kym.entity.admin.vo.DetailStationVo;
 import com.kym.entity.admin.vo.DetailStationVo;
-import com.kym.entity.admin.vo.LocalStationVo;
 import com.kym.entity.admin.vo.SimpleStationVo;
 import com.kym.entity.admin.vo.SimpleStationVo;
 import com.kym.entity.admin.vo.StationVo;
 import com.kym.entity.admin.vo.StationVo;
 import com.kym.entity.common.PageBean;
 import com.kym.entity.common.PageBean;
@@ -42,8 +41,6 @@ public interface StationService extends MPJBaseService<Station> {
 
 
     DetailStationVo stationInfo(String stationId);
     DetailStationVo stationInfo(String stationId);
 
 
-    List<LocalStationVo> queryLocalStationInfo(int pageNum, int pageSize);
-
     List<PlatformStationStatusInfo> stationStatus(String[] ids);
     List<PlatformStationStatusInfo> stationStatus(String[] ids);
 
 
     PlatformStationStatsInfo stationStats(String stationId, String startTime, String endTime);
     PlatformStationStatsInfo stationStats(String stationId, String startTime, String endTime);

+ 31 - 27
service/src/main/java/com/kym/service/admin/impl/CouponServiceImpl.java

@@ -29,7 +29,6 @@ import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.LocalTime;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
-import java.util.Objects;
 
 
 
 
 /**
 /**
@@ -72,17 +71,18 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
 
 
     @Override
     @Override
     public void issueCoupons(UserCouponsIssueVo userCouponsIssue) {
     public void issueCoupons(UserCouponsIssueVo userCouponsIssue) {
-        var coupons = lambdaQuery().in(Coupon::getId, userCouponsIssue.getCouponIds()).list();
+        var coupon = lambdaQuery().eq(Coupon::getId, userCouponsIssue.getCouponId()).one();
 
 
         // 校验优惠券领取方式
         // 校验优惠券领取方式
-        if (coupons.stream().anyMatch(coupon -> coupon.getReceiveType().equals(Coupon.RECEIVE_TYPE_主动领取))) {
-            throw new BusinessException("包含限自主领取的优惠券");
+        if (coupon.getReceiveType().equals(Coupon.RECEIVE_TYPE_主动领取)) {
+            throw new BusinessException("优惠券仅限用户自主领取");
         }
         }
 
 
         // 校验发放数量是否不大于券剩余数量(数量=0代表不限量)
         // 校验发放数量是否不大于券剩余数量(数量=0代表不限量)
-        var flag = coupons.stream().findAny().filter(coupon -> coupon.getQuantity() > 0 && userCouponsIssue.getUserIds().size() > (coupon.getQuantity() - coupon.getClaimedQuantity()));
-        if (flag.isPresent()) {
-            throw new BusinessException("优惠券剩余数量不足,优惠券名称:%s,剩余:%d,发放数量:%d".formatted(flag.get().getName(), flag.get().getQuantity() - flag.get().getClaimedQuantity(), userCouponsIssue.getUserIds().size()));
+        var totalCouponAmount = userCouponsIssue.getUserIds().size() * userCouponsIssue.getCouponCount();
+        var flag = totalCouponAmount > (coupon.getQuantity() - coupon.getClaimedQuantity());
+        if (flag) {
+            throw new BusinessException("优惠券剩余数量不足,优惠券名称:%s,剩余:%d,待发放数量:%d".formatted(coupon.getName(), coupon.getQuantity() - coupon.getClaimedQuantity(), totalCouponAmount));
         }
         }
 
 
         List<User> users = new ArrayList<>();
         List<User> users = new ArrayList<>();
@@ -92,29 +92,33 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
             users = userService.lambdaQuery().in(User::getMobilePhone, userCouponsIssue.getPhones()).list();
             users = userService.lambdaQuery().in(User::getMobilePhone, userCouponsIssue.getPhones()).list();
         }
         }
 
 
-        var activityList = activityService.listByIds(coupons.stream().map(Coupon::getActivityId).toList());
+        var activity = activityService.getById(coupon.getActivityId());
 
 
         // 更新优惠券发放数量
         // 更新优惠券发放数量
-        lambdaUpdate().setSql("claimed_quantity = claimed_quantity + %d".formatted(users.size()))
-                .in(Coupon::getId, coupons.stream().map(Coupon::getId).toList()).update();
+        lambdaUpdate().setSql("claimed_quantity = claimed_quantity + %d".formatted(totalCouponAmount))
+                .eq(Coupon::getId, coupon.getId()).update();
 
 
+        var startTime = LocalDateTime.now();
+
+        // 为每个用户发放优惠券
         users.forEach(user -> {
         users.forEach(user -> {
-            for (Coupon coupon : coupons) {
-                var userCoupon = new UserCoupon();
-                userCoupon.setActivityId(coupon.getActivityId());
-                userCoupon.setActivityName(Objects.requireNonNull(activityList.stream().filter(activity -> activity.getId().equals(coupon.getActivityId())).findFirst().orElse(null)).getName());
-                userCoupon.setCouponId(coupon.getId());
-                userCoupon.setCouponName(coupon.getName());
-                userCoupon.setUserId(user.getId());
-                userCoupon.setStartTime(LocalDateTime.now());
-                userCoupon.setEndTime(LocalDateTime.now().with(LocalTime.MAX).plusDays(coupon.getValidity() - 1));
-                userCoupon.setValidity(coupon.getValidity());
-                userCoupon.setCouponType(coupon.getCouponType());
-                userCoupon.setDiscount(coupon.getDiscount());
-                userCoupon.setMinServiceMoney(coupon.getMinServiceMoney());
-                userCoupon.setAllowStacke(coupon.getAllowStacke());
-                userCoupon.setRemark(coupon.getRemark());
-                userCoupon.setStatus(coupon.getStatus());
+            var userCoupon = new UserCoupon();
+            userCoupon.setActivityId(coupon.getActivityId());
+            userCoupon.setActivityName(activity.getName());
+            userCoupon.setCouponId(coupon.getId());
+            userCoupon.setCouponName(coupon.getName());
+            userCoupon.setUserId(user.getId());
+            userCoupon.setStartTime(startTime);
+            userCoupon.setEndTime(startTime.with(LocalTime.MAX).plusDays(coupon.getValidity() - 1));
+            userCoupon.setValidity(coupon.getValidity());
+            userCoupon.setCouponType(coupon.getCouponType());
+            userCoupon.setDiscount(coupon.getDiscount());
+            userCoupon.setMinServiceMoney(coupon.getMinServiceMoney());
+            userCoupon.setAllowStacke(coupon.getAllowStacke());
+            userCoupon.setRemark(coupon.getRemark());
+            userCoupon.setStatus(coupon.getStatus());
+            int n = userCouponsIssue.getCouponCount();
+            for (int i = 0; i < n; i++) {
                 userCouponSender.sendMessage(userCoupon);
                 userCouponSender.sendMessage(userCoupon);
             }
             }
         });
         });
@@ -141,7 +145,7 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
     }
     }
 
 
     @Override
     @Override
-    public void usedQuantifyCount(Long couponId){
+    public void usedQuantifyCount(Long couponId) {
         lambdaUpdate().setSql("used_quantity = used_quantity + 1").eq(Coupon::getId, couponId).update();
         lambdaUpdate().setSql("used_quantity = used_quantity + 1").eq(Coupon::getId, couponId).update();
     }
     }
 
 

+ 4 - 58
service/src/main/java/com/kym/service/admin/impl/StationServiceImpl.java

@@ -17,7 +17,10 @@ import com.kym.common.utils.PlatformAesUtil;
 import com.kym.common.utils.PlatformConvertUtil;
 import com.kym.common.utils.PlatformConvertUtil;
 import com.kym.entity.admin.*;
 import com.kym.entity.admin.*;
 import com.kym.entity.admin.queryParams.StationQueryParam;
 import com.kym.entity.admin.queryParams.StationQueryParam;
-import com.kym.entity.admin.vo.*;
+import com.kym.entity.admin.vo.ConnectorInfoVo;
+import com.kym.entity.admin.vo.DetailStationVo;
+import com.kym.entity.admin.vo.SimpleStationVo;
+import com.kym.entity.admin.vo.StationVo;
 import com.kym.entity.common.PageBean;
 import com.kym.entity.common.PageBean;
 import com.kym.entity.miniapp.vo.PlatformPolicyInfoVo;
 import com.kym.entity.miniapp.vo.PlatformPolicyInfoVo;
 import com.kym.entity.platform.PlatformStationStatsInfo;
 import com.kym.entity.platform.PlatformStationStatsInfo;
@@ -30,7 +33,6 @@ import com.kym.service.mybatisplus.MyBaseServiceImpl;
 import com.kym.service.platform.PlatformApi;
 import com.kym.service.platform.PlatformApi;
 import com.kym.service.platform.PlatformApiService;
 import com.kym.service.platform.PlatformApiService;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.aop.framework.AopContext;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -307,61 +309,6 @@ public class StationServiceImpl extends MyBaseServiceImpl<StationMapper, Station
         }).orElse(null);
         }).orElse(null);
     }
     }
 
 
-
-    @Deprecated
-    @Override
-    @DynamicCache
-    public List<LocalStationVo> queryLocalStationInfo(int pageNum, int pageSize) {
-        StationService proxy = (StationService) AopContext.currentProxy();
-        var stationList = list();
-        // 获取桩号等映射信息缓存
-        var equipmentInfoMap = proxy.getCachedEquipmentMap();
-        var connectorInfoMap = proxy.getCachedEquipmentConnectorMap();
-
-        var stationVoList = new ArrayList<LocalStationVo>();
-        for (var station : stationList) {
-            var stationVo = new LocalStationVo();
-            BeanUtils.copyProperties(station, stationVo);
-            var equipmentInfos = equipmentInfoMap.get(station.getStationId());
-            if (CommUtil.isNotEmptyAndNull(equipmentInfos)) {
-                equipmentInfos.parallelStream().forEach(equipmentInfo -> {
-                    // 填充短编号和车位号
-                    equipmentInfo.setShortId(KymCache.INSTANCE.getShortIdByEquipmentIdOrConnectorId(equipmentInfo.getEquipmentId()))
-                            .setParkingNo(KymCache.INSTANCE.getParkNoByEquipmentIdOrConnectorId(equipmentInfo.getEquipmentId()))
-                            .setConnectorInfos(connectorInfoMap.get(equipmentInfo.getEquipmentId()));
-
-                });
-                stationVo.setEquipmentInfos(equipmentInfos);
-                var res = stationList.stream().filter(item -> item.getStationId().equals(station.getStationId())).toList();
-                // 填充站点图片
-                if (!res.isEmpty()) {
-                    station.setPictures(res.get(0).getPictures());
-                } else {
-                    station.setPictures(null);
-                }
-                stationVoList.add(stationVo);
-            }
-        }
-
-        // 查询正在进行中的活动和各站点正在进行中的活动 (限充值优惠和优惠券领取活动)
-        var rechargeRightsActivityList = activityService.lambdaQuery().eq(Activity::getStatus, Activity.STATUS_进行中).eq(Activity::getDiscountType, Activity.DISCOUNT_TYPE_服务费折扣权益).list();
-        var couponActivityList = activityService.getAvailableCouponActivities();
-        var activityList = Stream.concat(rechargeRightsActivityList.stream(), couponActivityList.stream()).toList();
-
-        if (CommUtil.isNotEmptyAndNull(activityList)) {
-            var station2ActivityListMap = activityStationService.lambdaQuery().eq(ActivityStation::getStatus, Activity.STATUS_进行中).list()
-                    .stream().collect(Collectors.groupingBy(ActivityStation::getStationId));
-            var station2ActivityList = new HashMap<String, List<Activity>>();
-            station2ActivityListMap.forEach((k, v) -> station2ActivityList.put(k,
-                    v.stream().map(item -> activityList.stream().filter(activity -> activity.getId().equals(item.getActivityId())).findFirst().orElse(null)).toList()));
-            stationVoList.forEach(vo -> vo.setActivityList(station2ActivityList.get(vo.getStationId()))
-                    .setEquipmentInfos(vo.getEquipmentInfos().stream().sorted(Comparator.comparing(EquipmentInfo::getShortId)).toList()));
-        }
-
-        return stationVoList;
-    }
-
-
     @Override
     @Override
     public List<PlatformStationStatusInfo> stationStatus(String[] stationIds) {
     public List<PlatformStationStatusInfo> stationStatus(String[] stationIds) {
         // 站点ID对应平台名称
         // 站点ID对应平台名称
@@ -398,7 +345,6 @@ public class StationServiceImpl extends MyBaseServiceImpl<StationMapper, Station
         return res;
         return res;
     }
     }
 
 
-
     /**
     /**
      * 充电桩统计
      * 充电桩统计
      *
      *