From 846e51ef297b83be2f79ef11a1a2c56150c55012 Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期五, 18 八月 2023 19:32:40 +0800 Subject: [PATCH] 管理后台:积分商品的详情模块 --- cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 344 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 340 insertions(+), 4 deletions(-) diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java index 0c446a5..894443e 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java @@ -12,8 +12,9 @@ import com.dsh.activity.feignclient.other.StoreClient; import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse; import com.dsh.activity.model.PointMerchandiseVo; -import com.dsh.activity.model.request.AppUserGoodResp; -import com.dsh.activity.model.request.CommodityRequest; +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.GDMapGeocodingUtil; import com.dsh.activity.util.StrUtils; @@ -23,7 +24,11 @@ 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; @@ -68,6 +73,9 @@ @Resource private CouponCityService ccityService; + @Resource + private PointsMerchandiseCityService pmdsCityService; + @ResponseBody @PostMapping("/base/pointMerchars/convertGoods") @@ -75,6 +83,7 @@ List<IntegralCommodity> commodity = new ArrayList<>(); List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>() .eq("state",1) + .eq("shelves",1) .gt("endTime",new Date())); if (merchandises.size() > 0){ for (PointsMerchandise merchandise : merchandises) { @@ -111,7 +120,8 @@ } list = pmdsService.list(new QueryWrapper<PointsMerchandise>() - .eq("state", 1)); + .eq("state", 1) + .eq("shelves",1)); if (list.size() > 0 ){ Iterator<PointsMerchandise> iterator = list.iterator(); while (iterator.hasNext()) { @@ -469,7 +479,10 @@ @PostMapping("/base/pointMerchars/updateDetailsUserPointMercase") public void updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){ - upmseService.updateById(merchandise); + upmseService.update(merchandise,new LambdaQueryWrapper<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getUserId,merchandise.getUserId()) + .eq(UserPointsMerchandise::getId,merchandise.getId())); + } @PostMapping("/base/pointMerchars/queryUserPointMerchaseByCode") @@ -505,4 +518,327 @@ return count; } + + /** + * 变更兑换商品的的状态 + * @param code + * @return 数量 + */ + @ResponseBody + @PostMapping("/base/pointMerchars/deletePaymentRecord") + public void deletePaymentRecord(@RequestBody String code){ + List<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getCode,code)); + if (list.size() > 0 ){ + for (UserPointsMerchandise pointsMerchandise : list) { + pointsMerchandise.setState(2); + upmseService.update(pointsMerchandise,new LambdaQueryWrapper<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getUserId,pointsMerchandise.getUserId()) + .eq(UserPointsMerchandise::getId,pointsMerchandise.getId())); + } + } + + } + + + @ResponseBody + @PostMapping("/base/pointMerchars/queryGoodsListSearch") + public List<Map<String,Object>> getIntegralGoodsListOfSearch(@RequestBody IntegralGoodsOfSearch ofSearch){ + System.out.println(ofSearch); + List<Map<String, Object>> mapList = pmdsService.queryGoodsListOfSearch(ofSearch); + if (mapList.size() > 0){ + for (Map<String, Object> 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<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getPointsMerchandiseId, o)); + int count2 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>() + .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; + } + + 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<Map<String, Object>> dealTimeData(List<Map<String, Object>> 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); + List<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getPointsMerchandiseId, pointMercharsId)); + if (ToolUtil.isNotEmpty(byId)){ + vo.setName(byId.getName()); + vo.setCover(byId.getCover()); + vo.setPics(byId.getProductImages()); + vo.setQuantityHas(list.size()); + vo.setQuantityIssued(byId.getQuantityIssued()); + vo.setPickUpQuantity(byId.getPickUpQuantity()); + vo.setSort(byId.getSort()); + vo.setContent(byId.getRedemptionInstructions()); + } + return vo; + } + + + @PostMapping("/base/pointMerchars/updateGoodsGroudingStatus") + boolean updateGoodsGroudingStatus(@RequestBody Map<String,Integer> 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<Map<String, Object>> queryUserPayedGoodsList(@RequestBody PointMercharsPayedVo pointMercharsPayedVo){ + System.out.println(pointMercharsPayedVo); + List<Map<String, Object>> mapList = new ArrayList<>(); + LambdaQueryWrapper<UserPointsMerchandise> userPointsMerchandiseLambdaQueryWrapper = new LambdaQueryWrapper<>(); + userPointsMerchandiseLambdaQueryWrapper.eq(UserPointsMerchandise::getPointsMerchandiseId,pointMercharsPayedVo.getId()); + if (ToolUtil.isNotEmpty(pointMercharsPayedVo.getStatus())){ + userPointsMerchandiseLambdaQueryWrapper.eq(UserPointsMerchandise::getStatus,pointMercharsPayedVo.getStatus()); + } + List<UserPointsMerchandise> list = upmseService.list(userPointsMerchandiseLambdaQueryWrapper); + System.out.println(list); + if (list.size() > 0 ){ + for (UserPointsMerchandise pointsMerchandise : list) { + Map<String, Object> map = new HashMap<>(); + map.put("id",pointsMerchandise.getId().toString()); + map.put("userId",pointsMerchandise.getUserId()); + map.put("status", pointsMerchandise.getStatus()); + mapList.add(map); + } + } + System.out.println(mapList); + return mapList; + } + + @ResponseBody + @PostMapping("/base/pointMerchars/writeOffGoodsStatus") + public boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map){ + try { + String o = (String) map.get("goodsId"); + Integer managerId = (Integer) map.get("managerId"); + UserPointsMerchandise byId = upmseService.getOne(new LambdaQueryWrapper<UserPointsMerchandise>() + .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<UserPointsMerchandise>() + .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/updateGoodsDetail") + public boolean updateGoodsDetail(@RequestBody Map<String, Object> map){ + try { + Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId"); + PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId); + + 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/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<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>() + .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; + 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/getStoreList") + public List<StoreVos> getStoreList(@RequestBody Integer id){ + List<StoreVos> storeVos = new ArrayList<>(); + List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>() + .eq("pointsMerchandiseId",id)); + + // TODO: 2023/8/18 查询城市 + return storeVos; + } + + + @ResponseBody + @PostMapping("/base/pointMerchars/getProvinces") + public List<StoreVos> getProvinces(@RequestBody Integer id){ + List<StoreVos> storeVos = new ArrayList<>(); + List<PointsMerchandiseCity> list = pmdsCityService.list(new LambdaQueryWrapper<PointsMerchandiseCity>() + .eq(PointsMerchandiseCity::getPointsMerchandiseId,id)); + + + // TODO: 2023/8/18 查询门店 + return storeVos; + } + } -- Gitblit v1.7.1