|
@@ -1,472 +1,472 @@
|
|
|
-package com.fdkankan.order.service.impl;
|
|
|
-
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.fdkankan.common.constant.*;
|
|
|
-import com.fdkankan.common.exception.BusinessException;
|
|
|
-import com.fdkankan.common.util.DateUtil;
|
|
|
-import com.fdkankan.common.util.FileSizeUtil;
|
|
|
-import com.fdkankan.common.util.FileUtils;
|
|
|
-import com.fdkankan.common.util.NumberUtils;
|
|
|
-import com.fdkankan.goods.common.SkuCache;
|
|
|
-import com.fdkankan.goods.entity.*;
|
|
|
-import com.fdkankan.goods.service.*;
|
|
|
-import com.fdkankan.goods.vo.ResponseGoods;
|
|
|
-import com.fdkankan.goods.vo.ResponseGoodsSku;
|
|
|
-import com.fdkankan.order.constant.OrderEnum;
|
|
|
-import com.fdkankan.order.entity.Invoice;
|
|
|
-import com.fdkankan.order.entity.Order;
|
|
|
-import com.fdkankan.order.entity.OrderItem;
|
|
|
-import com.fdkankan.order.mapper.IOrderMapper;
|
|
|
-import com.fdkankan.order.service.*;
|
|
|
-import com.fdkankan.order.vo.ResponseCommerceOrder;
|
|
|
-import com.fdkankan.order.vo.ResponseExpansionOrder;
|
|
|
-import com.fdkankan.pay.alipay.sdk.AlipayService;
|
|
|
-import com.fdkankan.pay.wx.WXPayDefaultConfig;
|
|
|
-import com.fdkankan.pay.wx.sdk.WXPay;
|
|
|
-import com.fdkankan.pay.wx.sdk.WXPayConstants;
|
|
|
-import com.fdkankan.user.entity.SSOUser;
|
|
|
-import com.fdkankan.user.entity.UserIncrement;
|
|
|
-import com.fdkankan.user.request.*;
|
|
|
-import com.fdkankan.user.service.IUserIncrementService;
|
|
|
-import com.fdkankan.user.service.IUserService;
|
|
|
-import com.fdkankan.user.vo.*;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.joda.time.DateTime;
|
|
|
-import org.springframework.beans.BeanUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.data.redis.core.RedisTemplate;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
-import javax.annotation.Resource;
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
-/**
|
|
|
- * <p>
|
|
|
- * 订单表 服务实现类
|
|
|
- * </p>
|
|
|
- *
|
|
|
- * @author
|
|
|
- * @since 2021-12-24
|
|
|
- */
|
|
|
-@Service
|
|
|
-public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implements IOrderService {
|
|
|
-
|
|
|
- @Resource
|
|
|
- private RedisTemplate<String,String> redisTemplate;
|
|
|
- @Autowired
|
|
|
- private IOrderItemService orderItemService;
|
|
|
- @Autowired
|
|
|
- private IInvoiceService invoiceService;
|
|
|
- @Autowired
|
|
|
- private IUserService userService;
|
|
|
- @Autowired
|
|
|
- private ICartService cartService;
|
|
|
- @Autowired
|
|
|
- private IGoodsService goodsService;
|
|
|
- @Autowired
|
|
|
- private IGoodsSkuService goodsSkuService;
|
|
|
- @Autowired
|
|
|
- private ICameraService cameraService;
|
|
|
- @Autowired
|
|
|
- private ICameraDetailService cameraDetailService;
|
|
|
- @Autowired
|
|
|
- private ICameraSpaceService cameraSpaceService;
|
|
|
- @Autowired
|
|
|
- private IVirtualOrderService virtualOrderService;
|
|
|
- @Autowired
|
|
|
- private IExpansionOrderService expansionOrderService;
|
|
|
- @Autowired
|
|
|
- private ICommerceOrderService commerceOrderService;
|
|
|
- @Autowired
|
|
|
- private IIncrementOrderService incrementOrderService;
|
|
|
- @Autowired
|
|
|
- private IDownloadOrderService downloadOrderService;
|
|
|
- @Resource
|
|
|
- private AlipayService alipayService;
|
|
|
- @Autowired
|
|
|
- private IUserIncrementService userIncrementService;
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseOrder getOrderDetail(Long orderId) {
|
|
|
- Order order = this.getById(orderId);
|
|
|
- ResponseOrder responseOrder = new ResponseOrder();
|
|
|
- if(order == null){
|
|
|
- return responseOrder;
|
|
|
- }
|
|
|
- BeanUtils.copyProperties(order,responseOrder);
|
|
|
-
|
|
|
- List<ResponseOrderItem> responseOrderItems =orderItemService.getByOrderId(orderId);
|
|
|
- responseOrder.setOrderItems(responseOrderItems);
|
|
|
-
|
|
|
- Invoice invoice = invoiceService.getByOrderId(orderId);
|
|
|
- if(invoice != null){
|
|
|
- ResponseInvoice responseInvoice = new ResponseInvoice();
|
|
|
- BeanUtils.copyProperties(invoice, responseInvoice);
|
|
|
- responseOrder.setInvoice(responseInvoice);
|
|
|
- }
|
|
|
- return responseOrder;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Page<ResponseOrder> getOrders(RequestOrder param, String token) {
|
|
|
- SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
- QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.lambda().eq(Order::getUserId,ssoUser.getId());
|
|
|
- queryWrapper.lambda().eq(Order::getPaymentStatus, OrderEnum.PaymentStatus.paid);
|
|
|
- queryWrapper.lambda().orderByDesc(Order::getOrderTime);
|
|
|
- Page<Order> orderPage = this.page(new Page<>(param.getPageNum(),param.getPageSize()), queryWrapper);
|
|
|
-
|
|
|
- List<ResponseOrder> voList = orderPage.getRecords().parallelStream().map(order -> {
|
|
|
- ResponseOrder vo = new ResponseOrder();
|
|
|
- BeanUtils.copyProperties(order, vo);
|
|
|
- return vo;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- Page<ResponseOrder> voPage = new Page<ResponseOrder>(param.getPageNum(), param.getPageSize());
|
|
|
- voPage.setTotal(orderPage.getTotal());
|
|
|
- voPage.setRecords(voList);
|
|
|
- return voPage;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public String cancelOrder(RequestOrder param, String token) {
|
|
|
- Order order = this.getById(param.getOrderId());
|
|
|
- order.setOrderStatus(OrderEnum.OrderStatus.invalid.name());
|
|
|
- order.setRecStatus("I");
|
|
|
- if(!this.updateById(order)){
|
|
|
- throw new BusinessException(ErrorCode.ERROR_MSG);
|
|
|
- }
|
|
|
- return ServerCode.SUCCESS.message();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public String receiptOrder(RequestOrder param, String token) {
|
|
|
- Order orderEntity = this.getById(param.getOrderId());
|
|
|
- orderEntity.setShippingStatus(OrderEnum.ShippingStatus.received.name());
|
|
|
- orderEntity.setOrderStatus(OrderEnum.OrderStatus.completed.name());
|
|
|
- if(!this.updateById(orderEntity)){
|
|
|
- throw new BusinessException(ErrorCode.ERROR_MSG);
|
|
|
- }
|
|
|
- return ServerCode.SUCCESS.message();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseInvoice getInvoiceDetail(RequestOrder param, String token) {
|
|
|
- List<ResponseOrderItem> responseOrderItems = orderItemService.getByOrderId(param.getOrderId());
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- if (responseOrderItems != null && responseOrderItems.size() > 0){
|
|
|
- for (ResponseOrderItem vo : responseOrderItems){
|
|
|
- sb.append(vo.getGoodsCount()).append("*").append(vo.getGoodsName()).append(" ");
|
|
|
- }
|
|
|
- }
|
|
|
- Invoice invoice = invoiceService.getByOrderId(param.getOrderId());
|
|
|
- ResponseInvoice responseInvoice= new ResponseInvoice();
|
|
|
- if (invoice != null){
|
|
|
- responseInvoice = new ResponseInvoice();
|
|
|
- responseInvoice.setType(invoice.getType());
|
|
|
- responseInvoice.setTitle(invoice.getTitle());
|
|
|
- responseInvoice.setDescription(sb.toString());
|
|
|
- }
|
|
|
- return responseInvoice;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseOrder placeOrder(RequestPlaceOrder order, String token) {
|
|
|
- SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
- // 删除购物车
|
|
|
- String cartIdsStr = "";
|
|
|
- RequestCart[] carts = order.getGoods();
|
|
|
- for (int i = 0; i < carts.length; i++){
|
|
|
- cartIdsStr += carts[i].getId();
|
|
|
- if (i != carts.length - 1) cartIdsStr += ",";
|
|
|
- }
|
|
|
- RequestCart param = new RequestCart();
|
|
|
- param.setIds(cartIdsStr);
|
|
|
- cartService.removeCarts(param,token);
|
|
|
- // 下单
|
|
|
- List<OrderItem> orderItemEntities = new ArrayList<>();
|
|
|
- OrderItem orderItemEntity = null;
|
|
|
- int goodsTotalCount = 0;
|
|
|
- BigDecimal goodsAmount = new BigDecimal(0);
|
|
|
-
|
|
|
- for(RequestCart requestCart : order.getGoods()){
|
|
|
- goodsTotalCount += requestCart.getGoodsCount();
|
|
|
- ResponseGoods responseGoods = goodsService.getByGoodsId(requestCart.getGoodsId());
|
|
|
- ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(requestCart.getSkuSn());
|
|
|
- if(responseGoods == null || sku == null){
|
|
|
- continue;
|
|
|
- }
|
|
|
- orderItemEntity = new OrderItem();
|
|
|
- orderItemEntity.setExpressNum(null);
|
|
|
- orderItemEntity.setGoodsPrice(order.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice());
|
|
|
- orderItemEntity.setGoodsId(requestCart.getGoodsId());
|
|
|
- orderItemEntity.setShippingStatus(OrderEnum.ShippingStatus.unshipped.name());
|
|
|
- orderItemEntity.setExpressName("顺丰速运");
|
|
|
- orderItemEntity.setGoodsCount(requestCart.getGoodsCount());
|
|
|
- orderItemEntity.setGoodsName(responseGoods.getName());
|
|
|
- orderItemEntity.setGoodsSn(responseGoods.getGoodsSn());
|
|
|
- if (StringUtils.isNotEmpty(requestCart.getSkuSn())){
|
|
|
- orderItemEntity.setSkuSn(requestCart.getSkuSn());
|
|
|
- }
|
|
|
- orderItemEntities.add(orderItemEntity);
|
|
|
- goodsAmount = goodsAmount.add(orderItemEntity.getGoodsPrice().multiply(new BigDecimal(orderItemEntity.getGoodsCount())));
|
|
|
- }
|
|
|
- Order orderEntity = new Order();
|
|
|
- orderEntity.setOrderSn(NumberUtils.getOrderSn());
|
|
|
- orderEntity.setOrderTime(new Date());
|
|
|
- orderEntity.setOrderStatus(OrderEnum.OrderStatus.unprocessed.name());
|
|
|
- orderEntity.setPaymentStatus(OrderEnum.PaymentStatus.unpaid.name());
|
|
|
- orderEntity.setShippingStatus(OrderEnum.ShippingStatus.unshipped.name());
|
|
|
- orderEntity.setPaymentTypeName(order.getPayType());
|
|
|
- orderEntity.setUserId(ssoUser.getId());
|
|
|
- orderEntity.setGoodsTotalCount(goodsTotalCount);
|
|
|
- orderEntity.setGoodsAmount(goodsAmount);
|
|
|
- orderEntity.setTotalAmount(goodsAmount);
|
|
|
- orderEntity.setPaidAmount(BigDecimal.ZERO);
|
|
|
- orderEntity.setExpressAmount(BigDecimal.ZERO);
|
|
|
- orderEntity.setDeliveryTypeName("快递运输");
|
|
|
- if (order.getReceiver() != null){
|
|
|
- orderEntity.setShipAddress(order.getReceiver().getShipAddress());
|
|
|
- orderEntity.setShipAreaPath(order.getReceiver().getShipAreaPath());
|
|
|
- orderEntity.setShipMobile(order.getReceiver().getShipMobile());
|
|
|
- orderEntity.setShipName(order.getReceiver().getShipName());
|
|
|
- }
|
|
|
- orderEntity.setAbroad(order.getAbroad());
|
|
|
- if(!this.save(orderEntity)){
|
|
|
- throw new BusinessException(ErrorCode.ERROR_MSG);
|
|
|
- }
|
|
|
- for (OrderItem itemEntity : orderItemEntities) {
|
|
|
- itemEntity.setOrderId(orderEntity.getId());
|
|
|
- if(!orderItemService.save(itemEntity)){
|
|
|
- throw new BusinessException(ErrorCode.ERROR_MSG);
|
|
|
- }
|
|
|
- }
|
|
|
- ResponseOrder responseOrder = new ResponseOrder();
|
|
|
- BeanUtils.copyProperties(orderEntity, responseOrder);
|
|
|
-
|
|
|
- // 添加发票信息
|
|
|
- if (order.getInvoice() != null && StringUtils.isNotEmpty(order.getInvoice().getInvoiceType())){
|
|
|
- order.setOrderId(orderEntity.getId());
|
|
|
- order.getInvoice().setAmount(responseOrder.getTotalAmount().toString());
|
|
|
- invoiceService.saveInvoiceByOrder(ssoUser.getId(),order);
|
|
|
- }
|
|
|
- return responseOrder;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseVirtualOrder rechargeOrder(RequestCamera param, String token) {
|
|
|
- SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
- Camera camera = cameraService.getById(param.getCameraId());
|
|
|
- if(camera == null){
|
|
|
- throw new BusinessException(CameraConstant.FAILURE_6003);
|
|
|
- }
|
|
|
- CameraDetail cameraDetail = cameraDetailService.getByCameraId(param.getCameraId());
|
|
|
- int sub = Integer.valueOf(cameraDetail.getBalance()) + param.getPoints();
|
|
|
- if (sub > Constant.MAXPOINTS) {
|
|
|
- throw new BusinessException(CameraConstant.FAILURE_6004);
|
|
|
- }
|
|
|
- return virtualOrderService.saveByCamera(ssoUser.getId(),param);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseExpansionOrder expansionOrder(RequestExpansionOrder order, String token) {
|
|
|
- SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
- //支付美金,只能paypal支付
|
|
|
- if(order.getAbroad() == 1 && order.getPayType() != 2){
|
|
|
- throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
|
|
|
- }
|
|
|
- ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
|
|
|
- if(sku == null ){
|
|
|
- throw new BusinessException(ErrorCode.ERROR_MSG);
|
|
|
- }
|
|
|
- int delay = 0;
|
|
|
- int dateNum = 0;
|
|
|
- double spaceSize = 0;
|
|
|
- //基础容量10G
|
|
|
- long baseSpace = 10;
|
|
|
- List<CameraSpace> cameraSpaceEntityList = cameraSpaceService.getListByCameraId(order.getCameraId());
|
|
|
- for(CameraSpace cameraSpaceEntity : cameraSpaceEntityList){
|
|
|
- dateNum = DateUtil.daysBetween(new Date(), cameraSpaceEntity.getSpaceEndTime());
|
|
|
- if(dateNum > 0){
|
|
|
- spaceSize = FileSizeUtil.formetFileSize(cameraSpaceEntity.getSpace(), FileSizeUtil.SIZETYPE_GB);
|
|
|
- //时间换算,(剩余天数*旧容量)/新容量 = 延期天数
|
|
|
- if((dateNum * (spaceSize - baseSpace)) % (sku.getUnitSize() - baseSpace) > 0){
|
|
|
- //无法整除天数+1
|
|
|
- delay += ((dateNum * (spaceSize - baseSpace)) / (sku.getUnitSize() - baseSpace)) + 1;
|
|
|
- }else {
|
|
|
- delay += (dateNum * (spaceSize - baseSpace)) / (sku.getUnitSize() - baseSpace);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return expansionOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice(),
|
|
|
- sku.getUnit(), sku.getUnitSize(), sku.getMonth(), delay);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseCommerceOrder commerceOrder(RequestCommerceOrder param, String token) {
|
|
|
- SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
- ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(param.getSkuSn());
|
|
|
- return commerceOrderService.saveByOrderParam(ssoUser.getId(), param, param.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice());
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseIncrementOrder incrementOrder(RequestIncrementOrder order, String token) {
|
|
|
- SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
- //支付美金,只能paypal支付
|
|
|
- if(order.getAbroad() == 1 && order.getPayType() != 2){
|
|
|
- throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
|
|
|
- }
|
|
|
- ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
|
|
|
- return incrementOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice());
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseDownloadOrder downloadOrder(RequestIncrementOrder order, String token) {
|
|
|
- SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
- //支付美金,只能paypal支付
|
|
|
- if(order.getAbroad() == 1 && order.getPayType() != 2){
|
|
|
- throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
|
|
|
- }
|
|
|
- ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
|
|
|
- return downloadOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice());
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Boolean queryOrderStatus(RequestVirtualOrder order, String token) throws Exception{
|
|
|
- Boolean success = false;
|
|
|
- String orderSn = order.getOrderSn();
|
|
|
- switch (order.getOrderType()){
|
|
|
- case 0:
|
|
|
- orderSn += "_entity";break;
|
|
|
- case 1:
|
|
|
- orderSn += "_recharge";break;
|
|
|
- case 2:
|
|
|
- orderSn += "_expansion";break;
|
|
|
- case 3:
|
|
|
- orderSn += "_commerce";break;
|
|
|
- case 4:
|
|
|
- orderSn += "_increment";break;
|
|
|
- case 5:
|
|
|
- orderSn += "_download";break;
|
|
|
- }
|
|
|
- switch (order.getPayType()){
|
|
|
- // 微信
|
|
|
- case 0:
|
|
|
- String orderSnE = redisTemplate.opsForValue().get(orderSn);
|
|
|
- log.warn("out_trade_no:" + orderSnE);
|
|
|
- if (StringUtils.isNotEmpty(orderSnE)){
|
|
|
- Map<String, String> data = new HashMap<String, String>();
|
|
|
- data.put("out_trade_no", orderSnE);
|
|
|
- WXPayDefaultConfig config = new WXPayDefaultConfig();
|
|
|
- WXPay wxPay = new WXPay(config);
|
|
|
- Map<String, String> resp = wxPay.orderQuery(data);
|
|
|
- if (resp.get("trade_state") != null && resp.get("trade_state").equals(WXPayConstants.SUCCESS)) {
|
|
|
- redisTemplate.delete(orderSnE);
|
|
|
- String pngPath = ConstantFilePath.BASE_PATH + ConstantFilePath.WEIXIN_QRCODE_FOLDER + orderSn + ".png";
|
|
|
- FileUtils.deleteFile(pngPath);
|
|
|
- success = true;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- // 支付宝
|
|
|
- case 1:
|
|
|
- log.warn("alipay out_trade_no:" + orderSn);
|
|
|
- String type = alipayService.tradeQuery(orderSn);
|
|
|
- log.warn("alipay type:" + type);
|
|
|
- if ("SUCCESS".equals(type)){
|
|
|
- success = true;
|
|
|
- }
|
|
|
- break;
|
|
|
- // paypal
|
|
|
- case 2:
|
|
|
- orderSn = orderSn.split("_")[0];
|
|
|
- log.warn("paypal out_trade_no:" + orderSn);
|
|
|
- Order byOrderSn = this.getByOrderSn(orderSn);
|
|
|
- if (byOrderSn!=null && OrderEnum.PaymentStatus.paid.name().equals(byOrderSn.getPaymentStatus())){
|
|
|
- success = true;
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- return success;
|
|
|
- }
|
|
|
-
|
|
|
- private Order getByOrderSn(String orderSn) {
|
|
|
- QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.lambda().eq(Order::getOrderSn,orderSn);
|
|
|
- List<Order> list = this.list(queryWrapper);
|
|
|
- if(list == null || list.size()<=0){
|
|
|
- return null;
|
|
|
- }
|
|
|
- return list.get(0);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseGoods getExpansionPrice(RequestCamera camera, String token) {
|
|
|
- String skuStr = SkuCache.skusMap.get(String.valueOf(camera.getDateType()));
|
|
|
- if (StringUtils.isEmpty(skuStr)){
|
|
|
- skuStr = SkuCache.skusMap.get("1");
|
|
|
- }
|
|
|
- String[] skus = skuStr.split(",");
|
|
|
- List<ResponseGoodsSku> skusList = new ArrayList<>();
|
|
|
- Long goodsId = null;
|
|
|
- for (String sku : skus){
|
|
|
- GoodsSku goodsSkuEntity = goodsSkuService.getBySkuSn(sku);
|
|
|
- if (goodsSkuEntity != null){
|
|
|
- ResponseGoodsSku responseGoodsSku = new ResponseGoodsSku();
|
|
|
- BeanUtils.copyProperties(goodsSkuEntity, responseGoodsSku);
|
|
|
- if (StringUtils.isNotEmpty(responseGoodsSku.getDescription())){
|
|
|
- try {
|
|
|
- JSONObject o = JSONObject.parseObject(responseGoodsSku.getDescription());
|
|
|
- responseGoodsSku.setUnit(o.getString("容量"));
|
|
|
- }catch (Exception e){}
|
|
|
- }
|
|
|
- skusList.add(responseGoodsSku);
|
|
|
- goodsId = goodsSkuEntity.getGoodsId();
|
|
|
- }
|
|
|
- }
|
|
|
- Goods goodsEntity = goodsService.getById(goodsId);
|
|
|
- ResponseGoods responseGoods = new ResponseGoods();
|
|
|
- BeanUtils.copyProperties(goodsEntity, responseGoods);
|
|
|
- responseGoods.setSkuList(skusList);
|
|
|
- DateTime dateTime = new DateTime();
|
|
|
- //camera.getDateType() = 2 为年,其余为月
|
|
|
- if (camera.getDateType() != 2){
|
|
|
- dateTime = dateTime.plusDays(31 * skusList.get(0).getMonth());
|
|
|
- }else{
|
|
|
- dateTime = dateTime.plusYears(1);
|
|
|
- }
|
|
|
- responseGoods.setDeadLine(dateTime.toDate().getTime());
|
|
|
- return responseGoods;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseGoodsSku getIncrementOrDownloadPrice(RequestCamera camera, String token) {
|
|
|
- if(camera.getDateType() == null){
|
|
|
- throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
|
|
|
- }
|
|
|
-
|
|
|
- if(camera.getDateType() != 5 && camera.getDateType() != 6){
|
|
|
- throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
|
|
|
- }
|
|
|
-
|
|
|
- DateTime dateTime = new DateTime();
|
|
|
-
|
|
|
- if(camera.getUserIncrementId() != null){
|
|
|
- UserIncrement userIncrementEntity = userIncrementService.getById(camera.getUserIncrementId());
|
|
|
- if(userIncrementEntity != null && userIncrementEntity.getIncrementEndTime().getTime() > new Date().getTime()){
|
|
|
- dateTime = new DateTime(userIncrementEntity.getIncrementEndTime());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- ResponseGoodsSku responseGoodsSku = goodsSkuService.getIncrementOrDownloadPrice(camera);
|
|
|
-
|
|
|
- //1年期限
|
|
|
- dateTime = dateTime.plusYears(1);
|
|
|
- responseGoodsSku.setDeadLine(dateTime.toDate().getTime());
|
|
|
- return responseGoodsSku;
|
|
|
- }
|
|
|
-}
|
|
|
+//package com.fdkankan.order.service.impl;
|
|
|
+//
|
|
|
+//import com.alibaba.fastjson.JSONObject;
|
|
|
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+//import com.fdkankan.common.constant.*;
|
|
|
+//import com.fdkankan.common.exception.BusinessException;
|
|
|
+//import com.fdkankan.common.util.DateUtil;
|
|
|
+//import com.fdkankan.common.util.FileSizeUtil;
|
|
|
+//import com.fdkankan.common.util.FileUtils;
|
|
|
+//import com.fdkankan.common.util.NumberUtils;
|
|
|
+//import com.fdkankan.goods.common.SkuCache;
|
|
|
+//import com.fdkankan.goods.entity.*;
|
|
|
+//import com.fdkankan.goods.service.*;
|
|
|
+//import com.fdkankan.goods.vo.ResponseGoods;
|
|
|
+//import com.fdkankan.goods.vo.ResponseGoodsSku;
|
|
|
+//import com.fdkankan.order.constant.OrderEnum;
|
|
|
+//import com.fdkankan.order.entity.Invoice;
|
|
|
+//import com.fdkankan.order.entity.Order;
|
|
|
+//import com.fdkankan.order.entity.OrderItem;
|
|
|
+//import com.fdkankan.order.mapper.IOrderMapper;
|
|
|
+//import com.fdkankan.order.service.*;
|
|
|
+//import com.fdkankan.order.vo.ResponseCommerceOrder;
|
|
|
+//import com.fdkankan.order.vo.ResponseExpansionOrder;
|
|
|
+//import com.fdkankan.pay.alipay.sdk.AlipayService;
|
|
|
+//import com.fdkankan.pay.wx.WXPayDefaultConfig;
|
|
|
+//import com.fdkankan.pay.wx.sdk.WXPay;
|
|
|
+//import com.fdkankan.pay.wx.sdk.WXPayConstants;
|
|
|
+//import com.fdkankan.user.entity.SSOUser;
|
|
|
+//import com.fdkankan.user.entity.UserIncrement;
|
|
|
+//import com.fdkankan.user.request.*;
|
|
|
+//import com.fdkankan.user.service.IUserIncrementService;
|
|
|
+//import com.fdkankan.user.service.IUserService;
|
|
|
+//import com.fdkankan.user.vo.*;
|
|
|
+//import org.apache.commons.lang3.StringUtils;
|
|
|
+//import org.joda.time.DateTime;
|
|
|
+//import org.springframework.beans.BeanUtils;
|
|
|
+//import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+//import org.springframework.data.redis.core.RedisTemplate;
|
|
|
+//import org.springframework.stereotype.Service;
|
|
|
+//
|
|
|
+//import javax.annotation.Resource;
|
|
|
+//import java.math.BigDecimal;
|
|
|
+//import java.util.*;
|
|
|
+//import java.util.stream.Collectors;
|
|
|
+//
|
|
|
+///**
|
|
|
+// * <p>
|
|
|
+// * 订单表 服务实现类
|
|
|
+// * </p>
|
|
|
+// *
|
|
|
+// * @author
|
|
|
+// * @since 2021-12-24
|
|
|
+// */
|
|
|
+//@Service
|
|
|
+//public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implements IOrderService {
|
|
|
+//
|
|
|
+// @Resource
|
|
|
+// private RedisTemplate<String,String> redisTemplate;
|
|
|
+// @Autowired
|
|
|
+// private IOrderItemService orderItemService;
|
|
|
+// @Autowired
|
|
|
+// private IInvoiceService invoiceService;
|
|
|
+// @Autowired
|
|
|
+// private IUserService userService;
|
|
|
+// @Autowired
|
|
|
+// private ICartService cartService;
|
|
|
+// @Autowired
|
|
|
+// private IGoodsService goodsService;
|
|
|
+// @Autowired
|
|
|
+// private IGoodsSkuService goodsSkuService;
|
|
|
+// @Autowired
|
|
|
+// private ICameraService cameraService;
|
|
|
+// @Autowired
|
|
|
+// private ICameraDetailService cameraDetailService;
|
|
|
+// @Autowired
|
|
|
+// private ICameraSpaceService cameraSpaceService;
|
|
|
+// @Autowired
|
|
|
+// private IVirtualOrderService virtualOrderService;
|
|
|
+// @Autowired
|
|
|
+// private IExpansionOrderService expansionOrderService;
|
|
|
+// @Autowired
|
|
|
+// private ICommerceOrderService commerceOrderService;
|
|
|
+// @Autowired
|
|
|
+// private IIncrementOrderService incrementOrderService;
|
|
|
+// @Autowired
|
|
|
+// private IDownloadOrderService downloadOrderService;
|
|
|
+// @Resource
|
|
|
+// private AlipayService alipayService;
|
|
|
+// @Autowired
|
|
|
+// private IUserIncrementService userIncrementService;
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public ResponseOrder getOrderDetail(Long orderId) {
|
|
|
+// Order order = this.getById(orderId);
|
|
|
+// ResponseOrder responseOrder = new ResponseOrder();
|
|
|
+// if(order == null){
|
|
|
+// return responseOrder;
|
|
|
+// }
|
|
|
+// BeanUtils.copyProperties(order,responseOrder);
|
|
|
+//
|
|
|
+// List<ResponseOrderItem> responseOrderItems =orderItemService.getByOrderId(orderId);
|
|
|
+// responseOrder.setOrderItems(responseOrderItems);
|
|
|
+//
|
|
|
+// Invoice invoice = invoiceService.getByOrderId(orderId);
|
|
|
+// if(invoice != null){
|
|
|
+// ResponseInvoice responseInvoice = new ResponseInvoice();
|
|
|
+// BeanUtils.copyProperties(invoice, responseInvoice);
|
|
|
+// responseOrder.setInvoice(responseInvoice);
|
|
|
+// }
|
|
|
+// return responseOrder;
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public Page<ResponseOrder> getOrders(RequestOrder param, String token) {
|
|
|
+// SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
+// QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
|
|
|
+// queryWrapper.lambda().eq(Order::getUserId,ssoUser.getId());
|
|
|
+// queryWrapper.lambda().eq(Order::getPaymentStatus, OrderEnum.PaymentStatus.paid);
|
|
|
+// queryWrapper.lambda().orderByDesc(Order::getOrderTime);
|
|
|
+// Page<Order> orderPage = this.page(new Page<>(param.getPageNum(),param.getPageSize()), queryWrapper);
|
|
|
+//
|
|
|
+// List<ResponseOrder> voList = orderPage.getRecords().parallelStream().map(order -> {
|
|
|
+// ResponseOrder vo = new ResponseOrder();
|
|
|
+// BeanUtils.copyProperties(order, vo);
|
|
|
+// return vo;
|
|
|
+// }).collect(Collectors.toList());
|
|
|
+// Page<ResponseOrder> voPage = new Page<ResponseOrder>(param.getPageNum(), param.getPageSize());
|
|
|
+// voPage.setTotal(orderPage.getTotal());
|
|
|
+// voPage.setRecords(voList);
|
|
|
+// return voPage;
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public String cancelOrder(RequestOrder param, String token) {
|
|
|
+// Order order = this.getById(param.getOrderId());
|
|
|
+// order.setOrderStatus(OrderEnum.OrderStatus.invalid.name());
|
|
|
+// order.setRecStatus("I");
|
|
|
+// if(!this.updateById(order)){
|
|
|
+// throw new BusinessException(ErrorCode.ERROR_MSG);
|
|
|
+// }
|
|
|
+// return ServerCode.SUCCESS.message();
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public String receiptOrder(RequestOrder param, String token) {
|
|
|
+// Order orderEntity = this.getById(param.getOrderId());
|
|
|
+// orderEntity.setShippingStatus(OrderEnum.ShippingStatus.received.name());
|
|
|
+// orderEntity.setOrderStatus(OrderEnum.OrderStatus.completed.name());
|
|
|
+// if(!this.updateById(orderEntity)){
|
|
|
+// throw new BusinessException(ErrorCode.ERROR_MSG);
|
|
|
+// }
|
|
|
+// return ServerCode.SUCCESS.message();
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public ResponseInvoice getInvoiceDetail(RequestOrder param, String token) {
|
|
|
+// List<ResponseOrderItem> responseOrderItems = orderItemService.getByOrderId(param.getOrderId());
|
|
|
+// StringBuilder sb = new StringBuilder();
|
|
|
+// if (responseOrderItems != null && responseOrderItems.size() > 0){
|
|
|
+// for (ResponseOrderItem vo : responseOrderItems){
|
|
|
+// sb.append(vo.getGoodsCount()).append("*").append(vo.getGoodsName()).append(" ");
|
|
|
+// }
|
|
|
+// }
|
|
|
+// Invoice invoice = invoiceService.getByOrderId(param.getOrderId());
|
|
|
+// ResponseInvoice responseInvoice= new ResponseInvoice();
|
|
|
+// if (invoice != null){
|
|
|
+// responseInvoice = new ResponseInvoice();
|
|
|
+// responseInvoice.setType(invoice.getType());
|
|
|
+// responseInvoice.setTitle(invoice.getTitle());
|
|
|
+// responseInvoice.setDescription(sb.toString());
|
|
|
+// }
|
|
|
+// return responseInvoice;
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public ResponseOrder placeOrder(RequestPlaceOrder order, String token) {
|
|
|
+// SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
+// // 删除购物车
|
|
|
+// String cartIdsStr = "";
|
|
|
+// RequestCart[] carts = order.getGoods();
|
|
|
+// for (int i = 0; i < carts.length; i++){
|
|
|
+// cartIdsStr += carts[i].getId();
|
|
|
+// if (i != carts.length - 1) cartIdsStr += ",";
|
|
|
+// }
|
|
|
+// RequestCart param = new RequestCart();
|
|
|
+// param.setIds(cartIdsStr);
|
|
|
+// cartService.removeCarts(param,token);
|
|
|
+// // 下单
|
|
|
+// List<OrderItem> orderItemEntities = new ArrayList<>();
|
|
|
+// OrderItem orderItemEntity = null;
|
|
|
+// int goodsTotalCount = 0;
|
|
|
+// BigDecimal goodsAmount = new BigDecimal(0);
|
|
|
+//
|
|
|
+// for(RequestCart requestCart : order.getGoods()){
|
|
|
+// goodsTotalCount += requestCart.getGoodsCount();
|
|
|
+// ResponseGoods responseGoods = goodsService.getByGoodsId(requestCart.getGoodsId());
|
|
|
+// ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(requestCart.getSkuSn());
|
|
|
+// if(responseGoods == null || sku == null){
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+// orderItemEntity = new OrderItem();
|
|
|
+// orderItemEntity.setExpressNum(null);
|
|
|
+// orderItemEntity.setGoodsPrice(order.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice());
|
|
|
+// orderItemEntity.setGoodsId(requestCart.getGoodsId());
|
|
|
+// orderItemEntity.setShippingStatus(OrderEnum.ShippingStatus.unshipped.name());
|
|
|
+// orderItemEntity.setExpressName("顺丰速运");
|
|
|
+// orderItemEntity.setGoodsCount(requestCart.getGoodsCount());
|
|
|
+// orderItemEntity.setGoodsName(responseGoods.getName());
|
|
|
+// orderItemEntity.setGoodsSn(responseGoods.getGoodsSn());
|
|
|
+// if (StringUtils.isNotEmpty(requestCart.getSkuSn())){
|
|
|
+// orderItemEntity.setSkuSn(requestCart.getSkuSn());
|
|
|
+// }
|
|
|
+// orderItemEntities.add(orderItemEntity);
|
|
|
+// goodsAmount = goodsAmount.add(orderItemEntity.getGoodsPrice().multiply(new BigDecimal(orderItemEntity.getGoodsCount())));
|
|
|
+// }
|
|
|
+// Order orderEntity = new Order();
|
|
|
+// orderEntity.setOrderSn(NumberUtils.getOrderSn());
|
|
|
+// orderEntity.setOrderTime(new Date());
|
|
|
+// orderEntity.setOrderStatus(OrderEnum.OrderStatus.unprocessed.name());
|
|
|
+// orderEntity.setPaymentStatus(OrderEnum.PaymentStatus.unpaid.name());
|
|
|
+// orderEntity.setShippingStatus(OrderEnum.ShippingStatus.unshipped.name());
|
|
|
+// orderEntity.setPaymentTypeName(order.getPayType());
|
|
|
+// orderEntity.setUserId(ssoUser.getId());
|
|
|
+// orderEntity.setGoodsTotalCount(goodsTotalCount);
|
|
|
+// orderEntity.setGoodsAmount(goodsAmount);
|
|
|
+// orderEntity.setTotalAmount(goodsAmount);
|
|
|
+// orderEntity.setPaidAmount(BigDecimal.ZERO);
|
|
|
+// orderEntity.setExpressAmount(BigDecimal.ZERO);
|
|
|
+// orderEntity.setDeliveryTypeName("快递运输");
|
|
|
+// if (order.getReceiver() != null){
|
|
|
+// orderEntity.setShipAddress(order.getReceiver().getShipAddress());
|
|
|
+// orderEntity.setShipAreaPath(order.getReceiver().getShipAreaPath());
|
|
|
+// orderEntity.setShipMobile(order.getReceiver().getShipMobile());
|
|
|
+// orderEntity.setShipName(order.getReceiver().getShipName());
|
|
|
+// }
|
|
|
+// orderEntity.setAbroad(order.getAbroad());
|
|
|
+// if(!this.save(orderEntity)){
|
|
|
+// throw new BusinessException(ErrorCode.ERROR_MSG);
|
|
|
+// }
|
|
|
+// for (OrderItem itemEntity : orderItemEntities) {
|
|
|
+// itemEntity.setOrderId(orderEntity.getId());
|
|
|
+// if(!orderItemService.save(itemEntity)){
|
|
|
+// throw new BusinessException(ErrorCode.ERROR_MSG);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// ResponseOrder responseOrder = new ResponseOrder();
|
|
|
+// BeanUtils.copyProperties(orderEntity, responseOrder);
|
|
|
+//
|
|
|
+// // 添加发票信息
|
|
|
+// if (order.getInvoice() != null && StringUtils.isNotEmpty(order.getInvoice().getInvoiceType())){
|
|
|
+// order.setOrderId(orderEntity.getId());
|
|
|
+// order.getInvoice().setAmount(responseOrder.getTotalAmount().toString());
|
|
|
+// invoiceService.saveInvoiceByOrder(ssoUser.getId(),order);
|
|
|
+// }
|
|
|
+// return responseOrder;
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public ResponseVirtualOrder rechargeOrder(RequestCamera param, String token) {
|
|
|
+// SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
+// Camera camera = cameraService.getById(param.getCameraId());
|
|
|
+// if(camera == null){
|
|
|
+// throw new BusinessException(CameraConstant.FAILURE_6003);
|
|
|
+// }
|
|
|
+// CameraDetail cameraDetail = cameraDetailService.getByCameraId(param.getCameraId());
|
|
|
+// int sub = Integer.valueOf(cameraDetail.getBalance()) + param.getPoints();
|
|
|
+// if (sub > Constant.MAXPOINTS) {
|
|
|
+// throw new BusinessException(CameraConstant.FAILURE_6004);
|
|
|
+// }
|
|
|
+// return virtualOrderService.saveByCamera(ssoUser.getId(),param);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public ResponseExpansionOrder expansionOrder(RequestExpansionOrder order, String token) {
|
|
|
+// SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
+// //支付美金,只能paypal支付
|
|
|
+// if(order.getAbroad() == 1 && order.getPayType() != 2){
|
|
|
+// throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
|
|
|
+// }
|
|
|
+// ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
|
|
|
+// if(sku == null ){
|
|
|
+// throw new BusinessException(ErrorCode.ERROR_MSG);
|
|
|
+// }
|
|
|
+// int delay = 0;
|
|
|
+// int dateNum = 0;
|
|
|
+// double spaceSize = 0;
|
|
|
+// //基础容量10G
|
|
|
+// long baseSpace = 10;
|
|
|
+// List<CameraSpace> cameraSpaceEntityList = cameraSpaceService.getListByCameraId(order.getCameraId());
|
|
|
+// for(CameraSpace cameraSpaceEntity : cameraSpaceEntityList){
|
|
|
+// dateNum = DateUtil.daysBetween(new Date(), cameraSpaceEntity.getSpaceEndTime());
|
|
|
+// if(dateNum > 0){
|
|
|
+// spaceSize = FileSizeUtil.formetFileSize(cameraSpaceEntity.getSpace(), FileSizeUtil.SIZETYPE_GB);
|
|
|
+// //时间换算,(剩余天数*旧容量)/新容量 = 延期天数
|
|
|
+// if((dateNum * (spaceSize - baseSpace)) % (sku.getUnitSize() - baseSpace) > 0){
|
|
|
+// //无法整除天数+1
|
|
|
+// delay += ((dateNum * (spaceSize - baseSpace)) / (sku.getUnitSize() - baseSpace)) + 1;
|
|
|
+// }else {
|
|
|
+// delay += (dateNum * (spaceSize - baseSpace)) / (sku.getUnitSize() - baseSpace);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// return expansionOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice(),
|
|
|
+// sku.getUnit(), sku.getUnitSize(), sku.getMonth(), delay);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public ResponseCommerceOrder commerceOrder(RequestCommerceOrder param, String token) {
|
|
|
+// SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
+// ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(param.getSkuSn());
|
|
|
+// return commerceOrderService.saveByOrderParam(ssoUser.getId(), param, param.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice());
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public ResponseIncrementOrder incrementOrder(RequestIncrementOrder order, String token) {
|
|
|
+// SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
+// //支付美金,只能paypal支付
|
|
|
+// if(order.getAbroad() == 1 && order.getPayType() != 2){
|
|
|
+// throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
|
|
|
+// }
|
|
|
+// ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
|
|
|
+// return incrementOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice());
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public ResponseDownloadOrder downloadOrder(RequestIncrementOrder order, String token) {
|
|
|
+// SSOUser ssoUser = userService.getSSOUserByToken(token);
|
|
|
+// //支付美金,只能paypal支付
|
|
|
+// if(order.getAbroad() == 1 && order.getPayType() != 2){
|
|
|
+// throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
|
|
|
+// }
|
|
|
+// ResponseGoodsSku sku = goodsSkuService.getVoBySkuSn(order.getSkuSn());
|
|
|
+// return downloadOrderService.saveByOrderParam(ssoUser.getId(), order, order.getAbroad() == 0 ? sku.getPrice() : sku.getDollarPrice());
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public Boolean queryOrderStatus(RequestVirtualOrder order, String token) throws Exception{
|
|
|
+// Boolean success = false;
|
|
|
+// String orderSn = order.getOrderSn();
|
|
|
+// switch (order.getOrderType()){
|
|
|
+// case 0:
|
|
|
+// orderSn += "_entity";break;
|
|
|
+// case 1:
|
|
|
+// orderSn += "_recharge";break;
|
|
|
+// case 2:
|
|
|
+// orderSn += "_expansion";break;
|
|
|
+// case 3:
|
|
|
+// orderSn += "_commerce";break;
|
|
|
+// case 4:
|
|
|
+// orderSn += "_increment";break;
|
|
|
+// case 5:
|
|
|
+// orderSn += "_download";break;
|
|
|
+// }
|
|
|
+// switch (order.getPayType()){
|
|
|
+// // 微信
|
|
|
+// case 0:
|
|
|
+// String orderSnE = redisTemplate.opsForValue().get(orderSn);
|
|
|
+// log.warn("out_trade_no:" + orderSnE);
|
|
|
+// if (StringUtils.isNotEmpty(orderSnE)){
|
|
|
+// Map<String, String> data = new HashMap<String, String>();
|
|
|
+// data.put("out_trade_no", orderSnE);
|
|
|
+// WXPayDefaultConfig config = new WXPayDefaultConfig();
|
|
|
+// WXPay wxPay = new WXPay(config);
|
|
|
+// Map<String, String> resp = wxPay.orderQuery(data);
|
|
|
+// if (resp.get("trade_state") != null && resp.get("trade_state").equals(WXPayConstants.SUCCESS)) {
|
|
|
+// redisTemplate.delete(orderSnE);
|
|
|
+// String pngPath = ConstantFilePath.BASE_PATH + ConstantFilePath.WEIXIN_QRCODE_FOLDER + orderSn + ".png";
|
|
|
+// FileUtils.deleteFile(pngPath);
|
|
|
+// success = true;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// break;
|
|
|
+// // 支付宝
|
|
|
+// case 1:
|
|
|
+// log.warn("alipay out_trade_no:" + orderSn);
|
|
|
+// String type = alipayService.tradeQuery(orderSn);
|
|
|
+// log.warn("alipay type:" + type);
|
|
|
+// if ("SUCCESS".equals(type)){
|
|
|
+// success = true;
|
|
|
+// }
|
|
|
+// break;
|
|
|
+// // paypal
|
|
|
+// case 2:
|
|
|
+// orderSn = orderSn.split("_")[0];
|
|
|
+// log.warn("paypal out_trade_no:" + orderSn);
|
|
|
+// Order byOrderSn = this.getByOrderSn(orderSn);
|
|
|
+// if (byOrderSn!=null && OrderEnum.PaymentStatus.paid.name().equals(byOrderSn.getPaymentStatus())){
|
|
|
+// success = true;
|
|
|
+// }
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// return success;
|
|
|
+// }
|
|
|
+//
|
|
|
+// private Order getByOrderSn(String orderSn) {
|
|
|
+// QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
|
|
|
+// queryWrapper.lambda().eq(Order::getOrderSn,orderSn);
|
|
|
+// List<Order> list = this.list(queryWrapper);
|
|
|
+// if(list == null || list.size()<=0){
|
|
|
+// return null;
|
|
|
+// }
|
|
|
+// return list.get(0);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public ResponseGoods getExpansionPrice(RequestCamera camera, String token) {
|
|
|
+// String skuStr = SkuCache.skusMap.get(String.valueOf(camera.getDateType()));
|
|
|
+// if (StringUtils.isEmpty(skuStr)){
|
|
|
+// skuStr = SkuCache.skusMap.get("1");
|
|
|
+// }
|
|
|
+// String[] skus = skuStr.split(",");
|
|
|
+// List<ResponseGoodsSku> skusList = new ArrayList<>();
|
|
|
+// Long goodsId = null;
|
|
|
+// for (String sku : skus){
|
|
|
+// GoodsSku goodsSkuEntity = goodsSkuService.getBySkuSn(sku);
|
|
|
+// if (goodsSkuEntity != null){
|
|
|
+// ResponseGoodsSku responseGoodsSku = new ResponseGoodsSku();
|
|
|
+// BeanUtils.copyProperties(goodsSkuEntity, responseGoodsSku);
|
|
|
+// if (StringUtils.isNotEmpty(responseGoodsSku.getDescription())){
|
|
|
+// try {
|
|
|
+// JSONObject o = JSONObject.parseObject(responseGoodsSku.getDescription());
|
|
|
+// responseGoodsSku.setUnit(o.getString("容量"));
|
|
|
+// }catch (Exception e){}
|
|
|
+// }
|
|
|
+// skusList.add(responseGoodsSku);
|
|
|
+// goodsId = goodsSkuEntity.getGoodsId();
|
|
|
+// }
|
|
|
+// }
|
|
|
+// Goods goodsEntity = goodsService.getById(goodsId);
|
|
|
+// ResponseGoods responseGoods = new ResponseGoods();
|
|
|
+// BeanUtils.copyProperties(goodsEntity, responseGoods);
|
|
|
+// responseGoods.setSkuList(skusList);
|
|
|
+// DateTime dateTime = new DateTime();
|
|
|
+// //camera.getDateType() = 2 为年,其余为月
|
|
|
+// if (camera.getDateType() != 2){
|
|
|
+// dateTime = dateTime.plusDays(31 * skusList.get(0).getMonth());
|
|
|
+// }else{
|
|
|
+// dateTime = dateTime.plusYears(1);
|
|
|
+// }
|
|
|
+// responseGoods.setDeadLine(dateTime.toDate().getTime());
|
|
|
+// return responseGoods;
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public ResponseGoodsSku getIncrementOrDownloadPrice(RequestCamera camera, String token) {
|
|
|
+// if(camera.getDateType() == null){
|
|
|
+// throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
|
|
|
+// }
|
|
|
+//
|
|
|
+// if(camera.getDateType() != 5 && camera.getDateType() != 6){
|
|
|
+// throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
|
|
|
+// }
|
|
|
+//
|
|
|
+// DateTime dateTime = new DateTime();
|
|
|
+//
|
|
|
+// if(camera.getUserIncrementId() != null){
|
|
|
+// UserIncrement userIncrementEntity = userIncrementService.getById(camera.getUserIncrementId());
|
|
|
+// if(userIncrementEntity != null && userIncrementEntity.getIncrementEndTime().getTime() > new Date().getTime()){
|
|
|
+// dateTime = new DateTime(userIncrementEntity.getIncrementEndTime());
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// ResponseGoodsSku responseGoodsSku = goodsSkuService.getIncrementOrDownloadPrice(camera);
|
|
|
+//
|
|
|
+// //1年期限
|
|
|
+// dateTime = dateTime.plusYears(1);
|
|
|
+// responseGoodsSku.setDeadLine(dateTime.toDate().getTime());
|
|
|
+// return responseGoodsSku;
|
|
|
+// }
|
|
|
+//}
|