Commit 9998dea7 authored by shiyu's avatar shiyu

出价记录

parent 94d6208e
...@@ -82,4 +82,30 @@ public class AliSmsSender implements SmsSender { ...@@ -82,4 +82,30 @@ public class AliSmsSender implements SmsSender {
} }
} }
public SmsResult sendAuctionWithTemplate(String phone, String itemName) {
try {
Map<String, Object> map = new HashMap<>();
map.put("msg", "您参与拍卖的商品\"" + itemName + "\",已中拍。");
com.aliyun.dysmsapi20170525.Client client = createClient();
com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
.setPhoneNumbers(phone)
.setTemplateCode(templateCode)
.setTemplateParam(JsonUtils.fromMap(map))
.setSignName("玩物得志");
SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new com.aliyun.teautil.models.RuntimeOptions());
logger.info("短线验证发送结果 : {} ", JsonUtils.from(sendSmsResponse));
if ("OK".equals(sendSmsResponse.getBody().code)) {
SmsResult smsResult = new SmsResult();
smsResult.setSuccessful(true);
smsResult.setResult(itemName);
return smsResult;
}
throw new RuntimeException("验证码发送失败");
} catch (Exception e) {
logger.error("AliSmsSender.sendWithTemplate(),mobile={}",phone,e );
throw new RuntimeException("验证码发送失败");
}
}
} }
package com.wwdz.ch.wx.entity.vo.distribution; package com.wwdz.ch.wx.entity.vo.distribution;
import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.db.domain.distribution.AuctionRecord; import com.wwdz.ch.db.domain.distribution.AuctionRecord;
import com.xxdxxs.entity.Entity; import com.xxdxxs.entity.Entity;
import lombok.Data; import lombok.Data;
...@@ -77,6 +78,12 @@ public class AuctionDetailVo implements Entity { ...@@ -77,6 +78,12 @@ public class AuctionDetailVo implements Entity {
*/ */
private List<AuctionRecord> auctionRecordList; private List<AuctionRecord> auctionRecordList;
/**
* 出价记录带分页信息
*/
private PageSearchResult pageSearchResult;
private Integer state; private Integer state;
/** /**
......
package com.wwdz.ch.wx.entity.vo.distribution;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
@Data
public class AuctionRecordRowVo implements Entity {
private Integer id;
/**
* 商品id
*/
private Long itemId;
/**
* 用户id
*/
private Long userId;
/**
* 微信openid
*/
private String userOpenId;
/**
* 出价
* 单位为元
*/
private String price;
/**
* 出价时间
*/
private Date createTime;
/**
* 分享id
*/
private String shareRecordId;
/**
* 分享商id
*/
private Long distributorId;
/**
* 价格是否领先
*/
private Boolean isLead;
}
...@@ -60,7 +60,7 @@ public class AuctionRecordVo implements Entity { ...@@ -60,7 +60,7 @@ public class AuctionRecordVo implements Entity {
/** /**
* 出价记录带分页信息 * 出价记录带分页信息
*/ */
private PageSearchResult<AuctionRecord> pageSearchResult; private PageSearchResult pageSearchResult;
private Integer state; private Integer state;
...@@ -90,8 +90,9 @@ public class AuctionRecordVo implements Entity { ...@@ -90,8 +90,9 @@ public class AuctionRecordVo implements Entity {
*/ */
private Integer totalOfferNum; private Integer totalOfferNum;
private Integer auctionUserState; private Integer userState;
private String userStateName;
private String auctionUserStateName;
} }
...@@ -14,8 +14,10 @@ import com.wwdz.ch.db.dao.UserDao; ...@@ -14,8 +14,10 @@ import com.wwdz.ch.db.dao.UserDao;
import com.wwdz.ch.db.dao.distribution.*; 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.AuctionRecordRequestDto; import com.wwdz.ch.db.dto.request.distribution.AuctionRecordRequestDto;
import com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordRowVo;
import com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordVo; import com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordVo;
import com.wwdz.ch.wx.service.distribution.AuctionRecordService; import com.wwdz.ch.wx.service.distribution.AuctionRecordService;
import com.xxdxxs.utils.EntityMapper;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -172,16 +174,33 @@ public class AuctionRecordServiceImpl implements AuctionRecordService { ...@@ -172,16 +174,33 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
searchDto.setLimit(dto.getLimit()); searchDto.setLimit(dto.getLimit());
List<AuctionRecord> auctionRecordList = auctionRecordDao.findByPage(searchDto); List<AuctionRecord> auctionRecordList = auctionRecordDao.findByPage(searchDto);
PageInfo<AuctionRecord> pageInfo = new PageInfo<>(auctionRecordList); PageInfo<AuctionRecord> pageInfo = new PageInfo<>(auctionRecordList);
List<AuctionRecordRowVo> auctionRecordRowVos = new ArrayList<>();
auctionRecordList.forEach(a ->{
AuctionRecordRowVo auctionRecordRowVo = new AuctionRecordRowVo();
EntityMapper.copyAttribute(a, auctionRecordRowVo);
auctionRecordRowVo.setPrice(PriceUtil.convertPriceFenToYuan(a.getPrice()));
auctionRecordRowVos.add(auctionRecordRowVo);
});
auctionRecordVo.setPageSearchResult(PageSearchResult.of(pageInfo, auctionRecordRowVos));
//查询商品竞拍信息 //查询商品竞拍信息
AuctionConfig auctionConfig = auctionConfigDao.findByItemId(dto.getItemId()); AuctionConfig auctionConfig = auctionConfigDao.findByItemId(dto.getItemId());
AuctionRecord lastedRecord = auctionRecordDao.findLastedRecord(dto.getItemId());
//当前价 //当前价
if (CollectionUtils.isEmpty(auctionRecordList)) { if (CollectionUtils.isEmpty(auctionRecordList)) {
auctionRecordVo.setCurrentPrice(PriceUtil.convertPriceFenToYuan(auctionConfig.getStartPrice())); auctionRecordVo.setCurrentPrice(PriceUtil.convertPriceFenToYuan(auctionConfig.getStartPrice()));
auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.PROCESS.getCode());
auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PROCESS.getDes());
} else { } else {
AuctionRecord lastedRecord = auctionRecordDao.findLastedRecord(dto.getItemId());
auctionRecordVo.setCurrentPrice(PriceUtil.convertPriceFenToYuan(lastedRecord.getPrice())); auctionRecordVo.setCurrentPrice(PriceUtil.convertPriceFenToYuan(lastedRecord.getPrice()));
//如果最高价是自己出的,用户状态显示已领先
if (lastedRecord.getUserId().longValue() == dto.getUserId().longValue()) {
auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.LEAD.getCode());
auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.LEAD.getDes());
} else {
auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.PROCESS.getCode());
auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PROCESS.getDes());
}
} }
auctionRecordVo.setPageSearchResult(PageSearchResult.of(pageInfo));
auctionRecordVo.setStartPrice(PriceUtil.convertPriceFenToYuan(auctionConfig.getStartPrice())); auctionRecordVo.setStartPrice(PriceUtil.convertPriceFenToYuan(auctionConfig.getStartPrice()));
Date startTime = auctionConfig.getStartTime(); Date startTime = auctionConfig.getStartTime();
Date realEndTime = auctionConfig.getRealEndTime(); Date realEndTime = auctionConfig.getRealEndTime();
...@@ -189,12 +208,29 @@ public class AuctionRecordServiceImpl implements AuctionRecordService { ...@@ -189,12 +208,29 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
auctionRecordVo.setRealEndTime(realEndTime); auctionRecordVo.setRealEndTime(realEndTime);
auctionRecordVo.setAddExtent(PriceUtil.convertPriceFenToYuan(auctionConfig.getAddExtent())); auctionRecordVo.setAddExtent(PriceUtil.convertPriceFenToYuan(auctionConfig.getAddExtent()));
Date now = new Date(); Date now = new Date();
DistributionOrder distributionOrder = distributionOrderDao.findByItemId(dto.getItemId());
if (now.before(startTime)) { if (now.before(startTime)) {
auctionRecordVo.setState(DistributionEnum.AuctionStateEnum.NOT_START.getCode()); auctionRecordVo.setState(DistributionEnum.AuctionStateEnum.NOT_START.getCode());
auctionRecordVo.setStateName(DistributionEnum.AuctionStateEnum.NOT_START.getDes()); auctionRecordVo.setStateName(DistributionEnum.AuctionStateEnum.NOT_START.getDes());
} else if (now.after(realEndTime)) { } else if (now.after(realEndTime)) {
//超过时间仍然有效,则设置为无效
if (auctionConfig.getIsValid()) {
auctionConfigDao.setEnd(dto.getItemId());
}
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 (distributionOrder == null || distributionOrder.getPayTime() == null) {
auctionRecordVo.setUserState(DistributionEnum.AuctionUserStateEnum.PRE_PAY.getCode());
auctionRecordVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PRE_PAY.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());
auctionRecordVo.setStateName(DistributionEnum.AuctionStateEnum.IN_AUCTION.getDes()); auctionRecordVo.setStateName(DistributionEnum.AuctionStateEnum.IN_AUCTION.getDes());
......
...@@ -17,6 +17,7 @@ import com.wwdz.ch.db.dto.request.distribution.DistributorShareRecordRequestDto; ...@@ -17,6 +17,7 @@ import com.wwdz.ch.db.dto.request.distribution.DistributorShareRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto; import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.core.entity.SupplierItemVo; import com.wwdz.ch.core.entity.SupplierItemVo;
import com.wwdz.ch.wx.entity.vo.distribution.AuctionDetailVo; import com.wwdz.ch.wx.entity.vo.distribution.AuctionDetailVo;
import com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordRowVo;
import com.wwdz.ch.wx.service.distribution.DistributionOrderService; import com.wwdz.ch.wx.service.distribution.DistributionOrderService;
import com.wwdz.ch.wx.service.distribution.SupplierItemService; import com.wwdz.ch.wx.service.distribution.SupplierItemService;
import com.xxdxxs.utils.DateUtils; import com.xxdxxs.utils.DateUtils;
...@@ -323,8 +324,16 @@ public class SupplierItemServiceImpl implements SupplierItemService { ...@@ -323,8 +324,16 @@ public class SupplierItemServiceImpl implements SupplierItemService {
auctionRecordRequestDto.setPage(dto.getPage()); auctionRecordRequestDto.setPage(dto.getPage());
auctionRecordRequestDto.setLimit(dto.getLimit()); auctionRecordRequestDto.setLimit(dto.getLimit());
List<AuctionRecord> auctionRecordList = auctionRecordDao.findByPage(auctionRecordRequestDto); List<AuctionRecord> auctionRecordList = auctionRecordDao.findByPage(auctionRecordRequestDto);
PageInfo<AuctionRecord> pageInfo = new PageInfo<>(auctionRecordList);
List<AuctionRecordRowVo> auctionRecordRowVos = new ArrayList<>();
auctionRecordList.forEach(a ->{
AuctionRecordRowVo auctionRecordRowVo = new AuctionRecordRowVo();
EntityMapper.copyAttribute(a, auctionRecordRowVo);
auctionRecordRowVo.setPrice(PriceUtil.convertPriceFenToYuan(a.getPrice()));
auctionRecordRowVos.add(auctionRecordRowVo);
});
auctionDetailVo.setPageSearchResult(PageSearchResult.of(pageInfo, auctionRecordRowVos));
AuctionRecord lastedRecord = auctionRecordDao.findLastedRecord(itemId); AuctionRecord lastedRecord = auctionRecordDao.findLastedRecord(itemId);
//当前价 //当前价
if (CollectionUtils.isEmpty(auctionRecordList)) { if (CollectionUtils.isEmpty(auctionRecordList)) {
auctionDetailVo.setUserState(DistributionEnum.AuctionUserStateEnum.PROCESS.getCode()); auctionDetailVo.setUserState(DistributionEnum.AuctionUserStateEnum.PROCESS.getCode());
...@@ -341,7 +350,7 @@ public class SupplierItemServiceImpl implements SupplierItemService { ...@@ -341,7 +350,7 @@ public class SupplierItemServiceImpl implements SupplierItemService {
auctionDetailVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PROCESS.getDes()); auctionDetailVo.setUserStateName(DistributionEnum.AuctionUserStateEnum.PROCESS.getDes());
} }
} }
auctionDetailVo.setAuctionRecordList(auctionRecordList);
SupplierItem supplierItem = supplierItemDao.findById(itemId); SupplierItem supplierItem = supplierItemDao.findById(itemId);
auctionDetailVo.setItemId(supplierItem.getId()); auctionDetailVo.setItemId(supplierItem.getId());
auctionDetailVo.setImages(supplierItem.getImages()); auctionDetailVo.setImages(supplierItem.getImages());
......
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