diff --git a/src/main/java/com/qs/cost/common/conf/SpringMvcConfig.java b/src/main/java/com/qs/cost/common/conf/SpringMvcConfig.java new file mode 100644 index 0000000..d4272d9 --- /dev/null +++ b/src/main/java/com/qs/cost/common/conf/SpringMvcConfig.java @@ -0,0 +1,47 @@ +package com.qs.cost.common.conf; + +import lombok.AllArgsConstructor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; +import org.springframework.web.multipart.MultipartResolver; +import org.springframework.web.multipart.commons.CommonsMultipartResolver; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * @author YenHex + * @since 2022/2/24 + */ +@AllArgsConstructor +@Configuration(proxyBeanMethods = false) +public class SpringMvcConfig implements WebMvcConfigurer { + + + @Bean + public CorsFilter corsFilter() { + final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); + final CorsConfiguration corsConfiguration = new CorsConfiguration(); + /*是否允许请求带有验证信息*/ + corsConfiguration.setAllowCredentials(false); + /*允许访问的客户端域名*/ + corsConfiguration.addAllowedOrigin("*"); + /*允许服务端访问的客户端请求头*/ + corsConfiguration.addAllowedHeader("*"); + /*允许访问的方法名,GET POST等*/ + corsConfiguration.addAllowedMethod("*"); + urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration); + return new CorsFilter(urlBasedCorsConfigurationSource); + } + + //@Bean + public MultipartResolver multipartResolver(){ + CommonsMultipartResolver resolver = new CommonsMultipartResolver(); + resolver.setMaxInMemorySize(5120); + resolver.setMaxInMemorySize(300 * 1024 * 1024); + resolver.setDefaultEncoding("UTF-8"); + return resolver; + } + +} diff --git a/src/main/java/com/qs/cost/common/consts/ApiUrlConst.java b/src/main/java/com/qs/cost/common/consts/ApiUrlConst.java index 8fa0c89..0392acb 100644 --- a/src/main/java/com/qs/cost/common/consts/ApiUrlConst.java +++ b/src/main/java/com/qs/cost/common/consts/ApiUrlConst.java @@ -15,12 +15,12 @@ public class ApiUrlConst { /** * 删除专业发票 */ - public static final String U8_DEL_ZYFP = "ZYFPDelete"; + public static final String GET_ORDER = "https://sc.gdjiajin.com/index.php/getOrder"; /** * 删除普通发票 */ - public static final String U8_DEL_PTFP = "PTFPDelete"; + public static final String UPD_ORDER = "https://sc.gdjiajin.com/index.php/upOrder"; /** * 添加销售订单 diff --git a/src/main/java/com/qs/cost/common/framework/mvc/HttpServletRequestFilter.java b/src/main/java/com/qs/cost/common/framework/mvc/HttpServletRequestFilter.java index a9a5d4b..a9a1c39 100644 --- a/src/main/java/com/qs/cost/common/framework/mvc/HttpServletRequestFilter.java +++ b/src/main/java/com/qs/cost/common/framework/mvc/HttpServletRequestFilter.java @@ -43,6 +43,7 @@ public class HttpServletRequestFilter implements Filter{ if(servletRequest instanceof HttpServletRequest) { requestWrapper = new RequestWrapper((HttpServletRequest) servletRequest); } + //servletResponse.setContentType("allowedOriginPatterns"); long startTime = System.currentTimeMillis(); //获取请求中的流如何,将取出来的字符串,再次转换成流,然后把它放入到新request对象中 // 在chain.doFiler方法中传递新的request对象 diff --git a/src/main/java/com/qs/cost/common/framework/mvc/SecurityMvcComponent.java b/src/main/java/com/qs/cost/common/framework/mvc/SecurityMvcComponent.java deleted file mode 100644 index 0d8018c..0000000 --- a/src/main/java/com/qs/cost/common/framework/mvc/SecurityMvcComponent.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.qs.cost.common.framework.mvc; - -import com.qs.cost.common.framework.interceptor.ForbiddenInterceptor; -import org.springframework.boot.web.servlet.FilterRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Component; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.UrlBasedCorsConfigurationSource; -import org.springframework.web.filter.CorsFilter; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -/** - * @Author JcYen - * @Date 2019/7/17 - * @Version 1.0 - */ -@Component -public class SecurityMvcComponent implements WebMvcConfigurer { - - @Override - public void addInterceptors(InterceptorRegistry registry) { - //注册TestInterceptor拦截器 - //registry.addInterceptor(new ForbiddenInterceptor()).addPathPatterns("/**").excludePathPatterns("/api/**"); - } - - @Bean - public CorsFilter corsFilter() { - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - CorsConfiguration config = new CorsConfiguration(); - config.addAllowedOrigin("*"); - config.setAllowCredentials(true); - config.addAllowedHeader("*"); - config.addAllowedMethod("*"); - source.registerCorsConfiguration("/**", config); - FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source)); - bean.setOrder(0); - return new CorsFilter(source); - } - - -} diff --git a/src/main/java/com/qs/cost/module/controller/LzOrderController.java b/src/main/java/com/qs/cost/module/controller/LzOrderController.java index 1dc501b..9764789 100644 --- a/src/main/java/com/qs/cost/module/controller/LzOrderController.java +++ b/src/main/java/com/qs/cost/module/controller/LzOrderController.java @@ -1,9 +1,12 @@ package com.qs.cost.module.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.cost.common.dto.R; import com.qs.cost.common.dto.u8.U8CallbackVo; import com.qs.cost.common.utils.JsonUtil; +import com.qs.cost.module.domain.LzOrder; import com.qs.cost.module.service.JiaJinService; +import com.qs.cost.module.service.LzOrderService; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -17,6 +20,19 @@ import org.springframework.web.bind.annotation.*; public class LzOrderController { private final JiaJinService jiaJinService; + private final LzOrderService lzOrderService; + + + @GetMapping("/list") + public R errList(LzOrder order){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(order); + //lqw.ne(LzOrder::getCheckStatus,0); + //lqw.eq(LzOrder::getCallbackStatus,0); + lqw.and(m->m.eq(LzOrder::getCallbackStatus,0).ne(LzOrder::getCheckStatus,0)).or(v->v.eq(LzOrder::getCallbackStatus,2)); + lqw.orderByDesc(LzOrder::getCreateTime); + return R.ok(lzOrderService.list(lqw)); + } + @PostMapping("/callback") public R callback(@RequestBody U8CallbackVo requestVo){ diff --git a/src/main/java/com/qs/cost/module/domain/GetListEntity.java b/src/main/java/com/qs/cost/module/domain/GetListEntity.java index aca210c..b3e5b97 100644 --- a/src/main/java/com/qs/cost/module/domain/GetListEntity.java +++ b/src/main/java/com/qs/cost/module/domain/GetListEntity.java @@ -57,11 +57,11 @@ public class GetListEntity { //总支付金额 @JsonProperty("SellingPrice") - private String saleAmount; + private String salePrice; //销售单价 @JsonProperty("TaxPrice") - private String salePrice; + private String taxPrice; @JsonProperty("TaxPercent") private String taxRate; diff --git a/src/main/java/com/qs/cost/module/domain/LzOrder.java b/src/main/java/com/qs/cost/module/domain/LzOrder.java index 9b2edea..8ca4ce3 100644 --- a/src/main/java/com/qs/cost/module/domain/LzOrder.java +++ b/src/main/java/com/qs/cost/module/domain/LzOrder.java @@ -85,6 +85,8 @@ public class LzOrder implements Serializable { private Integer callbackStatus; + private String callbackJson; + private String items; private String tax; diff --git a/src/main/java/com/qs/cost/module/service/JiaJinService.java b/src/main/java/com/qs/cost/module/service/JiaJinService.java index 3a228f9..849b397 100644 --- a/src/main/java/com/qs/cost/module/service/JiaJinService.java +++ b/src/main/java/com/qs/cost/module/service/JiaJinService.java @@ -61,7 +61,7 @@ public class JiaJinService { String signParam = ApiUrlConst.lzyunli + params + ApiUrlConst.lzyunli; String sign = SecureUtil.md5(signParam); params = params+"&sign="+sign; - String url = "http://wsapp6.lzyunli.com/index.php/getOrder?"+params; + String url = ApiUrlConst.GET_ORDER+ "?" + params; HttpResult httpResult = HttpUtil.get(url); if(httpResult.getCode()==200){ String json = httpResult.getData(); @@ -93,6 +93,7 @@ public class JiaJinService { lzOrder.setSaleMan(otherEntity.getSalesMan()); lzOrder.setRemark(orderEntity.getRemark()); lzOrder.setTax(otherEntity.getTaxPercent()); + lzOrder.setCreateTime(LocalDateTime.now()); String itemJson = JsonUtil.objectToJson(orderEntity.getItems()); lzOrder.setItems(itemJson); lzOrder.setCheckStatus(0); @@ -117,6 +118,9 @@ public class JiaJinService { } catch (Exception e) { log.error(e.getMessage()); } + if(lzOrder.getCheckStatus().equals(2)&&lzOrderService.existErrOrder(orderEntity.getOrderNo())>0L){ + continue; + } lzOrderService.save(lzOrder); } Integer pageCount = getListEntity.getPageCount(); @@ -151,8 +155,9 @@ public class JiaJinService { orderDetail.setInvCode(item.getInvCode()); orderDetail.setTaxRate(new BigDecimal(item.getTaxRate())); orderDetail.setQuantity(new Long(item.getQty())); - orderDetail.setHasRatePrice(new BigDecimal(item.getSalePrice())); - orderDetail.setHasRateSumPrice(new BigDecimal(item.getSaleAmount())); + BigDecimal salePrice = new BigDecimal(item.getSalePrice()); + orderDetail.setHasRatePrice(salePrice); + orderDetail.setHasRateSumPrice(salePrice.multiply(new BigDecimal(item.getQty()))); orderDetail.setPreShipmentsDate(now); orderDetail.setPreFinishedDate(now); details.add(orderDetail); @@ -187,7 +192,6 @@ public class JiaJinService { requestBo.setCallbackState("1"); requestBo.setCallbackHost( host + "/lzOrder/callback"); order.setStatus(1); - //TODO 方便测试 order.setStatus(1); order.setUpdateTime(LocalDateTime.now()); HttpUtil.post(mainServerProperties.getU8url(),JsonUtil.objectToJson(requestBo)); } @@ -202,14 +206,13 @@ public class JiaJinService { String orderNo = requestVo.getApiPk(); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(LzOrder::getOrderNo,orderNo); - lqw.eq(LzOrder::getCheckStatus,0); lqw.eq(LzOrder::getCallbackStatus,0); - LzOrder lzOrder = lzOrderService.getOne(lqw,false); - if(lzOrder==null){ + List lzOrders = lzOrderService.list(lqw); + if(lzOrders.size()<1){ return R.error(); } - //解析返回结果 - lzOrder.setStatus(2); + int status = 2; + int callbackStatus = 2; String response = requestVo.getRespContext(); JSONObject jsonObject = JSONObject.parseObject(response); if(jsonObject.getString("code").equals("200")){ @@ -217,21 +220,27 @@ public class JiaJinService { String params = "orderNos="+orderNo; String signParam = ApiUrlConst.lzyunli + params + ApiUrlConst.lzyunli; String sign = SecureUtil.md5(signParam); - String url = "http://wsapp6.lzyunli.com/index.php/upOrder"; + String url = ApiUrlConst.UPD_ORDER; Map paramMap = new HashMap<>(10); paramMap.put("orderNos",orderNo); paramMap.put("sign",sign); -// HttpResult httpResult = HttpUtil.post(url,JsonUtil.objectToJson(paramMap)); -// if(httpResult.getCode()==200){ -// if(httpResult.getData().contains("true")){ -// lzOrder.setCallbackStatus(1); -// } -// } - lzOrder.setCallbackStatus(1); + HttpResult httpResult = HttpUtil.post(url,JsonUtil.objectToJson(paramMap)); + if(httpResult.getCode()==200){ + if(httpResult.getData().contains("true")){ + callbackStatus = 1; + } + } }else { - lzOrder.setStatus(3); + status = 3; + } + for (LzOrder lzOrder : lzOrders) { + lzOrder.setCallbackStatus(callbackStatus); + lzOrder.setStatus(status); + lzOrder.setCallbackJson(response); + lzOrder.setUpdateTime(LocalDateTime.now()); + //解析返回结果 + lzOrderService.updateById(lzOrder); } - lzOrderService.updateById(lzOrder); return R.ok(); } diff --git a/src/main/java/com/qs/cost/module/service/LzOrderService.java b/src/main/java/com/qs/cost/module/service/LzOrderService.java index 4d5bdeb..86becfc 100644 --- a/src/main/java/com/qs/cost/module/service/LzOrderService.java +++ b/src/main/java/com/qs/cost/module/service/LzOrderService.java @@ -12,5 +12,7 @@ public interface LzOrderService extends IService { Long existOrder(String orderNo); + Long existErrOrder(String orderNo); + } diff --git a/src/main/java/com/qs/cost/module/service/impl/LzOrderServiceImpl.java b/src/main/java/com/qs/cost/module/service/impl/LzOrderServiceImpl.java index 164aefe..01109ef 100644 --- a/src/main/java/com/qs/cost/module/service/impl/LzOrderServiceImpl.java +++ b/src/main/java/com/qs/cost/module/service/impl/LzOrderServiceImpl.java @@ -26,5 +26,13 @@ public class LzOrderServiceImpl extends ServiceImpl impl lqw.eq(LzOrder::getCheckStatus,0); return count(lqw); } + + @Override + public Long existErrOrder(String orderNo) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(LzOrder::getOrderNo,orderNo); + lqw.ne(LzOrder::getCheckStatus,0); + return count(lqw); + } }