QiweiService.java 4.17 KB
package com.huaheng.pc.shipment.kuaidiHeader.service;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.common.constant.HttpConstant;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.support.Convert;
import com.huaheng.common.utils.DataUtils;
import com.huaheng.common.utils.DateUtils;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.common.utils.Wrappers;
import com.huaheng.common.utils.file.FileUploadUtils;
import com.huaheng.common.utils.http.OkHttpUtils;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.domain.AjaxResultWCS;
import com.huaheng.pc.config.address.domain.Address;
import com.huaheng.pc.config.address.service.AddressService;
import com.huaheng.pc.config.company.domain.Company;
import com.huaheng.pc.config.company.service.CompanyService;
import com.huaheng.pc.shipment.kuaidiDetail.domain.KuaidiDetail;
import com.huaheng.pc.shipment.kuaidiDetail.service.KuaidiDetailService;
import com.huaheng.pc.shipment.kuaidiHeader.domain.KuaidiHeader;
import com.huaheng.pc.shipment.kuaidiHeader.domain.SendQiwei;
import com.huaheng.pc.shipment.kuaidiHeader.mapper.KuaidiHeaderMapper;
import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService;
import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
import com.huaheng.pc.system.dict.service.IDictDataService;
import com.huaheng.pc.u8.domain.ICSShipmentHeader;
import com.huaheng.pc.u8.service.ICSShipmentHeaderService;
import com.huaheng.pc.u8.service.IcsKuaidiService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.io.File;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;


/**
 * 企微发送消息
 *
 * @author huaheng
 * @date 2022-09-07
 */
@Service
public class QiweiService {

    public static final String qiwei_username = "admin";
    public static final String qiwei_pad = "adbcd123***";

    @Resource
    private AddressService addressService;

    public String getQiweiAddress() {
        Address address = addressService.selectAddressByParam("qiwei", QuantityConstant.WAREHOUSE_KS);
        if(address==null){
            throw new ServiceException("请先配置企微地址");
        }
        return address.getUrl();
    }
    public String getQiweiToken() {
        String url= getQiweiAddress();
        url=url+"/login";
        String JsonParam = "{\"username\":\"" + qiwei_username + "\",\"password\":\"" + qiwei_pad + "\"}";
        String result = OkHttpUtils.bodypost(url, JsonParam, QuantityConstant.WAREHOUSE_KS);
        if (StringUtils.isEmpty(result)) {
            throw new ServiceException("");
        }
        AjaxResultWCS ajaxResult = JSON.parseObject(result, AjaxResultWCS.class);
        if(ajaxResult.getCode()==0) {
           return ajaxResult.getData().toString();
        }else{
            throw new ServiceException(ajaxResult.getMessage());
        }
    }

    /**
     * 发送企微消息
     * @return
     */
    public AjaxResult sendQiwei(String usercode, String message) {
        SendQiwei sendQiwei = new SendQiwei();
        sendQiwei.setToUser(usercode);
        sendQiwei.setContent(message);
        String token=getQiweiToken();
        String result=OkHttpUtils.bodypostBearerToken(getQiweiAddress()+"/sendtexta", JSON.toJSONString(sendQiwei), QuantityConstant.WAREHOUSE_KS,"快递推送企微",token);
        AjaxResultWCS ajaxResult = JSON.parseObject(result, AjaxResultWCS.class);
        if(ajaxResult.getCode()!=0) {
            return AjaxResult.error(ajaxResult.getMessage());
        }
        return AjaxResult.success();
    }
}