package com.pj.project.sync; import cn.hutool.json.JSONUtil; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.pj.current.config.PushfeeConfig; import com.pj.project.sync.bo.*; import com.pj.project.sync.dto.IExpensePriceReq; import com.pj.project.sync.dto.ItemTypeDTO; import com.pj.project.sync.dto.PartnerDTO; import com.pj.project.sync.dto.PartnerParam; import com.pj.project.sync.dto.item.IFactorItem; import com.pj.project.sync.request.IOrderPriceReq; import com.pj.project.sync.request.item.IOrderItem; import com.pj.project.sync.response.IExpensePriceRes; import com.pj.project.sync.response.IOrderPriceRes; import com.pj.project.sync.response.item.IExpenseItem; import com.pj.utils.sg.AjaxError; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.Collections; import java.util.List; @Service @Slf4j public class SyncService { @Resource private PushfeeConfig pushfeeConfig; @Resource private HelpService helpService; private static final Gson gson = new GsonBuilder().disableHtmlEscaping().create(); /** * 同步合作伙伴 * * @param id * @param name * @param syncType */ public void syncPartnes(String id, String name, String syncType) { PartnerParam dto = new PartnerParam(id, name, syncType); List list = Collections.singletonList(dto); PartnerDTO partnerDTO = new PartnerDTO(); partnerDTO.setPartnersList(list); helpService.req("/data/sync/partners", partnerDTO); } public List syncItemTypeList(String itemTypeName, String itemCode) { ItemTypeDTO dto = new ItemTypeDTO(); dto.setSysId(pushfeeConfig.getSysId()).setBizTypeNo(itemCode).setExpenseName(itemTypeName); SyncResultBO resultBO = helpService.req("/price/external/expense/list", dto); IExpenseListQueryRes res = helpService.deCrypte(resultBO.getData(), IExpenseListQueryRes.class); return res.getList(); } /** * 费项价格计算 * * @param uniqExpenseId * @param num * @param factorItems * @return */ public IExpensePriceRes calItemPrice(String uniqExpenseId, int num, List factorItems) { IExpensePriceReq iExpensePriceReq = new IExpensePriceReq(); iExpensePriceReq.setUniqExpenseId(uniqExpenseId) .setExpenseNum(num) .setFactors(factorItems); SyncResultBO resultBO = helpService.req("/price/external/expense/price", iExpensePriceReq); if (resultBO.getCode() == 200) { IExpensePriceRes res = helpService.deCrypte(resultBO.getData(), IExpensePriceRes.class); return res; } throw new AjaxError("计算费用出错"); } /** * 订单计算接口 * @param expenses */ public IOrderPriceRes orderPriceCal( List expenses ){ IOrderPriceReq iOrderPriceReq=new IOrderPriceReq(); iOrderPriceReq.setSysId(pushfeeConfig.getSysId()).setExpenses(expenses).setOrderNum(1); SyncResultBO resultBO = helpService.req("/price/external/order/calc", iOrderPriceReq); if (resultBO.getCode() == 200) { IOrderPriceRes res = helpService.deCrypte(resultBO.getData(), IOrderPriceRes.class); return res; } throw new AjaxError("订单计费出错"); } }