diff --git a/crmeb-admin/src/main/java/com/zbkj/admin/config/RestTemplateConfig.java b/crmeb-admin/src/main/java/com/zbkj/admin/config/RestTemplateConfig.java index 085d05a..7351b46 100644 --- a/crmeb-admin/src/main/java/com/zbkj/admin/config/RestTemplateConfig.java +++ b/crmeb-admin/src/main/java/com/zbkj/admin/config/RestTemplateConfig.java @@ -1,15 +1,22 @@ package com.zbkj.admin.config; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.conn.ssl.TrustStrategy; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.client.RestTemplate; +import javax.net.ssl.SSLContext; import java.nio.charset.StandardCharsets; +import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; @@ -29,10 +36,26 @@ import java.util.List; public class RestTemplateConfig { @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory) { - RestTemplate restTemplate = new RestTemplate(factory); - restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); - restTemplate.getMessageConverters().add(new WxMappingJackson2HttpMessageConverter()); - return restTemplate; + try { + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() + .loadTrustMaterial(null, acceptingTrustStrategy) + .build(); + + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + CloseableHttpClient httpClient = HttpClients.custom() + .setSSLSocketFactory(csf) + .build(); + + HttpComponentsClientHttpRequestFactory requestFactory = + new HttpComponentsClientHttpRequestFactory(); + + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); + }catch (Exception e){ + return null; + } } @Bean diff --git a/crmeb-admin/src/main/java/com/zbkj/admin/config/WebSecurityConfig.java b/crmeb-admin/src/main/java/com/zbkj/admin/config/WebSecurityConfig.java index cb5ba11..bc5b3fd 100644 --- a/crmeb-admin/src/main/java/com/zbkj/admin/config/WebSecurityConfig.java +++ b/crmeb-admin/src/main/java/com/zbkj/admin/config/WebSecurityConfig.java @@ -113,6 +113,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { // .antMatchers(HttpMethod.OPTIONS, "/**").permitAll() // 对于登录login 验证码captchaImage 和其他放行的目录 允许匿名访问"/citylife/front/**" .antMatchers("/api/admin/login", "/api/admin/validate/code/get").permitAll() + .antMatchers("/api/extend/**").permitAll() .antMatchers("/api/admin/getLoginPic").permitAll() .antMatchers("/api/admin/login/account/detection").permitAll() .antMatchers("/api/admin/validate/code/getcaptchaconfig").permitAll() diff --git a/crmeb-admin/src/main/java/com/zbkj/admin/controller/ReshippingController.java b/crmeb-admin/src/main/java/com/zbkj/admin/controller/ReshippingController.java new file mode 100644 index 0000000..2777cb4 --- /dev/null +++ b/crmeb-admin/src/main/java/com/zbkj/admin/controller/ReshippingController.java @@ -0,0 +1,31 @@ +package com.zbkj.admin.controller; + +import com.zbkj.common.model.reshipping.ReshippingStockAddressPO; +import com.zbkj.service.service.ReshippingService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author wyq + */ +@Slf4j +@RestController +@RequestMapping("api/admin/reshipping") +@Api(tags = "退货") +public class ReshippingController { + + @Autowired + ReshippingService reservationService; + @ApiOperation(value = "退货地址列表") + @RequestMapping(value = "/queryAddress", method = RequestMethod.GET) + public List queryAddress() { + return reservationService.queryAddress(); + } +} diff --git a/crmeb-admin/src/main/java/com/zbkj/admin/controller/extend/TestController.java b/crmeb-admin/src/main/java/com/zbkj/admin/controller/extend/TestController.java index cc59738..36314a6 100644 --- a/crmeb-admin/src/main/java/com/zbkj/admin/controller/extend/TestController.java +++ b/crmeb-admin/src/main/java/com/zbkj/admin/controller/extend/TestController.java @@ -31,14 +31,15 @@ import java.util.List; @RequestMapping("api/extend/test") @Api(tags = "测试接口") public class TestController { - @Autowired - private OrderTaskService orderTaskService; + @Autowired private StoreOrderDao storeOrderDao; @Autowired private StoreOrderRefundService storeOrderRefundService; + @Autowired + private WechatNewService wechatNewService; @PostMapping("/aa") String createDelivery(@RequestBody MallDelivery mallDelivery){ StoreOrder storeOrder = storeOrderDao.selectOne(new LambdaQueryWrapper().eq(StoreOrder::getOrderId, mallDelivery.getPlatformCode())); @@ -46,6 +47,15 @@ public class TestController { request.setAmount(storeOrder.getRefundPrice()); storeOrderRefundService.refund(request,storeOrder); + return ""; + } + @PostMapping("/bb") + String bb(@RequestBody MallDelivery mallDelivery){ + StoreOrder storeOrder = storeOrderDao.selectOne(new LambdaQueryWrapper().eq(StoreOrder::getOrderId, mallDelivery.getPlatformCode())); + + + wechatNewService.payRefundQuery(storeOrder); + return ""; } } diff --git a/crmeb-common/src/main/java/com/zbkj/common/model/reshipping/ReshippingStockAddressPO.java b/crmeb-common/src/main/java/com/zbkj/common/model/reshipping/ReshippingStockAddressPO.java new file mode 100644 index 0000000..6246c9f --- /dev/null +++ b/crmeb-common/src/main/java/com/zbkj/common/model/reshipping/ReshippingStockAddressPO.java @@ -0,0 +1,70 @@ +package com.zbkj.common.model.reshipping; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + +/** + * @author wyq + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("eb_reshipping_stock_address") +@ApiModel(value="ReshippingStockAddressPO", description="退货仓库地址") +public class ReshippingStockAddressPO { + + /** + * 主键ID + */ + @TableId(type = IdType.AUTO) + private Long id; + @ApiModelProperty(value = "回寄收货人手机号") + private String reshippingPhone; + @ApiModelProperty(value = "回寄地址") + private String reshippingAddress; + @ApiModelProperty(value = "回寄收货人") + private String reshippingName; + @ApiModelProperty(value = "是否默认") + private Integer hasDefault; + + /** + * 创建人 + */ + @ApiModelProperty(value = "创建人") + private String createdBy; + + /** + * 更新人 + */ + @ApiModelProperty(value = "更新人") + private String updatedBy; + + /** + * 创建时间 + */ + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createdTime; + + /** + * 更新时间 + */ + @ApiModelProperty(value = "更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updatedTime; + + /** + * 是否逻辑删除:0未删除,1已删除 + */ + private Integer deleted; + +} diff --git a/crmeb-front/src/main/java/com/zbkj/front/config/RestTemplateConfig.java b/crmeb-front/src/main/java/com/zbkj/front/config/RestTemplateConfig.java index 947fc78..1cd18ca 100644 --- a/crmeb-front/src/main/java/com/zbkj/front/config/RestTemplateConfig.java +++ b/crmeb-front/src/main/java/com/zbkj/front/config/RestTemplateConfig.java @@ -1,15 +1,22 @@ package com.zbkj.front.config; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.conn.ssl.TrustStrategy; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.client.RestTemplate; +import javax.net.ssl.SSLContext; import java.nio.charset.StandardCharsets; +import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; @@ -29,10 +36,26 @@ import java.util.List; public class RestTemplateConfig { @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory) { - RestTemplate restTemplate = new RestTemplate(factory); - restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); - restTemplate.getMessageConverters().add(new WxMappingJackson2HttpMessageConverter()); - return restTemplate; + try { + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() + .loadTrustMaterial(null, acceptingTrustStrategy) + .build(); + + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + CloseableHttpClient httpClient = HttpClients.custom() + .setSSLSocketFactory(csf) + .build(); + + HttpComponentsClientHttpRequestFactory requestFactory = + new HttpComponentsClientHttpRequestFactory(); + + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); + }catch (Exception e){ + return null; + } } @Bean diff --git a/crmeb-service/src/main/java/com/zbkj/service/dao/ReshippingStockAddressDao.java b/crmeb-service/src/main/java/com/zbkj/service/dao/ReshippingStockAddressDao.java new file mode 100644 index 0000000..c710f5d --- /dev/null +++ b/crmeb-service/src/main/java/com/zbkj/service/dao/ReshippingStockAddressDao.java @@ -0,0 +1,21 @@ +package com.zbkj.service.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zbkj.common.model.reshipping.ReshippingStockAddressPO; + +/** + * 订单表 Mapper 接口 + * +---------------------------------------------------------------------- + * | CRMEB [ CRMEB赋能开发者,助力企业发展 ] + * +---------------------------------------------------------------------- + * | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. + * +---------------------------------------------------------------------- + * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 + * +---------------------------------------------------------------------- + * | Author: CRMEB Team + * +---------------------------------------------------------------------- + */ +public interface ReshippingStockAddressDao extends BaseMapper { + + +} diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/ReshippingService.java b/crmeb-service/src/main/java/com/zbkj/service/service/ReshippingService.java new file mode 100644 index 0000000..b71611e --- /dev/null +++ b/crmeb-service/src/main/java/com/zbkj/service/service/ReshippingService.java @@ -0,0 +1,12 @@ +package com.zbkj.service.service; + +import com.zbkj.common.model.reshipping.ReshippingStockAddressPO; + +import java.util.List; + +/** + * @author wyq + */ +public interface ReshippingService { + List queryAddress(); +} diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/ReshippingServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/ReshippingServiceImpl.java new file mode 100644 index 0000000..bf7805e --- /dev/null +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/ReshippingServiceImpl.java @@ -0,0 +1,26 @@ +package com.zbkj.service.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zbkj.common.model.reshipping.ReshippingStockAddressPO; +import com.zbkj.service.dao.ReshippingStockAddressDao; +import com.zbkj.service.service.ReshippingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author wyq + */ +@Service +public class ReshippingServiceImpl implements ReshippingService { + + @Autowired + private ReshippingStockAddressDao reshippingStockAddressDao; + + @Override + public List queryAddress() { + return reshippingStockAddressDao.selectList(new LambdaQueryWrapper().eq(ReshippingStockAddressPO::getDeleted, 0) + .orderByDesc(ReshippingStockAddressPO::getHasDefault).orderByDesc(ReshippingStockAddressPO::getId)); + } +} diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/WechatNewServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/WechatNewServiceImpl.java index 8d32c7b..27f2ac8 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/impl/WechatNewServiceImpl.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/WechatNewServiceImpl.java @@ -658,8 +658,10 @@ public class WechatNewServiceImpl implements WechatNewService { HashMap map = CollUtil.newHashMap(); String xml = ""; try { + log.info("查询退款入参:{}",JSON.toJSONString(wxRefundVo)); xml = restTemplateUtil.postXml(url, xmlStr); map = XmlUtil.xmlToMap(xml); + log.info("查询退款返回:{}",JSON.toJSONString(map)); } catch (Exception e) { e.printStackTrace(); throw new CrmebException("xmlToMap错误,xml = " + xml); diff --git a/crmeb-service/src/main/java/com/zbkj/service/util/RedisLockUtil.java b/crmeb-service/src/main/java/com/zbkj/service/util/RedisLockUtil.java index b75da06..39f5a92 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/util/RedisLockUtil.java +++ b/crmeb-service/src/main/java/com/zbkj/service/util/RedisLockUtil.java @@ -3,7 +3,6 @@ package com.zbkj.service.util; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; @@ -11,6 +10,7 @@ import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSeriali import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; import java.util.*; import java.util.concurrent.TimeUnit; @@ -24,10 +24,10 @@ import java.util.concurrent.TimeUnit; public class RedisLockUtil { - @Autowired - private RedisTemplate redisTemplate; + @Resource + private RedisTemplate redisTemplate; - public RedisLockUtil(RedisTemplate redisTemplate) { + public RedisLockUtil(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; } diff --git a/pom.xml b/pom.xml index 80a5f06..baba30f 100644 --- a/pom.xml +++ b/pom.xml @@ -61,7 +61,7 @@ mysql mysql-connector-java - 5.1.24 + 5.1.49