nickchange
2023-11-24 18b58aaf9bd99cadd0e7f80fe5d80586f2f4831a
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -24,10 +24,7 @@
import com.dsh.activity.model.response.GoodsInfoOneVo;
import com.dsh.activity.model.response.StoreVos;
import com.dsh.activity.service.*;
import com.dsh.activity.util.GDMapGeocodingUtil;
import com.dsh.activity.util.StrUtils;
import com.dsh.activity.util.TokenUtil;
import com.dsh.activity.util.ToolUtil;
import com.dsh.activity.util.*;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -279,6 +276,11 @@
    }
    @Resource
    private StoreClient storeClient;
    @Autowired
    private PointsMerchandiseStoreService pointsMerchandiseStoreService;
    @ResponseBody
    @PostMapping("/base/pointMerchars/convertGoods")
    public List<IntegralCommodity> getConvertibleGoods(@RequestBody Location location) throws Exception {
@@ -289,15 +291,36 @@
        String cityCode = geocode.get("cityCode");
        List<PointsMerchandiseCity> cityCode1 = pmdsCityService.list(new QueryWrapper<PointsMerchandiseCity>().eq("cityCode", cityCode));
        List<Integer> cIds = new ArrayList<>();
        for (PointsMerchandiseCity pointsMerchandiseCity : cityCode1) {
            cIds.add(pointsMerchandiseCity.getPointsMerchandiseId());
//        if(null != geocode) {
            List<Store> stores = storeClient.queryStoreList(new QueryStoreList(provinceCode, cityCode));
            Store s = null;
            Double d = 0D;
            for (Store store : stores) {
                Map<String, Double> distance = GeodesyUtil.getDistance(location.getLon() + "," + location.getLat(), store.getLon() + "," + store.getLat());
                Double wgs84 = distance.get("WGS84");
                if (s == null || d > wgs84) {
                    s = store;
                    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());
        }
//        if (cIds.size()>0) {
            List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>()
            List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>().in("id",cIds)
                    .eq("state", 1)
                    .eq("shelves", 1)
                    .gt("endTime", new Date()).last("ORDER BY sort desc,insertTime desc"));