44323
2024-03-11 a1cadd023734d1e33f6455ec87fb7e2783d808fe
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -10,11 +10,9 @@
import com.dsh.activity.feignclient.course.model.CoursePackagePaymentConfig;
import com.dsh.activity.feignclient.model.*;
import com.dsh.activity.feignclient.other.OperatorClient;
import com.dsh.activity.feignclient.other.SiteClient;
import com.dsh.activity.feignclient.other.StoreClient;
import com.dsh.activity.feignclient.other.model.Store;
import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse;
import com.dsh.activity.feignclient.other.model.StoreInfoDto;
import com.dsh.activity.feignclient.other.model.TOperatorCity;
import com.dsh.activity.feignclient.other.model.*;
import com.dsh.activity.model.CoachChangeStateVO;
import com.dsh.activity.model.PointMerchandiseIncomeVo;
import com.dsh.activity.model.PointMerchandiseVo;
@@ -27,6 +25,7 @@
import com.dsh.activity.util.*;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -78,6 +77,8 @@
    @Resource
    private CouponCityService ccityService;
    @Autowired
    private SiteClient siteClient;
    @Resource
@@ -297,12 +298,11 @@
        List<IntegralCommodity> commodity = new ArrayList<>();
        Map<String, String> geocode = gdMapGeocodingUtil.geocode(location.getLon(), location.getLat());
        if(null == geocode){
            return new ArrayList<>();
        }
        String provinceCode = geocode.get("provinceCode");
        String cityCode = geocode.get("cityCode");
//        if(null != geocode) {
        List<Store> stores = storeClient.queryStoreList(new QueryStoreList(provinceCode, cityCode));
        Store s = null;
        Double d = 0D;
@@ -314,14 +314,7 @@
                d = wgs84;
            }
        }
//        }
//        List<PointsMerchandiseCity> cityCode1 = pmdsCityService.list(new QueryWrapper<PointsMerchandiseCity>().eq("cityCode", cityCode));
        List<Integer> cIds = new ArrayList<>();
//        for (PointsMerchandiseCity pointsMerchandiseCity : cityCode1) {
//            cIds.add(pointsMerchandiseCity.getPointsMerchandiseId());
//        }
        List<PointsMerchandiseStore> storesids = pointsMerchandiseStoreService.list(new QueryWrapper<PointsMerchandiseStore>().eq("storeId", s.getId()));
        for (PointsMerchandiseStore storesid : storesids) {
            cIds.add(storesid.getPointsMerchandiseId());
@@ -449,7 +442,7 @@
                detailsVo.setGoodName(coursePackage.getName());
                detailsVo.setBelongsScope(merchandise.getUserPopulation());
                int coursePackageNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                        .eq("pointsMerchandiseId", merchandise.getId()));
                        .eq("pointsMerchandiseId", merchandise.getId()).eq("payStatus", 2).eq("state", 1));
                detailsVo.setRedeemedNum(coursePackageNums);
                detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - coursePackageNums, 0));
                detailsVo.setPerLimit(merchandise.getPickUpQuantity());
@@ -512,7 +505,7 @@
                detailsVo.setGoodName(merchandise.getName());
                detailsVo.setBelongsScope(merchandise.getUserPopulation());
                int count = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                        .eq("pointsMerchandiseId", merchandise.getId()));
                        .eq("pointsMerchandiseId", merchandise.getId()).eq("payStatus", 2).eq("state", 1));
                detailsVo.setRedeemedNum(count);
                detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - count, 0));
                detailsVo.setPerLimit(merchandise.getPickUpQuantity());
@@ -567,7 +560,7 @@
                detailsVo.setGoodName(coupon.getName());
                detailsVo.setBelongsScope(coupon.getUserPopulation());
                int couponNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                        .eq("pointsMerchandiseId", merchandise.getId()));
                        .eq("pointsMerchandiseId", merchandise.getId()).eq("payStatus", 2).eq("state", 1));
                detailsVo.setRedeemedNum(couponNums);
                detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponNums, 0));
                detailsVo.setPerLimit(coupon.getPickUpQuantity());
