提交 ee0bb010 authored 作者: luojie's avatar luojie

Merge branch 'master' of E:\Git\zion with conflicts.

上级 ee54e456
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
2019-11-01 17:57:33.043 [restartedMain] INFO com.diaoyun.zion.ZionApplication - Starting ZionApplication on USER-20181114WP with PID 11688 (E:\JavaProject\zion\target\classes started by Administrator in E:\JavaProject\zion)
2019-11-01 17:57:33.045 [restartedMain] INFO com.diaoyun.zion.ZionApplication - No active profile set, falling back to default profiles: default
2019-11-01 17:57:33.073 [restartedMain] INFO o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2019-11-01 17:57:33.073 [restartedMain] INFO o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2019-11-01 17:57:34.545 [restartedMain] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
2019-11-01 17:57:34.547 [restartedMain] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
2019-11-01 17:57:34.639 [restartedMain] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 75ms. Found 0 repository interfaces.
2019-11-01 17:57:35.032 [restartedMain] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.alibaba.druid.spring.boot.autoconfigure.stat.DruidSpringAopConfiguration' of type [com.alibaba.druid.spring.boot.autoconfigure.stat.DruidSpringAopConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-01 17:57:35.101 [restartedMain] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$8c04674c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-01 17:57:35.223 [restartedMain] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.druid-com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties' of type [com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-01 17:57:35.234 [restartedMain] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'advisor' of type [org.springframework.aop.support.RegexpMethodPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-01 17:57:35.258 [restartedMain] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$24b22f86] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-01 17:57:35.264 [restartedMain] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-01 17:57:35.267 [restartedMain] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@1f430b42' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-01 17:57:35.271 [restartedMain] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$4986d238] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-01 17:57:35.274 [restartedMain] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-01 17:57:35.289 [restartedMain] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'redisConfig' of type [com.diaoyun.zion.master.config.RedisConfig$$EnhancerBySpringCGLIB$$7653076a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-01 17:57:35.682 [restartedMain] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8083 (http)
2019-11-01 17:57:35.697 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8083"]
2019-11-01 17:57:35.706 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
2019-11-01 17:57:35.707 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.21]
2019-11-01 17:57:35.867 [restartedMain] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/zion] - Initializing Spring embedded WebApplicationContext
2019-11-01 17:57:35.867 [restartedMain] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 2794 ms
2019-11-01 17:57:37.423 [restartedMain] INFO io.lettuce.core.EpollProvider - Starting without optional epoll library
2019-11-01 17:57:37.425 [restartedMain] INFO io.lettuce.core.KqueueProvider - Starting without optional kqueue library
2019-11-01 17:57:38.106 [restartedMain] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
2019-11-01 17:57:38.269 [restartedMain] INFO o.s.b.d.autoconfigure.OptionalLiveReloadServer - LiveReload server is running on port 35729
2019-11-01 17:57:38.471 [restartedMain] INFO o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: Ant [pattern='/v2/api-docs'], []
2019-11-01 17:57:38.471 [restartedMain] INFO o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: Ant [pattern='/swagger-resources/**'], []
2019-11-01 17:57:38.471 [restartedMain] INFO o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: Ant [pattern='/swagger-ui.html'], []
2019-11-01 17:57:38.471 [restartedMain] INFO o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: Ant [pattern='/configuration/**'], []
2019-11-01 17:57:38.471 [restartedMain] INFO o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: Ant [pattern='/webjars/**'], []
2019-11-01 17:57:38.471 [restartedMain] INFO o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: Ant [pattern='/public'], []
2019-11-01 17:57:38.471 [restartedMain] INFO o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: Ant [pattern='/h2-console/**/**'], []
2019-11-01 17:57:38.514 [restartedMain] INFO o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6f173fdc, org.springframework.security.web.context.SecurityContextPersistenceFilter@39d5de4b, org.springframework.security.web.header.HeaderWriterFilter@4d951bec, org.springframework.web.filter.CorsFilter@5a1c4bbc, org.springframework.security.web.authentication.logout.LogoutFilter@168763c4, com.diaoyun.zion.master.security.JwtTokenFilter@4dc69a0e, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@52aa2eed, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@347e0373, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@14c8d92f, org.springframework.security.web.session.SessionManagementFilter@50281a86, org.springframework.security.web.access.ExceptionTranslationFilter@23e63a3d, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@16cf219e]
2019-11-01 17:57:39.323 [restartedMain] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
2019-11-01 17:57:39.343 [restartedMain] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
2019-11-01 17:57:39.395 [restartedMain] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
2019-11-01 17:57:39.704 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: queryAllUsingGET_1
2019-11-01 17:57:39.704 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: queryAllUsingHEAD_1
2019-11-01 17:57:39.705 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: queryAllUsingPOST_1
2019-11-01 17:57:39.706 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: queryAllUsingPUT_1
2019-11-01 17:57:39.707 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: queryAllUsingPATCH_1
2019-11-01 17:57:39.707 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: queryAllUsingDELETE_1
2019-11-01 17:57:39.708 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: queryAllUsingOPTIONS_1
2019-11-01 17:57:39.708 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: queryAllUsingTRACE_1
2019-11-01 17:57:39.787 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: updateUserInfoUsingPUT_1
2019-11-01 17:57:39.793 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: getGoodsTypeListUsingGET_1
2019-11-01 17:57:39.794 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: getGoodsTypeListUsingHEAD_1
2019-11-01 17:57:39.795 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: getGoodsTypeListUsingPOST_1
2019-11-01 17:57:39.795 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: getGoodsTypeListUsingPUT_1
2019-11-01 17:57:39.797 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: getGoodsTypeListUsingPATCH_1
2019-11-01 17:57:39.798 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: getGoodsTypeListUsingDELETE_1
2019-11-01 17:57:39.799 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: getGoodsTypeListUsingOPTIONS_1
2019-11-01 17:57:39.800 [restartedMain] INFO s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: getGoodsTypeListUsingTRACE_1
2019-11-01 17:57:39.907 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8083"]
2019-11-01 17:57:39.925 [restartedMain] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8083 (http) with context path '/zion'
2019-11-01 17:57:39.929 [restartedMain] INFO com.diaoyun.zion.ZionApplication - Started ZionApplication in 7.513 seconds (JVM running for 9.047)
2019-11-01 18:04:54.706 [Thread-6] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-0} closing ...
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
package com.diaoyun.zion.chinafrica.api;
public class Test {
}
......@@ -21,4 +21,11 @@ public interface TbCfToiCouponDao extends BaseDao<TbCfToiCouponEntity> {
List<TbCfToiCouponEntityExtends> queryCouponByUserId(String userId);
int changeCoupnStatus(String userId, String couponId);
/**
* 更改使用状态
* @param userId
* @param couponId
* @return
*/
int updateEnableFlag(String userId, String couponId, Integer invalid);
}
......@@ -4,6 +4,7 @@ import com.diaoyun.zion.chinafrica.constant.KeyConstant;
import com.diaoyun.zion.chinafrica.dao.TbCfFinanceDao;
import com.diaoyun.zion.chinafrica.dao.TbCfIssueCouponDao;
import com.diaoyun.zion.chinafrica.dao.TbCfOrderDao;
import com.diaoyun.zion.chinafrica.dao.TbCfToiCouponDao;
import com.diaoyun.zion.chinafrica.entity.TbCfFinanceEntity;
import com.diaoyun.zion.chinafrica.entity.TbCfOrderEntity;
import com.diaoyun.zion.chinafrica.enums.DeliveryStatusEnum;
......@@ -29,6 +30,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.Date;
......@@ -50,6 +52,8 @@ public class FlutterWaveServiceImpl implements FlutterWaveService {
@Autowired
private TbCfIssueCouponDao tbCfIssueCouponDao;
@Autowired
private TbCfToiCouponDao TbCfToiCouponDao;
@Autowired
private DomainProperties domainProperties;
@Resource
private RedisCache<Object> orderRedisCache;
......@@ -107,7 +111,7 @@ public class FlutterWaveServiceImpl implements FlutterWaveService {
changeOrderState(paymentId, tbCfOrderVo);
//修改优惠券状态
if (tbCfOrderVo.getCouponId() != null && tbCfOrderVo.getPayStatus() == 20) {
tbCfIssueCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(), tbCfOrderVo.getCouponId());
TbCfToiCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(), tbCfOrderVo.getCouponId());
}
//生成支付流水
TbCfFinanceEntity finance = createFinance(paymentId, url, tbCfOrderVo);
......
......@@ -4,6 +4,7 @@ import com.diaoyun.zion.chinafrica.constant.KeyConstant;
import com.diaoyun.zion.chinafrica.dao.TbCfFinanceDao;
import com.diaoyun.zion.chinafrica.dao.TbCfIssueCouponDao;
import com.diaoyun.zion.chinafrica.dao.TbCfOrderDao;
import com.diaoyun.zion.chinafrica.dao.TbCfToiCouponDao;
import com.diaoyun.zion.chinafrica.entity.TbCfFinanceEntity;
import com.diaoyun.zion.chinafrica.entity.TbCfOrderEntity;
import com.diaoyun.zion.chinafrica.enums.DeliveryStatusEnum;
......@@ -19,14 +20,11 @@ import com.diaoyun.zion.master.enums.ResultCodeEnum;
import com.diaoyun.zion.master.util.IdUtil;
import com.diaoyun.zion.master.util.JsoupUtil;
import com.egzosn.pay.common.api.PayService;
import com.egzosn.pay.common.bean.MethodType;
import com.egzosn.pay.common.bean.PayOrder;
import com.egzosn.pay.common.bean.RefundOrder;
import com.egzosn.pay.common.http.HttpConfigStorage;
import com.egzosn.pay.paypal.api.PayPalConfigStorage;
import com.egzosn.pay.paypal.api.PayPalPayService;
import com.egzosn.pay.paypal.bean.PayPalTransactionType;
import com.stripe.model.Charge;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -57,6 +55,8 @@ public class PayPalServiceImpl implements PayPalService {
private TbCfOrderDao tbCfOrderDao;
@Autowired
private TbCfIssueCouponDao tbCfIssueCouponDao;
@Autowired
private TbCfToiCouponDao tbCfToiCouponDao;
private String ORDER_ID = "";
......@@ -140,7 +140,7 @@ public class PayPalServiceImpl implements PayPalService {
changeOrderState(paymentId, tbCfOrderVo);
//修改优惠券状态
if (tbCfOrderVo.getCouponId() != null && tbCfOrderVo.getPayStatus() == 20) {
tbCfIssueCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(), tbCfOrderVo.getCouponId());
tbCfToiCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(), tbCfOrderVo.getCouponId());
}
//生成支付流水
TbCfFinanceEntity finance = createFinance(paymentId, token, payerID, tbCfOrderVo);
......
......@@ -109,8 +109,6 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
@Autowired
private TbCfIssueCouponService tbCfIssueCouponService; //发放表
private boolean flag = false;
@Override
public TbCfOrderEntity queryObject(String orderId) {
return tbCfOrderDao.queryObject(orderId);
......@@ -149,7 +147,6 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
/**
* 用户计算1
*
* @return
* @throws IOException
* @throws URISyntaxException
......@@ -157,7 +154,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws InterruptedException
* @throws TimeoutException
*/
@Override
@Override
public Result settleAccount(String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
Result<TbCfOrderVo> result = new Result<>();
//获取用户
......@@ -169,16 +166,16 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
} else {
//获取订单数据
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList, toitableId);
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList,toitableId);
result.setData(tbCfOrder).setMessage("Order pending settlement");
}
return result;
}
@Override
public Result placeOrder(TbCfOrderVo pageOrder, String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
System.out.println(toitableId + "发放ID");
Result<TbCfOrderVo> result = new Result<>();
public Result placeOrder(TbCfOrderVo pageOrder,String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
System.out.println(toitableId+"发放ID");
Result<TbCfOrderVo> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
......@@ -189,7 +186,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
} else {
//获取下单的订单数据
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList, toitableId);
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList,toitableId);
//持久化订单数据
TbCfOrderEntity tbCfOrderEntity = new TbCfOrderEntity();
BeanUtils.copyProperties(definiteOrder, tbCfOrderEntity);
......@@ -205,45 +202,48 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
@Override
public Result getUserOrderList(Integer pageNum, Integer pageSize, Integer orderStatus) throws InterruptedException {
public synchronized Result getUserOrderList(Integer pageNum, Integer pageSize, Integer orderStatus) {
Result<PageInfo<TbCfOrderVo>> result = new Result<>();
//获取用户
synchronized (this) {
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
//订单数据
List<TbCfOrderEntity> orderList = tbCfOrderDao.getUserOrderList(tbCfUserInfoVo.getUserId(), orderStatus);
startPage(pageNum, pageSize);
PageInfo<TbCfOrderEntity> pageInfo = new PageInfo<>(orderList);
//获取订单后,再获取订单内商品
List<TbCfOrderEntity> pagingOrderList = pageInfo.getList();
List<TbCfOrderVo> tbCfOrderVoList = new ArrayList<>();
if (!pagingOrderList.isEmpty()) {
for (TbCfOrderEntity order : pagingOrderList) {
TbCfOrderVo orderVo = new TbCfOrderVo();
BeanUtils.copyProperties(order, orderVo);
//获取订单内商品
List<TbCfItemDetailEntity> tbCfItemDetailList = tbCfOrderDao.getOrderItemList(orderVo.getOrderId());
//返回的订单商品详情
List<TbCfCartItemDetailVo> itemDetailVoList = new ArrayList<>();
for (TbCfItemDetailEntity tbCfItemDetail : tbCfItemDetailList) {
TbCfCartItemDetailVo tbCfCartItemDetailVo = new TbCfCartItemDetailVo();
BeanUtils.copyProperties(tbCfItemDetail, tbCfCartItemDetailVo);
itemDetailVoList.add(tbCfCartItemDetailVo);
}
orderVo.setItemDetailList(itemDetailVoList);
tbCfOrderVoList.add(orderVo);
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
PageInfo<TbCfOrderVo> pageInfos = (PageInfo<TbCfOrderVo>) orderRedisCache.get(KeyConstant.ORDER_DET + tbCfUserInfoVo.getUserId() + orderStatus);
if (pageInfos != null) {
result.setData(pageInfos);
return result;
}
//订单数据
List<TbCfOrderEntity> orderList = tbCfOrderDao.getUserOrderList(tbCfUserInfoVo.getUserId(), orderStatus);
startPage(pageNum, pageSize);
PageInfo<TbCfOrderEntity> pageInfo = new PageInfo<>(orderList);
//获取订单后,再获取订单内商品
List<TbCfOrderEntity> pagingOrderList = pageInfo.getList();
List<TbCfOrderVo> tbCfOrderVoList = new ArrayList<>();
if (!pagingOrderList.isEmpty()) {
for (TbCfOrderEntity order : pagingOrderList) {
TbCfOrderVo orderVo = new TbCfOrderVo();
BeanUtils.copyProperties(order, orderVo);
//获取订单内商品
List<TbCfItemDetailEntity> tbCfItemDetailList = tbCfOrderDao.getOrderItemList(orderVo.getOrderId());
//返回的订单商品详情
List<TbCfCartItemDetailVo> itemDetailVoList = new ArrayList<>();
for (TbCfItemDetailEntity tbCfItemDetail : tbCfItemDetailList) {
TbCfCartItemDetailVo tbCfCartItemDetailVo = new TbCfCartItemDetailVo();
BeanUtils.copyProperties(tbCfItemDetail, tbCfCartItemDetailVo);
itemDetailVoList.add(tbCfCartItemDetailVo);
}
orderVo.setItemDetailList(itemDetailVoList);
tbCfOrderVoList.add(orderVo);
}
PageInfo<TbCfOrderVo> returnPageInfo = new PageInfo<>();
BeanUtils.copyProperties(pageInfo, returnPageInfo);
returnPageInfo.setList(tbCfOrderVoList);
result.setData(returnPageInfo);
}
PageInfo<TbCfOrderVo> returnPageInfo = new PageInfo<>();
BeanUtils.copyProperties(pageInfo, returnPageInfo);
returnPageInfo.setList(tbCfOrderVoList);
orderRedisCache.set(KeyConstant.ORDER_DET + tbCfUserInfoVo.getUserId() + orderStatus, returnPageInfo);
result.setData(returnPageInfo);
return result;
}
@Override
public void cancelOrder(String orderId, String userId, String couponId) {
//更改订单状态
......@@ -285,8 +285,8 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//更改订单状态
changeOrderState(charge.getId(), tbCfOrderVo);
//修改使用的优惠券的状态
if (tbCfOrderVo.getOrderStatus() == 20) {
tbCfToiCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(), tbCfOrderVo.getCouponId());
if("20".equals(tbCfOrderVo.getOrderStatus())){
tbCfToiCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(),tbCfOrderVo.getCouponId());
}
//生成流水记录
TbCfFinanceEntity tbCfFinance = createFinance(charge, tbCfOrderVo);
......@@ -320,7 +320,6 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
/**
* 查询物流信息
*
* @param orderId
* @return
* @throws IOException
......@@ -379,7 +378,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
public Result getOrderDetailThird(String orderId) {
Result<OrderEntity> result = new Result<>();
OrderEntity order = tbCfOrderDao.getOrder(orderId);
OrderEntity orderEntity = new OrderEntity();
OrderEntity orderEntity=new OrderEntity();
orderEntity.setOrderId(order.getOrderId());
orderEntity.setDeliveryPhone(order.getDeliveryPhone());
orderEntity.setDeliveryName(order.getDeliveryName());
......@@ -391,7 +390,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//返回的订单商品详情
List<ItemEntity> itemList = new ArrayList<>();
for (ItemEntity item : items) {
ItemEntity entity = new ItemEntity();
ItemEntity entity=new ItemEntity();
entity.setItemNum(item.getItemNum());
entity.setItemCategory(item.getItemCategory());
entity.setItemPrice(item.getItemPrice());
......@@ -426,14 +425,14 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
Result<TbCfOrderVo> result = new Result<>();
TbCfOrderEntity tbCfOrderEntity = tbCfOrderDao.queryObject(orderId);
TbCfOrderVo tbCfOrderVo = new TbCfOrderVo();
BeanUtils.copyProperties(tbCfOrderEntity, tbCfOrderVo);
BeanUtils.copyProperties(tbCfOrderEntity,tbCfOrderVo);
//获取订单内商品
List<TbCfItemDetailEntity> tbCfItemDetailList = tbCfOrderDao.getOrderItemList(orderId);
//返回的订单商品详情
List<TbCfCartItemDetailVo> itemDetailVoList = new ArrayList<>();
for (TbCfItemDetailEntity tbCfItemDetail : tbCfItemDetailList) {
TbCfCartItemDetailVo tbCfCartItemDetailVo = new TbCfCartItemDetailVo();
BeanUtils.copyProperties(tbCfItemDetail, tbCfCartItemDetailVo);
BeanUtils.copyProperties(tbCfItemDetail,tbCfCartItemDetailVo);
itemDetailVoList.add(tbCfCartItemDetailVo);
}
tbCfOrderVo.setItemDetailList(itemDetailVoList);
......@@ -516,9 +515,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//使用优惠券
if (StringUtils.isNotBlank(definiteOrder.getCouponId())) {
couponUse(definiteOrder.getUserId(), definiteOrder.getCouponId());
}
//把订单放redis中,过期则取消订单 RedisKeyExpirationListener接收
long timeout = 1800;
String timeoutStr = domainProperties.getProperty("redis.order.expiredTime");
......@@ -543,14 +540,14 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @param couponId
*/
private void couponUse(String userId, String couponId) {
// 更新领取记录已领取
int res = tbCfTakeCouponDao.updateEnableFlag(userId, couponId, StateConstant.INVALID);
// 更新领取记录已领取
int res = tbCfToiCouponDao.updateEnableFlag(userId, couponId, StateConstant.INVALID);
if (res < 1) {
logger.error("消费了优惠券,但是在数据表里没有记录!userId:" + userId + ";couponId:" + couponId);
}
/**
* 增加已使用记录
// */
// */
// TbCfCouponUseEntity tbCfCouponUse = new TbCfCouponUseEntity();
// tbCfCouponUse.setUseId(IdUtil.createIdbyUUID());
// tbCfCouponUse.setCouponId(couponId);
......@@ -604,7 +601,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws IOException
* @throws URISyntaxException
*/
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList, String toitableId) {
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String toitableId) {
TbCfOrderVo definiteOrder = getGenericOrder(tbCfCartItemDetailList);
/*//获取可以使用的优惠券,后续还有判断此订单是否可以使用
......@@ -626,7 +623,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
}*/
//计算实际需要付款
countRealityPay(definiteOrder, toitableId);
countRealityPay(definiteOrder,toitableId);
//获取订单地址
String deliveryAddressId = pageOrder.getDeliveryAddressId();
Validator.NOT_BLANK.validate("address", deliveryAddressId);
......@@ -658,7 +655,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
*
* @return
*/
private TbCfOrderVo getGenericOrder(List<TbCfCartItemDetailVo> tbCfCartItemDetailList) {
private TbCfOrderVo getGenericOrder(List<TbCfCartItemDetailVo> tbCfCartItemDetailList) {
TbCfOrderVo genericOrder = new TbCfOrderVo();
genericOrder.setItemDetailList(tbCfCartItemDetailList);
......@@ -667,7 +664,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
BigDecimal totalExpressCost = BigDecimal.ZERO;
for (TbCfCartItemDetailVo tbCfCartItemDetailVo : tbCfCartItemDetailList) {
BigDecimal itemNum = BigDecimal.valueOf(tbCfCartItemDetailVo.getItemNum());
BigDecimal itemSourcePrice = tbCfCartItemDetailVo.getItemPrice();
BigDecimal itemSourcePrice=tbCfCartItemDetailVo.getItemPrice();
itemsPrice = itemsPrice.add(itemSourcePrice.multiply(itemNum));
//计算运费
BigDecimal expressCost = getExpressTemplate(tbCfCartItemDetailVo.getItemCategory());
......@@ -722,7 +719,6 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
/**
* 用户计算价格2
*
* @param tbCfUserInfoVo
* @param tbCfCartItemDetailList
* @return
......@@ -732,7 +728,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws InterruptedException
* @throws TimeoutException
*/
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList, String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
TbCfOrderVo tbCfOrder = getGenericOrder(tbCfCartItemDetailList);
/* //获取可以使用的优惠券,后续还有判断此订单是否可以使用
List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date());
......@@ -747,7 +743,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
}*/
//计算实际需要付款
countRealityPay(tbCfOrder, toitableId);
countRealityPay(tbCfOrder,toitableId);
tbCfOrder.setUserId(tbCfUserInfoVo.getUserId());
tbCfOrder.setUserName(tbCfUserInfoVo.getNick());
......@@ -760,10 +756,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
*
* @param tbCfOrder
*/
private void countRealityPay(TbCfOrderVo tbCfOrder, String toitableId) {
if (toitableId != null) {
private void countRealityPay(TbCfOrderVo tbCfOrder,String toitableId) {
if(toitableId!=null){
TbCfCouponEntity couponEntity = tbCfOrderDao.queryCouponPrice(toitableId);
if (couponEntity != null) {
if(couponEntity!=null){
tbCfOrder.setCouponPrice(couponEntity.getDeductAmount());
tbCfOrder.setCouponId(couponEntity.getCouponId());
}
......@@ -781,7 +777,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
tbCfOrder.setRealityPay(tbCfOrder.getTotalPrice());
}
removeRedisCache(tbCfOrder);
orderRedisCache.set(KeyConstant.ORDER_DET + tbCfOrder.getOrderId(), tbCfOrder);
orderRedisCache.set(KeyConstant.ORDER_DET + tbCfOrder.getOrderId(),tbCfOrder);
}
/**
......
......@@ -4,7 +4,6 @@ import com.diaoyun.zion.master.util.HttpClientUtil;
import com.diaoyun.zion.master.util.SortUtil;
import net.sf.json.JSONObject;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.http.Consts;
import java.util.Map;
import java.util.SortedMap;
......@@ -36,6 +35,5 @@ public abstract class AbstractTencentCallable<T> implements Callable<Map<String,
Map<String, Object> resultMap = JSONObject.fromObject(resultStr);
return resultMap;
}
abstract void fillParam(T param);
}
......@@ -3,19 +3,11 @@ package com.diaoyun.zion.master.thread;
import com.diaoyun.zion.master.bo.TencentTranslateParam;
import com.diaoyun.zion.master.config.DomainProperties;
import com.diaoyun.zion.master.enums.TranslateLanguageEnum;
import com.diaoyun.zion.master.util.HttpClientUtil;
import com.diaoyun.zion.master.util.IdUtil;
import com.diaoyun.zion.master.util.SortUtil;
import com.diaoyun.zion.master.util.SpringContextUtil;
import net.sf.json.JSONObject;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.http.Consts;
import org.apache.http.protocol.HTTP;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
import java.util.concurrent.Callable;
import java.util.Map;
/** 腾讯翻译类
* https://api.ai.qq.com/fcgi-bin/nlp/nlp_texttranslate
......@@ -32,7 +24,6 @@ public class TranslateCallable extends AbstractTencentCallable<TencentTranslateP
this.charset=Consts.UTF_8.name();
}
// TODO 泛型
@Override
public Map<String, Object> call() throws Exception {
//填充参数
......
......@@ -44,8 +44,7 @@ public class TranslateHelper {
logger.error(e.getMessage(),e);
}
}
/**
/**
* 等待翻译结果
* @param futureList
*/
......@@ -88,10 +87,8 @@ public class TranslateHelper {
} else {
productPropMap.put("translate",(String) productPropMap.get("propName"));
}
}
translateArray.add(keyTranslateMap);
}
// TODO productPropSetMap.put("translateArray",translateArray);
}
......
......@@ -77,10 +77,14 @@
WHERE a.user_id = #{userId} and a.enable_flag=1 and b.status=1
</select>
<!--修改优惠券为已使用-->
<update id="changeCoupnStatus" parameterType="com.diaoyun.zion.chinafrica.entity.TbCfToiCouponEntity">
update tb_cf_toicoupon t set enable_flag = 0 where t.user_id=#{userId} and t.coupon_id=#{couponId}
update tb_cf_toicoupon t set enable_flag = 0 where t.user_id=#{userId} and t.coupon_id=#{couponId}
</update>
<!--修改优惠券领取发放记录-->
<update id="updateEnableFlag">
update tb_cf_toicoupon set enable_flag=#{enableFlag} where user_id=#{userId} and coupon_id=#{couponId}
</update>
<insert id="save" parameterType="com.diaoyun.zion.chinafrica.entity.TbCfToiCouponEntity">
insert into tb_cf_toicoupon(
`toitable_id`,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论