lisy
2023-07-11 9e01ddb449dba96e681af4bdb6257e3c7c0cfe51
cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
@@ -1,11 +1,15 @@
package com.dsh.activity.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.activity.entity.Coupon;
import com.dsh.activity.entity.UserCoupon;
import com.dsh.activity.model.CouponListVo;
import com.dsh.activity.model.request.CommodityRequest;
import com.dsh.activity.model.request.CouponPackageReq;
import com.dsh.activity.model.response.CouponPackageResp;
import com.dsh.activity.service.ICouponService;
import com.dsh.activity.service.UserCouponService;
import com.dsh.activity.util.GDMapGeocodingUtil;
import com.dsh.activity.util.ResultUtil;
import com.dsh.activity.util.TokenUtil;
import io.swagger.annotations.ApiImplicitParam;
@@ -14,7 +18,10 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
 * @author zhibing.pu
@@ -32,6 +39,9 @@
    @Autowired
    private UserCouponService ucService;
    @Autowired
    private GDMapGeocodingUtil gdMapGeocodingUtil;
@@ -103,4 +113,46 @@
        }
    }
    @PostMapping("/base/coupon/getAllCoupons")
    public List<Coupon> getAllCoupons(@RequestBody CommodityRequest request){
        String provinceCode = "";
        String cityCode = "";
        try {
            Map<String, String> geocode = gdMapGeocodingUtil.geocode(request.getLon(), request.getLat());
            provinceCode = geocode.get("provinceCode");
            cityCode = geocode.get("cityCode");
        }catch (Exception e){
            e.printStackTrace();
        }
        try {
            Integer userAppId = tokenUtil.getUserIdFormRedis();
            List<UserCoupon> list = ucService.list(new QueryWrapper<UserCoupon>()
                    .eq("userId",userAppId ));
            List<Coupon> couponList = couponService.list(new QueryWrapper<Coupon>()
                    .eq("auditStatus",2)
                    .eq("state",1)
                    .eq("status",2));
            if (couponList.size() > 0 ){
                Iterator<Coupon> iterator = couponList.iterator();
                while (iterator.hasNext()) {
                    Coupon merchandise = iterator.next();
                    if (merchandise.getUseScope() == 2 && (!Objects.equals(merchandise.getCityCode(), cityCode) && !Objects.equals(merchandise.getProvinceCode(), provinceCode))) {
                        iterator.remove(); // 移除符合条件的商品
                    }
                }
            }
            return couponList;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    @PostMapping("/base/coupon/getRedeemedNums")
    public int getRedeemedQuantity(@RequestBody Integer id){
        return ucService.count(new QueryWrapper<UserCoupon>()
                .eq("couponId",id));
    }
}