package com.dsh.activity.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.activity.entity.*; import com.dsh.activity.feignclient.course.CoursePackageClient; import com.dsh.activity.feignclient.course.CoursePackageConfigClient; import com.dsh.activity.feignclient.course.model.CoursePackage; 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.*; import com.dsh.activity.model.CoachChangeStateVO; import com.dsh.activity.model.PointMerchandiseIncomeVo; import com.dsh.activity.model.PointMerchandiseVo; import com.dsh.activity.model.WriteOffDTO; import com.dsh.activity.model.QueryDataFee; import com.dsh.activity.model.request.*; import com.dsh.activity.model.response.GoodsInfoOneVo; import com.dsh.activity.model.response.StoreVos; import com.dsh.activity.service.*; 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; import javax.xml.crypto.Data; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @RestController @RequestMapping("") public class PointMercharsController { @Autowired private PointsMerchandiseService pmdsService; @Autowired private GDMapGeocodingUtil gdMapGeocodingUtil; @Autowired private UserPointsMerchandiseService upmseService; @Autowired private ICouponService iCouponService; @Autowired private CoursePackageClient cpClient; @Autowired private StoreClient stoClient; @Autowired private CoursePackageConfigClient cpcfigClient; @Autowired private PointsMerchandiseStoreService pmdstoService; @Autowired private UserCouponService uconService; @Autowired private CouponStoreService cstoreService; @Autowired private TokenUtil tokenUtil; @Resource private CouponCityService ccityService; @Autowired private SiteClient siteClient; @Resource private PointsMerchandiseCityService pmdsCityService; @Autowired private UserPointsMerchandiseService userPointsMerchandiseService; /** * 门票上下架 state=1 上架 state=2 下架 */ @RequestMapping("/base/pointMerchars/changeState") public void changeState(@RequestBody CoachChangeStateVO dto) { pmdsService.changeState(dto); } /** * 根据id查询 */ @RequestMapping("/base/pointMerchars/getById") @ResponseBody public PointsMerchandise getById(@RequestBody Integer id) { return pmdsService.getById(id); } /** * 门票核销 */ @RequestMapping("/base/course/changeState") @ResponseBody public Object changeState(@RequestBody CourseChangeStateDTO dto) { return userPointsMerchandiseService.changeState(dto); } @RequestMapping("/base/pointMerchars/writeOff") public Object writeOff(@RequestBody WriteOffDTO dto) { UserPointsMerchandise byId = userPointsMerchandiseService.getById(dto.getId()); byId.setStoreId(dto.getVerifiStoreId()); byId.setStatus(2); byId.setVerificationTime(new Date()); byId.setUserId(null); byId.setVerificationUserId(dto.getVerificationUserId()); return userPointsMerchandiseService.updateById(byId); } @Autowired private OperatorClient operatorClient; @Resource private CouponCityService cityService; @ResponseBody @PostMapping("/base/pointMerchars/ticketList") public List> ticketList(@RequestBody IntegralGoodsOfSearch ofSearch) { List> result1 = pmdsService.ticketList(ofSearch); List> result = new ArrayList<>(); if (ofSearch.getObjType() == 3) { for (Map map : result1) { List id = pmdstoService.list(new LambdaQueryWrapper().eq(PointsMerchandiseStore::getPointsMerchandiseId, map.get("id"))); List collect = id.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList()); if (collect.size() == 0) { collect.add(-1); } if (collect.contains(ofSearch.getObjId())) { if (id.size() > 1) { map.put("size", 1); } else { map.put("size", 0); } result.add(map); } } } else if (ofSearch.getObjType() == 2) { for (Map map : result1) { // 拿到当前运营商下的门店的门票 List id = pmdstoService.list(new QueryWrapper().in("storeId", ofSearch.getStoreIds())); // 拿到积分商品id集合 List collect = id.stream().map(PointsMerchandiseStore::getPointsMerchandiseId).collect(Collectors.toList()); if (collect.size() == 0) { collect.add(-1); } Integer temp = (Integer) map.get("id"); if (collect.contains(temp)) { if (id.size() > 1) { map.put("size", 1); } else { map.put("size", 0); } result.add(map); } if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 1) { result.add(map); } if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 2) { // 获取到优惠券id 查询这个优惠券指定了哪些城市 Integer id1 = Integer.parseInt(String.valueOf(map.get("id"))); // 获取到运营商管理的省和市 List cityByOperatorId = operatorClient.getCityByOperatorId(ofSearch.getObjId()); // 拿到运营商市的code集合 List collect1 = cityByOperatorId.stream().filter(t -> t.getPid() != 0) .map(tOperatorCity -> Integer.toString(tOperatorCity.getCode())) .collect(Collectors.toList()); List couponId = cityService.list(new QueryWrapper().eq("couponId", id1)); // 先判断优惠券管理的市 运营商是否有 List collect3 = couponId.stream().map(CouponCity::getCityCode) .collect(Collectors.toList()); // 优惠券指定的省 List collect4 = couponId.stream().map(CouponCity::getCityCode) .collect(Collectors.toList()); if (!Collections.disjoint(collect3, collect4)) { result.add(map); } else { // 如果没有交集 那么还需要判断运营商是否管理了整个省 } } if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 3) { // 获取到优惠券id 查询这个优惠券指定了哪些门店 Integer id3 = Integer.parseInt(String.valueOf(map.get("id"))); // 当前运营商管理的门店ids List storeIds = ofSearch.getStoreIds(); // 优惠券指定的门店 List collect5 = cstoreService.list(new QueryWrapper().eq("couponId", id3) .in("storeId", storeIds)).stream().map(CouponStore::getStoreId) .collect(Collectors.toList()); // 判断两个集合是否相交 // 比较两个集合中是否有相同的元素;当两个集合中没有相同元素时返回true, // 当有相同元素时返回false。 if (!Collections.disjoint(collect5, storeIds)) { result.add(map); } } } } else { result = result1; } if (result.size() > 0) { for (Map stringObjectMap : result) { Integer o = (Integer) stringObjectMap.get("id"); String startTime = (String) stringObjectMap.get("startTime"); String endTime = (String) stringObjectMap.get("endTime"); stringObjectMap.put("timeValue", startTime + "至" + endTime); int count1 = upmseService.count(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getPointsMerchandiseId, o) .eq(UserPointsMerchandise::getPayStatus, 2).eq(UserPointsMerchandise::getState, 1)); int count2 = upmseService.count(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getPointsMerchandiseId, o) .eq(UserPointsMerchandise::getStatus, 2) .eq(UserPointsMerchandise::getPayStatus, 2).eq(UserPointsMerchandise::getState, 1)); stringObjectMap.put("hasExchangeQty", count1); stringObjectMap.put("hasPickQty", count2); stringObjectMap.put("activeStatus", dealTimeStatus(startTime, endTime)); } if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())) { result = dealTimeData(result, ofSearch.getActiveStatus()); } } return result; } @ResponseBody @PostMapping("/base/pointMerchars/queryGoodsListSearch") public List> getIntegralGoodsListOfSearch(@RequestBody IntegralGoodsOfSearch ofSearch) { System.out.println(ofSearch); List> mapList = pmdsService.queryGoodsListOfSearch(ofSearch); if (mapList.size() > 0) { for (Map stringObjectMap : mapList) { Integer o = (Integer) stringObjectMap.get("id"); String startTime = (String) stringObjectMap.get("startTime"); String endTime = (String) stringObjectMap.get("endTime"); stringObjectMap.put("timeValue", startTime + "至" + endTime); int count1 = upmseService.count(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getPointsMerchandiseId, o) .eq(UserPointsMerchandise::getStatus, 2)); int count2 = upmseService.count(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getPointsMerchandiseId, o) ); stringObjectMap.put("hasExchangeQty", count1); stringObjectMap.put("hasPickQty", count2); stringObjectMap.put("activeStatus", dealTimeStatus(startTime, endTime)); } if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())) { mapList = dealTimeData(mapList, ofSearch.getActiveStatus()); } } System.out.println("mapList->" + mapList); return mapList; } /** * 获取积分商票消费金额 */ @ResponseBody @RequestMapping("/base/pointMerchars/getAmount") public List getAmount() { return userPointsMerchandiseService.getAmount(); } @Resource private StoreClient storeClient; @Autowired private PointsMerchandiseStoreService pointsMerchandiseStoreService; @Autowired private CouponStoreService couponStoreService; @ResponseBody @PostMapping("/base/pointMerchars/convertGoods") public List getConvertibleGoods(@RequestBody Location location) throws Exception { List commodity = new ArrayList<>(); Map geocode = gdMapGeocodingUtil.geocode(location.getLon(), location.getLat()); if(null == geocode){ return new ArrayList<>(); } String provinceCode = geocode.get("provinceCode"); String cityCode = geocode.get("cityCode"); List stores = storeClient.queryStoreList(new QueryStoreList(provinceCode, cityCode)); Store s = null; Double d = 0D; for (Store store : stores) { Map 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 cIds = new ArrayList<>(); List storesids = pointsMerchandiseStoreService.list(new QueryWrapper().eq("storeId", s.getId())); for (PointsMerchandiseStore storesid : storesids) { cIds.add(storesid.getPointsMerchandiseId()); } QueryWrapper wrapper = new QueryWrapper() .eq("state", 1) .eq("shelves", 1) .gt("endTime", new Date()) .eq("status", 1); if(cIds.size() > 0){ wrapper.in("id", cIds); } List merchandises = pmdsService.list(wrapper.last("ORDER BY sort desc,insertTime desc")); if (merchandises.size() > 0) { for (PointsMerchandise merchandise : merchandises) { IntegralCommodity integralCommodity = new IntegralCommodity(); integralCommodity.setCommodityId(merchandise.getId()); integralCommodity.setCommodityImg(merchandise.getCover()); integralCommodity.setCommodityName(merchandise.getName()); if(merchandise.getRedemptionMethod() == 1){ integralCommodity.setIntegral(merchandise.getIntegral()); } if(merchandise.getRedemptionMethod() == 2){ integralCommodity.setCommodityPrice(merchandise.getPrice()); integralCommodity.setIntegral(merchandise.getIntegral()); } if(merchandise.getRedemptionMethod() == 3){ integralCommodity.setCommodityPrice(merchandise.getPrice()); } integralCommodity.setRedemptionMethod(merchandise.getRedemptionMethod()); integralCommodity.setGoodsType(merchandise.getType()); integralCommodity.setSort(merchandise.getSort()); commodity.add(integralCommodity); } } List storeId = couponStoreService.list(new QueryWrapper().eq("storeId", s.getId())); List storeCoupons = new ArrayList<>(); for (CouponStore couponStore : storeId) { storeCoupons.add(couponStore.getCouponId()); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); QueryWrapper queryWrapper = new QueryWrapper() .eq("state", 1).gt("endTime", sdf.format(new Date())); if(storeCoupons.size() > 0){ queryWrapper.in("id", storeCoupons); } List list = couponService.list(queryWrapper.last(" ORDER BY insertTime desc")); if (!list.isEmpty()){ for (Coupon coupon : list) { IntegralCommodity integralCommodity = new IntegralCommodity(); integralCommodity.setCommodityId(coupon.getId()); integralCommodity.setCommodityImg(coupon.getCover()); integralCommodity.setCommodityName(coupon.getName()); if(coupon.getRedemptionMethod() == 1){ integralCommodity.setIntegral(coupon.getIntegral().intValue()); } if(coupon.getRedemptionMethod() == 2){ integralCommodity.setCommodityPrice(coupon.getCash()); integralCommodity.setIntegral(coupon.getIntegral().intValue()); } integralCommodity.setRedemptionMethod(coupon.getRedemptionMethod()); integralCommodity.setGoodsType(4); commodity.add(integralCommodity); } } return commodity; } @ResponseBody @PostMapping("/base/pointMerchars/getCommoditys") public PointMerchandiseVo getVicinityGoods(@RequestBody CommodityRequest request) { PointMerchandiseVo pointMerchandiseVo = new PointMerchandiseVo(); List list = new ArrayList<>(); String provinceCode = ""; String cityCode = ""; if (ToolUtil.isEmpty(request.getLon()) && ToolUtil.isEmpty(request.getLat())) { return pointMerchandiseVo; } try { Map geocode = gdMapGeocodingUtil.geocode(request.getLon(), request.getLat()); provinceCode = geocode.get("provinceCode"); cityCode = geocode.get("cityCode"); } catch (Exception e) { e.printStackTrace(); } list = pmdsService.list(new QueryWrapper() .eq("state", 1) .eq("shelves", 1) .le("startTime", new Date()) .ge("endTime", new Date()) .eq("status", 1) ); if (list.size() > 0) { Iterator iterator = list.iterator(); while (iterator.hasNext()) { PointsMerchandise merchandise = iterator.next(); if (merchandise.getUseScope() == 2 && (!cityCode.equals(merchandise.getCityCode()) || !provinceCode.equals(merchandise.getProvinceCode()))) { iterator.remove(); // 移除符合条件的商品 } } pointMerchandiseVo.setMerchandises(list); } return pointMerchandiseVo; } @PostMapping("/base/pointMerchars/getRedeemedNums") public int getRedeemedQuantity(@RequestBody Integer goodId) { return upmseService.count(new QueryWrapper() .eq("pointsMerchandiseId", goodId)); } @PostMapping("/base/pointMerchars/getGoodDetailsWithIdOne") public ProductDetailsVo getGoodDetailsWithIdOne(@RequestBody Integer id) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); ProductDetailsVo detailsVo = new ProductDetailsVo(); PointsMerchandise merchandise = pmdsService.getById(id); detailsVo.setCardType(merchandise.getCardType()); switch (merchandise.getType()) { case 2: // 课包 CoursePackage coursePackage = cpClient.queryCoursePackageById(merchandise.getCoursePackageId()); detailsVo.setGoodId(coursePackage.getId()); List list1 = new ArrayList<>(); list1.add(coursePackage.getCoverDrawing()); list1.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","))); detailsVo.setPics(list1); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coursePackage.getCoverDrawing())) { return -1; // s1排在前面 } else if (s2.equals(coursePackage.getCoverDrawing())) { return 1; // s2排在前面 } else { return 0; // 保持原顺序 } }); detailsVo.setGoodName(coursePackage.getName()); detailsVo.setBelongsScope(merchandise.getUserPopulation()); int coursePackageNums = upmseService.count(new QueryWrapper() .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()); if (merchandise.getRedemptionMethod() == 1) { detailsVo.setExchangeType(1); detailsVo.setIntegral(merchandise.getIntegral()); } else { detailsVo.setExchangeType(2); detailsVo.setIntegral(merchandise.getIntegral()); detailsVo.setCash(merchandise.getCash()); } detailsVo.setCost(merchandise.getPrice()); if (merchandise.getUseScope() == 1) { detailsVo.setExchangeAddrType(1); detailsVo.setBelongs("全国通用"); } else if (merchandise.getUseScope() == 2) { detailsVo.setExchangeAddrType(2); detailsVo.setBelongs(merchandise.getProvince() + "|" + merchandise.getCity() + "用户可用"); } else { detailsVo.setExchangeAddrType(3); List list = pmdstoService.list(new QueryWrapper() .eq("pointsMerchandiseId", merchandise.getId())); PointsMerchandiseStore pointsMerchandiseStore = list.get(0); StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId()); detailsVo.setBelongs(courseOfStore.getStoreName() + "可用"); } List courseConfigList = cpcfigClient.getCourseConfigList(coursePackage.getId()); for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) { if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) { detailsVo.setCourseHours(coursePackagePaymentConfig.getClassHours()); break; } } detailsVo.setStartTime(format.format(merchandise.getStartTime())); detailsVo.setEndTime(format.format(merchandise.getEndTime())); detailsVo.setContents(merchandise.getRedemptionInstructions()); detailsVo.setGoodType(merchandise.getType()); break; case 1: case 3: detailsVo.setGoodId(merchandise.getId()); List list2 = new ArrayList<>(); String cover = merchandise.getCover(); list2.addAll(Arrays.asList(StrUtils.splitStr2StrArr(merchandise.getProductImages(), ","))); detailsVo.setPics(list2); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(merchandise.getCover())) { return -1; // s1排在前面 } else if (s2.equals(merchandise.getCover())) { return 1; // s2排在前面 } else { return 0; // 保持原顺序 } }); detailsVo.setPics(list2); detailsVo.setGoodName(merchandise.getName()); detailsVo.setBelongsScope(merchandise.getUserPopulation()); int count = upmseService.count(new QueryWrapper() .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()); detailsVo.setExchangeType(merchandise.getRedemptionMethod()); if (merchandise.getRedemptionMethod() == 1) { detailsVo.setIntegral(merchandise.getIntegral()); } else { detailsVo.setIntegral(merchandise.getIntegral()); detailsVo.setCash(merchandise.getCash()); } detailsVo.setCost(merchandise.getPrice()); if (merchandise.getUseScope() == 1) { detailsVo.setExchangeAddrType(1); detailsVo.setBelongs("全国通用"); } else if (merchandise.getUseScope() == 2) { detailsVo.setExchangeAddrType(2); detailsVo.setBelongs(merchandise.getProvince() + "|" + merchandise.getCity() + "用户可用"); } else { detailsVo.setExchangeAddrType(3); List list = pmdstoService.list(new QueryWrapper() .eq("pointsMerchandiseId", merchandise.getId())); PointsMerchandiseStore pointsMerchandiseStore = list.get(0); StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId()); detailsVo.setBelongs(courseOfStore.getStoreName() + "可用"); } detailsVo.setStartTime(format.format(merchandise.getStartTime())); detailsVo.setEndTime(format.format(merchandise.getEndTime())); detailsVo.setContents(merchandise.getRedemptionInstructions()); detailsVo.setGoodType(merchandise.getType()); break; case 4: // 优惠券 Coupon coupon = iCouponService.getById(id); detailsVo.setGoodId(coupon.getId()); List list3 = new ArrayList<>(); list3.add(ToolUtil.isEmpty(coupon.getCover()) ? "" : coupon.getCover()); if (ToolUtil.isNotEmpty(coupon.getProductImages())) { list3.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ","))); } detailsVo.setPics(list3); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coupon.getCover())) { return -1; // s1排在前面 } else if (s2.equals(coupon.getCover())) { return 1; // s2排在前面 } else { return 0; // 保持原顺序 } }); detailsVo.setGoodName(coupon.getName()); detailsVo.setBelongsScope(coupon.getUserPopulation()); int couponNums = upmseService.count(new QueryWrapper() .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()); detailsVo.setExchangeType(coupon.getRedemptionMethod()); if (coupon.getRedemptionMethod() == 1) { detailsVo.setIntegral(coupon.getIntegral().intValue()); } else { detailsVo.setIntegral(coupon.getIntegral().intValue()); detailsVo.setCash(coupon.getCash()); } if (coupon.getUseScope() == 1) { detailsVo.setExchangeAddrType(1); detailsVo.setBelongs("全国通用"); } else if (coupon.getUseScope() == 2) { detailsVo.setExchangeAddrType(2); List list = ccityService.list(new LambdaQueryWrapper() .eq(CouponCity::getCouponId, coupon.getId())); if (list.size() > 0) { detailsVo.setBelongs(list.get(0).getProvince() + "|" + list.get(0).getCity() + "用户可用"); } } else { detailsVo.setExchangeAddrType(3); List list = cstoreService.list(new QueryWrapper() .eq("couponId", coupon.getId())); StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(list.get(0).getStoreId()); detailsVo.setBelongs(courseOfStore.getStoreName() + "可用"); } detailsVo.setStartTime(format.format(coupon.getStartTime())); detailsVo.setEndTime(format.format(coupon.getEndTime())); detailsVo.setContents(coupon.getIllustrate()); detailsVo.setGoodType(4); break; default: break; } return detailsVo; } @Autowired private UserCouponService userCouponService; @PostMapping("/base/pointMerchars/getGoodDetails") public ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); ProductDetailsVo detailsVo = new ProductDetailsVo(); PointsMerchandise merchandise = pmdsService.getById(detailRequest.getGoodId()); if (merchandise != null) { detailsVo.setCardType(merchandise.getCardType()); } switch (detailRequest.getGoodsType()) { case 2: // 课包 CoursePackage coursePackage = cpClient.queryCoursePackageById(merchandise.getCoursePackageId()); // detailsVo.setGoodId(coursePackage.getId()); detailsVo.setGoodId(merchandise.getId()); // List list1 = new ArrayList<>(); // list1.add(coursePackage.getCoverDrawing()); // list1.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","))); String productImages = merchandise.getProductImages(); String[] list1 = productImages.split(","); detailsVo.setPics(Arrays.asList(list1)); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coursePackage.getCoverDrawing())) { return -1; // s1排在前面 } else if (s2.equals(coursePackage.getCoverDrawing())) { return 1; // s2排在前面 } else { return 0; // 保持原顺序 } }); detailsVo.setGoodName(coursePackage.getName()); detailsVo.setBelongsScope(merchandise.getUserPopulation()); int coursePackageNums = upmseService.count(new QueryWrapper() .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()); if (merchandise.getRedemptionMethod() == 1) { detailsVo.setExchangeType(1); detailsVo.setIntegral(merchandise.getIntegral()); } else { detailsVo.setExchangeType(2); detailsVo.setIntegral(merchandise.getIntegral()); detailsVo.setCash(merchandise.getCash()); } detailsVo.setCost(merchandise.getPrice()); if (merchandise.getUseScope() == 1) { detailsVo.setExchangeAddrType(1); detailsVo.setBelongs("全国通用"); } else if (merchandise.getUseScope() == 2) { detailsVo.setExchangeAddrType(2); detailsVo.setBelongs(merchandise.getProvince() + "|" + merchandise.getCity() + "用户可用"); } else { detailsVo.setExchangeAddrType(3); List list = pmdstoService.list(new QueryWrapper() .eq("pointsMerchandiseId", merchandise.getId())); PointsMerchandiseStore pointsMerchandiseStore = list.get(0); StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId()); detailsVo.setBelongs(courseOfStore.getStoreName() + "可用"); } List courseConfigList = cpcfigClient.getCourseConfigList(coursePackage.getId()); for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) { if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) { detailsVo.setCourseHours(coursePackagePaymentConfig.getClassHours()); break; } } detailsVo.setStartTime(format.format(merchandise.getStartTime())); detailsVo.setEndTime(format.format(merchandise.getEndTime())); detailsVo.setContents(merchandise.getRedemptionInstructions()); detailsVo.setGoodType(merchandise.getType()); break; case 1: case 3: detailsVo.setGoodId(merchandise.getId()); List list2 = new ArrayList<>(); String cover = merchandise.getCover(); list2.addAll(Arrays.asList(StrUtils.splitStr2StrArr(merchandise.getProductImages(), ","))); detailsVo.setPics(list2); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(merchandise.getCover())) { return -1; // s1排在前面 } else if (s2.equals(merchandise.getCover())) { return 1; // s2排在前面 } else { return 0; // 保持原顺序 } }); detailsVo.setPics(list2); detailsVo.setGoodName(merchandise.getName()); detailsVo.setBelongsScope(merchandise.getUserPopulation()); int count = upmseService.count(new QueryWrapper() .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()); detailsVo.setExchangeType(merchandise.getRedemptionMethod()); if (merchandise.getRedemptionMethod() == 1) { detailsVo.setIntegral(merchandise.getIntegral()); } else { detailsVo.setIntegral(merchandise.getIntegral()); detailsVo.setCash(merchandise.getCash()); } detailsVo.setCost(merchandise.getPrice()); if (merchandise.getUseScope() == 1) { detailsVo.setExchangeAddrType(1); detailsVo.setBelongs("全国通用"); } else if (merchandise.getUseScope() == 2) { detailsVo.setExchangeAddrType(2); detailsVo.setBelongs(merchandise.getProvince() + "|" + merchandise.getCity() + "用户可用"); } else { detailsVo.setExchangeAddrType(3); List list = pmdstoService.list(new QueryWrapper() .eq("pointsMerchandiseId", merchandise.getId())); PointsMerchandiseStore pointsMerchandiseStore = list.get(0); StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId()); detailsVo.setBelongs(courseOfStore.getStoreName() + "可用"); } detailsVo.setStartTime(format.format(merchandise.getStartTime())); detailsVo.setEndTime(format.format(merchandise.getEndTime())); detailsVo.setContents(merchandise.getRedemptionInstructions()); detailsVo.setGoodType(merchandise.getType()); break; case 4: // 优惠券 Coupon coupon = iCouponService.getById(detailRequest.getGoodId()); detailsVo.setGoodId(coupon.getId()); List list3 = new ArrayList<>(); list3.add(ToolUtil.isEmpty(coupon.getCover()) ? "" : coupon.getCover()); if (ToolUtil.isNotEmpty(coupon.getProductImages())) { list3.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ","))); } detailsVo.setPics(list3); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coupon.getCover())) { return -1; // s1排在前面 } else if (s2.equals(coupon.getCover())) { return 1; // s2排在前面 } else { return 0; // 保持原顺序 } }); detailsVo.setGoodName(coupon.getName()); detailsVo.setBelongsScope(coupon.getUserPopulation()); // int couponNums = upmseService.count(new QueryWrapper() // .eq("pointsMerchandiseId",merchandise.getId() )); int couponCounts = userCouponService.count(new QueryWrapper().eq("couponId", coupon.getId())); // detailsVo.setRedeemedNum(coupon.getPickUpQuantity()); detailsVo.setRedeemedNum(couponCounts); detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponCounts, 0)); detailsVo.setPerLimit(coupon.getPickUpQuantity()); detailsVo.setExchangeType(coupon.getRedemptionMethod()); if (coupon.getRedemptionMethod() == 1) { detailsVo.setIntegral(coupon.getIntegral().intValue()); } else { detailsVo.setIntegral(coupon.getIntegral().intValue()); detailsVo.setCash(coupon.getCash()); } if (coupon.getUseScope() == 1) { detailsVo.setExchangeAddrType(1); detailsVo.setBelongs("全国通用"); } else if (coupon.getUseScope() == 2) { detailsVo.setExchangeAddrType(2); List list = ccityService.list(new LambdaQueryWrapper() .eq(CouponCity::getCouponId, coupon.getId())); if (list.size() > 0) { detailsVo.setBelongs(list.get(0).getProvince() + "|" + list.get(0).getCity() + "用户可用"); } } else { detailsVo.setExchangeAddrType(3); List list = cstoreService.list(new QueryWrapper() .eq("couponId", coupon.getId())); StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(list.get(0).getStoreId()); detailsVo.setBelongs(courseOfStore.getStoreName() + "可用"); } detailsVo.setStartTime(format.format(coupon.getStartTime())); detailsVo.setEndTime(format.format(coupon.getEndTime())); detailsVo.setContents(coupon.getIllustrate()); detailsVo.setGoodType(4); break; default: break; } return detailsVo; } @Autowired private ICouponService couponService; @ResponseBody @PostMapping("/base/pointMerchars/getDetailsOfExchange") public ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId) { ExchangeDetailsVo detailsVo = new ExchangeDetailsVo(); List responses = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); List pointsMerchandises = upmseService.list(new QueryWrapper() .eq("userId", appUserId).eq("payStatus", 2)); List list1 = couponService.list(); List ids = new ArrayList<>(); for (Coupon coupon : list1) { if (coupon.getDistributionMethod() == 1) { ids.add(coupon.getId()); } } List userCoupons = new ArrayList<>(); if (ids.size() > 0) { userCoupons = userCouponService.list(new QueryWrapper().eq("userId", appUserId).in("couponId", ids)); } if (pointsMerchandises.size() > 0) { for (UserPointsMerchandise pointsMerchandise : pointsMerchandises) { PointsMerchandise merchandise = pmdsService.getById(pointsMerchandise.getPointsMerchandiseId()); if (merchandise == null) { continue; } ExchangeDetailsResponse detailsResponse = new ExchangeDetailsResponse(); detailsResponse.setDetailsId(pointsMerchandise.getId()); detailsResponse.setGoodName(merchandise.getName()); if (merchandise.getRedemptionMethod() == 1) { detailsResponse.setExchangeType(1); detailsResponse.setIntegral(merchandise.getIntegral()); } else if (merchandise.getRedemptionMethod() == 2) { detailsResponse.setExchangeType(2); detailsResponse.setIntegral(merchandise.getIntegral()); detailsResponse.setCash(merchandise.getCash()); } else if (merchandise.getRedemptionMethod() == 3) { detailsResponse.setExchangeType(3); detailsResponse.setCash(merchandise.getCash()); } detailsResponse.setStartTime(simpleDateFormat.format(merchandise.getStartTime())); detailsResponse.setEndTime(simpleDateFormat.format(merchandise.getEndTime())); detailsResponse.setUseStatus(pointsMerchandise.getStatus() == 1 ? 2 : 1); detailsResponse.setGoodType(merchandise.getType()); if (merchandise.getType() == 3) { detailsResponse.setCardType(merchandise.getCardType()); List sids = new ArrayList<>(); detailsResponse.setUserId(appUserId); if (merchandise.getUseScope() == 1) { sids.add(0); detailsResponse.setSid(sids); detailsResponse.setRid(new ArrayList<>()); } else if (merchandise.getUseScope() == 2) { // 指定城市 List list = pmdsCityService.list(new LambdaQueryWrapper().eq(PointsMerchandiseCity::getPointsMerchandiseId, merchandise.getId())); List collect = list.stream().map(PointsMerchandiseCity::getCityCode).collect(Collectors.toList()); if (collect.size() == 0) { collect.add("-1"); } List storeIds = stoClient.queryStoreIdByCityCode(collect); detailsResponse.setSid(storeIds); if (storeIds.size() > 0) { // 获取rid List rid = stoClient.querySiteIdById(storeIds); detailsResponse.setRid(rid); } } else if (merchandise.getUseScope() == 3) { // 指定门店 List list = pmdstoService.list(new LambdaQueryWrapper() .eq(PointsMerchandiseStore::getPointsMerchandiseId, merchandise.getId())); List collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList()); detailsResponse.setSid(collect); if (collect.size() > 0) { // 获取rid // List rid= stoClient.querySiteIdById(collect); //detailsResponse.setRid(rid); // todo 修改区域id 临时 // 根据门店id 写死区域id 后续调整为门票指定多个区域 // 以下代码均为临时代码=============================== for (Integer integer : collect) { ArrayList list2 = new ArrayList<>(); if (integer==2024){ list2.add(32); detailsResponse.setRid(list2); } // 临时 根据门票id 指定的区域 if (integer==9919){ if (pointsMerchandise.getPointsMerchandiseId()==196||pointsMerchandise.getPointsMerchandiseId()==198){ // 返回儿童区id ArrayList list3 = new ArrayList<>(); list3.add(44); detailsResponse.setRid(list3); }else if(pointsMerchandise.getPointsMerchandiseId()==197) { ArrayList list4 = new ArrayList<>(); list4.add(43); detailsResponse.setRid(list4); } } } //====================================================== } }else{ // todo 返回门店id 和场地id // 查询指定场地 List list = pmdstoService.list(new LambdaQueryWrapper() .eq(PointsMerchandiseStore::getPointsMerchandiseId, merchandise.getId())); // 门店 ArrayList list3 = new ArrayList<>(); // 场地 ArrayList 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); } if (merchandise.getCardType() == 1) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(pointsMerchandise.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 1); Date end = calendar.getTime(); String startDate = dateFormat.format(pointsMerchandise.getInsertTime()); 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) && cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH); // Print the result if (isSameDate) { } else { System.out.println("The two dates do not have the same date."); detailsResponse.setUseStatus(3); } } else if (merchandise.getCardType() == 2) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(pointsMerchandise.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 31); Date end = calendar.getTime(); String startDate = dateFormat.format(pointsMerchandise.getInsertTime()); String endDate = dateFormat.format(end); detailsResponse.setStartTime(startDate); detailsResponse.setEndTime(endDate); Date now = new Date(); if (now.after(end)) { detailsResponse.setUseStatus(3); } } else if (merchandise.getCardType() == 3) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(pointsMerchandise.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 93); Date end = calendar.getTime(); String startDate = dateFormat.format(pointsMerchandise.getInsertTime()); String endDate = dateFormat.format(end); detailsResponse.setStartTime(startDate); detailsResponse.setEndTime(endDate); Date now = new Date(); if (now.after(end)) { detailsResponse.setUseStatus(3); } } else if (merchandise.getCardType() == 4) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(pointsMerchandise.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 372); Date end = calendar.getTime(); String startDate = dateFormat.format(pointsMerchandise.getInsertTime()); String endDate = dateFormat.format(end); detailsResponse.setStartTime(startDate); detailsResponse.setEndTime(endDate); Date now = new Date(); if (now.after(end)) { detailsResponse.setUseStatus(3); } } } responses.add(detailsResponse); } detailsVo.setDetailsResponses(responses); } if (userCoupons.size() > 0) { for (UserCoupon userCoupon : userCoupons) { Coupon c = couponService.getById(userCoupon.getCouponId()); if (c == null || c.getRedemptionMethod() == null) { continue; } ExchangeDetailsResponse detailsResponse = new ExchangeDetailsResponse(); detailsResponse.setDetailsId(Long.valueOf(c.getId())); detailsResponse.setGoodName(c.getName()); if (c.getRedemptionMethod() == 1) { detailsResponse.setExchangeType(1); detailsResponse.setIntegral(c.getIntegral().intValue()); } else { detailsResponse.setExchangeType(2); detailsResponse.setIntegral(c.getIntegral().intValue()); detailsResponse.setCash(c.getCash()); } detailsResponse.setStartTime(simpleDateFormat.format(c.getStartTime())); detailsResponse.setEndTime(simpleDateFormat.format(c.getEndTime())); detailsResponse.setUseStatus(userCoupon.getStatus() == 1 ? 2 : 1); detailsResponse.setGoodType(4); responses.add(detailsResponse); } Comparator comparator = Comparator.comparing(ExchangeDetailsResponse::getStartTime).reversed(); Collections.sort(responses, comparator); detailsVo.setDetailsResponses(responses); } return detailsVo; } @Autowired private PointsMerchandiseStoreService storeService; @ResponseBody @PostMapping("/base/pointMerchars/getSpecificsOfGoods") public PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); PointDetailsVo detailsVo = new PointDetailsVo(); UserPointsMerchandise byId = upmseService.getById(speMercharsId); if (ToolUtil.isNotEmpty(byId)) { List stores = storeService.list(new QueryWrapper().eq("pointsMerchandiseId", byId.getPointsMerchandiseId())); PointsMerchandise pmdsServiceById = pmdsService.getById(byId.getPointsMerchandiseId()); // 2.0 detailsVo.setCardType(pmdsServiceById.getCardType()); detailsVo.setExchangeAddrType(pmdsServiceById.getUseScope()); detailsVo.setExchangeType(pmdsServiceById.getRedemptionMethod()); detailsVo.setGoodType(pmdsServiceById.getType()); if (pmdsServiceById.getRedemptionMethod() == 1) { detailsVo.setIntegral(pmdsServiceById.getIntegral()); } else { detailsVo.setCash(pmdsServiceById.getCash()); detailsVo.setIntegral(pmdsServiceById.getIntegral()); } detailsVo.setDetailsId(byId.getId()); switch (pmdsServiceById.getType()) { case 1: case 3: List list10 = Arrays.asList(StrUtils.splitStr2StrArr(pmdsServiceById.getProductImages(), ",")); ArrayList list2 = new ArrayList<>(list10); SimpleDateFormat dateFormat5 = new SimpleDateFormat("yyyy-MM-dd"); for (PointsMerchandiseStore store : stores) { StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(store.getStoreId()); detailsVo.setBelongs(courseOfStore.getStoreName()); } String format = dateFormat5.format(byId.getInsertTime()); detailsVo.setOrderTime(format); list2.add(pmdsServiceById.getCover()); detailsVo.setPics(list2); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(pmdsServiceById.getCover())) { return -1; // s1排在前面 } else if (s2.equals(pmdsServiceById.getCover())) { return 1; // s2排在前面 } else { return 0; // 保持原顺序 } }); if (pmdsServiceById.getCardType() == 1) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(byId.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 1); Date end = calendar.getTime(); String startDate = dateFormat.format(byId.getInsertTime()); String endDate = dateFormat.format(end); detailsVo.setStartTime(startDate); detailsVo.setEndTime(startDate); Date now = new Date(); Calendar cal1 = Calendar.getInstance(); cal1.setTime(pmdsServiceById.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) && cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH); // Print the result if (isSameDate) { } else { System.out.println("The two dates do not have the same date."); detailsVo.setUseType(3); } } else if (pmdsServiceById.getCardType() == 2) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(byId.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 31); Date end = calendar.getTime(); String startDate = dateFormat.format(byId.getInsertTime()); String endDate = dateFormat.format(end); detailsVo.setStartTime(startDate); detailsVo.setEndTime(endDate); Date now = new Date(); if (now.after(end)) { detailsVo.setUseType(3); } } else if (pmdsServiceById.getCardType() == 3) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(byId.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 93); Date end = calendar.getTime(); String startDate = dateFormat.format(byId.getInsertTime()); String endDate = dateFormat.format(end); detailsVo.setStartTime(startDate); detailsVo.setEndTime(endDate); Date now = new Date(); if (now.after(end)) { detailsVo.setUseType(3); } } else if (pmdsServiceById.getCardType() == 4) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(byId.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 372); Date end = calendar.getTime(); String startDate = dateFormat.format(byId.getInsertTime()); String endDate = dateFormat.format(end); detailsVo.setStartTime(startDate); detailsVo.setEndTime(endDate); Date now = new Date(); if (now.after(end)) { detailsVo.setUseType(3); } } break; case 2: CoursePackage coursePackage = cpClient.queryCoursePackageById(pmdsServiceById.getCoursePackageId()); List list11 = Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ",")); ArrayList list1 = new ArrayList<>(list11); list1.add(coursePackage.getCoverDrawing()); detailsVo.setPics(list1); detailsVo.setClassHours(0); if(coursePackage.getType() != 3){ CoursePackagePaymentConfig coursePackagePaymentConfig = cpClient.queryConfigCoursePackData(pmdsServiceById.getCoursePackageConfigId()); detailsVo.setClassHours(coursePackagePaymentConfig.getClassHours()); } Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coursePackage.getCoverDrawing())) { return -1; // s1排在前面 } else if (s2.equals(coursePackage.getCoverDrawing())) { return 1; // s2排在前面 } else { return 0; // 保持原顺序 } }); break; case 4: Coupon coupon = iCouponService.getById(pmdsServiceById.getId()); List list13 = Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")); ArrayList list3 = new ArrayList<>(list13); list3.add(coupon.getCover()); detailsVo.setPics(list3); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coupon.getCover())) { return -1; // s1排在前面 } else if (s2.equals(coupon.getCover())) { return 1; // s2排在前面 } else { return 0; // 保持原顺序 } }); break; default: break; } detailsVo.setGoodName(pmdsServiceById.getName()); // 2.0 if (detailsVo.getStartTime() == null) { detailsVo.setStartTime(simpleDateFormat.format(byId.getInsertTime())); detailsVo.setEndTime(simpleDateFormat.format(pmdsServiceById.getEndTime())); detailsVo.setOrderTime(simpleDateFormat.format(byId.getInsertTime())); } if (byId.getStatus() == 1) { detailsVo.setUseType(2); } else { detailsVo.setUseType(1); if (pmdsServiceById.getType() != 2) { detailsVo.setWriteOffTime(simpleDateFormat.format(byId.getVerificationTime())); } if (byId.getStoreId() != null) { StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getStoreId()); detailsVo.setWriteOffName(courseOfStore.getStoreName()); } } switch (pmdsServiceById.getUseScope()) { case 1: detailsVo.setBelongs("全国通用"); break; case 2: detailsVo.setBelongs(pmdsServiceById.getProvince() + pmdsServiceById.getCity()); break; case 3: // StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getStoreId()); // detailsVo.setBelongs(courseOfStore.getStoreName()+" "+courseOfStore.getStoreAddr()); // detailsVo.setBelongs("---------------"); break; default: break; } detailsVo.setContents(pmdsServiceById.getRedemptionInstructions()); } else { Coupon coupon = iCouponService.getById(speMercharsId); detailsVo.setDetailsId(Long.valueOf(coupon.getId())); List list3 = new ArrayList<>(); list3.add(ToolUtil.isEmpty(coupon.getCover()) ? "" : coupon.getCover()); if (ToolUtil.isNotEmpty(coupon.getProductImages())) { list3.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ","))); } detailsVo.setPics(list3); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coupon.getCover())) { return -1; // s1排在前面 } else if (s2.equals(coupon.getCover())) { return 1; // s2排在前面 } else { return 0; // 保持原顺序 } }); detailsVo.setGoodName(coupon.getName()); // detailsVo.setBelongsScope(coupon.getUserPopulation()); // int couponNums = upmseService.count(new QueryWrapper() // .eq("pointsMerchandiseId",merchandise.getId() )); int couponCounts = userCouponService.count(new QueryWrapper().eq("couponId", coupon.getId())); // detailsVo.setRedeemedNum(coupon.getPickUpQuantity()); // detailsVo.setRedeemedNum(couponCounts); // detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponCounts, 0)); // detailsVo.setPerLimit(coupon.getPickUpQuantity()); detailsVo.setExchangeType(coupon.getRedemptionMethod()); if (coupon.getRedemptionMethod() == 1) { detailsVo.setIntegral(coupon.getIntegral().intValue()); } else { detailsVo.setIntegral(coupon.getIntegral().intValue()); detailsVo.setCash(coupon.getCash()); } if (coupon.getUseScope() == 1) { detailsVo.setExchangeAddrType(1); detailsVo.setBelongs("全国通用"); } else if (coupon.getUseScope() == 2) { detailsVo.setExchangeAddrType(2); List list = ccityService.list(new LambdaQueryWrapper() .eq(CouponCity::getCouponId, coupon.getId())); if (list.size() > 0) { detailsVo.setBelongs(list.get(0).getProvince() + "|" + list.get(0).getCity() + "用户可用"); } } else { detailsVo.setExchangeAddrType(3); List list = cstoreService.list(new QueryWrapper() .eq("couponId", coupon.getId())); StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(list.get(0).getStoreId()); detailsVo.setBelongs(courseOfStore.getStoreName() + "可用"); } SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); detailsVo.setStartTime(format.format(coupon.getStartTime())); detailsVo.setEndTime(format.format(coupon.getEndTime())); detailsVo.setContents(coupon.getIllustrate()); detailsVo.setGoodType(4); } return detailsVo; } @PostMapping("/base/pointMerchars/selectPointsMerchandiseById") public PointsMerchandise selectPointsMerchandiseById(@RequestBody Integer speMercharsId) { return pmdsService.getById(speMercharsId); } @PostMapping("/base/pointMerchars/saveDetailsUserPointMercase") public Long saveDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise) { merchandise.setInsertTime(new Date()); upmseService.save(merchandise); return merchandise.getId(); } @PostMapping("/base/pointMerchars/updateDetailsUserPointMercase") public void updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise) { merchandise.setUserId(null); upmseService.updateById(merchandise); } @ResponseBody @PostMapping("/base/pointMerchars/queryUserPointMerchaseByCode") public List queryUserPointMerchaseByCode(@RequestBody String code) { return upmseService.list(new QueryWrapper() .eq("code", code)); } @PostMapping("/base/pointMerchars/queryStoreIdsOfMerchandise") public List queryPointMerStoreIds(@RequestBody Integer pointMerId) { List storeIds = new ArrayList<>(); List list = pmdstoService.list(new QueryWrapper() .eq("pointsMerchandiseId", pointMerId)); if (list.size() > 0) { storeIds = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList()); } if (storeIds.size() == 0) { storeIds.add(-1); } return storeIds; } /** * 获取用户已兑换商品的数量 * * @param goodResp * @return 数量 */ @ResponseBody @PostMapping("/base/pointMerchars/queryUserHasGoodsNums") public int queryUserHasGoodsNums(@RequestBody AppUserGoodResp goodResp) { int count = upmseService.count(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getUserId, goodResp.getAppUserId()) .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId()) .eq(UserPointsMerchandise::getPayStatus, 2).eq(UserPointsMerchandise::getState, 1)); System.out.println(count); return count; } @ResponseBody @PostMapping("/base/pointMerchars/queryUserHasGoodsNums1") public int queryUserHasGoodsNums1(@RequestBody AppUserGoodResp goodResp) { int count = upmseService.count(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId()) .eq(UserPointsMerchandise::getPayStatus, 2).eq(UserPointsMerchandise::getState, 1)); System.out.println(count); return count; } /** * 变更兑换商品的的状态 * * @param code * @return 数量 */ @ResponseBody @PostMapping("/base/pointMerchars/deletePaymentRecord") public void deletePaymentRecord(@RequestBody String code) { List list = upmseService.list(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getCode, code)); if (list.size() > 0) { for (UserPointsMerchandise pointsMerchandise : list) { pointsMerchandise.setState(2); upmseService.updateById(pointsMerchandise); } } } //拿到积分商品现金的消费记录 @ResponseBody @PostMapping("/base/pointMerchars/getConsumeDetails") public List getConsumeDetails(@RequestBody BillingDataRequestVo requestVo) { return upmseService.getConsumeDetails(requestVo); } public int dealTimeStatus(String startTime, String endTime) { LocalDate now = LocalDate.now(); LocalDate start = LocalDate.parse(startTime); LocalDate end = LocalDate.parse(endTime); if (now.isBefore(start)) { return 1; // 未开始 } else if (now.isAfter(end)) { return 3; // 已结束 } else { return 2; // 已开始 } } /** * @param mapLists * @param timeType 1=未开始 2=已开始 3=已结束 * @return */ public List> dealTimeData(List> mapLists, Integer timeType) { Date currentDate = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); switch (timeType) { case 1: return mapLists.stream() .filter(event -> { try { return simpleDateFormat.parse((String) event.get("startTime")).after(currentDate); } catch (ParseException e) { throw new RuntimeException(e); } }) .collect(Collectors.toList()); case 2: return mapLists.stream() .filter(event -> { try { return simpleDateFormat.parse((String) event.get("startTime")).before(currentDate) && simpleDateFormat.parse((String) event.get("endTime")).after(currentDate); } catch (ParseException e) { throw new RuntimeException(e); } }) .collect(Collectors.toList()); case 3: return mapLists.stream() .filter(event -> { try { return simpleDateFormat.parse((String) event.get("endTime")).before(currentDate); } catch (ParseException e) { throw new RuntimeException(e); } }) .collect(Collectors.toList()); default: break; } return null; } @PostMapping("/base/pointMerchars/queryPointMerchaseDetailOfId") public PointMercharsVo queryPointMerchaseDetailOfId(@RequestBody Integer pointMercharsId) { PointMercharsVo vo = new PointMercharsVo(); PointsMerchandise byId = pmdsService.getById(pointMercharsId); if (ToolUtil.isNotEmpty(byId)) { vo.setName(byId.getName()); vo.setCover(byId.getCover()); vo.setPics(byId.getProductImages()); vo.setQuantityIssued(byId.getQuantityIssued()); vo.setPickUpQuantity(byId.getPickUpQuantity()); vo.setSort(byId.getSort()); vo.setContent(byId.getRedemptionInstructions()); } int count = userPointsMerchandiseService.count(new LambdaQueryWrapper().eq(UserPointsMerchandise::getPointsMerchandiseId, pointMercharsId)); vo.setNum(count); return vo; } @PostMapping("/base/pointMerchars/updateGoodsGroudingStatus") boolean updateGoodsGroudingStatus(@RequestBody Map map) { Integer id = map.get("id"); Integer type = map.get("type"); System.out.println(id); System.out.println(type); try { PointsMerchandise byId = pmdsService.getById(id); byId.setShelves(type); pmdsService.updateById(byId); return true; } catch (Exception e) { return false; } } @ResponseBody @PostMapping("/base/pointMerchars/queryUserPayedGoodsList") public List> queryUserPayedGoodsList(@RequestBody PointMercharsPayedVo pointMercharsPayedVo) { System.out.println(pointMercharsPayedVo); List> mapList = new ArrayList<>(); LambdaQueryWrapper userPointsMerchandiseLambdaQueryWrapper = new LambdaQueryWrapper<>(); userPointsMerchandiseLambdaQueryWrapper.eq(UserPointsMerchandise::getPointsMerchandiseId, pointMercharsPayedVo.getId()); userPointsMerchandiseLambdaQueryWrapper.eq(UserPointsMerchandise::getPayStatus, 2).eq(UserPointsMerchandise::getState, 1); if (ToolUtil.isNotEmpty(pointMercharsPayedVo.getStatus())) { userPointsMerchandiseLambdaQueryWrapper.eq(UserPointsMerchandise::getStatus, pointMercharsPayedVo.getStatus()); } List list = upmseService.list(userPointsMerchandiseLambdaQueryWrapper.orderByDesc(UserPointsMerchandise::getPaymentTime)); System.out.println(list); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (list.size() > 0) { for (UserPointsMerchandise pointsMerchandise : list) { Map map = new HashMap<>(); map.put("id", pointsMerchandise.getId()); map.put("userId", pointsMerchandise.getUserId()); map.put("status", pointsMerchandise.getStatus()); map.put("payTime", sdf.format(pointsMerchandise.getPaymentTime())); mapList.add(map); } } System.out.println(mapList); return mapList; } @PostMapping("/base/pointMerchars/queryPointMerchaseById") public PointsMerchandise queryPointMerchaseById(@RequestBody Integer id) { PointsMerchandise byId = pmdsService.getById(id); int count1 = upmseService.count(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getPointsMerchandiseId, byId.getId()) .eq(UserPointsMerchandise::getStatus, 2)); int count2 = upmseService.count(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getPointsMerchandiseId, byId.getId()) ); byId.setPickUpQuantity3(count2); byId.setPickUpQuantity4(count1); return byId; } @PostMapping("/base/pointMerchars/getshopName") public Integer getshopName(@RequestBody Integer id) { List list = pmdstoService.list(new LambdaQueryWrapper().eq(PointsMerchandiseStore::getPointsMerchandiseId, id)); PointsMerchandiseStore pointsMerchandiseStore = list.get(0); Integer storeId = pointsMerchandiseStore.getStoreId(); return storeId; } @PostMapping("/base/pointMerchars/queryDetailsOfGoods") public GoodsInfoOneVo queryDetailsOfGoods(@RequestBody Integer id) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); GoodsInfoOneVo infoOneVo = new GoodsInfoOneVo(); PointsMerchandise byId = pmdsService.getById(id); if (ToolUtil.isNotEmpty(byId)) { infoOneVo.setName(byId.getName()); infoOneVo.setCover(byId.getCover()); infoOneVo.setPics(byId.getProductImages()); infoOneVo.setPrice(byId.getPrice()); infoOneVo.setExchangeMethod(byId.getRedemptionMethod()); switch (byId.getRedemptionMethod()) { case 1: infoOneVo.setIntegral(byId.getIntegral()); break; case 2: infoOneVo.setIntegral(byId.getIntegral()); infoOneVo.setCash(byId.getCash()); break; case 3: infoOneVo.setCash(byId.getCash()); break; default: break; } switch (byId.getUserPopulation()) { case 1: infoOneVo.setUserPopulation("全部用户"); break; case 2: infoOneVo.setUserPopulation("年度会员"); break; case 3: infoOneVo.setUserPopulation("已有学员用户"); break; default: break; } infoOneVo.setQuantityIssued(byId.getQuantityIssued()); List list = upmseService.list(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getPointsMerchandiseId, byId.getId())); infoOneVo.setUseScope(byId.getUseScope()); switch (byId.getUseScope()) { case 1: infoOneVo.setExchangeArea("全国通用"); break; case 2: infoOneVo.setExchangeArea("指定城市"); break; case 3: infoOneVo.setExchangeArea("指定门店"); break; case 4: infoOneVo.setExchangeArea("指定场地"); break; default: break; } infoOneVo.setHasPicked(list.size()); infoOneVo.setPickUpQuantity(byId.getPickUpQuantity()); infoOneVo.setValidTime(simpleDateFormat.format(byId.getStartTime()) + "至" + simpleDateFormat.format(byId.getEndTime())); infoOneVo.setRedemptionInstructions(byId.getRedemptionInstructions()); infoOneVo.setSort(byId.getSort()); } return infoOneVo; } @ResponseBody @PostMapping("/base/pointMerchars/getProvinces") public List getProvinces(@RequestBody Integer id) { List storeVos = new ArrayList<>(); List list = pmdsCityService.list(new LambdaQueryWrapper() .eq(PointsMerchandiseCity::getPointsMerchandiseId, id)); if (list.size() > 0) { for (PointsMerchandiseCity pointsMerchandiseCity : list) { StoreVos storeVos1 = new StoreVos(); storeVos1.setNum1(pointsMerchandiseCity.getProvince()); storeVos1.setNum2(pointsMerchandiseCity.getCity()); storeVos.add(storeVos1); } } return storeVos; } @ResponseBody @PostMapping("/base/pointMerchars/getStoreList") public List getStoreList(@RequestBody Integer id) { List storeVos = new ArrayList<>(); List list = pmdstoService.list(new QueryWrapper() .eq("pointsMerchandiseId", id)); PointsMerchandise byId = pmdsService.getById(id); if (list.size() > 0) { if (byId.getUseScope()==3){ // 如果是指定门店 List collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList()); List 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); } } }else if (byId.getUseScope()==4){ // 如果是指定场地 List collect1 = list.stream().map(PointsMerchandiseStore::getSiteId).distinct().collect(Collectors.toList()); int temp =0; List collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList()); List stores1 = new ArrayList<>(); for (Integer integer : collect) { List list1 = new ArrayList<>(); list1.add(integer); List stores = stoClient.queryStoreByIds(list1); stores1.addAll(stores); } List stores = stoClient.queryStoreByIds(collect); while (temp!=collect1.size()){ for (Store store : stores1) { 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 @PostMapping("/base/pointMerchars/updateGoodsDetail") public boolean updateGoodsDetail(@RequestBody Map map) { try { String name = (String) map.get("name"); Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId"); PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId); if (Integer.valueOf(map.get("type").toString()) != 1) { byId1.setStatus(2); } if(StringUtils.hasLength(name)){ byId1.setName(name); } Integer quantityIssued = (Integer) map.get("quantityIssued"); Integer pickUpQuantity = (Integer) map.get("pickUpQuantity"); String redemptionInstructions = (String) map.get("redemptionInstructions"); String cover = (String) map.get("cover"); String productImages = (String) map.get("productImages"); Integer sort = (Integer) map.get("sort"); byId1.setQuantityIssued(quantityIssued); byId1.setPickUpQuantity(pickUpQuantity); byId1.setRedemptionInstructions(redemptionInstructions); if (ToolUtil.isNotEmpty(cover)) { byId1.setCover(cover); } if (ToolUtil.isNotEmpty(productImages)) { byId1.setProductImages(productImages); } byId1.setSort(sort); pmdsService.updateById(byId1); return true; } catch (Exception e) { return false; } } @PostMapping("/base/pointMerchars/add") public Integer add(@RequestBody PointsMerchandise pointsMerchandise) { Integer storeId = pointsMerchandise.getShelves(); pointsMerchandise.setShelves(1); pointsMerchandise.setInsertTime(new Date()); boolean save = pmdsService.save(pointsMerchandise); if (save && ToolUtil.isNotEmpty(storeId) && pointsMerchandise.getType() == 2) { PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore(); pointsMerchandiseStore.setPointsMerchandiseId(pointsMerchandise.getId()); pointsMerchandiseStore.setStoreId(storeId); save = pmdstoService.save(pointsMerchandiseStore); } if (save && pointsMerchandise.getType() == 2 && ToolUtil.isNotEmpty(pointsMerchandise.getProvinceCode())) { pmdsService.saveCity(pointsMerchandise.getId(), pointsMerchandise.getProvince(), pointsMerchandise.getProvinceCode(), pointsMerchandise.getCity(), pointsMerchandise.getCityCode()); } if (save) { return pointsMerchandise.getId(); } return null; } @PostMapping("/base/pointMerchars/addOther") 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])); pointsMerchandiseStore.setStoreId(Integer.valueOf(s)); save = pmdstoService.save(pointsMerchandiseStore); } return save; } @PostMapping("/base/pointMerchars/addCitys") public Boolean addCitys(@RequestBody ArrayList> objects) { try { for (Map object : objects) { pmdsService.saveCity(Integer.valueOf(object.get("id")), object.get("pName"), object.get("pCode"), object.get("cName"), object.get("cCode")); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } @ResponseBody @PostMapping("/base/pointMerchars/writeOffGoodsStatus") public boolean writeOffGoodsStatus(@RequestBody Map map) { try { String o = (String) map.get("goodsId"); Integer managerId = (Integer) map.get("managerId"); UserPointsMerchandise byId = upmseService.getOne(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getId, Long.parseLong(o))); if (byId.getStatus() == 2) { return false; } byId.setStatus(2); byId.setVerificationUserId(managerId); byId.setVerificationTime(new Date()); upmseService.update(byId, new LambdaQueryWrapper() .eq(UserPointsMerchandise::getUserId, byId.getUserId()) .eq(UserPointsMerchandise::getId, byId.getId())); System.out.println(byId); return true; } catch (Exception e) { return false; } } @ResponseBody @PostMapping("/base/pointMerchars/getIntegralGoodsListOfSearchAudit") public List> getIntegralGoodsListOfSearchAudit(@RequestBody IntegralGoodsOfSearch ofSearch) { System.out.println(ofSearch); List> mapList = pmdsService.queryGoodsListOfSearchAudit(ofSearch); if (mapList.size() > 0) { for (Map stringObjectMap : mapList) { Integer o = (Integer) stringObjectMap.get("id"); String startTime = (String) stringObjectMap.get("startTime"); String endTime = (String) stringObjectMap.get("endTime"); stringObjectMap.put("timeValue", startTime + "至" + endTime); int count1 = upmseService.count(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getPointsMerchandiseId, o)); int count2 = upmseService.count(new LambdaQueryWrapper() .eq(UserPointsMerchandise::getPointsMerchandiseId, o) .eq(UserPointsMerchandise::getStatus, 2)); stringObjectMap.put("hasExchangeQty", count1); stringObjectMap.put("hasPickQty", count2); stringObjectMap.put("activeStatus", dealTimeStatus(startTime, endTime)); } if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())) { mapList = dealTimeData(mapList, ofSearch.getActiveStatus()); } } System.out.println("mapList->" + mapList); return mapList; } @PostMapping("/base/pointMerchars/updateType") @ResponseBody public Object updateType(@RequestBody String s) { String[] split = s.split("_"); PointsMerchandise byId = pmdsService.getById(split[0]); byId.setStatus(Integer.valueOf(split[1])); if (Integer.valueOf(split[1]) == 3) { byId.setRemark(split[2]); } return pmdsService.updateById(byId); } @PostMapping("/base/pointMerchars/queryFee") @ResponseBody public HashMap queryFee(@RequestBody QueryDataFee queryDataFee) { HashMap map = new HashMap<>(); String data = queryDataFee.getData(); List ids = queryDataFee.getIds(); if (ids.size() == 0) { ids.add(-1); }else{ } List list1 = pmdsService.list(new LambdaQueryWrapper().eq(PointsMerchandise::getRedemptionMethod, 3)); LambdaQueryWrapper vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>(); if (ToolUtil.isNotEmpty(data)) { String stime = data.split(" - ")[0] + " 00:00:00"; String etime = data.split(" - ")[1] + " 23:59:59"; vipPaymentLambdaQueryWrapper.between(UserPointsMerchandise::getInsertTime, stime, etime); } vipPaymentLambdaQueryWrapper.in(UserPointsMerchandise::getUserId, ids); List collect = list1.stream().map(PointsMerchandise::getId).collect(Collectors.toList()); if (collect.size() == 0) { collect.add(-1); } vipPaymentLambdaQueryWrapper.in(UserPointsMerchandise::getPointsMerchandiseId, collect); vipPaymentLambdaQueryWrapper.eq(UserPointsMerchandise::getPayStatus, 2); ArrayList objects = new ArrayList<>(); List list = upmseService.list(vipPaymentLambdaQueryWrapper); double a = 0; double d = 0; double m = 0; double j = 0; double y = 0; for (UserPointsMerchandise userPointsMerchandise : list) { for (PointsMerchandise pointsMerchandise : list1) { if (pointsMerchandise.getId() == userPointsMerchandise.getPointsMerchandiseId()) { a += pointsMerchandise.getCash().doubleValue(); } if (pointsMerchandise.getType() == 3) { if (pointsMerchandise.getCardType() == 1) { d += pointsMerchandise.getCash().doubleValue(); } if (pointsMerchandise.getCardType() == 2) { m += pointsMerchandise.getCash().doubleValue(); } if (pointsMerchandise.getCardType() == 3) { j += pointsMerchandise.getCash().doubleValue(); } if (pointsMerchandise.getCardType() == 4) { y += pointsMerchandise.getCash().doubleValue(); } } } } map.put("all", a); map.put("day", d); map.put("month", m); map.put("quarter", j); map.put("year", y); return map; } }