Commit f3da4b6c authored by shiyu's avatar shiyu

问题修复2

parent db5a65e2
...@@ -41,6 +41,11 @@ public class AuctionOfferNoticeMsg implements Entity { ...@@ -41,6 +41,11 @@ public class AuctionOfferNoticeMsg implements Entity {
*/ */
private Date auctionEndTime; private Date auctionEndTime;
/**
* 支付截止时间
*/
private Date payEndTime;
/** /**
* 拍卖当前价 * 拍卖当前价
*/ */
......
...@@ -234,16 +234,21 @@ public class AuctionRecordServiceImpl implements AuctionRecordService { ...@@ -234,16 +234,21 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
auctionRecordVo.setState(DistributionEnum.AuctionStateEnum.END.getCode()); auctionRecordVo.setState(DistributionEnum.AuctionStateEnum.END.getCode());
auctionRecordVo.setStateName(DistributionEnum.AuctionStateEnum.END.getDes()); auctionRecordVo.setStateName(DistributionEnum.AuctionStateEnum.END.getDes());
//如果是该用户竞拍成功,还没生成订单则用户状态为立即支付 //如果是该用户竞拍成功,还没生成订单则用户状态为立即支付
if (lastedRecord.getUserId().longValue() == dto.getUserId().longValue()) { if (lastedRecord != null) {
//竞拍结束后未生成订单 if (lastedRecord.getUserId().longValue() == dto.getUserId().longValue()) {
if (distributionOrder == null || distributionOrder.getPayTime() == null) { //竞拍结束后未生成订单
auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getCode()); if (distributionOrder == null || distributionOrder.getPayTime() == null) {
auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getDes()); auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getCode());
} else { auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getDes());
//竞拍结束页生成了订单并支付过了就显示竞拍结束 } else {
auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.END.getCode()); //竞拍结束页生成了订单并支付过了就显示竞拍结束
auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.END.getDes()); auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.END.getCode());
auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.END.getDes());
}
} }
} else {
auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.END.getCode());
auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.END.getDes());
} }
} else { } else {
auctionRecordVo.setState(DistributionEnum.AuctionStateEnum.IN_AUCTION.getCode()); auctionRecordVo.setState(DistributionEnum.AuctionStateEnum.IN_AUCTION.getCode());
...@@ -314,6 +319,16 @@ public class AuctionRecordServiceImpl implements AuctionRecordService { ...@@ -314,6 +319,16 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
if (distributionOrder == null || distributionOrder.getPayTime() == null) { if (distributionOrder == null || distributionOrder.getPayTime() == null) {
auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getCode()); auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getCode());
auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getDes()); auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getDes());
//检查是否超时未支付
if (distributionOrder != null) {
Date createOrderTime = distributionOrder.getCreateTime();
Instant createInstant = createOrderTime.toInstant().plus(Duration.ofHours(24));
Date time = Date.from(createInstant);
if (now.after(time)) {
auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.END.getCode());
auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.END.getDes());
}
}
} else { } else {
//竞拍结束页生成了订单并支付过了就显示竞拍结束 //竞拍结束页生成了订单并支付过了就显示竞拍结束
auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.END.getCode()); auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.END.getCode());
......
...@@ -15,6 +15,7 @@ import com.wwdz.ch.db.dao.distribution.*; ...@@ -15,6 +15,7 @@ import com.wwdz.ch.db.dao.distribution.*;
import com.wwdz.ch.db.domain.distribution.*; import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto; import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto; import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.wx.entity.DeliveryNoticeMsg; import com.wwdz.ch.wx.entity.DeliveryNoticeMsg;
import com.wwdz.ch.wx.entity.SignedNoticeMsg; import com.wwdz.ch.wx.entity.SignedNoticeMsg;
import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderDetailVo; import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderDetailVo;
...@@ -200,7 +201,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -200,7 +201,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
if (auctionRecord.getUserId().longValue() != dto.getBuyerId().longValue()) { if (auctionRecord.getUserId().longValue() != dto.getBuyerId().longValue()) {
return Result.failed("下单信息错误"); return Result.failed("下单信息错误");
} }
Date now = new Date();
AuctionConfig auctionConfig = auctionConfigDao.findByItemId(dto.getItemId()); AuctionConfig auctionConfig = auctionConfigDao.findByItemId(dto.getItemId());
//查询用户第一次出价对应的分销商 //查询用户第一次出价对应的分销商
AuctionRecord firstAuctionRecord = auctionRecordDao.findFirstRecord(dto.getItemId(), auctionRecord.getUserId()); AuctionRecord firstAuctionRecord = auctionRecordDao.findFirstRecord(dto.getItemId(), auctionRecord.getUserId());
...@@ -217,8 +218,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -217,8 +218,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrder.setShopId(distributorShareRecord.getShopId()); distributionOrder.setShopId(distributorShareRecord.getShopId());
distributionOrder.setSellerId(firstAuctionRecord.getDistributorId()); distributionOrder.setSellerId(firstAuctionRecord.getDistributorId());
distributionOrder.setAmount(auctionRecord.getPrice()); distributionOrder.setAmount(auctionRecord.getPrice());
distributionOrder.setCreateTime(new Date()); distributionOrder.setCreateTime(auctionConfig.getRealEndTime());
distributionOrder.setUpdateTime(new Date()); distributionOrder.setUpdateTime(now);
distributionOrder.setState(DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode()); distributionOrder.setState(DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode());
distributionOrder.setType(DistributionEnum.DistributionTypeEnum.AUCTION.getCode()); distributionOrder.setType(DistributionEnum.DistributionTypeEnum.AUCTION.getCode());
distributionOrderDao.insert(distributionOrder); distributionOrderDao.insert(distributionOrder);
...@@ -261,9 +262,24 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -261,9 +262,24 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
//把该拍卖配置信息改为已处理 //把该拍卖配置信息改为已处理
auctionConfigDao.setDeal(dto.getItemId()); auctionConfigDao.setDeal(dto.getItemId());
//发送中拍信息给用户 //发送中拍信息给用户
/** String userOpenId = sendMsgService.getOpenIdByUserId(auctionRecord.getUserId());
* if (com.xxdxxs.utils.StringUtils.hasLength(userOpenId)) {
*/ SupplierItem supplierItem = supplierItemDao.findById(distributionOrder.getItemId());
AuctionOfferNoticeMsg auctionOfferNoticeMsg = new AuctionOfferNoticeMsg();
auctionOfferNoticeMsg.setCurrentPrice(PriceUtil.convertPriceFenToYuan(auctionRecord.getPrice()));
auctionOfferNoticeMsg.setOpenId(userOpenId);
auctionOfferNoticeMsg.setItemName(supplierItem.getName());
auctionOfferNoticeMsg.setDistributionOrderId(distributionOrderId);
Instant instant = now.toInstant();
// auctionOfferNoticeMsg.setPayEndTime();
// sendMsgService.auctionSuccessMsg(signedNoticeMsg);
} else {
logger.info(">>>>> 分销商id :{}, 获取openid失败,无法发送模板信息 <<<<<", distributionOrder.getSellerId());
}
return Result.success(map); return Result.success(map);
} else { } else {
return Result.failed("稍后再试"); return Result.failed("稍后再试");
......
...@@ -175,7 +175,7 @@ public class SendMsgServiceImpl implements SendMsgService { ...@@ -175,7 +175,7 @@ public class SendMsgServiceImpl implements SendMsgService {
map.put("miniprogram", miniprogramMap); map.put("miniprogram", miniprogramMap);
Map<String, Object> paramMap = new LinkedHashMap<>(); Map<String, Object> paramMap = new LinkedHashMap<>();
paramMap.put("thing4", new HashMap(){{put("value", auctionOfferNoticeMsg.getItemName());}}); paramMap.put("thing4", new HashMap(){{put("value", auctionOfferNoticeMsg.getItemName().substring(0,20));}});
paramMap.put("amount5", new HashMap(){{put("value", auctionOfferNoticeMsg.getCurrentPrice());}}); paramMap.put("amount5", new HashMap(){{put("value", auctionOfferNoticeMsg.getCurrentPrice());}});
map.put("data", paramMap); map.put("data", paramMap);
logger.info("============ 拍卖出价被超越通知模板消息内容 : {}", JsonUtils.fromMap(map)); logger.info("============ 拍卖出价被超越通知模板消息内容 : {}", JsonUtils.fromMap(map));
...@@ -195,7 +195,42 @@ public class SendMsgServiceImpl implements SendMsgService { ...@@ -195,7 +195,42 @@ public class SendMsgServiceImpl implements SendMsgService {
@Override @Override
public Result auctionSuccessMsg(AuctionOfferNoticeMsg auctionOfferNoticeMsg) { public Result auctionSuccessMsg(AuctionOfferNoticeMsg auctionOfferNoticeMsg) {
return null; String openId = auctionOfferNoticeMsg.getOpenId();
String token = officialAccountApi.getAccessToken();
String url = SEND_MSG_URL + "?access_token=" + token;
OkHttpUtil okHttpUtil = OkHttpUtil.builder().url(url);
Map<String, Object> map = new HashMap<>();
map.put("touser", openId);
map.put("template_id", "Yy_58dviNzK1sDOilw6FnolJysIceRjm6qkhCN0RgcQ");
Map<String, Object> miniprogramMap = new HashMap<>();
miniprogramMap.put("appid", APPLET_APPID);
StringBuffer stringBuffer = new StringBuffer(AUCTION_MSG_URL);
stringBuffer.append("?itemId=" + auctionOfferNoticeMsg.getItemId());
if (StringUtils.hasLength(auctionOfferNoticeMsg.getShareRecordId())) {
stringBuffer.append("&shareRecordId=" + auctionOfferNoticeMsg.getShareRecordId());
}
miniprogramMap.put("pagepath", stringBuffer.toString());
map.put("miniprogram", miniprogramMap);
Map<String, Object> paramMap = new LinkedHashMap<>();
paramMap.put("thing4", new HashMap(){{put("value", auctionOfferNoticeMsg.getItemName().substring(0,20));}});
paramMap.put("amount6", new HashMap(){{put("value", auctionOfferNoticeMsg.getCurrentPrice());}});
paramMap.put("character_string5", new HashMap(){{put("value", auctionOfferNoticeMsg.getDistributionOrderId());}});
paramMap.put("time3", new HashMap(){{put("value", DateUtils.toString(auctionOfferNoticeMsg.getPayEndTime()));}});
map.put("data", paramMap);
logger.info("============ 竞拍成功通知模板消息内容 : {}", JsonUtils.fromMap(map));
okHttpUtil.addParams(map);
okHttpUtil.post(true);
String responseStr = okHttpUtil.async();
logger.info("openid : {}, 发送竞拍成功模板消息 response :{}", openId, responseStr);
String errorCode = JsonUtils.getValueByPath(responseStr, "errcode");
String errmsg = JsonUtils.getValueByPath(responseStr, "errmsg");
if (!"0".equals(errorCode)) {
logger.error("openid : {}, 发送竞拍成功模板消息, errorCode : {}, errmsg : {} ", openId, errorCode, errmsg);
return Result.failed();
}
logger.info("=============发送竞拍成功模板消息 成功 ===========");
return Result.success();
} }
@Override @Override
......
...@@ -29,6 +29,9 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -29,6 +29,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.time.Duration;
import java.time.Instant;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
...@@ -408,6 +411,16 @@ public class SupplierItemServiceImpl implements SupplierItemService { ...@@ -408,6 +411,16 @@ public class SupplierItemServiceImpl implements SupplierItemService {
if (distributionOrder == null || distributionOrder.getPayTime() == null) { if (distributionOrder == null || distributionOrder.getPayTime() == null) {
auctionDetailVo.setUserState(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getCode()); auctionDetailVo.setUserState(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getCode());
auctionDetailVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getDes()); auctionDetailVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getDes());
//检查是否超时未支付
if (distributionOrder != null) {
Date createOrderTime = distributionOrder.getCreateTime();
Instant createInstant = createOrderTime.toInstant().plus(Duration.ofHours(24));
Date time = Date.from(createInstant);
if (now.after(time)) {
auctionDetailVo.setUserState(DistributionEnum.AuctionUserStateEnum.END.getCode());
auctionDetailVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.END.getDes());
}
}
} else { } else {
//竞拍结束页生成了订单并支付过了就显示竞拍结束 //竞拍结束页生成了订单并支付过了就显示竞拍结束
auctionDetailVo.setUserState(DistributionEnum.AuctionUserStateEnum.END.getCode()); auctionDetailVo.setUserState(DistributionEnum.AuctionUserStateEnum.END.getCode());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment