更新全选打包
This commit is contained in:
parent
39a5096151
commit
d98de3cfee
|
|
@ -7,11 +7,26 @@ import javax.servlet.*;
|
|||
import javax.servlet.annotation.WebFilter;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
@WebFilter(urlPatterns = {"/order-service/order/*"},filterName = "customFilter")
|
||||
public class CustomFilter implements Filter {
|
||||
|
||||
private static final List<String> unFilterUrlList= Arrays.asList("/order-service/pay/returnOrder");
|
||||
|
||||
|
||||
private boolean isfilter(String url){
|
||||
for (String s : unFilterUrlList) {
|
||||
if(s.equals(url)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(FilterConfig filterConfig) throws ServletException {
|
||||
log.info(">>>> customFilter init <<<<");
|
||||
|
|
@ -20,14 +35,30 @@ public class CustomFilter implements Filter {
|
|||
@Override
|
||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
||||
log.info(">>>> customFilter doFilter start <<<<");
|
||||
RequestWrapper requestWapper = null;
|
||||
if (servletRequest instanceof HttpServletRequest) {
|
||||
requestWapper = new RequestWrapper((HttpServletRequest) servletRequest);
|
||||
}
|
||||
// RequestWrapper requestWapper = null;
|
||||
//// if (servletRequest instanceof HttpServletRequest) {
|
||||
//// requestWapper = new RequestWrapper((HttpServletRequest) servletRequest);
|
||||
//// }
|
||||
//// if (requestWapper != null) {
|
||||
//// filterChain.doFilter(requestWapper,servletResponse);
|
||||
//// } else {
|
||||
//// filterChain.doFilter(servletRequest,servletResponse);
|
||||
//// }
|
||||
HttpServletRequest request=(HttpServletRequest) servletRequest;
|
||||
if(isfilter(request.getRequestURI().toString())){
|
||||
RequestWrapper requestWapper = null;
|
||||
if (servletRequest instanceof HttpServletRequest) {
|
||||
requestWapper = new RequestWrapper((HttpServletRequest) servletRequest);
|
||||
}
|
||||
|
||||
if (requestWapper != null) {
|
||||
filterChain.doFilter(requestWapper,servletResponse);
|
||||
} else {
|
||||
if (requestWapper != null) {
|
||||
servletResponse.setContentType("text/plain;charset=UTF-8");
|
||||
filterChain.doFilter(requestWapper,servletResponse);
|
||||
} else {
|
||||
servletResponse.setContentType("text/plain;charset=UTF-8");
|
||||
filterChain.doFilter(servletRequest,servletResponse);
|
||||
}
|
||||
}else {
|
||||
filterChain.doFilter(servletRequest,servletResponse);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,66 +74,65 @@ public class PayService {
|
|||
private String backUrl;
|
||||
|
||||
|
||||
|
||||
public Result queryPayType(String shopId){
|
||||
return Result.success(CodeEnum.SUCCESS,tbShopPayTypeMapper.selectByShopId(shopId));
|
||||
public Result queryPayType(String shopId) {
|
||||
return Result.success(CodeEnum.SUCCESS, tbShopPayTypeMapper.selectByShopId(shopId));
|
||||
}
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result scanPay(String orderId,String authCode,String ip,String token){
|
||||
if(ObjectUtil.isEmpty(orderId)||ObjectUtil.isEmpty(authCode)||ObjectUtil.isEmpty(ip)){
|
||||
public Result scanPay(String orderId, String authCode, String ip, String token) {
|
||||
if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(authCode) || ObjectUtil.isEmpty(ip)) {
|
||||
return Result.fail(CodeEnum.PARAM);
|
||||
}
|
||||
|
||||
TbOrderInfo orderInfo= tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
|
||||
TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
|
||||
|
||||
if(ObjectUtil.isEmpty(orderInfo)){
|
||||
if (ObjectUtil.isEmpty(orderInfo)) {
|
||||
return Result.fail(CodeEnum.ORDERNOEXIST);
|
||||
}
|
||||
|
||||
|
||||
if(!"unpaid".equals(orderInfo.getStatus())&&!"paying".equals(orderInfo.getStatus())){
|
||||
if (!"unpaid".equals(orderInfo.getStatus()) && !"paying".equals(orderInfo.getStatus())) {
|
||||
return Result.fail(CodeEnum.ORDERSTATUSERROR);
|
||||
}
|
||||
|
||||
if(ObjectUtil.isNull(orderInfo.getMerchantId())||ObjectUtil.isEmpty(orderInfo.getMerchantId())){
|
||||
if (ObjectUtil.isNull(orderInfo.getMerchantId()) || ObjectUtil.isEmpty(orderInfo.getMerchantId())) {
|
||||
return Result.fail(CodeEnum.NOCUSTOMER);
|
||||
}
|
||||
|
||||
|
||||
TbMerchantThirdApply thirdApply= tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getMerchantId()));
|
||||
if(ObjectUtil.isEmpty(thirdApply)||ObjectUtil.isNull(thirdApply)){
|
||||
TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getMerchantId()));
|
||||
if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) {
|
||||
return Result.fail(CodeEnum.NOCUSTOMER);
|
||||
}
|
||||
|
||||
String payType=null;
|
||||
String payName=null;
|
||||
String qpay=null;
|
||||
String payType = null;
|
||||
String payName = null;
|
||||
String qpay = null;
|
||||
|
||||
String payTypeCode = authCode.substring(0, 1);// 判断收款码
|
||||
|
||||
switch (payTypeCode){
|
||||
switch (payTypeCode) {
|
||||
case "1":
|
||||
payType="wechatPay";
|
||||
payName="微信支付";
|
||||
qpay="scanCode";
|
||||
payType = "wechatPay";
|
||||
payName = "微信支付";
|
||||
qpay = "scanCode";
|
||||
break;
|
||||
case "2":
|
||||
payType="aliPay";
|
||||
payName="支付宝支付";
|
||||
qpay="scanCode";
|
||||
payType = "aliPay";
|
||||
payName = "支付宝支付";
|
||||
qpay = "scanCode";
|
||||
break;
|
||||
}
|
||||
|
||||
int count= tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(),qpay);
|
||||
if(count<1){
|
||||
int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(), qpay);
|
||||
if (count < 1) {
|
||||
return Result.fail(CodeEnum.PAYTYPENOEXIST);
|
||||
}
|
||||
|
||||
TbOrderPayment payment=tbOrderPaymentMapper.selectByOrderId(orderId);
|
||||
if(ObjectUtil.isEmpty(payment)||payment==null){
|
||||
payment=new TbOrderPayment();
|
||||
TbOrderPayment payment = tbOrderPaymentMapper.selectByOrderId(orderId);
|
||||
if (ObjectUtil.isEmpty(payment) || payment == null) {
|
||||
payment = new TbOrderPayment();
|
||||
payment.setPayTypeId("ysk");
|
||||
payment.setAmount(orderInfo.getOrderAmount());
|
||||
payment.setPaidAmount(orderInfo.getPayAmount());
|
||||
|
|
@ -148,37 +147,34 @@ public class PayService {
|
|||
payment.setCreatedAt(System.currentTimeMillis());
|
||||
payment.setAuthCode(authCode);
|
||||
tbOrderPaymentMapper.insert(payment);
|
||||
}else {
|
||||
} else {
|
||||
payment.setAuthCode(authCode);
|
||||
payment.setUpdatedAt(System.currentTimeMillis());
|
||||
tbOrderPaymentMapper.updateByPrimaryKey(payment);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
orderInfo.setPayAmount(orderInfo.getOrderAmount());
|
||||
orderInfo.setPayType(qpay);
|
||||
orderInfo.setUpdatedAt(System.currentTimeMillis());
|
||||
tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo);
|
||||
|
||||
|
||||
|
||||
ScanPayReq scanPayReq=new ScanPayReq();
|
||||
ScanPayReq scanPayReq = new ScanPayReq();
|
||||
scanPayReq.setAppId(thirdApply.getAppId());
|
||||
scanPayReq.setTimestamp(System.currentTimeMillis());
|
||||
scanPayReq.setAuthCode(authCode);
|
||||
scanPayReq.setNotifyUrl(backUrl);
|
||||
scanPayReq.setConsumeFee(payment.getAmount().setScale(2,BigDecimal.ROUND_DOWN).toPlainString());
|
||||
scanPayReq.setConsumeFee(payment.getAmount().setScale(2, BigDecimal.ROUND_DOWN).toPlainString());
|
||||
|
||||
Map<String,Object> map= BeanUtil.transBean2Map(scanPayReq);
|
||||
scanPayReq.setSign(MD5Util.encrypt(map,thirdApply.getAppToken(),true));
|
||||
Map<String, Object> map = BeanUtil.transBean2Map(scanPayReq);
|
||||
scanPayReq.setSign(MD5Util.encrypt(map, thirdApply.getAppToken(), true));
|
||||
|
||||
|
||||
ResponseEntity<String> response= restTemplate.postForEntity(gateWayUrl.concat("merchantOrder/scanPay"),scanPayReq,String.class);
|
||||
if(response.getStatusCodeValue()==200&&ObjectUtil.isNotEmpty(response.getBody())){
|
||||
JSONObject object=JSONObject.parseObject(response.getBody());
|
||||
if(object.get("code").equals("0")){
|
||||
ResponseEntity<String> response = restTemplate.postForEntity(gateWayUrl.concat("merchantOrder/scanPay"), scanPayReq, String.class);
|
||||
if (response.getStatusCodeValue() == 200 && ObjectUtil.isNotEmpty(response.getBody())) {
|
||||
JSONObject object = JSONObject.parseObject(response.getBody());
|
||||
if (object.get("code").equals("0")) {
|
||||
payment.setTradeNumber(object.getJSONObject("data").get("orderNumber").toString());
|
||||
payment.setUpdatedAt(System.currentTimeMillis());
|
||||
tbOrderPaymentMapper.updateByPrimaryKeySelective(payment);
|
||||
|
|
@ -189,25 +185,25 @@ public class PayService {
|
|||
tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo);
|
||||
|
||||
//更新购物车状态
|
||||
int cartCount= tbCashierCartMapper.updateByOrderId(orderId,"final");
|
||||
log.info("更新购物车:{}",cartCount);
|
||||
int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final");
|
||||
log.info("更新购物车:{}", cartCount);
|
||||
|
||||
//更新子单状态
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId),"closed");
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed");
|
||||
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("token",token);
|
||||
jsonObject.put("type","create");
|
||||
jsonObject.put("orderId",orderId);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("token", token);
|
||||
jsonObject.put("type", "create");
|
||||
jsonObject.put("orderId", orderId);
|
||||
|
||||
producer.putOrderCollect(jsonObject.toJSONString());
|
||||
|
||||
producer.printMechine(orderId);
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS,object.getJSONObject("data"));
|
||||
}else {
|
||||
String status=ObjectUtil.isNotEmpty(object.getJSONObject("data"))?object.getJSONObject("data").getString("status"):null;
|
||||
if(ObjectUtil.isNotNull(status)&&"7".equals(status)){
|
||||
return Result.success(CodeEnum.SUCCESS, object.getJSONObject("data"));
|
||||
} else {
|
||||
String status = ObjectUtil.isNotEmpty(object.getJSONObject("data")) ? object.getJSONObject("data").getString("status") : null;
|
||||
if (ObjectUtil.isNotNull(status) && "7".equals(status)) {
|
||||
|
||||
orderInfo.setStatus("paying");
|
||||
orderInfo.setPayOrderNo(payment.getTradeNumber());
|
||||
|
|
@ -229,53 +225,53 @@ public class PayService {
|
|||
}
|
||||
|
||||
|
||||
public Result queryOrder(String orderId,String token){
|
||||
if(ObjectUtil.isEmpty(orderId)){
|
||||
public Result queryOrder(String orderId, String token) {
|
||||
if (ObjectUtil.isEmpty(orderId)) {
|
||||
return Result.fail(CodeEnum.PARAM);
|
||||
}
|
||||
|
||||
TbOrderInfo orderInfo= tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
|
||||
TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
|
||||
|
||||
if(ObjectUtil.isEmpty(orderInfo)){
|
||||
if (ObjectUtil.isEmpty(orderInfo)) {
|
||||
return Result.fail(CodeEnum.ORDERNOEXIST);
|
||||
}
|
||||
|
||||
|
||||
if("unpaid".equals(orderInfo.getStatus())||"paying".equals(orderInfo.getStatus())){
|
||||
TbMerchantThirdApply thirdApply= tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getMerchantId()));
|
||||
if(ObjectUtil.isEmpty(thirdApply)||ObjectUtil.isNull(thirdApply)){
|
||||
if ("unpaid".equals(orderInfo.getStatus()) || "paying".equals(orderInfo.getStatus())) {
|
||||
TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getMerchantId()));
|
||||
if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) {
|
||||
return Result.fail(CodeEnum.NOCUSTOMER);
|
||||
}
|
||||
|
||||
TbOrderPayment tbOrderPayment=tbOrderPaymentMapper.selectByOrderId(orderId);
|
||||
if(ObjectUtil.isNotEmpty(tbOrderPayment)){
|
||||
TradeQueryReq tradeQueryReq=new TradeQueryReq();
|
||||
TbOrderPayment tbOrderPayment = tbOrderPaymentMapper.selectByOrderId(orderId);
|
||||
if (ObjectUtil.isNotEmpty(tbOrderPayment)) {
|
||||
TradeQueryReq tradeQueryReq = new TradeQueryReq();
|
||||
tradeQueryReq.setAppId(thirdApply.getAppId());
|
||||
tradeQueryReq.setTimestamp(System.currentTimeMillis());
|
||||
tradeQueryReq.setOrderNumber(tbOrderPayment.getTradeNumber());
|
||||
|
||||
Map<String,Object> map= BeanUtil.transBean2Map(tradeQueryReq);
|
||||
tradeQueryReq.setSign(MD5Util.encrypt(map,thirdApply.getAppToken(),true));
|
||||
ResponseEntity<String> response= restTemplate.postForEntity(gateWayUrl.concat("merchantOrder/tradeQuery"),tradeQueryReq,String.class);
|
||||
if(response.getStatusCodeValue()==200&&ObjectUtil.isNotEmpty(response.getBody())){
|
||||
JSONObject object=JSONObject.parseObject(response.getBody());
|
||||
if(object.get("code").equals("0")){
|
||||
JSONObject data=object.getJSONObject("data");
|
||||
if("1".equals(data.getString("status"))){
|
||||
Map<String, Object> map = BeanUtil.transBean2Map(tradeQueryReq);
|
||||
tradeQueryReq.setSign(MD5Util.encrypt(map, thirdApply.getAppToken(), true));
|
||||
ResponseEntity<String> response = restTemplate.postForEntity(gateWayUrl.concat("merchantOrder/tradeQuery"), tradeQueryReq, String.class);
|
||||
if (response.getStatusCodeValue() == 200 && ObjectUtil.isNotEmpty(response.getBody())) {
|
||||
JSONObject object = JSONObject.parseObject(response.getBody());
|
||||
if (object.get("code").equals("0")) {
|
||||
JSONObject data = object.getJSONObject("data");
|
||||
if ("1".equals(data.getString("status"))) {
|
||||
orderInfo.setStatus("closed");
|
||||
orderInfo.setPayOrderNo(tbOrderPayment.getTradeNumber());
|
||||
tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo);
|
||||
|
||||
//更新购物车状态
|
||||
int cartCount= tbCashierCartMapper.updateByOrderId(orderId,"final");
|
||||
log.info("更新购物车:{}",cartCount);
|
||||
int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final");
|
||||
log.info("更新购物车:{}", cartCount);
|
||||
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId),"closed");
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed");
|
||||
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("token",token);
|
||||
jsonObject.put("type","create");
|
||||
jsonObject.put("orderId",orderId);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("token", token);
|
||||
jsonObject.put("type", "create");
|
||||
jsonObject.put("orderId", orderId);
|
||||
|
||||
producer.putOrderCollect(jsonObject.toJSONString());
|
||||
|
||||
|
|
@ -286,51 +282,51 @@ public class PayService {
|
|||
}
|
||||
}
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS,orderInfo);
|
||||
return Result.success(CodeEnum.SUCCESS, orderInfo);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result accountPay(String orderId,String memberId,String token){
|
||||
if(ObjectUtil.isEmpty(orderId)||ObjectUtil.isEmpty(memberId)){
|
||||
public Result accountPay(String orderId, String memberId, String token) {
|
||||
if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(memberId)) {
|
||||
return Result.fail(CodeEnum.PARAM);
|
||||
}
|
||||
|
||||
TbOrderInfo orderInfo= tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
|
||||
if(ObjectUtil.isEmpty(orderInfo)){
|
||||
TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
|
||||
if (ObjectUtil.isEmpty(orderInfo)) {
|
||||
return Result.fail(CodeEnum.ORDERNOEXIST);
|
||||
}
|
||||
|
||||
|
||||
if(!"unpaid".equals(orderInfo.getStatus())){
|
||||
if (!"unpaid".equals(orderInfo.getStatus())) {
|
||||
return Result.fail(CodeEnum.ORDERSTATUSERROR);
|
||||
}
|
||||
|
||||
|
||||
int count= tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(),"deposit");
|
||||
if(count<1){
|
||||
int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(), "deposit");
|
||||
if (count < 1) {
|
||||
return Result.fail(CodeEnum.PAYTYPENOEXIST);
|
||||
}
|
||||
|
||||
|
||||
TbShopUser user= tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(memberId));
|
||||
if(ObjectUtil.isEmpty(user)||!"1".equals(user.getIsVip().toString())){
|
||||
TbShopUser user = tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(memberId));
|
||||
if (ObjectUtil.isEmpty(user) || !"1".equals(user.getIsVip().toString())) {
|
||||
return Result.fail(CodeEnum.MEMBERNOEXIST);
|
||||
}
|
||||
|
||||
if(N.gt(orderInfo.getPayAmount(),user.getAmount())){
|
||||
if (N.gt(orderInfo.getPayAmount(), user.getAmount())) {
|
||||
return Result.fail(CodeEnum.MEMBERINSUFFICIENTFUNDS);
|
||||
}
|
||||
|
||||
user.setAmount(user.getAmount().subtract(orderInfo.getOrderAmount()));
|
||||
user.setConsumeAmount(user.getConsumeAmount().add(orderInfo.getPayAmount()));
|
||||
user.setConsumeNumber(user.getConsumeNumber()+1);
|
||||
user.setConsumeNumber(user.getConsumeNumber() + 1);
|
||||
user.setUpdatedAt(System.currentTimeMillis());
|
||||
tbShopUserMapper.updateByPrimaryKeySelective(user);
|
||||
|
||||
|
||||
TbShopUserFlow flow=new TbShopUserFlow();
|
||||
TbShopUserFlow flow = new TbShopUserFlow();
|
||||
flow.setShopUserId(user.getId());
|
||||
flow.setBizCode("accountPay");
|
||||
flow.setBizName("会员储值卡支付");
|
||||
|
|
@ -347,19 +343,19 @@ public class PayService {
|
|||
orderInfo.setPayOrderNo("deposit".concat(SnowFlakeUtil.generateOrderNo()));
|
||||
tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo);
|
||||
//更新购物车状态
|
||||
int cartCount= tbCashierCartMapper.updateByOrderId(orderId,"final");
|
||||
int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final");
|
||||
|
||||
|
||||
tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId),"closed");
|
||||
tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed");
|
||||
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId),"closed");
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed");
|
||||
|
||||
log.info("更新购物车:{}",cartCount);
|
||||
log.info("更新购物车:{}", cartCount);
|
||||
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("token",token);
|
||||
jsonObject.put("type","create");
|
||||
jsonObject.put("orderId",orderId);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("token", token);
|
||||
jsonObject.put("type", "create");
|
||||
jsonObject.put("orderId", orderId);
|
||||
|
||||
producer.putOrderCollect(jsonObject.toJSONString());
|
||||
|
||||
|
|
@ -369,30 +365,26 @@ public class PayService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result cashPay(String orderId,String token){
|
||||
if(ObjectUtil.isEmpty(orderId)){
|
||||
public Result cashPay(String orderId, String token) {
|
||||
if (ObjectUtil.isEmpty(orderId)) {
|
||||
return Result.fail(CodeEnum.PARAM);
|
||||
}
|
||||
|
||||
TbOrderInfo orderInfo= tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
|
||||
TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
|
||||
|
||||
if(ObjectUtil.isEmpty(orderInfo)){
|
||||
if (ObjectUtil.isEmpty(orderInfo)) {
|
||||
return Result.fail(CodeEnum.ORDERNOEXIST);
|
||||
}
|
||||
|
||||
|
||||
if(!"unpaid".equals(orderInfo.getStatus())){
|
||||
if (!"unpaid".equals(orderInfo.getStatus())) {
|
||||
return Result.fail(CodeEnum.ORDERSTATUSERROR);
|
||||
}
|
||||
|
||||
|
||||
int count= tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(),"cash");
|
||||
if(count<1){
|
||||
int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(), "cash");
|
||||
if (count < 1) {
|
||||
return Result.fail(CodeEnum.PAYTYPENOEXIST);
|
||||
}
|
||||
|
||||
|
|
@ -403,15 +395,15 @@ public class PayService {
|
|||
orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));
|
||||
tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo);
|
||||
//更新购物车状态
|
||||
int cartCount= tbCashierCartMapper.updateByOrderId(orderId,"final");
|
||||
int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final");
|
||||
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId),"closed");
|
||||
log.info("更新购物车:{}",cartCount);
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed");
|
||||
log.info("更新购物车:{}", cartCount);
|
||||
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("token",token);
|
||||
jsonObject.put("type","create");
|
||||
jsonObject.put("orderId",orderId);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("token", token);
|
||||
jsonObject.put("type", "create");
|
||||
jsonObject.put("orderId", orderId);
|
||||
|
||||
producer.putOrderCollect(jsonObject.toJSONString());
|
||||
|
||||
|
|
@ -422,28 +414,26 @@ public class PayService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result bankPay(String orderId,String token){
|
||||
if(ObjectUtil.isEmpty(orderId)){
|
||||
public Result bankPay(String orderId, String token) {
|
||||
if (ObjectUtil.isEmpty(orderId)) {
|
||||
return Result.fail(CodeEnum.PARAM);
|
||||
}
|
||||
|
||||
TbOrderInfo orderInfo= tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
|
||||
TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
|
||||
|
||||
if(ObjectUtil.isEmpty(orderInfo)){
|
||||
if (ObjectUtil.isEmpty(orderInfo)) {
|
||||
return Result.fail(CodeEnum.ORDERNOEXIST);
|
||||
}
|
||||
|
||||
|
||||
if(!"unpaid".equals(orderInfo.getStatus())){
|
||||
if (!"unpaid".equals(orderInfo.getStatus())) {
|
||||
return Result.fail(CodeEnum.ORDERSTATUSERROR);
|
||||
}
|
||||
|
||||
|
||||
int count= tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(),"bank");
|
||||
if(count<1){
|
||||
int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(), "bank");
|
||||
if (count < 1) {
|
||||
return Result.fail(CodeEnum.PAYTYPENOEXIST);
|
||||
}
|
||||
|
||||
|
|
@ -454,15 +444,15 @@ public class PayService {
|
|||
orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));
|
||||
tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo);
|
||||
//更新购物车状态
|
||||
int cartCount= tbCashierCartMapper.updateByOrderId(orderId,"final");
|
||||
int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final");
|
||||
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId),"closed");
|
||||
log.info("更新购物车:{}",cartCount);
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed");
|
||||
log.info("更新购物车:{}", cartCount);
|
||||
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("token",token);
|
||||
jsonObject.put("type","create");
|
||||
jsonObject.put("orderId",orderId);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("token", token);
|
||||
jsonObject.put("type", "create");
|
||||
jsonObject.put("orderId", orderId);
|
||||
|
||||
producer.putOrderCollect(jsonObject.toJSONString());
|
||||
|
||||
|
|
@ -472,41 +462,40 @@ public class PayService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result returnOrder(List<TbOrderDetail> list,String token){
|
||||
if(ObjectUtil.isEmpty(list)||list.size()<=0){
|
||||
public Result returnOrder(List<TbOrderDetail> list, String token) {
|
||||
if (ObjectUtil.isEmpty(list) || list.size() <= 0) {
|
||||
return Result.fail(CodeEnum.PARAM);
|
||||
}
|
||||
|
||||
Integer orderId= list.get(0).getOrderId();
|
||||
Integer orderId = list.get(0).getOrderId();
|
||||
|
||||
String remark=list.get(0).getRemark();
|
||||
String remark = list.get(0).getRemark();
|
||||
|
||||
TbOrderInfo orderInfo= tbOrderInfoMapper.selectByPrimaryKey(orderId);
|
||||
if(ObjectUtil.isEmpty(orderInfo)||orderInfo.getStatus().equals("refund")){
|
||||
TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId);
|
||||
if (ObjectUtil.isEmpty(orderInfo) || orderInfo.getStatus().equals("refund")) {
|
||||
return Result.fail(CodeEnum.ORDERSTATUSERROR);
|
||||
}
|
||||
|
||||
List<TbOrderDetail> orderDetails= tbOrderDetailMapper.selectAllByOrderIdAndStatus(list,orderId.toString());
|
||||
List<TbOrderDetail> orderDetails = tbOrderDetailMapper.selectAllByOrderIdAndStatus(list, orderId.toString());
|
||||
|
||||
|
||||
String merchantId=orderInfo.getMerchantId();
|
||||
String shopId=orderInfo.getShopId();
|
||||
String merchantId = orderInfo.getMerchantId();
|
||||
String shopId = orderInfo.getShopId();
|
||||
String day = DateUtils.getDay();
|
||||
String masterId=orderInfo.getMasterId();
|
||||
String payType=orderInfo.getPayType();
|
||||
String orderNo= generateReturnOrderNumber();
|
||||
BigDecimal orderAmount=orderInfo.getPayAmount();
|
||||
String masterId = orderInfo.getMasterId();
|
||||
String payType = orderInfo.getPayType();
|
||||
String orderNo = generateReturnOrderNumber();
|
||||
BigDecimal orderAmount = orderInfo.getPayAmount();
|
||||
|
||||
|
||||
BigDecimal totalAmount=BigDecimal.ZERO;
|
||||
BigDecimal packAMount=BigDecimal.ZERO;
|
||||
BigDecimal saleAmount=BigDecimal.ZERO;
|
||||
BigDecimal feeAmount=BigDecimal.ZERO;
|
||||
BigDecimal payAmount=BigDecimal.ZERO;
|
||||
BigDecimal totalAmount = BigDecimal.ZERO;
|
||||
BigDecimal packAMount = BigDecimal.ZERO;
|
||||
BigDecimal saleAmount = BigDecimal.ZERO;
|
||||
BigDecimal feeAmount = BigDecimal.ZERO;
|
||||
BigDecimal payAmount = BigDecimal.ZERO;
|
||||
|
||||
List<OrderDetailPo> detailPos=new ArrayList<>();
|
||||
List<OrderDetailPo> detailPos = new ArrayList<>();
|
||||
// //判断是否全量退款
|
||||
// if(list.size()==orderDetails.size()){
|
||||
// //修改主单状态
|
||||
|
|
@ -515,49 +504,51 @@ public class PayService {
|
|||
// tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo);
|
||||
// }
|
||||
|
||||
List<TbOrderDetail> returnDetail=new ArrayList<>();
|
||||
List<TbOrderDetail> returnDetail = new ArrayList<>();
|
||||
|
||||
// List<ReturnWTZInfo.ReturnDetail> details=new ArrayList<>();
|
||||
|
||||
Map<Integer,Integer> map1 = new HashMap<>();
|
||||
for (TbOrderDetail orderDetail:list){
|
||||
if (Objects.isNull(orderDetail.getNum())){
|
||||
map1.put(orderDetail.getId(),0);
|
||||
}else {
|
||||
map1.put(orderDetail.getId(),orderDetail.getNum());
|
||||
Map<Integer, Integer> map1 = new HashMap<>();
|
||||
for (TbOrderDetail orderDetail : list) {
|
||||
if (Objects.isNull(orderDetail.getNum())) {
|
||||
map1.put(orderDetail.getId(), 0);
|
||||
} else {
|
||||
map1.put(orderDetail.getId(), orderDetail.getNum());
|
||||
}
|
||||
}
|
||||
for (TbOrderDetail it : orderDetails) {
|
||||
it=tbOrderDetailMapper.selectByPrimaryKey(it.getId());
|
||||
it = tbOrderDetailMapper.selectByPrimaryKey(it.getId());
|
||||
if (it.getStatus().equals("closed")) {
|
||||
if (it.getStatus().equals("refund")) {
|
||||
continue;
|
||||
}
|
||||
if (map1.get(it.getId()) > it.getNum()-it.getReturnNum()){
|
||||
throw new MsgException("可退数量:"+ (it.getNum()-it.getReturnNum()));
|
||||
if (map1.get(it.getId()) > it.getNum() - it.getReturnNum()) {
|
||||
MsgException.checkNull(null,"可退数量:" + (it.getNum() - it.getReturnNum()));
|
||||
}
|
||||
if (map1.get(it.getId()) == 0){
|
||||
map1.put(it.getId(),it.getNum());
|
||||
if (map1.get(it.getId()) == 0) {
|
||||
map1.put(it.getId(), it.getNum());
|
||||
}
|
||||
OrderDetailPo detailPo = new OrderDetailPo();
|
||||
// totalAmount = totalAmount.add(it.getPriceAmount());
|
||||
totalAmount = totalAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()),2,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(map1.get(it.getId()))));
|
||||
totalAmount = totalAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(map1.get(it.getId()))));
|
||||
saleAmount = saleAmount.add(it.getPrice());
|
||||
payAmount=payAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()),2,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(map1.get(it.getId()))));
|
||||
payAmount = payAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(map1.get(it.getId()))));
|
||||
// payAmount=payAmount.add(it.getPriceAmount());
|
||||
packAMount = packAMount.add(it.getPackAmount().divide(new BigDecimal(it.getNum()),2,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(map1.get(it.getId()))));
|
||||
packAMount = packAMount.add(it.getPackAmount().divide(new BigDecimal(it.getNum()), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(map1.get(it.getId()))));
|
||||
|
||||
detailPo.setId(it.getId());
|
||||
if (map1.get(it.getId())+it.getReturnNum() >= it.getNum()){
|
||||
if (map1.get(it.getId()) + it.getReturnNum() >= it.getNum()) {
|
||||
detailPo.setStatus("refund");
|
||||
}else {
|
||||
} else {
|
||||
detailPo.setStatus("closed");
|
||||
|
||||
}
|
||||
BigDecimal returnAmount = it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(map1.get(it.getId())));
|
||||
detailPo.setReturnNum(map1.get(it.getId()));
|
||||
detailPos.add(detailPo);
|
||||
it.setNum(map1.get(it.getId()));
|
||||
it.setReturnNum(0);
|
||||
it.setPriceAmount(returnAmount);
|
||||
it.setStatus("closed");
|
||||
it.setCreateTime(new Date());
|
||||
it.setUpdateTime(null);
|
||||
|
|
@ -568,30 +559,30 @@ public class PayService {
|
|||
}
|
||||
|
||||
|
||||
TbOrderInfo newOrderInfo = new TbOrderInfo(orderNo, totalAmount, packAMount, totalAmount, saleAmount, totalAmount, feeAmount, orderInfo.getTableId(),
|
||||
"table", "return",merchantId, shopId,
|
||||
"", (byte) 1,day,masterId,"refund",payAmount,orderInfo.getPayType(),orderInfo.getTableName());
|
||||
TbOrderInfo newOrderInfo = new TbOrderInfo(orderNo, totalAmount, packAMount, totalAmount, saleAmount, totalAmount, feeAmount, orderInfo.getTableId(),
|
||||
"table", "return", merchantId, shopId,
|
||||
"", (byte) 1, day, masterId, "refund", payAmount, orderInfo.getPayType(), orderInfo.getTableName());
|
||||
|
||||
if("scanCode".equals(payType) || "wx_lite".equals(payType)){
|
||||
TbMerchantThirdApply thirdApply= tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(merchantId));
|
||||
MsgException.checkNull(thirdApply,"支付参数配置错误");
|
||||
ReturnOrderReq req=new ReturnOrderReq();
|
||||
if ("scanCode".equals(payType) || "wx_lite".equals(payType)) {
|
||||
TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(merchantId));
|
||||
MsgException.checkNull(thirdApply, "支付参数配置错误");
|
||||
ReturnOrderReq req = new ReturnOrderReq();
|
||||
req.setAppId(thirdApply.getAppId());
|
||||
req.setTimestamp(System.currentTimeMillis());
|
||||
req.setOrderNumber(orderInfo.getPayOrderNo());
|
||||
req.setAmount(String.format("%.2f",newOrderInfo.getPayAmount().setScale(2,BigDecimal.ROUND_DOWN)));
|
||||
req.setAmount(String.format("%.2f", newOrderInfo.getPayAmount().setScale(2, BigDecimal.ROUND_DOWN)));
|
||||
req.setMercRefundNo(orderInfo.getOrderNo());
|
||||
req.setRefundReason("退货");
|
||||
req.setPayPassword(thirdApply.getPayPassword());
|
||||
Map<String,Object> map= BeanUtil.transBean2Map(req);
|
||||
req.setSign(MD5Util.encrypt(map,thirdApply.getAppToken(),true));
|
||||
Map<String, Object> map = BeanUtil.transBean2Map(req);
|
||||
req.setSign(MD5Util.encrypt(map, thirdApply.getAppToken(), true));
|
||||
log.info("merchantOrderReturn req:{}", JSONUtil.toJsonStr(req));
|
||||
ResponseEntity<String> response= restTemplate.postForEntity(gateWayUrl.concat("merchantOrder/returnOrder"),req,String.class);
|
||||
log.info("merchantOrderReturn:{}",response.getBody());
|
||||
if(response.getStatusCodeValue()==200&&ObjectUtil.isNotEmpty(response.getBody())){
|
||||
JSONObject object=JSONObject.parseObject(response.getBody());
|
||||
if(!object.get("code").equals("0")){
|
||||
MsgException.check(true,"退款渠道调用失败");
|
||||
ResponseEntity<String> response = restTemplate.postForEntity(gateWayUrl.concat("merchantOrder/returnOrder"), req, String.class);
|
||||
log.info("merchantOrderReturn:{}", response.getBody());
|
||||
if (response.getStatusCodeValue() == 200 && ObjectUtil.isNotEmpty(response.getBody())) {
|
||||
JSONObject object = JSONObject.parseObject(response.getBody());
|
||||
if (!object.get("code").equals("0")) {
|
||||
MsgException.check(true, "退款渠道调用失败");
|
||||
}
|
||||
// newOrderInfo.setPayOrderNo(object.getJSONObject("data").getString("refundOrderNumber"));
|
||||
}
|
||||
|
|
@ -599,8 +590,8 @@ public class PayService {
|
|||
|
||||
|
||||
//判断是否修改主单状态
|
||||
BigDecimal returnAmount= tbOrderDetailMapper.selectByOrderId(orderId.toString());
|
||||
if(N.egt(returnAmount.add(payAmount),orderAmount)){
|
||||
BigDecimal returnAmount = tbOrderDetailMapper.selectByOrderId(orderId.toString());
|
||||
if (N.egt(returnAmount.add(payAmount), orderAmount)) {
|
||||
orderInfo.setStatus("refund");
|
||||
}
|
||||
|
||||
|
|
@ -614,35 +605,31 @@ public class PayService {
|
|||
tbOrderInfoMapper.insert(newOrderInfo);
|
||||
|
||||
//更新子单表
|
||||
if(ObjectUtil.isNotEmpty(detailPos)&&detailPos.size()>0){
|
||||
if (ObjectUtil.isNotEmpty(detailPos) && detailPos.size() > 0) {
|
||||
tbOrderDetailMapper.updateBatchOrderDetail(detailPos);
|
||||
}
|
||||
|
||||
//添加子表信息
|
||||
if(ObjectUtil.isNotEmpty(returnDetail)&&returnDetail.size()>0){
|
||||
tbOrderDetailMapper.batchInsert(returnDetail,newOrderInfo.getId().toString());
|
||||
if (ObjectUtil.isNotEmpty(returnDetail) && returnDetail.size() > 0) {
|
||||
tbOrderDetailMapper.batchInsert(returnDetail, newOrderInfo.getId().toString());
|
||||
}
|
||||
|
||||
|
||||
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("token",token);
|
||||
jsonObject.put("type","return");
|
||||
jsonObject.put("orderId",0);
|
||||
jsonObject.put("amount",newOrderInfo.getPayAmount());
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("token", token);
|
||||
jsonObject.put("type", "return");
|
||||
jsonObject.put("orderId", 0);
|
||||
jsonObject.put("amount", newOrderInfo.getPayAmount());
|
||||
// jsonObject.put("data",new ReturnWTZInfo(orderId+"",newOrderInfo.getPayAmount(),details));
|
||||
producer.putOrderCollect(jsonObject.toJSONString());
|
||||
|
||||
|
||||
|
||||
producer.printMechine(newOrderInfo.getId()+"");
|
||||
producer.printMechine(newOrderInfo.getId() + "");
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public String generateReturnOrderNumber() {
|
||||
String date = DateUtils.getSdfTimes();
|
||||
Random random = new Random();
|
||||
|
|
@ -651,9 +638,9 @@ public class PayService {
|
|||
}
|
||||
|
||||
|
||||
public static void main(String[] args){
|
||||
public static void main(String[] args) {
|
||||
|
||||
System.out.println(String.format("%.2f",new BigDecimal(1).setScale(2,BigDecimal.ROUND_DOWN)));
|
||||
System.out.println(String.format("%.2f", new BigDecimal(1).setScale(2, BigDecimal.ROUND_DOWN)));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@
|
|||
select * from tb_cashier_cart where order_id=#{orderId} and `status`=#{status}
|
||||
</select>
|
||||
<select id="selectAllByMarketId" resultType="com.chaozhanggui.system.cashierservice.entity.TbCashierCart">
|
||||
select * from tb_cashier_cart where master_id = #{maskerId} and trade_day = #{day} and shop_id = #{shopId} and status = 'create'
|
||||
select * from tb_cashier_cart where master_id = #{masterId} and trade_day = #{day} and shop_id = #{shopId} and status = 'create'
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue