package com.kmall.admin.service.impl; import com.kmall.admin.dao.MallPaymentOrderDataDao; import com.kmall.admin.entity.MallPaymentOrderDataEntity; import com.kmall.admin.fromcomm.entity.SysUserEntity; import com.kmall.admin.service.MallPaymentOrderDataService; import com.kmall.admin.utils.ShiroUtils; import com.kmall.common.constant.Dict; import com.kmall.common.constant.JxlsXmlTemplateName; import com.kmall.common.utils.excel.ExcelExport; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.*; /** * 支付订单表Service实现类 * * @author emato * @email admin@qhdswl.com * @date 2021-04-22 14:54:43 */ @Service("mallPaymentOrderDataService") public class MallPaymentOrderDataServiceImpl implements MallPaymentOrderDataService { @Autowired private MallPaymentOrderDataDao mall2PaymentOrderDataDao; @Override public MallPaymentOrderDataEntity queryObject(Integer payOrderId) { return mall2PaymentOrderDataDao.queryObject(payOrderId); } @Override public List queryList(Map map) { return mall2PaymentOrderDataDao.queryList(map); } @Override public int queryTotal(Map map) { return mall2PaymentOrderDataDao.queryTotal(map); } @Override public int save(MallPaymentOrderDataEntity mall2PaymentOrderData) { return mall2PaymentOrderDataDao.save(mall2PaymentOrderData); } @Override public int update(MallPaymentOrderDataEntity mall2PaymentOrderData) { return mall2PaymentOrderDataDao.update(mall2PaymentOrderData); } @Override public int delete(Integer payOrderId) { return mall2PaymentOrderDataDao.delete(payOrderId); } @Override public int deleteBatch(Integer[]payOrderIds) { return mall2PaymentOrderDataDao.deleteBatch(payOrderIds); } @Override public int uploadExcel(List list,String payFlag) { SysUserEntity sysUserEntity = ShiroUtils.getUserEntity(); if (list!=null && list.size()>0) { for (MallPaymentOrderDataEntity paymentOrderDataEntity : list) { MallPaymentOrderDataEntity orderDataEntity = new MallPaymentOrderDataEntity(); paymentOrderDataEntity.setCreaterSn(sysUserEntity.getUsername()); paymentOrderDataEntity.setCreateTime(new Date()); paymentOrderDataEntity.setPayFlag(payFlag); BeanUtils.copyProperties(paymentOrderDataEntity,orderDataEntity); mall2PaymentOrderDataDao.saveData(orderDataEntity); } } return 0; } @Override public void exportDataFormatList(Map map, HttpServletResponse response) { List mallList = mall2PaymentOrderDataDao.queryListData(map); String payFlag = map.get("payFlag").toString(); String itemName = null; String[] header = null; LinkedHashMap headerMap = null; if (Dict.payFlag.item_weixin.getItem().equals(payFlag)) { //初始化 第一行数据信息 itemName = Dict.payFlag.item_weixin.getItemName(); header = new String[]{"Time Str","Transaction Order", "OutTrade No", "Pay Type", "Transaction Status", "Payment Type","Currency Type","Amount Order","Cash Coupon","Refund Id", "MerRefund Number", "Refund Money", "Refund RechargpCoupon", "Refund Type", "Refund Status", "Merchant Name","Attach", "Fee Charge", "Rate", "Pay Money", "ApplyRefund Amount","Rate Remark"}; //初始化 第二行数据信息 headerMap = initHeaderWxMap(); }else if (Dict.payFlag.item_alipay.getItem().equals(payFlag)){ //初始化 第一行数据信息 itemName = Dict.payFlag.item_alipay.getItemName(); header = new String[]{"Time Str","Transaction Order", "Serial Number", "OutTrade No", "Pay Type", "Pay Money","Refund Money","payment Type","Opposite Account","Other Name", "Bank Order ", "Merchant Name", "Remark", "BusinessBasic Order", "Business Order", "BusinessBilling Source","Business Description", "Payment Notes"}; //初始化 第二行数据信息 headerMap = initHeaderAliMap(); } // excel 表单名字 ExcelExport ee = new ExcelExport(itemName+"账单"); List> list = new LinkedList<>(); list.add(headerMap); for (MallPaymentOrderDataEntity orderDataEntity : mallList) { LinkedHashMap mapLinked = new LinkedHashMap<>(24); if (Dict.payFlag.item_weixin.getItem().equals(payFlag)) { //渲染表单数据 mapLinked = initHeaderWxMap(orderDataEntity); }else if (Dict.payFlag.item_alipay.getItem().equals(payFlag)){ //渲染表单数据 mapLinked = initHeaderAliMap(orderDataEntity); } list.add(mapLinked); } //渲染excel表单 ee.addSheetByMap(itemName+"账单", list, header); ee.export(response); } private LinkedHashMap initHeaderAliMap() { LinkedHashMap headerMap = new LinkedHashMap<>(); headerMap.put("timeStr","入账时间"); headerMap.put("transactionOrder","支付宝交易号"); headerMap.put("serialNumber","支付宝流水号"); headerMap.put("outTradeNo","商户订单号"); headerMap.put("payType","账务类型"); headerMap.put("payMoney","收入(+元)"); headerMap.put("refundMoney","支出(-元)"); headerMap.put("paymentType","支付渠道"); headerMap.put("oppositeAccount","对方账户"); headerMap.put("otherName","对方名称"); headerMap.put("bankOrder","银行订单号"); headerMap.put("merchantName","商品名称"); headerMap.put("remark","备注"); headerMap.put("businessBasicOrder","业务基础订单号"); headerMap.put("businessOrder","业务订单号"); headerMap.put("businessBillingSource","业务账单来源"); headerMap.put("businessDescription","业务描述"); headerMap.put("paymentNotes","付款备注"); return headerMap; } private LinkedHashMap initHeaderAliMap(MallPaymentOrderDataEntity orderDataEntity) { LinkedHashMap headerMap = new LinkedHashMap<>(); headerMap.put("timeStr",orderDataEntity.getTimeStr()); headerMap.put("transactionOrder",orderDataEntity.getTransactionOrder()); headerMap.put("serialNumber",orderDataEntity.getSerialNumber()); headerMap.put("outTradeNo",orderDataEntity.getOutTradeNo()); headerMap.put("payType",orderDataEntity.getPayType()); headerMap.put("payMoney",orderDataEntity.getPayMoney()); headerMap.put("refundMoney",orderDataEntity.getRefundMoney()); headerMap.put("paymentType",orderDataEntity.getPaymentType()); headerMap.put("oppositeAccount",orderDataEntity.getOppositeAccount()); headerMap.put("otherName",orderDataEntity.getOtherName()); headerMap.put("bankOrder",orderDataEntity.getBankOrder()); headerMap.put("merchantName",orderDataEntity.getMerchantName()); headerMap.put("remark",orderDataEntity.getRemark()); headerMap.put("businessBasicOrder", orderDataEntity.getBusinessBasicOrder()); headerMap.put("businessOrder",orderDataEntity.getBusinessOrder()); headerMap.put("businessBillingSource",orderDataEntity.getBusinessBillingSource()); headerMap.put("businessDescription",orderDataEntity.getBusinessDescription()); headerMap.put("paymentNotes",orderDataEntity.getPaymentNotes()); return headerMap; } private LinkedHashMap initHeaderWxMap() { LinkedHashMap headerMap = new LinkedHashMap<>(); headerMap.put("timeStr","交易时间"); headerMap.put("transactionOrder","微信订单号"); headerMap.put("outTradeNo","商户订单号"); headerMap.put("payType","交易类型"); headerMap.put("transactionStatus","交易状态"); headerMap.put("paymentType","付款银行"); headerMap.put("currencyType","货币种类"); headerMap.put("amountOrder","应结订单金额"); headerMap.put("cashCoupon","代金券金额"); headerMap.put("refundId","微信退款单号"); headerMap.put("merRefundNumber","商户退款单号"); headerMap.put("refundMoney","退款金额"); headerMap.put("refundRechargpCoupon","充值券退款金额"); headerMap.put("refundType","退款类型"); headerMap.put("refundStatus","退款状态"); headerMap.put("merchantName","商品名称"); headerMap.put("attach","商户数据包"); headerMap.put("feeCharge","手续费"); headerMap.put("rate","费率"); headerMap.put("payMoney","订单金额"); headerMap.put("applyRefundAmount","申请退款金额"); headerMap.put("rateRemark","费率备注"); return headerMap; } private LinkedHashMap initHeaderWxMap(MallPaymentOrderDataEntity orderDataEntity) { LinkedHashMap headerMap = new LinkedHashMap<>(); headerMap.put("timeStr",orderDataEntity.getTimeStr()); headerMap.put("transactionOrder",orderDataEntity.getTransactionOrder()); headerMap.put("outTradeNo",orderDataEntity.getOutTradeNo()); headerMap.put("payType",orderDataEntity.getPayType()); headerMap.put("transactionStatus",orderDataEntity.getTransactionStatus()); headerMap.put("paymentType",orderDataEntity.getPaymentType()); headerMap.put("currencyType",orderDataEntity.getCurrencyType()); headerMap.put("amountOrder",orderDataEntity.getAmountOrder()); headerMap.put("cashCoupon",orderDataEntity.getCashCoupon()); headerMap.put("refundId",orderDataEntity.getRefundId()); headerMap.put("merRefundNumber",orderDataEntity.getMerRefundNumber()); headerMap.put("refundMoney",orderDataEntity.getRefundMoney()); headerMap.put("refundRechargpCoupon",orderDataEntity.getRefundRechargpCoupon()); headerMap.put("refundType",orderDataEntity.getRefundType()); headerMap.put("refundStatus",orderDataEntity.getRefundStatus()); headerMap.put("merchantName",orderDataEntity.getMerchantName()); headerMap.put("attach",orderDataEntity.getAttach()); headerMap.put("feeCharge",orderDataEntity.getFeeCharge()); headerMap.put("rate",orderDataEntity.getRate()); headerMap.put("payMoney",orderDataEntity.getPayMoney()); headerMap.put("applyRefundAmount",orderDataEntity.getApplyRefundAmount()); headerMap.put("rateRemark",orderDataEntity.getRateRemark()); return headerMap; } }