From 3cd342a343fd67a32415b832abe1a39bab9e627d Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Fri, 09 Jul 2021 22:41:39 +0800 Subject: [PATCH] bug修复 --- zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java | 171 ++++++++++++++++++++++----------------------------------- 1 files changed, 66 insertions(+), 105 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java index e784058..b6d7560 100644 --- a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java +++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java @@ -1,6 +1,7 @@ package com.matrix.system.activity.service; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -24,9 +25,11 @@ import com.matrix.system.activity.vo.ZjrVo; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.bean.SystemDictionary; +import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.SystemDictionaryDao; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.dao.SysVipInfoDao; +import com.matrix.system.shopXcx.api.service.WxShopLogisticsQueryService; import com.matrix.system.shopXcx.bean.ShopActivities; import com.matrix.system.shopXcx.bean.ShopDeliveryInfo; import com.matrix.system.shopXcx.bean.ShopLogisticsInfo; @@ -65,6 +68,8 @@ ShopDeliveryInfoDao shopDeliveryInfoDao; @Autowired ShopLogisticsInfoDao shopLogisticsInfoDao; + @Autowired + private WxShopLogisticsQueryService wxShopLogisticsQueryService; public IPage<SignWriteoffListVo> findSignWriteoffList(Page<SignWriteoffListVo> page, SignWriteoffListDto signWriteoffListDto) { @@ -108,20 +113,24 @@ //物流跟踪 Integer logisticsId = activitySignWriteoffLogistics.getLogisticsId(); - if(ObjectUtil.isNotEmpty(logisticsId)) { - List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(logisticsId); - if(CollUtil.isNotEmpty(shopLogisticsInfos)) { - ArrayList<LogisticsVo> logisticsVos = new ArrayList<>(); - for(ShopLogisticsInfo shopLogistics : shopLogisticsInfos) { - LogisticsVo logisticsVo = new LogisticsVo(); - logisticsVo.setContent(shopLogistics.getDescribe()); - logisticsVo.setTimestamp(shopLogistics.getLogisticsTime()); - logisticsVos.add(logisticsVo); - } - signWriteoffVo.setActivities(logisticsVos); - } - } - + ShopDeliveryInfo shopDeliveryInfo = shopDeliveryInfoDao.selectById(logisticsId); + if(ObjectUtil.isNotEmpty(shopDeliveryInfo)){ + signWriteoffVo.setLogisticsNum(shopDeliveryInfo.getWaybillNo()); + signWriteoffVo.setLogisticsCompany(shopDeliveryInfo.getLogisticsCompany()); + //查看物流信息 + wxShopLogisticsQueryService.selectLogisticsInfo(shopDeliveryInfo); + List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId()); + if(CollUtil.isNotEmpty(shopLogisticsInfos)) { + ArrayList<LogisticsVo> logisticsVos = new ArrayList<>(); + for(ShopLogisticsInfo shopLogistics : shopLogisticsInfos) { + LogisticsVo logisticsVo = new LogisticsVo(); + logisticsVo.setContent(shopLogistics.getDescribe()); + logisticsVo.setTimestamp(shopLogistics.getLogisticsTime()); + logisticsVos.add(logisticsVo); + } + signWriteoffVo.setActivities(logisticsVos); + } + } } } result.putInMap("signWriteoffVo", signWriteoffVo); @@ -137,18 +146,45 @@ String writeOffCode = writeoffCodeSubmitDto.getWriteOffCode(); /** * 验证核销码是不是匹配 + * 只能核销一次 * 更新核销记录 * 更新领取记录 */ //验证核销码是不是匹配 ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectById(writeoffId); + if(ActivitySignWriteoff.STATE_ONE != activitySignWriteoff.getState()){ + return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖码已失效"); + } if(ObjectUtil.isNotEmpty(activitySignWriteoff)) { String writeoffCodeReal = activitySignWriteoff.getWriteoffCode(); if(!writeoffCodeReal.equals(writeOffCode)) { return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖码无效"); } } - //更新核销记录 + //线下兑换失效 + Long awardId = activitySignWriteoff.getAwardId(); + ActivitySignAwardSet activitySignAwardSet = activitySignAwardSetDao.selectById(awardId); + if(ActivitySignAwardSet.AWARDWAY_ONE == activitySignAwardSet.getAwardWay() + || ActivitySignAwardSet.AWARDWAY_THREE == activitySignAwardSet.getAwardWay()){ + Date prizeStartTime = activitySignAwardSet.getPrizeStartTime(); + if(DateUtil.date().getTime() < prizeStartTime.getTime()){ + return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖还没开始呢!"); + } + Date prizeEndTime = activitySignAwardSet.getPrizeEndTime(); + if(DateUtil.date().getTime() > prizeEndTime.getTime()){ + Long receiveId = activitySignWriteoff.getReceiveId(); + ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId); + if(ObjectUtil.isNotEmpty(activitySignReceiveRecord)){ + activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_FIVE); + } + activitySignReceiveRecordDao.updateById(activitySignReceiveRecord); + + activitySignWriteoff.setState(ActivitySignWriteoff.STATE_FOUR); + activitySignWriteoffDao.updateById(activitySignWriteoff); + return new AjaxResult(AjaxResult.STATUS_FAIL, "已超出兑奖结束时间!"); + } + } + //更新核销记录 activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE); activitySignWriteoff.setWriteoffTime(new Date()); activitySignWriteoff.setWriteoffUser(sysUsers.getSuName()); @@ -187,6 +223,7 @@ shopDeliveryInfo.setLogisticsCompany(systemDictionary.getName()); shopDeliveryInfo.setLogisticsCompanyCode(systemDictionary.getCode()); shopDeliveryInfo.setDeliveryWay("物流配送"); + shopDeliveryInfo.setLogisticsStatus(AppConstance.LOGISTICS_STATUS_OF_RECEIVE); shopDeliveryInfo.setWaybillNo(logisticsSubmitDto.getKddh()); shopDeliveryInfo.setUpdateBy(sysUsers.getSuName()); @@ -194,96 +231,20 @@ shopDeliveryInfo.setDeliveryTime(new Date()); shopDeliveryInfoDao.insert(shopDeliveryInfo); -// Integer id = shopDeliveryInfo.getId(); -// if(ObjectUtil.isNotEmpty(id)) { -// List<ShopLogisticsInfo> shopLogisticsList = new ArrayList<ShopLogisticsInfo>(); -// AjaxResult result = new AjaxResult(); -// Map<String, String> logisticsInfo = new HashMap<String, String>(); -// try { -// if (shopDeliveryInfo == null) { -// return new AjaxResult(AjaxResult.STATUS_FAIL, "找不到发货信息"); -// } -// if (!StringUtils.isNotBlank(shopDeliveryInfo.getWaybillNo()) || !StringUtils.isNotBlank(shopDeliveryInfo.getLogisticsCompanyCode())) { -// return new AjaxResult(AjaxResult.STATUS_FAIL, "物流公司信息为空"); -// } -// logisticsInfo.put("logisticsCompany", shopDeliveryInfo.getLogisticsCompany()); -// logisticsInfo.put("waybillNo", shopDeliveryInfo.getWaybillNo()); -// -// //如果已经签收直接查数据库 -// if (AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR.equals(shopDeliveryInfo.getLogisticsStatus())) { -// -// List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId()); -// logisticsInfo.put("logisticsStatus", String.valueOf(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR)); -// result.setStatus(AjaxResult.STATUS_SUCCESS); -// result.setRows(shopLogisticsInfos); -// result.putInMap("logisticsInfo", logisticsInfo); -// return result; -// } -// Map<String, String> param = new HashMap<String, String>(); -// param.put("ShipperCode", shopDeliveryInfo.getLogisticsCompanyCode()); -// param.put("LogisticCode", shopDeliveryInfo.getWaybillNo()); -// Map<String, String> paramsUrl = getparams(param); -// LogUtil.info("物流查询参数" + paramsUrl); -// String logisticsResult = HttpCurlUtil.sendPost(logisticsUrl, paramsUrl); -// LogUtil.info("查询物流返回信息" + logisticsResult); -// LogisticsInfoVo logisticsInfoVo = JSON.parseObject(logisticsResult, LogisticsInfoVo.class); -// if (logisticsInfoVo.isSuccess()) { -// ShopDeliveryInfo shopDelivery = new ShopDeliveryInfo(); -// shopDelivery.setLogisticsStatus(Integer.valueOf(logisticsInfoVo.getState())); -// shopDelivery.setId(shopDeliveryInfo.getId()); -// logisticsInfo.put("logisticsStatus", logisticsInfoVo.getState()); -// //更新物流状态 -// shopDeliveryInfoDao.updateByModel(shopDelivery); -// if (CollectionUtils.isNotEmpty(logisticsInfoVo.getTraces())) { -// List<Map<String, String>> mapTraces = logisticsInfoVo.getTraces(); -// for (int i = 0; i < mapTraces.size(); i++) { -// ShopLogisticsInfo shopLogisticsInfo = new ShopLogisticsInfo(); -// shopLogisticsInfo.setCreateBy(AppConstance.SYSTEM_USER); -// shopLogisticsInfo.setUpdateBy(AppConstance.SYSTEM_USER); -// shopLogisticsInfo.setLogisticsTime(mapTraces.get(i).get("AcceptTime")); -// String acceptStation = mapTraces.get(i).get("AcceptStation"); -// shopLogisticsInfo.setDescribe(acceptStation); -// shopLogisticsInfo.setDelieryId(shopDeliveryInfo.getId()); -// if (acceptStation.indexOf(AppConstance.KDN_IS_SIGN) != -1) { -// shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR); -// } else if (acceptStation.indexOf(AppConstance.KDN_IS_RECEIVE) != -1) { -// shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_RECEIVE); -// } else if (acceptStation.indexOf(AppConstance.KDN_IS_ON_WAY) != -1) { -// shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_ON_WAY); -// } else if (acceptStation.indexOf(AppConstance.KDN_IS_MISTAKE) != -1) { -// shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_MISTAKE); -// } else { -// shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_NONE); -// } -// shopLogisticsList.add(shopLogisticsInfo); -// } -// shopLogisticsInfoDao.deleteByDelieryId(shopDeliveryInfo.getId()); -// if (CollectionUtils.isNotEmpty(shopLogisticsList)) { -// shopLogisticsInfoDao.batchInsert(shopLogisticsList); -// } -// } -// } else { -// throw new GlobleException(logisticsInfoVo.getReason()); -// } -// -// } catch (Exception e) { -// throw new GlobleException("物流信息查询失败"); -// } - //更新核销记录 - activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE); - activitySignWriteoff.setWriteoffTime(new Date()); - activitySignWriteoff.setWriteoffUser(sysUsers.getSuName()); - activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId()); - activitySignWriteoff.setLogisticsId(shopDeliveryInfo.getId()); - activitySignWriteoffDao.updateById(activitySignWriteoff); - //更新领取记录 - ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId); - activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE); - activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr()); - activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz()); - activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh()); - activitySignReceiveRecordDao.updateById(activitySignReceiveRecord); -// } + //更新核销记录 + activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE); + activitySignWriteoff.setWriteoffTime(new Date()); + activitySignWriteoff.setWriteoffUser(sysUsers.getSuName()); + activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId()); + activitySignWriteoff.setLogisticsId(shopDeliveryInfo.getId()); + activitySignWriteoffDao.updateById(activitySignWriteoff); + //更新领取记录 + ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId); + activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_FOUR); + activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr()); + activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz()); + activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh()); + activitySignReceiveRecordDao.updateById(activitySignReceiveRecord); return new AjaxResult(AjaxResult.STATUS_SUCCESS, "发货成功"); } -- Gitblit v1.9.1