@@ -647,7 +640,7 @@
                detailsVo.setGoodName(coursePackage.getName());
                detailsVo.setBelongsScope(merchandise.getUserPopulation());
                int coursePackageNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                        .eq("pointsMerchandiseId", merchandise.getId()));
                        .eq("pointsMerchandiseId", merchandise.getId()).eq("payStatus", 2).eq("state", 1));
                detailsVo.setRedeemedNum(coursePackageNums);
                detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - coursePackageNums, 0));
                detailsVo.setPerLimit(merchandise.getPickUpQuantity());
@@ -710,7 +703,7 @@
                detailsVo.setGoodName(merchandise.getName());
                detailsVo.setBelongsScope(merchandise.getUserPopulation());
                int count = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                        .eq("pointsMerchandiseId", merchandise.getId()));
                        .eq("pointsMerchandiseId", merchandise.getId()).eq("payStatus", 2).eq("state", 1));
                detailsVo.setRedeemedNum(count);
                detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - count, 0));
                detailsVo.setPerLimit(merchandise.getPickUpQuantity());
@@ -893,7 +886,7 @@
                        detailsResponse.setSid(collect);
                        if (collect.size() > 0) {
                            // 获取rid
//                            List<Integer> rid= stoClient.querySiteIdById(collect);
//                          List<Integer> rid= stoClient.querySiteIdById(collect);
                            //detailsResponse.setRid(rid);
                            // todo 修改区域id 临时
                            // 根据门店id 写死区域id 后续调整为门票指定多个区域
@@ -916,11 +909,27 @@
                                        list4.add(43);
                                        detailsResponse.setRid(list4);
                                    }
                                }
                            }
                            //======================================================
                        }
                    }else{
                        // todo 返回门店id 和场地id
                        // 查询指定场地
                        List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>()
                                .eq(PointsMerchandiseStore::getPointsMerchandiseId, merchandise.getId()));
                        // 门店
                        ArrayList<Integer> list3 = new ArrayList<>();
                        // 场地
                        ArrayList<Integer> list4 = new ArrayList<>();
                        for (PointsMerchandiseStore temp : list) {
                            Integer storeId = temp.getStoreId();
                            Integer siteId = temp.getSiteId();
                            list3.add(storeId);
                            list4.add(siteId);
                        }
                        detailsResponse.setRid(list4);
                        detailsResponse.setSid(list3);
                    }
@@ -934,14 +943,11 @@
                        String endDate = dateFormat.format(end);
                        detailsResponse.setStartTime(startDate);
                        detailsResponse.setEndTime(startDate);
                        Date now = new Date();
                        Calendar cal1 = Calendar.getInstance();
                        cal1.setTime(pointsMerchandise.getInsertTime());
                        Calendar cal2 = Calendar.getInstance();
                        cal2.setTime(now);
                        // Compare the year, month, and day of the two Calendar instances
                        boolean isSameDate = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
                                cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) &&
@@ -1392,7 +1398,8 @@
    public int queryUserHasGoodsNums(@RequestBody AppUserGoodResp goodResp) {
        int count = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                .eq(UserPointsMerchandise::getUserId, goodResp.getAppUserId())
                .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId()));
                .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId())
                .eq(UserPointsMerchandise::getPayStatus, 2).eq(UserPointsMerchandise::getState, 1));
        System.out.println(count);
        return count;
    }
@@ -1401,7 +1408,8 @@
    @PostMapping("/base/pointMerchars/queryUserHasGoodsNums1")
    public int queryUserHasGoodsNums1(@RequestBody AppUserGoodResp goodResp) {
        int count = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId()));
                .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId())
                .eq(UserPointsMerchandise::getPayStatus, 2).eq(UserPointsMerchandise::getState, 1));
        System.out.println(count);
        return count;
    }
@@ -1633,6 +1641,9 @@
                case 3:
                    infoOneVo.setExchangeArea("指定门店");
                    break;
                case 4:
                    infoOneVo.setExchangeArea("指定场地");
                    break;
                default:
                    break;
            }
