|
@@ -3,11 +3,17 @@ package com.zhongzheng.modules.sdk.service.impl;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.lang.Validator;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.zhongzheng.common.core.redis.RedisCache;
|
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
|
import com.zhongzheng.common.utils.DateUtils;
|
|
|
+import com.zhongzheng.common.utils.ToolsUtils;
|
|
|
+import com.zhongzheng.common.utils.http.HttpUtils;
|
|
|
import com.zhongzheng.modules.grade.domain.ClassGradeUser;
|
|
|
+import com.zhongzheng.modules.grade.service.impl.UserPeriodServiceImpl;
|
|
|
+import com.zhongzheng.modules.order.domain.OrderGoodsRefund;
|
|
|
import com.zhongzheng.modules.sdk.bo.TopNuoMplatformLogAddBo;
|
|
|
import com.zhongzheng.modules.sdk.bo.TopNuoMplatformLogEditBo;
|
|
|
import com.zhongzheng.modules.sdk.bo.TopNuoMplatformLogQueryBo;
|
|
@@ -16,13 +22,18 @@ import com.zhongzheng.modules.sdk.mapper.TopNuoMplatformLogMapper;
|
|
|
import com.zhongzheng.modules.sdk.service.ITopNuoMplatformLogService;
|
|
|
import com.zhongzheng.modules.sdk.service.NuonuoService;
|
|
|
import com.zhongzheng.modules.sdk.vo.TopNuoMplatformLogVo;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.github.pagehelper.Page;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -35,8 +46,12 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
public class TopNuoMplatformLogServiceImpl extends ServiceImpl<TopNuoMplatformLogMapper, TopNuoMplatformLog> implements ITopNuoMplatformLogService {
|
|
|
|
|
|
+ private static Logger log = LoggerFactory.getLogger(TopNuoMplatformLogServiceImpl.class);
|
|
|
+
|
|
|
@Autowired
|
|
|
private NuonuoService nuonuoService;
|
|
|
+ @Value("${oldStudySys.updateInvoicePath}")
|
|
|
+ private String UpdateInvoice_PATH;
|
|
|
|
|
|
@Override
|
|
|
public TopNuoMplatformLogVo queryById(Long id){
|
|
@@ -81,6 +96,7 @@ public class TopNuoMplatformLogServiceImpl extends ServiceImpl<TopNuoMplatformLo
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Map<String, String> insertByAddBo(TopNuoMplatformLogAddBo bo) {
|
|
|
if(Validator.isEmpty(bo.getOrderNo())||Validator.isEmpty(bo.getTenantId())||Validator.isEmpty(bo.getContent())){
|
|
|
throw new CustomException("参数缺少");
|
|
@@ -98,35 +114,39 @@ public class TopNuoMplatformLogServiceImpl extends ServiceImpl<TopNuoMplatformLo
|
|
|
add.setCreateTime(DateUtils.getNowTime());
|
|
|
add.setUpdateTime(DateUtils.getNowTime());
|
|
|
if(this.save(add)){
|
|
|
- Long id = add.getId();
|
|
|
- Map<String,String> params = new HashMap<>();
|
|
|
- params.put("content",bo.getContent());
|
|
|
- String result = nuonuoService.openMplatform(params);
|
|
|
- TopNuoMplatformLog update = new TopNuoMplatformLog();
|
|
|
- update.setId(id);
|
|
|
- update.setResult(result);
|
|
|
-; JSONObject jsonObject = (JSONObject) JSONObject.parse(result);
|
|
|
- String code = String.valueOf(jsonObject.get("code"));
|
|
|
- String describe = String.valueOf(jsonObject.get("describe"));
|
|
|
- update.setResultCode(code);
|
|
|
- Map<String,String> rs = new HashMap<>();
|
|
|
- if("E0000".equals(code)){
|
|
|
- JSONObject resultObject = jsonObject.getJSONObject("result");
|
|
|
- String invoiceSerialNum = String.valueOf(resultObject.get("invoiceSerialNum"));
|
|
|
- update.setInvoiceSerialNum(invoiceSerialNum);
|
|
|
- update.setStatus(1);
|
|
|
- rs.put("invoiceSerialNum",invoiceSerialNum);
|
|
|
- update.setUpdateTime(DateUtils.getNowTime());
|
|
|
- updateById(update);
|
|
|
+ try{
|
|
|
+ Long id = add.getId();
|
|
|
+ Map<String,String> params = new HashMap<>();
|
|
|
+ params.put("content",bo.getContent());
|
|
|
+ String result = nuonuoService.openMplatform(params);
|
|
|
+ TopNuoMplatformLog update = new TopNuoMplatformLog();
|
|
|
+ update.setId(id);
|
|
|
+ update.setResult(result);
|
|
|
+ JSONObject jsonObject = (JSONObject) JSONObject.parse(result);
|
|
|
+ String code = String.valueOf(jsonObject.get("code"));
|
|
|
+ String describe = String.valueOf(jsonObject.get("describe"));
|
|
|
+ update.setResultCode(code);
|
|
|
+ Map<String,String> rs = new HashMap<>();
|
|
|
+ if("E0000".equals(code)){
|
|
|
+ JSONObject resultObject = jsonObject.getJSONObject("result");
|
|
|
+ String invoiceSerialNum = String.valueOf(resultObject.get("invoiceSerialNum"));
|
|
|
+ update.setInvoiceSerialNum(invoiceSerialNum);
|
|
|
+ update.setStatus(1);
|
|
|
+ rs.put("invoiceSerialNum",invoiceSerialNum);
|
|
|
+ update.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ updateById(update);
|
|
|
|
|
|
- rs.put("code",code);
|
|
|
- rs.put("describe",describe);
|
|
|
- return rs;
|
|
|
- }else{
|
|
|
- update.setStatus(-1);
|
|
|
- update.setUpdateTime(DateUtils.getNowTime());
|
|
|
- updateById(update);
|
|
|
- throw new CustomException(result);
|
|
|
+ rs.put("code",code);
|
|
|
+ rs.put("describe",describe);
|
|
|
+ return rs;
|
|
|
+ }else{
|
|
|
+ update.setStatus(-1);
|
|
|
+ update.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ updateById(update);
|
|
|
+ throw new CustomException(result);
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ throw new CustomException("开票失败");
|
|
|
}
|
|
|
}
|
|
|
throw new CustomException("新增失败");
|
|
@@ -158,7 +178,7 @@ public class TopNuoMplatformLogServiceImpl extends ServiceImpl<TopNuoMplatformLo
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Boolean updateByBatch(TopNuoMplatformLogEditBo bo) {
|
|
|
+ public Boolean updateByBatch() {
|
|
|
TopNuoMplatformLogQueryBo queryBo = new TopNuoMplatformLogQueryBo();
|
|
|
queryBo.setStatus(1);
|
|
|
List<TopNuoMplatformLogVo> list = queryList(queryBo);
|
|
@@ -168,6 +188,85 @@ public class TopNuoMplatformLogServiceImpl extends ServiceImpl<TopNuoMplatformLo
|
|
|
snList.add(vo.getInvoiceSerialNum());
|
|
|
if(snList.size()==10||i==(list.size()-1)){
|
|
|
String result = nuonuoService.queryInvoiceResult(snList);
|
|
|
+ JSONObject jsonObject = (JSONObject) JSONObject.parse(result);
|
|
|
+ String code = String.valueOf(jsonObject.get("code"));
|
|
|
+ JSONArray josnList = jsonObject.getJSONArray("result");
|
|
|
+ if("E0000".equals(code)){
|
|
|
+ for(int j=0;j<josnList.size();j++) {
|
|
|
+ LambdaUpdateWrapper<TopNuoMplatformLog> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
|
|
|
+ JSONObject itemObject =josnList.getJSONObject(j);
|
|
|
+ String serialNo = String.valueOf(itemObject.get("serialNo"));
|
|
|
+ String orderNo = String.valueOf(itemObject.get("orderNo"));
|
|
|
+ String status = String.valueOf(itemObject.get("status"));
|
|
|
+ String pdfUrl = String.valueOf(itemObject.get("pdfUrl"));
|
|
|
+ String failCause = String.valueOf(itemObject.get("failCause"));
|
|
|
+ String oldStatus = "1";
|
|
|
+ objectLambdaUpdateWrapper.eq(TopNuoMplatformLog::getInvoiceSerialNum, serialNo);
|
|
|
+ //开单完成状态
|
|
|
+ if("2".equals(status)){
|
|
|
+ oldStatus = "1";
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getPdfUrl, pdfUrl);
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getStatus, 2);
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getUpdateTime,DateUtils.getNowTime());
|
|
|
+ }else{
|
|
|
+ //失败
|
|
|
+ oldStatus = "2";
|
|
|
+ pdfUrl = "";
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getStatus, Integer.parseInt(status));
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getFailCause, failCause);
|
|
|
+ }
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
+ Long nowTime = DateUtils.getNowTime();
|
|
|
+ String sign = ToolsUtils.EncoderByMd5(nowTime.toString()+"pubilc2022");
|
|
|
+ params.put("stamp", nowTime.toString());
|
|
|
+ params.put("sign", sign);
|
|
|
+ params.put("status", oldStatus);
|
|
|
+ params.put("orderno", orderNo);
|
|
|
+ params.put("pdfurl", pdfUrl);
|
|
|
+ String respone = "";
|
|
|
+ log.info("发票推送系统"+params,"");
|
|
|
+ try {
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getPushStatus, 1);
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getPushTime, DateUtils.getNowTime());
|
|
|
+ respone = HttpUtils.postFormBody(UpdateInvoice_PATH, params);
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getPushResult, respone);
|
|
|
+ if (!respone.contains("\"Status\":true")) {
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getPushStatus, -1);
|
|
|
+ this.update(null, objectLambdaUpdateWrapper);
|
|
|
+ // throw new CustomException("同步请求错误"+respone);
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getPushStatus, -1);
|
|
|
+ this.update(null, objectLambdaUpdateWrapper);
|
|
|
+ // throw new CustomException("同步请求错误"+e.getMessage());
|
|
|
+ }
|
|
|
+ this.update(null, objectLambdaUpdateWrapper);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ snList.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Boolean reOpenMplatform() {
|
|
|
+ TopNuoMplatformLogQueryBo queryBo = new TopNuoMplatformLogQueryBo();
|
|
|
+ queryBo.setStatus(22);
|
|
|
+ List<TopNuoMplatformLogVo> list = queryList(queryBo);
|
|
|
+ for(int i=0;i<list.size();i++){
|
|
|
+ TopNuoMplatformLogVo vo = list.get(i);
|
|
|
+ Map<String,String> params = new HashMap<>();
|
|
|
+ params.put("fpqqlsh",vo.getInvoiceSerialNum());
|
|
|
+ String result = nuonuoService.reOpenMplatform(params);
|
|
|
+ JSONObject jsonObject = (JSONObject) JSONObject.parse(result);
|
|
|
+ String code = String.valueOf(jsonObject.get("code"));
|
|
|
+ if("E0000".equals(code)){
|
|
|
+ LambdaUpdateWrapper<TopNuoMplatformLog> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
|
|
|
+ objectLambdaUpdateWrapper.eq(TopNuoMplatformLog::getInvoiceSerialNum, vo.getInvoiceSerialNum());
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getStatus, 1);
|
|
|
+ objectLambdaUpdateWrapper.set(TopNuoMplatformLog::getPushTime, DateUtils.getNowTime());
|
|
|
+ this.update(null, objectLambdaUpdateWrapper);
|
|
|
}
|
|
|
}
|
|
|
return null;
|