Commit 617874e3 authored by shiyu's avatar shiyu

团购商品首页展示

parent 7bcff6ba
...@@ -127,7 +127,7 @@ public class ShiroConfig { ...@@ -127,7 +127,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/admin/dashboard/**", "anon"); filterChainDefinitionMap.put("/admin/dashboard/**", "anon");
filterChainDefinitionMap.put("/admin/specialPerformance/**", "anon"); filterChainDefinitionMap.put("/admin/specialPerformance/**", "anon");
filterChainDefinitionMap.put("/admin/sysFinance/**", "anon"); filterChainDefinitionMap.put("/admin/sysFinance/**", "anon");
filterChainDefinitionMap.put("/admin/groupPurchase/**", "anon");
filterChainDefinitionMap.put("/admin/invitationCode/**", "anon"); filterChainDefinitionMap.put("/admin/invitationCode/**", "anon");
// filterChainDefinitionMap.put("/admin/**", "anon"); // filterChainDefinitionMap.put("/admin/**", "anon");
......
package com.wwdz.ch.admin.controller;
import com.alibaba.fastjson.JSON;
import com.wwdz.ch.admin.service.SysGroupPurchaseService;
import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.xxdxxs.utils.StringUtils;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/admin/groupPurchase")
public class SysGroupPurchaseController {
private static final Logger logger = LoggerFactory.getLogger(SysGroupPurchaseController.class);
@Autowired
SysGroupPurchaseService sysGroupPurchaseService;
@ApiOperation(value = "藏品转团购")
@PostMapping("/collectorItemConvertToGroupPurchase")
public Result collectorItemConvertToAuction(@RequestBody SupplierItemRequestDto dto) {
logger.info("藏品转团购,请求参数:{}", JSON.toJSONString(dto));
if (StringUtils.isEmpty(dto.getItemIdsStr())) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return sysGroupPurchaseService.collectorItemConvertToGroupPurchase(dto);
}
}
...@@ -72,10 +72,10 @@ public class SysSupplierItemController { ...@@ -72,10 +72,10 @@ public class SysSupplierItemController {
return sysSupplierItemService.findAuctionList(dto); return sysSupplierItemService.findAuctionList(dto);
} }
@ApiOperation(value = "添加专场商品查询拍卖品列表") @ApiOperation(value = "添加专场商品-查询拍卖品列表")
@PostMapping("/findSupplierItemForSpecialPerformance") @PostMapping("/findSupplierItemForSpecialPerformance")
public Result findSupplierItemForSpecialPerformance(@RequestBody SupplierItemRequestDto dto) { public Result findSupplierItemForSpecialPerformance(@RequestBody SupplierItemRequestDto dto) {
logger.info("添加专场商品查询拍卖品列表,请求参数:{}", JSON.toJSONString(dto)); logger.info("添加专场商品-查询拍卖品列表,请求参数:{}", JSON.toJSONString(dto));
if (dto.getSpecialPerformanceId() == null) { if (dto.getSpecialPerformanceId() == null) {
return Result.failed(ResultCode.PARAM_ERROR); return Result.failed(ResultCode.PARAM_ERROR);
} }
......
...@@ -22,9 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -22,9 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.time.Duration;
import java.time.Instant;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
......
...@@ -182,12 +182,20 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -182,12 +182,20 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
if (supplierItem.getBuyLimitNum() == -1) { if (supplierItem.getBuyLimitNum() == -1) {
supplierItemVo.setIsLimitBuy(false); supplierItemVo.setIsLimitBuy(false);
} }
if (supplierItem.getType() == DistributionEnum.DistributionTypeEnum.AUCTION.getCode()) {
AuctionConfig auctionConfig = auctionConfigDao.findByItemId(supplierItem.getId()); AuctionConfig auctionConfig = auctionConfigDao.findByItemId(supplierItem.getId());
if (auctionConfig != null && auctionConfig.getIsValid()) { if (auctionConfig != null && auctionConfig.getIsValid()) {
supplierItemVo.setEditAble(false); supplierItemVo.setEditAble(false);
} else { } else {
supplierItemVo.setEditAble(true); supplierItemVo.setEditAble(true);
} }
} else if (supplierItem.getType() == DistributionEnum.DistributionTypeEnum.GROUP_PURCHASE.getCode()) {
GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(supplierItem.getId());
supplierItemVo.setSalePrice(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getPrice()));
supplierItemVo.setDeposit(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getDeposit()));
supplierItemVo.setGroupPurchaseStartTime(DateUtils.toString(groupPurchaseConfig.getStartTime()));
supplierItemVo.setGroupPurchaseEndTime(DateUtils.toString(groupPurchaseConfig.getEndTime()));
}
supplierItemVos.add(supplierItemVo); supplierItemVos.add(supplierItemVo);
//售出数量 //售出数量
Long selledNum = distributionOrderDao.countSelledNum(supplierItem.getId()); Long selledNum = distributionOrderDao.countSelledNum(supplierItem.getId());
...@@ -430,7 +438,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -430,7 +438,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
} }
SupplierItem supplierItem = new SupplierItem(); SupplierItem supplierItem = new SupplierItem();
EntityMapper.copyAttribute(dto, supplierItem); EntityMapper.copyAttribute(dto, supplierItem);
supplierItem.setRebate(new BigDecimal(dto.getRebate())); supplierItem.setRebate(new BigDecimal(dto.getRebate() == null ? "3" : dto.getRebate()));
supplierItem.setDistributionPrice(PriceUtil.convertPriceFromStr(dto.getDistributionPrice())); supplierItem.setDistributionPrice(PriceUtil.convertPriceFromStr(dto.getDistributionPrice()));
if (StringUtils.hasLength(dto.getSupplyPrice())) { if (StringUtils.hasLength(dto.getSupplyPrice())) {
supplierItem.setSupplyPrice(PriceUtil.convertPriceFromStr(dto.getSupplyPrice())); supplierItem.setSupplyPrice(PriceUtil.convertPriceFromStr(dto.getSupplyPrice()));
......
...@@ -94,6 +94,11 @@ public interface CommConsts { ...@@ -94,6 +94,11 @@ public interface CommConsts {
*/ */
public final static String GROUPPURCHASE_DEPOSIT_PREFIX = "GP"; public final static String GROUPPURCHASE_DEPOSIT_PREFIX = "GP";
/**
* 系统订单号
*/
public final static String DISTRIBUTION_ORDER_PREFIX = "DA";
/** /**
* 平台收货地址 * 平台收货地址
*/ */
...@@ -110,6 +115,13 @@ public interface CommConsts { ...@@ -110,6 +115,13 @@ public interface CommConsts {
*/ */
public final static String ITEM_OF_SPECIAL_PERFORMANCE_URL = "/pages/saleAuctionDetail/index"; public final static String ITEM_OF_SPECIAL_PERFORMANCE_URL = "/pages/saleAuctionDetail/index";
/**
* 消息跳转团购商品详情
*/
public final static String ITEM_OF_GROUPPURCHASE_URL = "/pages/saleAuctionDetail/index";
/** /**
* 微信手续费,按照最高的1%计算 * 微信手续费,按照最高的1%计算
*/ */
......
...@@ -12,7 +12,8 @@ public class DisposableSubscribeRecordEnum { ...@@ -12,7 +12,8 @@ public class DisposableSubscribeRecordEnum {
PRE_START(1, "AzJht7hkLJHSCN7trT3zsV3TaOE0Xk8faqm2sTf3Pm4", "拍卖开始通知"), PRE_START(1, "AzJht7hkLJHSCN7trT3zsV3TaOE0Xk8faqm2sTf3Pm4", "拍卖开始通知"),
PRE_END(2, "G-GwA4yn63RJ6IysFotHB4anctNqbOy5qrz_R6vBJkM", "即将结束"), PRE_END(2, "G-GwA4yn63RJ6IysFotHB4anctNqbOy5qrz_R6vBJkM", "即将结束"),
ITEM_PRE_END(3, "XhEvunfXdO0j5JSpCVKKYlLuQbF7Yux8QfVEz5_L9xQ", "拍品即将结束"), ITEM_PRE_END(3, "XhEvunfXdO0j5JSpCVKKYlLuQbF7Yux8QfVEz5_L9xQ", "拍品即将结束"),
GROUPPURASE_SURPLUS_AMOUNT_PAY(4, "e6-VlkWBST_sN3PQ2Yx3iuPkxQL5Hf6cfMia3MDNinc", "尾款支付提醒"),
GROUPPURASE_CLOSER_TO_SUCCESS(5, "ekZ3s3OL6ZlWnORvvMOONfWNZsbm6DTlMNyv_2j2ijk", "拼团待成团提醒"),
; ;
private int type; private int type;
......
package com.wwdz.ch.core.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
@Data
public class GroupPurchaseNoticeMsg implements Entity {
/**
* 团购定金支付id
*/
private String depositPayId;
/**
* 关联的预售订单id
*/
private String distributionOrderId;
/**
* 预支付id
*/
private String prepayId;
/**
* 微信支付订单号
*/
private String transactionId;
/**
* 商品id
*/
private Long itemId;
private String itemName;
/**
* 商品数量
*/
private Integer itemNum;
/**
* 用户id
*/
private Long userId;
/**
* 用户openid
*/
private String openId;
/**
* 订单金额
*/
private String orderAmount;
/**
* 定金金额
*/
private String deposit;
/**
* 尾款金额
*/
private String surplusAmount;
/**
* 支付结束时间
*/
private String payEndTime;
/**
* 要求拼团人数
*/
private Integer requireNum;
/**
* 已拼团人数
*/
private Integer peopleNum;
/**
* 剩余拼团人数
*/
private Integer surplusNum;
/**
* 拼团成功价格
*/
private String groupPuraseAmount;
/**
* 拼团剩余时间
*/
private String surplusTime;
}
...@@ -356,4 +356,14 @@ public class SupplierItemVo implements Entity { ...@@ -356,4 +356,14 @@ public class SupplierItemVo implements Entity {
*/ */
private Boolean isSubscribed; private Boolean isSubscribed;
/**
* 团购开始时间
*/
private Date startTime;
/**
* 团购结束时间
*/
private Date endTime;
} }
...@@ -747,6 +747,100 @@ public class SendMsgServiceImpl implements SendMsgService { ...@@ -747,6 +747,100 @@ public class SendMsgServiceImpl implements SendMsgService {
return Result.success(); return Result.success();
} }
@Override
public Result sendGroupPurchaseSurplusAmountPayMsg(GroupPurchaseNoticeMsg groupPurchaseNoticeMsg) {
String openId = groupPurchaseNoticeMsg.getOpenId();
String token = wxAppletApi.getAppletAccessToken();
String url = SEND_SUBSCRIBE_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", DisposableSubscribeRecordEnum.TypeEnum.GROUPPURASE_SURPLUS_AMOUNT_PAY.getTemplateId());
Map<String, Object> miniprogramMap = new HashMap<>();
miniprogramMap.put("appid", APPLET_APPID);
StringBuffer stringBuffer = new StringBuffer(CommConsts.ITEM_OF_GROUPPURCHASE_URL);
stringBuffer.append("?itemId=" + groupPurchaseNoticeMsg.getItemId());
map.put("page", stringBuffer.toString());
Map<String, Object> paramMap = new LinkedHashMap<>();
paramMap.put("thing1", new HashMap() {{
put("value", groupPurchaseNoticeMsg.getItemName());
}});
paramMap.put("amount11", new HashMap() {{
put("value", groupPurchaseNoticeMsg.getOrderAmount());
}});
paramMap.put("amount13", new HashMap() {{
put("value", groupPurchaseNoticeMsg.getDeposit());
}});
paramMap.put("amount12", new HashMap() {{
put("value", groupPurchaseNoticeMsg.getSurplusAmount());
}});
paramMap.put("date7", new HashMap() {{
put("value", groupPurchaseNoticeMsg.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(responseStr);
}
logger.info("============= 发送团购尾款支付提醒订阅消息成功 ===========");
return Result.success();
}
@Override
public Result sendGroupPurchasecloserToSuccessMsg(GroupPurchaseNoticeMsg groupPurchaseNoticeMsg) {
String openId = groupPurchaseNoticeMsg.getOpenId();
String token = wxAppletApi.getAppletAccessToken();
String url = SEND_SUBSCRIBE_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", DisposableSubscribeRecordEnum.TypeEnum.GROUPPURASE_CLOSER_TO_SUCCESS.getTemplateId());
Map<String, Object> miniprogramMap = new HashMap<>();
miniprogramMap.put("appid", APPLET_APPID);
StringBuffer stringBuffer = new StringBuffer(CommConsts.ITEM_OF_GROUPPURCHASE_URL);
stringBuffer.append("?itemId=" + groupPurchaseNoticeMsg.getItemId());
map.put("page", stringBuffer.toString());
Map<String, Object> paramMap = new LinkedHashMap<>();
paramMap.put("thing1", new HashMap() {{
put("value", groupPurchaseNoticeMsg.getItemName());
}});
paramMap.put("number5", new HashMap() {{
put("value", groupPurchaseNoticeMsg.getPeopleNum());
}});
paramMap.put("number2", new HashMap() {{
put("value", groupPurchaseNoticeMsg.getSurplusNum());
}});
paramMap.put("amount4", new HashMap() {{
put("value", groupPurchaseNoticeMsg.getGroupPuraseAmount());
}});
paramMap.put("thing8", new HashMap() {{
put("value", groupPurchaseNoticeMsg.getSurplusTime());
}});
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(responseStr);
}
logger.info("============= 发送拼团待成团提醒订阅消息成功 ===========");
return Result.success();
}
@Override @Override
public Result followNoticeMsg(FollowFansMsg followFansMsg) { public Result followNoticeMsg(FollowFansMsg followFansMsg) {
try { try {
......
...@@ -94,5 +94,20 @@ public interface SendMsgService { ...@@ -94,5 +94,20 @@ public interface SendMsgService {
*/ */
Result sendItemOfSpecialPerformanceEndMsg(AuctionOfferNoticeMsg auctionOfferNoticeMsg); Result sendItemOfSpecialPerformanceEndMsg(AuctionOfferNoticeMsg auctionOfferNoticeMsg);
/**
* 拼团尾款支付提醒
* 拼团结束后24小时为截止支付时间
* @param groupPurchaseNoticeMsg
* @return
*/
Result sendGroupPurchaseSurplusAmountPayMsg(GroupPurchaseNoticeMsg groupPurchaseNoticeMsg);
/**
* 拼团待成团提醒
* 结束前2小时发送
* @param groupPurchaseNoticeMsg
* @return
*/
Result sendGroupPurchasecloserToSuccessMsg(GroupPurchaseNoticeMsg groupPurchaseNoticeMsg);
} }
package com.wwdz.ch.db.dao.distribution; package com.wwdz.ch.db.dao.distribution;
import com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig; import com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto;
import java.util.List;
public interface GroupPurchaseConfigDao { public interface GroupPurchaseConfigDao {
...@@ -45,4 +48,12 @@ public interface GroupPurchaseConfigDao { ...@@ -45,4 +48,12 @@ public interface GroupPurchaseConfigDao {
* @return * @return
*/ */
GroupPurchaseConfig findByItemId(long itemId); GroupPurchaseConfig findByItemId(long itemId);
/**
* 查询团购商品列表
* @param itemId
* @return
*/
List<GroupPurchaseConfig> findList(GroupPurchaseConfigRequestDto dto);
} }
...@@ -18,8 +18,12 @@ public interface GroupPurchaseRecordDao { ...@@ -18,8 +18,12 @@ public interface GroupPurchaseRecordDao {
GroupPurchaseRecord findByPayId(String dispositPayId); GroupPurchaseRecord findByPayId(String dispositPayId);
GroupPurchaseRecord findByOrderId(String distributionOrderId);
int updateByPayId(GroupPurchaseRecord groupPurchaseRecord); int updateByPayId(GroupPurchaseRecord groupPurchaseRecord);
int updateByPrimaryKey(GroupPurchaseRecord groupPurchaseRecord);
/** /**
* 统计当前商品已经团购的件数 * 统计当前商品已经团购的件数
* @param dto * @param dto
......
package com.wwdz.ch.db.dto.request.distribution;
import com.wwdz.ch.db.dto.request.BaseRequestDto;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
@Data
public class GroupPurchaseConfigRequestDto extends BaseRequestDto implements Entity {
/**
* id
*/
private Integer id;
private Long userId;
/**
* 商品id
*/
private Long itemId;
/**
* 商品所属人id
*/
private Long creatorId;
/**
* 团购开始时间
*/
private Date startTime;
/**
* 团购结束时间
*/
private Date endTime;
/**
* 售价
*/
private Long price;
/**
* 供货价
*/
private Long supplyPrice;
/**
* 定金
*/
private Long deposit;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 状态
*/
private Integer state;
/**
* 是否有效
*/
private Boolean isValid;
/**
* 是否成交
*/
private Boolean isDeal;
}
...@@ -170,8 +170,6 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity { ...@@ -170,8 +170,6 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
*/ */
private String auctionEndTime; private String auctionEndTime;
/** /**
* 团购开始时间 * 团购开始时间
*/ */
......
package com.wwdz.ch.db.impl.distribution; package com.wwdz.ch.db.impl.distribution;
import com.github.pagehelper.PageHelper;
import com.wwdz.ch.db.dao.distribution.GroupPurchaseConfigDao; import com.wwdz.ch.db.dao.distribution.GroupPurchaseConfigDao;
import com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig; import com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig;
import com.wwdz.ch.db.domain.distribution.GroupPurchaseConfigExample; import com.wwdz.ch.db.domain.distribution.GroupPurchaseConfigExample;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto;
import com.wwdz.ch.db.mapper.distribution.GroupPurchaseConfigMapper; import com.wwdz.ch.db.mapper.distribution.GroupPurchaseConfigMapper;
import com.xxdxxs.db.component.JdbcHelper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Date; import java.util.Date;
import java.util.List;
@Repository @Repository
public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao { public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao {
...@@ -53,4 +57,15 @@ public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao { ...@@ -53,4 +57,15 @@ public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao {
criteria.andItemIdEqualTo(itemId); criteria.andItemIdEqualTo(itemId);
return groupPurchaseConfigMapper.selectOneByExample(example); return groupPurchaseConfigMapper.selectOneByExample(example);
} }
@Override
public List<GroupPurchaseConfig> findList(GroupPurchaseConfigRequestDto dto) {
GroupPurchaseConfigExample example = new GroupPurchaseConfigExample();
GroupPurchaseConfigExample.Criteria criteria = example.createCriteria();
JdbcHelper.ifPresent(dto.getItemId(), criteria:: andItemIdEqualTo);
JdbcHelper.ifPresent(dto.getState(), criteria:: andStateEqualTo);
example.setOrderByClause(" create_time desc");
PageHelper.startPage(dto.getPage(), dto.getLimit());
return groupPurchaseConfigMapper.selectByExample(example);
}
} }
...@@ -9,6 +9,7 @@ import com.xxdxxs.db.component.JdbcHelper; ...@@ -9,6 +9,7 @@ import com.xxdxxs.db.component.JdbcHelper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List; import java.util.List;
@Repository @Repository
...@@ -31,6 +32,14 @@ public class GroupPurchaseRecordDaoImpl implements GroupPurchaseRecordDao { ...@@ -31,6 +32,14 @@ public class GroupPurchaseRecordDaoImpl implements GroupPurchaseRecordDao {
return groupPurchaseRecordMapper.selectOneByExample(example); return groupPurchaseRecordMapper.selectOneByExample(example);
} }
@Override
public GroupPurchaseRecord findByOrderId(String distributionOrderId) {
GroupPurchaseRecordExample example = new GroupPurchaseRecordExample();
GroupPurchaseRecordExample.Criteria criteria = example.createCriteria();
criteria.andDistributionOrderIdEqualTo(distributionOrderId);
return groupPurchaseRecordMapper.selectOneByExample(example);
}
@Override @Override
public int updateByPayId(GroupPurchaseRecord groupPurchaseRecord) { public int updateByPayId(GroupPurchaseRecord groupPurchaseRecord) {
GroupPurchaseRecordExample example = new GroupPurchaseRecordExample(); GroupPurchaseRecordExample example = new GroupPurchaseRecordExample();
...@@ -39,6 +48,11 @@ public class GroupPurchaseRecordDaoImpl implements GroupPurchaseRecordDao { ...@@ -39,6 +48,11 @@ public class GroupPurchaseRecordDaoImpl implements GroupPurchaseRecordDao {
return groupPurchaseRecordMapper.updateByExampleSelective(groupPurchaseRecord, example); return groupPurchaseRecordMapper.updateByExampleSelective(groupPurchaseRecord, example);
} }
@Override
public int updateByPrimaryKey(GroupPurchaseRecord groupPurchaseRecord) {
groupPurchaseRecord.setUpdateTime(new Date());
return groupPurchaseRecordMapper.updateByPrimaryKeySelective(groupPurchaseRecord);
}
@Override @Override
public long summaryItemNum(GroupPurchaseRecordRequestDto dto) { public long summaryItemNum(GroupPurchaseRecordRequestDto dto) {
......
...@@ -594,13 +594,14 @@ public class WxPayCallbackController { ...@@ -594,13 +594,14 @@ public class WxPayCallbackController {
redisUtils.set(refundId, refundId); redisUtils.set(refundId, refundId);
//退款成功 //退款成功
if (refundNotification.getRefundStatus().equals(Status.SUCCESS)){ if (refundNotification.getRefundStatus().equals(Status.SUCCESS)){
String successTime = refundNotification.getSuccessTime();
//查询系统中订单现在的状态,避免重复更新 //查询系统中订单现在的状态,避免重复更新
DistributionOrder distributionOrder = distributionOrderDao.findById(distributionOrderId); DistributionOrder distributionOrder = distributionOrderDao.findById(distributionOrderId);
if (distributionOrderId.startsWith(CommConsts.DISTRIBUTION_ORDER_PREFIX)) {
//只有在订单状态为退款处理中,才进行退款成功的状态修改 //只有在订单状态为退款处理中,才进行退款成功的状态修改
if (distributionOrder.getState() == DistributionEnum.DistributionOrderStateEnum.REFUNDING.getCode()) { if (distributionOrder.getState() == DistributionEnum.DistributionOrderStateEnum.REFUNDING.getCode()) {
//订单改为已取消的状态 //订单改为已取消的状态
distributionOrderDao.updateState(distributionOrderId, DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode()); distributionOrderDao.updateState(distributionOrderId, DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
String successTime = refundNotification.getSuccessTime();
//退款单状态改为成功 //退款单状态改为成功
RefundOrder refundOrder = new RefundOrder(); RefundOrder refundOrder = new RefundOrder();
refundOrder.setRefundId(refundId); refundOrder.setRefundId(refundId);
...@@ -617,6 +618,18 @@ public class WxPayCallbackController { ...@@ -617,6 +618,18 @@ public class WxPayCallbackController {
returnMap.put("message", "成功"); returnMap.put("message", "成功");
return JsonUtils.from(returnMap); return JsonUtils.from(returnMap);
} }
} else if (distributionOrderId.startsWith(CommConsts.GROUPPURCHASE_DEPOSIT_PREFIX)) {
//团购定金交易单的退款处理
//退款单状态改为成功
RefundOrder refundOrder = new RefundOrder();
refundOrder.setRefundId(refundId);
refundOrder.setWxRefundId(refundNotification.getRefundId());
refundOrder.setUpdateTime(new Date());
refundOrder.setSuccessTime(TimeUtil.wxTimeConvertToDate(successTime));
refundOrder.setUserReceivedAccount(refundNotification.getUserReceivedAccount());
refundOrder.setState(RefundOrderEnum.StateEnum.SUCCESS.getCode());
refundOrderDao.update(refundOrder);
}
} else { } else {
//退款单状态改为失败 //退款单状态改为失败
RefundOrder refundOrder = new RefundOrder(); RefundOrder refundOrder = new RefundOrder();
......
package com.wwdz.ch.wx.entity.vo.distribution;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Map;
@Data
public class GroupPurchaseItemVo implements Entity {
/**
* 商品id
*/
private Long itemId;
/**
* 商品名称
*/
private String itemName;
/**
* 用于列表展示的图片对象
*/
private Map<String, Object> homePageImage;
/**
* 商品详细介绍,是富文本格式
*/
private String description;
/**
* 头像
*/
private String creatorAvatar;
/**
* 简介
*/
private String creatorProfile;
private Long creatorId;
private String creatorName;
/**
* 是否订阅了待成团消息
*/
private Boolean isSubscribedOfCloseToSuccess;
/**
* 是否订阅了尾款支付提醒消息
*/
private Boolean isSubscribedOfPay;
/**
* 折扣相关信息、进度
*/
private Map<String, Object> discountInfo;
}
...@@ -56,7 +56,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -56,7 +56,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
private static final Logger logger = LoggerFactory.getLogger(DistributionOrderServiceImpl.class); private static final Logger logger = LoggerFactory.getLogger(DistributionOrderServiceImpl.class);
private final static String DISTRIBUTION_ORDER_PREFIX = "DA"; private final static String DISTRIBUTION_ORDER_PREFIX = CommConsts.DISTRIBUTION_ORDER_PREFIX;
private final static String SECRET = "117eb48AX0864490fbe4d1ef081B9cc25"; private final static String SECRET = "117eb48AX0864490fbe4d1ef081B9cc25";
...@@ -1116,8 +1116,11 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -1116,8 +1116,11 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrderDetailVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(distributionOrder.getType())); distributionOrderDetailVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(distributionOrder.getType()));
DistributorProfit distributorProfit = distributorProfitDao.findByIdOfDistributor(dto.getDistributionOrderId(), distributionOrder.getSellerId()); DistributorProfit distributorProfit = distributorProfitDao.findByIdOfDistributor(dto.getDistributionOrderId(), distributionOrder.getSellerId());
if (distributorProfit != null) { if (distributorProfit != null) {
if (distributionOrder.getType() != DistributionEnum.DistributionTypeEnum.AUCTION.getCode()
&& distributionOrder.getType() != DistributionEnum.DistributionTypeEnum.GROUP_PURCHASE.getCode()) {
distributionOrderDetailVo.setChannelCost(PriceUtil.convertPriceFenToYuan(distributorProfit.getChannelCost())); distributionOrderDetailVo.setChannelCost(PriceUtil.convertPriceFenToYuan(distributorProfit.getChannelCost()));
distributionOrderDetailVo.setIntroduceCost(PriceUtil.convertPriceFenToYuan(distributorProfit.getIntroduceCost())); distributionOrderDetailVo.setIntroduceCost(PriceUtil.convertPriceFenToYuan(distributorProfit.getIntroduceCost()));
}
FollowFansRecordRequestDto followFansRecordRequestDto = new FollowFansRecordRequestDto(); FollowFansRecordRequestDto followFansRecordRequestDto = new FollowFansRecordRequestDto();
followFansRecordRequestDto.setFollowerId(supplierItem.getCreatorId()); followFansRecordRequestDto.setFollowerId(supplierItem.getCreatorId());
followFansRecordRequestDto.setFansId(distributionOrder.getBuyerId()); followFansRecordRequestDto.setFansId(distributionOrder.getBuyerId());
...@@ -1359,9 +1362,5 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -1359,9 +1362,5 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
return Result.failed(); return Result.failed();
} }
public static void main(String[] args) {
BigDecimal bigDecimal = new BigDecimal("15.00");
bigDecimal = PriceUtil.convertToDivide(bigDecimal);
System.out.println(bigDecimal.doubleValue());
}
} }
package com.wwdz.ch.wx.service.distribution; package com.wwdz.ch.wx.service.distribution;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto; import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto;
import java.util.Map; import java.util.Map;
public interface GroupPurchaseService { public interface GroupPurchaseService {
/**
* 查询团购商品
* @param dto
* @return
*/
Result findList(GroupPurchaseConfigRequestDto dto);
/**
* 查询团购商品详情
* @param dto
* @return
*/
Result findItemDetail(GroupPurchaseConfigRequestDto dto);
/** /**
* 支付团购定金 * 支付团购定金
* @param dto * @param dto
...@@ -14,6 +31,15 @@ public interface GroupPurchaseService { ...@@ -14,6 +31,15 @@ public interface GroupPurchaseService {
*/ */
Result payDeposit(GroupPurchaseRecordRequestDto dto); Result payDeposit(GroupPurchaseRecordRequestDto dto);
/**
* 取消订单,退定金
* @param dto
* @return
*/
Result cancelDeposit(GroupPurchaseRecordRequestDto dto);
/** /**
* 查询团购当前进度 * 查询团购当前进度
* @param dto * @param dto
......
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