@@ -1670,27 +1681,66 @@
        List<StoreVos> storeVos = new ArrayList<>();
        List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
                .eq("pointsMerchandiseId", id));
        if (list.size() > 0) {
            List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
            List<Store> stores = stoClient.queryStoreByIds(collect);
            if (stores.size() > 0) {
                for (Store store : stores) {
                    StoreVos storeVos1 = new StoreVos();
                    storeVos1.setNum1(store.getProvince() + "省" + store.getCity() + "市");
                    if (store.getOperatorId() == 0) {
                        storeVos1.setNum2("平台");
                    } else {
        PointsMerchandise byId = pmdsService.getById(id);
                        storeVos1.setNum2(store.getOName());
        if (list.size() > 0) {
            if (byId.getUseScope()==3){
                // 如果是指定门店
                List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
                List<Store> stores = stoClient.queryStoreByIds(collect);
                if (stores.size() > 0) {
                    int a = 0;
                    for (Store store : stores) {
                        StoreVos storeVos1 = new StoreVos();
                        storeVos1.setNum1(store.getProvince() + "省" + store.getCity() + "市");
                        if (store.getOperatorId()==null){
                            storeVos1.setNum2("平台");
                        }else if (store.getOperatorId() == 0) {
                            storeVos1.setNum2("平台");
                        } else {
                            storeVos1.setNum2(store.getOName());
                        }
                        storeVos1.setNum3(store.getName());
                        storeVos1.setNum4(store.getIds());
                        storeVos.add(storeVos1);
                    }
                    storeVos1.setNum3(store.getName());
                    storeVos1.setNum4(store.getIds());
                    storeVos.add(storeVos1);
                }
            }else if (byId.getUseScope()==4){
                // 如果是指定场地
                List<Integer> collect1 = list.stream().map(PointsMerchandiseStore::getSiteId).collect(Collectors.toList());
                int temp =0;
                List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
                List<Store> stores = stoClient.queryStoreByIds(collect);
                while (temp!=collect1.size()){
                    for (Store store : stores) {
                        Integer integer = collect1.get(temp);
                        Site site = siteClient.querySiteById(integer);
                        StoreVos storeVos1 = new StoreVos();
                        storeVos1.setNum5(site.getName());
                        storeVos1.setNum1(store.getProvince() + "省" + store.getCity() + "市");
                        if (store.getOperatorId()==null){
                            storeVos1.setNum2("平台");
                        }else if (store.getOperatorId() == 0) {
                            storeVos1.setNum2("平台");
                        } else {
                            storeVos1.setNum2(store.getOName());
                        }
                        storeVos1.setNum3(store.getName());
                        storeVos1.setNum4(store.getIds());
                        storeVos.add(storeVos1);
                        temp++;
                    }
                }
            }
        }
        return storeVos;
    }
    @ResponseBody
@@ -1753,6 +1803,20 @@
    public Boolean addOther(@RequestBody String pam) {
        Boolean save = false;
        String[] split = pam.split("_");
        if (split.length > 2) {
            if (StringUtils.hasLength(split[2])) {
                for (String s : split[2].split(",")) {
                    PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
                    pointsMerchandiseStore.setPointsMerchandiseId(Integer.valueOf(split[0]));
                    pointsMerchandiseStore.setSiteId(Integer.valueOf(s));
                    Site site = siteClient.querySiteById(Integer.valueOf(s));
                    pointsMerchandiseStore.setStoreId(site.getStoreId());
                    save = pmdstoService.save(pointsMerchandiseStore);
                }
                // 这个门票是选择的场地
                return save;
            }
        }
        for (String s : split[1].split(",")) {
            PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
            pointsMerchandiseStore.setPointsMerchandiseId(Integer.valueOf(split[0]));
@@ -1761,6 +1825,7 @@
        }
        return save;
    }
    @PostMapping("/base/pointMerchars/addCitys")
    public Boolean addCitys(@RequestBody ArrayList<Map<String, String>> objects) {
@@ -1854,6 +1919,8 @@
        List<Integer> ids = queryDataFee.getIds();
        if (ids.size() == 0) {
            ids.add(-1);
        }else{
        }
        List<PointsMerchandise> list1 = pmdsService.list(new LambdaQueryWrapper<PointsMerchandise>().eq(PointsMerchandise::getRedemptionMethod, 3));
        LambdaQueryWrapper<UserPointsMerchandise> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();