//package com.gree.mall.miniapp.logic.common;
//
//import com.alibaba.fastjson.JSONObject;
//import org.apache.commons.lang3.StringUtils;
//import com.gree.mall.miniapp.enums.WorkOrderTypeEnum;
//import com.gree.mall.miniapp.exception.RemoteServiceException;
//import com.gree.mall.miniapp.plus.entity.*;
//import com.gree.mall.miniapp.plus.service.AdminWebsitService;
//import com.gree.mall.miniapp.plus.service.GoodsService;
//import com.gree.mall.miniapp.plus.service.GoodsSpecService;
//import com.gree.mall.miniapp.utils.DateUtils;
//import com.gree.mall.miniapp.utils.HttpUtils;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Service;
//
//import java.math.BigDecimal;
//import java.util.*;
//
//@Slf4j
//@Service
//public class FucaiLogic {
//
//    @Value("${fucai.saleorder.url}")
//    private String saleOrderUrl;
//    @Value("${fucai.onlinepay.url}")
//    private String onlinePayUrl;
////    @Autowired
////    OrderTaxLogic orderTaxLogic;
//    @Autowired
//    CommonLogic commonLogic;
//    @Autowired
//    GoodsService goodsService;
//    @Autowired
//    GoodsSpecService goodsSpecService;
//    @Autowired
//    AdminWebsitService adminWebsitService;
//
//    /**
//     * 小程序支付
//     */
//    public Map<String,Object> onlinePay(String key,String openId){
//        Map<String,String> map = new HashMap<>();
//        map.put("key",key);
//        map.put("openid",openId);
//        //String s = HttpUtils.requestGet("http://116.62.158.92:11001/java_fucai/app/online/pay", map, null);
//        String s = HttpUtils.requestGet(onlinePayUrl, map, null);
//        JSONObject jsonObject = JSONObject.parseObject(s);
//        if(jsonObject.getInteger("code") != 1){
//            throw new RemoteServiceException(jsonObject.getString("message"));
//        }
//        return (Map<String,Object>)jsonObject.get("data");
//    }
//
//
//    /**
//     * 生成金蝶销售单
//     */
//    public Boolean sendSaleOrder(List<OrderDetail> orderDetailList, OrderInfo orderInfo, String websitNumber){
//        try {
//
//            //胡世杨在金蝶的销售员id,没有分销员生成的单都是用该销售员id
//            String saleId = "012";
//            if(StringUtils.isNotBlank(websitNumber)){
//                List<AdminWebsit> adminWebsits = adminWebsitService.lambdaQuery().eq(AdminWebsit::getWebsitNumber, websitNumber).list();
//                if(adminWebsits.size() > 0 && StringUtils.isNotBlank(adminWebsits.get(0).getJindSaleId())){
//                    saleId = adminWebsits.get(0).getJindSaleId();
//                }
//            }
//            AdminCompanyWechat adminCompanyWechat = commonLogic.getAdminCompanyWechat(orderInfo.getCompanyWechatId());
//
//            String orderId = orderDetailList.get(0).getOrderId();
//            Date createTime = orderDetailList.get(0).getCreateTime();
//            //订单明细
//            List<Map<String,Object>> childs = new ArrayList<>();
//
//            log.info("【同步到金蝶的原数据】:{}",JSONObject.toJSONString(orderDetailList));
//            for(OrderDetail orderDetail:orderDetailList) {
//                if(orderDetail.getMainNumber() == null || orderDetail.getWorkOrderType().equals(WorkOrderTypeEnum.REPAIR.toString())) {
//                    //清洗服务不推送销售单
//                    continue;
//                }
//                GoodsSpec goodsSpec = goodsSpecService.getById(orderDetail.getGoodsSpecId());
//                if(StringUtils.isBlank(goodsSpec.getGoodsCode())){
//                    return false;
//                }
//                //实际支付的单价
//                //BigDecimal price = orderDetail.getPayAmount().divide(BigDecimal.valueOf(orderDetail.getNum()),BigDecimal.ROUND_HALF_DOWN);
//                BigDecimal price = orderDetail.getPrice();
//                //税后金额
//                BigDecimal fPrice = price.multiply(BigDecimal.ONE.subtract(goodsSpec.getJindTax()));
//
//                Map<String, Object> child = new HashMap<>();
//                child.put("FEntryTaxRate",goodsSpec.getJindTax().multiply(BigDecimal.valueOf(100)));
//                child.put("FPrice",fPrice);
//                child.put("FQty",orderDetail.getNum());
//                child.put("FTaxPrice",price);
//                child.put("discountAmount",orderDetail.getDiscountAmount());
//                child.put("materialNumber",goodsSpec.getGoodsCode());
//                child.put("priceUnitNumber",goodsSpec.getJindUnit());
//                child.put("unitNumber",goodsSpec.getJindUnit());
//                childs.add(child);
//            }
//            if(childs.size() == 0){
//                //表示没可同步金蝶的数据，直接将同步金蝶标识改为true
//                return true;
//            }
//            Map<String, Object> map = new HashMap<>();
//            map.put("FBillNo", orderId);
//            map.put("FDate", DateUtils.formatDate(createTime));
//            map.put("FSaleOrderEntry",childs);
//            map.put("salerNumber",saleId);
//            map.put("FLinkMan",orderInfo.getReceUserName());
//            map.put("FLinkPhone",orderInfo.getRecePhone());
//            map.put("stockNumber","JX001");
//            map.put("deliveryWayNumber","2022");
//            if(StringUtils.isNotBlank(adminCompanyWechat.getJindCustomerNumber())) {
//                map.put("custNumber", adminCompanyWechat.getJindCustomerNumber());
//            }
//            map.put("FReceiveAddress",orderInfo.getProvince()+orderInfo.getCity()+orderInfo.getArea()
//                    +orderInfo.getStreet()+orderInfo.getReceAddress()+orderInfo.getHouseNo());
//
//            log.info("【请求金蝶销售单】request:{}",JSONObject.toJSONString(map));
//            String s = HttpUtils.requestPostBody(saleOrderUrl, JSONObject.toJSONString(map), null);
//            log.info("【请求金蝶销售单】response:{}",s);
//            JSONObject jsonObject = JSONObject.parseObject(s);
//
////            FeignResponseObject feignResponseObject = JSONObject.parseObject(s, FeignResponseObject.class);
////            List<Map<String, Object>> data = (List<Map<String, Object>>) feignResponseObject.checkOutData();
//            int code = Integer.parseInt(jsonObject.get("code").toString());
//            return code == 1;
//        }catch(Exception e){
//            log.error("生成销售单失败",e);
//        }
//        return false;
//    }
//
//}
