Commit 874548cc by 吕明尚

抖音优惠卷对接完成

parent 468fd578
package share.web.controller.system;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import share.common.annotation.Log;
import share.common.core.controller.BaseController;
import share.common.core.domain.AjaxResult;
import share.common.core.page.TableDataInfo;
import share.common.enums.BusinessType;
import share.common.utils.poi.ExcelUtil;
import share.system.domain.SOrder;
import share.system.domain.vo.SOrderDto;
import share.system.request.OrderRefundRequest;
import share.system.service.ISOrderService;
import share.common.utils.poi.ExcelUtil;
import share.common.core.page.TableDataInfo;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 订单Controller
......@@ -40,9 +39,7 @@ public class SOrderController extends BaseController
@GetMapping("/list")
public TableDataInfo list(SOrder sOrder)
{
startPage();
List<SOrder> list = sOrderService.selectSOrderList(sOrder);
return getDataTable(list);
return sOrderService.pageList(sOrder);
}
/**
......
package share.common.core.page;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -25,6 +26,35 @@ public class TableDataInfo implements Serializable
private String msg;
/**
* 总金额
*/
private BigDecimal totalAmount;
/**
* 实付金额
*/
private BigDecimal amount;
/**
* 已使用总金额
*/
private BigDecimal usedAmount;
/**
* 已使用实付金额
*/
private BigDecimal usedPayAmount;
/**
* 以退款总金额
*/
private BigDecimal refundAmount;
/**
* 以退款实付金额
*/
private BigDecimal refundPayAmount;
/**
* 表格数据对象
*/
public TableDataInfo()
......@@ -33,7 +63,7 @@ public class TableDataInfo implements Serializable
/**
* 分页
*
*
* @param list 列表数据
* @param total 总记录数
*/
......@@ -78,8 +108,55 @@ public class TableDataInfo implements Serializable
return msg;
}
public void setMsg(String msg)
{
public void setMsg(String msg) {
this.msg = msg;
}
public BigDecimal getTotalAmount() {
return totalAmount;
}
public void setTotalAmount(BigDecimal totalAmount) {
this.totalAmount = totalAmount;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public BigDecimal getUsedAmount() {
return usedAmount;
}
public void setUsedAmount(BigDecimal usedAmount) {
this.usedAmount = usedAmount;
}
public BigDecimal getUsedPayAmount() {
return usedPayAmount;
}
public void setUsedPayAmount(BigDecimal usedPayAmount) {
this.usedPayAmount = usedPayAmount;
}
public BigDecimal getRefundAmount() {
return refundAmount;
}
public void setRefundAmount(BigDecimal refundAmount) {
this.refundAmount = refundAmount;
}
public BigDecimal getRefundPayAmount() {
return refundPayAmount;
}
public void setRefundPayAmount(BigDecimal refundPayAmount) {
this.refundPayAmount = refundPayAmount;
}
}
......@@ -10,15 +10,27 @@ import share.common.enums.UserStatusEnum;
import share.common.enums.YesNoEnum;
import share.system.domain.SConsumerCoupon;
import share.system.service.ISConsumerCouponService;
import share.system.service.ISOrderService;
import share.system.service.ISStoreService;
import share.system.service.QPService;
import share.system.service.impl.QPServiceImpl;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@Component("couponRetryTask")
public class CouponRetryTask {
@Autowired
private ISConsumerCouponService sConsumerCouponService;
@Autowired
private ISStoreService storeService;
@Autowired
private QPService qpService;
@Autowired
private ISOrderService orderService;
private static final Logger logger = LoggerFactory.getLogger(QPServiceImpl.class);
public void AuToRetryCoupon() {
......@@ -37,4 +49,37 @@ public class CouponRetryTask {
sConsumerCouponService.updateBatchById(expiredSConsumerCounpons);
}
}
// //自动生成优惠卷购买金额
// public void AutoGenerateCoupon() {
// LambdaQueryWrapper<SConsumerCoupon> consumerCouponWrapper = new LambdaQueryWrapper<>();
// List<SStore> list = storeService.list();
// //去除没open_shop_uuid的store
// list = list.stream().filter(item -> item.getOpenShopUuid() != null).collect(Collectors.toList());
// LambdaQueryWrapper<SOrder> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
// //优惠卷id不等于空
// orderLambdaQueryWrapper.isNotNull(SOrder::getCouponId);
// List<SOrder> orderList = orderService.list(orderLambdaQueryWrapper);
// //查询团购劵,未删除的优惠卷
// consumerCouponWrapper.eq(SConsumerCoupon::getIsDelete, YesNoEnum.no.getIndex());
// consumerCouponWrapper.eq(SConsumerCoupon::getCouponType, CouponTypeEnum.CASH.getCode());
// List<SConsumerCoupon> sConsumerCoupons = sConsumerCouponService.list(consumerCouponWrapper);
// if (!CollectionUtils.isEmpty(sConsumerCoupons)) {
// List<SStore> finalList = list;
// sConsumerCoupons.stream().forEach(item -> {
// TuangouReceiptGetConsumedReponseEntity getconsumed = qpService.getconsumed(item.getCouponCode(),
// finalList.stream().filter(store -> store.getId().equals(item.getStoreId())).findFirst().get().getOpenShopUuid());
// item.setCouponPayPrice(BigDecimal.valueOf(getconsumed.getDeal_price()));
// });
// orderList.stream().forEach(item -> {
// sConsumerCoupons.stream().forEach(coupon -> {
// if (item.getCouponId().equals(coupon.getId())) {
// coupon.setCouponPayPrice(item.getPayPrice());
// }
// });
// });
// orderService.updateBatchById(orderList);
// sConsumerCouponService.updateBatchById(sConsumerCoupons);
// }
// }
}
package share.system.service;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import share.common.core.page.TableDataInfo;
import share.system.domain.SConsumerCoupon;
import share.system.domain.SOrder;
import share.system.domain.vo.OrderVo;
import share.system.domain.vo.SOrderDto;
import share.system.domain.vo.SOrderVo;
import share.system.request.CreateOrderRequest;
......@@ -15,6 +12,9 @@ import share.system.request.OrderRefundRequest;
import share.system.response.ComputedOrderPriceResponse;
import share.system.response.OrderPayResultResponse;
import java.util.Date;
import java.util.List;
/**
* 订单Service接口
*
......@@ -190,4 +190,6 @@ public interface ISOrderService extends IService<SOrder>
int modifyOrder(SOrderDto sOrderDto);
TableDataInfo pageList(SOrder sOrder);
}
......@@ -20,6 +20,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import share.common.constant.Constants;
import share.common.core.page.PageDomain;
import share.common.core.page.TableDataInfo;
import share.common.core.page.TableSupport;
import share.common.core.redis.RedisUtil;
import share.common.enums.*;
import share.common.exception.base.BaseException;
......@@ -285,6 +288,56 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
return baseMapper.updateSOrder(sOrder);
}
@Override
public TableDataInfo pageList(SOrder sOrder) {
List<SOrder> sOrders = selectSOrderList(sOrder);
BigDecimal totalAmount = new BigDecimal("0.00");
BigDecimal amount = new BigDecimal("0.00");
//已使用总金额
BigDecimal usedAmount = new BigDecimal("0.00");
//已使用实付金额
BigDecimal usedPayAmount = new BigDecimal("0.00");
//以退款总金额
BigDecimal refundAmount = new BigDecimal("0.00");
//以退款实付金额
BigDecimal refundPayAmount = new BigDecimal("0.00");
if (CollectionUtils.isNotEmpty(sOrders)) {
for (SOrder item : sOrders) {
totalAmount = totalAmount.add(item.getTotalPrice());
amount = amount.add(item.getPayPrice());
if (item.getPayStatus().equals(YesNoEnum.yes.getIndex()) && item.getStatus().equals(OrderStatusEnum.USED.getCode())) {
usedAmount = usedAmount.add(item.getTotalPrice());
usedPayAmount = usedPayAmount.add(item.getPayPrice());
}
if (item.getRefundStatus().equals(RefundStatusEnum.REFUNDED.getCode())) {
refundAmount = refundAmount.add(item.getTotalPrice());
refundPayAmount = refundPayAmount.add(item.getPayPrice());
}
}
}
sOrders.sort(Comparator.comparing(SOrder::getCreateTime).reversed());
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
int start = (pageNum - 1) * pageSize;
int end = Math.min(start + pageSize, sOrders.size());
List<SOrder> pagedList = sOrders.subList(start, end);
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setRows(pagedList);
tableDataInfo.setTotal(sOrders.size());
tableDataInfo.setCode(200);
tableDataInfo.setMsg("查询成功");
tableDataInfo.setTotalAmount(totalAmount);
tableDataInfo.setAmount(amount);
tableDataInfo.setUsedAmount(usedAmount);
tableDataInfo.setUsedPayAmount(usedPayAmount);
tableDataInfo.setRefundAmount(refundAmount);
tableDataInfo.setRefundPayAmount(refundPayAmount);
return tableDataInfo;
}
/**
* 新增订单
*
......
......@@ -31,7 +31,9 @@ import share.system.service.ISCouponService;
import share.system.service.ISStoreService;
import share.system.service.TiktokService;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
......@@ -75,16 +77,20 @@ public class TiktokServiceImpl implements TiktokService {
private static final Logger logger = LoggerFactory.getLogger(TiktokServiceImpl.class);
public static void main(String[] args) {
public static void main(String[] args) throws UnsupportedEncodingException {
// String result = HttpRequest.get(TiktokUrlEnum.CERTIFICATE_PREPARE.getUrl())
// .contentType("application/json")
// .header("access-token", "clt.535c504322d5cda164387eddbd878ddcGuefIe0UR368DkctG9ZzVehCOTMi")
// .form("code", "102003486992130").form("poiId", "7315287081226340378").execute().body();
// .header("access-token", "clt.be5f5d52c4a0249bbf7b32b3433a3a5bk1ShUolg1t2kNB02qFYfWUlTVfmT")
// .form("code", "102003486992130").form("poiId","7315287081226340378").execute().body();
// JSONObject entries = new JSONObject(result);
// JSONObject data = entries.getJSONObject("data");
// System.out.println(data);
Integer expireTime = 1737388799;
System.out.println(new Date(expireTime * 1000L));
// System.out.println(entries);
String encode = URLEncoder.encode("CgYIASAHKAESLgosTJy3Dvc9g8NcWfdi5dDijfzEj39lpPPZbGBaxIwYRw8Uf7kwvhb4DpBg75kaAA==", "UTF-8");
String result = HttpRequest.get(TiktokUrlEnum.CERTIFICATE_GET.getUrl())
.contentType("application/json")
.header("access-token", "clt.be5f5d52c4a0249bbf7b32b3433a3a5bk1ShUolg1t2kNB02qFYfWUlTVfmT")
.form("encrypted_code", encode).execute().body();
JSONObject entries = new JSONObject(result);
System.out.println(entries);
}
@Override
public void clientToken() {
......@@ -206,14 +212,21 @@ public class TiktokServiceImpl implements TiktokService {
@Override
public JSONObject certificateGet(String encryptedCode) {
String accessToken = obtain();
String encode;
try {
encode = URLEncoder.encode(encryptedCode, "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
// String url = "https://open.douyin.com/goodlife/v1/fulfilment/certificate/get/";
String result = HttpRequest.get(TiktokUrlEnum.CERTIFICATE_GET.getUrl())
.contentType("application/json")
.header("access-token", accessToken)
.form("encrypted_code", encryptedCode).execute().body();
.form("encrypted_code", encode).execute().body();
JSONObject entries = new JSONObject(result);
JSONObject data = entries.getJSONObject("data");
if (!data.getStr("error_code").equals(ErrorCodeEnum.SUCCESS.getCode())) {
logger.error("抖音获取核销信息失败:{}", data.getStr("description"));
throw new BaseException(data.getStr("description"));
}
return data;
......
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