123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- package com.kmall.admin.service.impl;
- import com.kmall.admin.dao.MallPaymentOrderDataDao;
- import com.kmall.admin.entity.MallPaymentOrderDataEntity;
- import com.kmall.admin.entity.compared.PayOrderInfoEntity;
- import com.kmall.admin.fromcomm.entity.SysUserEntity;
- import com.kmall.admin.service.MallPaymentOrderDataService;
- import com.kmall.admin.service.SaleRecordService;
- import com.kmall.admin.utils.ShiroUtils;
- import com.kmall.common.constant.Dict;
- import com.kmall.common.utils.RRException;
- import com.kmall.common.utils.excel.ExcelExport;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.servlet.http.HttpServletResponse;
- 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<MallPaymentOrderDataEntity> queryList(Map<String, Object> map) {
- return mall2PaymentOrderDataDao.queryList(map);
- }
- @Override
- public int queryTotal(Map<String, Object> 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 saveUploadExcel(List<MallPaymentOrderDataEntity> list,String payFlag) {
- List<MallPaymentOrderDataEntity> insertList = new ArrayList<>();
- SysUserEntity sysUserEntity = ShiroUtils.getUserEntity();
- if (list!=null && list.size()>0) {
- for (MallPaymentOrderDataEntity paymentOrderDataEntity : list) {
- //判断wx要进行截取
- if (Dict.payFlag.item_weixin.getItem().equals(payFlag)) {
- try {
- paymentOrderDataEntity.setTimeStr(paymentOrderDataEntity.getTimeStr().split("`")[1].toString());
- paymentOrderDataEntity.setTransactionOrder(paymentOrderDataEntity.getTransactionOrder().split("`")[1].toString());
- paymentOrderDataEntity.setOutTradeNo(paymentOrderDataEntity.getOutTradeNo().split("`")[1].toString());
- paymentOrderDataEntity.setAmountOrder(paymentOrderDataEntity.getAmountOrder().split("`")[1].toString());
- paymentOrderDataEntity.setMerchantName(paymentOrderDataEntity.getMerchantName().split("`")[1].toString());
- paymentOrderDataEntity.setPayMoney(paymentOrderDataEntity.getPayMoney().split("`")[1].toString());
- paymentOrderDataEntity.setRefundMoney(paymentOrderDataEntity.getRefundMoney().split("`")[1].toString());
- paymentOrderDataEntity.setRefundId(paymentOrderDataEntity.getRefundId().split("`")[1].toString());
- paymentOrderDataEntity.setCashCoupon(paymentOrderDataEntity.getCashCoupon().split("`")[1].toString());
- paymentOrderDataEntity.setMerRefundNumber(paymentOrderDataEntity.getMerRefundNumber().split("`")[1].toString());
- paymentOrderDataEntity.setRefundRechargpCoupon(paymentOrderDataEntity.getRefundRechargpCoupon().split("`")[1].toString());
- paymentOrderDataEntity.setFeeCharge(paymentOrderDataEntity.getFeeCharge().split("`")[1].toString());
- paymentOrderDataEntity.setRate(paymentOrderDataEntity.getRate().split("`")[1].toString());
- paymentOrderDataEntity.setApplyRefundAmount(paymentOrderDataEntity.getApplyRefundAmount().split("`")[1].toString());
- } catch (Exception e) {
- throw new RRException("导入的数据不是微信账单!");
- }
- }
- String outTradeNo = paymentOrderDataEntity.getOutTradeNo();
- String timeStr = paymentOrderDataEntity.getTimeStr();
- Map<String, Object> map = new HashMap<>();
- map.put("timeStr",timeStr);
- map.put("outTradeNo",outTradeNo);
- //根据时间和商户订单号来判断当前数据是否有重复录入
- List<MallPaymentOrderDataEntity> timeAndTnoData = mall2PaymentOrderDataDao.queryListTimeAndTnoData(map);
- if (timeAndTnoData.size()>0) {
- throw new RRException("数据有重复,请检查导入数据的正确性!");
- }
- paymentOrderDataEntity.setCreaterSn(sysUserEntity.getUsername());
- paymentOrderDataEntity.setCreateTime(new Date());
- paymentOrderDataEntity.setPayFlag(payFlag);
- insertList.add(paymentOrderDataEntity);
- }
- mall2PaymentOrderDataDao.saveBatch(insertList);
- }else {
- throw new RRException("导入数据信息为空,请看模版再重新导入!");
- }
- return 1;
- }
- @Override
- public void exportDataFormatList(Map<String, Object> map, HttpServletResponse response) {
- List<MallPaymentOrderDataEntity> mallList = mall2PaymentOrderDataDao.queryListData(map);
- String payFlag = map.get("payFlag").toString();
- String itemName = null;
- String[] header = null;
- LinkedHashMap<String, Object> 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<Map<String, Object>> list = new LinkedList<>();
- list.add(headerMap);
- for (MallPaymentOrderDataEntity orderDataEntity : mallList) {
- LinkedHashMap<String, Object> 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<String, Object> initHeaderAliMap() {
- LinkedHashMap<String, Object> 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<String, Object> initHeaderAliMap(MallPaymentOrderDataEntity orderDataEntity) {
- LinkedHashMap<String, Object> 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<String, Object> initHeaderWxMap() {
- LinkedHashMap<String, Object> 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<String, Object> initHeaderWxMap(MallPaymentOrderDataEntity orderDataEntity) {
- LinkedHashMap<String, Object> 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;
- }
- }
|