Commit 91e1e1c5 authored by unset's avatar unset

添加订单商品信息

parent d115d536
......@@ -20,7 +20,12 @@
<version>2.0-rscp-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.upyuns.platform.rs</groupId>
<artifactId>rs-website-api</artifactId>
<version>2.0-rscp-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
......@@ -112,6 +117,12 @@
<optional>true</optional>
<version>2.8.3</version>
</dependency>
<dependency>
<groupId>com.upyuns.platform.rs</groupId>
<artifactId>rs-website-api</artifactId>
<version>2.0-rscp-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
......
......@@ -30,6 +30,8 @@ import com.upyuns.platform.rs.universal.vo.OrderPayVo;
import com.upyuns.platform.rs.universal.weixin.api.*;
import com.upyuns.platform.rs.universal.constant.WxResponseProperties;
import com.upyuns.platform.rs.universal.weixin.util.HTTPUtils;
import com.upyuns.platform.rs.website.entity.OrderInfo;
import com.upyuns.platform.rs.website.feign.WebsiteFeign;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -64,13 +66,19 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
@Autowired
MQServiceBiZ mqServiceBiZ;
@Value("${universal.url}")
String weixinHost;
@Value("${wx.appid}")
private String wy_appid;
@Value("${wx.appSercet}")
private String wy_secret;
@Autowired
WebsiteFeign websiteFeign;
private static final String SUCCESS = "SUCCESS";
public JSONObject preparepay(OrderPayVo orderPayVo) {
......@@ -123,7 +131,11 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
jsParam = generateAliPayment(orderPayVo, notifyUrl);
} else if (type == 3 && payWay == 1) { //网页支付
sellerAccount = SystemConfig.APP_PARTNER;
jsParam = WXPay.getH5PayParam(amount + "",orderPayVo.getBuyerIp(), trade_no, orderPayVo.getBody(), orderPayVo.getBody(), orderPayVo.getBody(), notify_url);
jsParam = WXPay.getH5PayParam(amount + "", orderPayVo.getBuyerIp(), trade_no, orderPayVo.getBody(), orderPayVo.getBody(), orderPayVo.getBody(), notify_url);
} else if (type == 3 && payWay == 3) { //对公账户支付
sellerAccount = SystemConfig.APP_PARTNER;
//生成随机码
}
log.info("报名费回调路径jsParam:" + jsParam);
if (!StringUtils.isBlank(jsParam)) {
......@@ -135,7 +147,6 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
log.error("---下单---order_no=====" + order_no + "----成功");
} catch (Exception e) {
log.error(e.getMessage(), e);
;
log.error("---下单---order_no=====" + order_no + "----异常---msg===" + e.getMessage());
return JsonResultUtil.createFailedResult(ResultCode.EXCEPTION_CODE, "出现异常");
}
......@@ -162,44 +173,8 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
orderPay.setStatus(1);
orderPay.setSerialNumber(serialNumber);
int num = mapper.updateByExampleSelective(orderPay, example);
log.error("---支付回调处理---num=====" + num + "----orderNo=======" + orderNo);
if (num > 0) {
//支付成功,添加积分
OrderPay pay = list.get(0);
OrderPay newValue = mapper.selectOne(orderPay);
log.info("支付回调信息:newValue = {}", newValue);
if (newValue.getStatus() == 1) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("userId", newValue.getUserId());
jsonObject.put("amount", newValue.getAmount());
jsonObject.put("channelId", newValue.getOrderNo());
if (newValue.getChannel() == 1) {//租车
jsonObject.put("integralRuleCode", "RENTRV");
} else if (newValue.getChannel() == 2) { //旅游
jsonObject.put("integralRuleCode", "BUYROUT");
} else if (newValue.getChannel() == 3) { //会员
jsonObject.put("integralRuleCode", "BUYMEMBER");
}
log.info("支付订单号:orderNo = {}, orderType = {}", newValue.getOrderNo(), newValue.getChannel());
// log.info("支付成功获取积分:发送消息 exchange = {}, routingKey = {}, json = {}", RabbitConstant.INTEGRAL_TOPIC, RabbitConstant.INTEGRAL_ROUTING_KEY, jsonObject.toJSONString());
// mqServiceBiZ.sendMessage(RabbitConstant.INTEGRAL_TOPIC, RabbitConstant.INTEGRAL_ROUTING_KEY, jsonObject.toJSONString());
}
if (StringUtils.isNotBlank(pay.getNotifyUrl())) {
String url = pay.getNotifyUrl();
Integer type = pay.getType() == null ? 1 : pay.getType();
Integer payWay = pay.getPayWay();
url += "&tradeNo=" + orderNo + "&type=" + type + "&payWay=" + payWay;
log.error("---支付回调处理---orderNo=======" + orderNo + "----notifyUrl====" + url);
String result = "";
if (url.contains("https") || url.contains("HTTPS")) {
result = HTTPSUtils.httpRequest(url, "GET", null);
} else {
result = HTTPUtils.doGet(url);
}
log.error("---支付回调处理---orderNo=======" + orderNo + "---result===" + result);
}
websiteFeign.updateOrderStatus(new OrderInfo(){{setOrderNo(orderPay.getOrderNo());setPayStatus(2);}});
}
}
......@@ -334,23 +309,23 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
* @return
*/
private String preCreate(AlipayClient alipayClient, OrderPayVo orderPayVo, String notifyUrl) {
BigDecimal realAmount = new BigDecimal(orderPayVo.getAmount().toString()).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_UP);
AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest(); //创建API对应的request类
BigDecimal realAmount = new BigDecimal(orderPayVo.getAmount().toString()).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_UP);
AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest(); //创建API对应的request类
request.setBizContent("{" +
"\"out_trade_no\":\"" + orderPayVo.getTradeNo() + "\"," + //商户订单号
"\"total_amount\":\""+realAmount+"\"," +
"\"total_amount\":\"" + realAmount + "\"," +
"\"subject\":\"" + orderPayVo.getSubject() + "\"," +
"\"timeout_express\":\"30m\"}"); //订单允许的最晚付款时间
try {
log.info("{}", JSONObject.toJSONString(request));
AlipayTradePrecreateResponse response = alipayClient.execute(request);
log.info(response.getBody());//就是orderString 可以直接给客户端请求,无需再做处理。
return response.getBody();
} catch (AlipayApiException e) {
log.error(e.getMessage(), e);
}
return null;
}
try {
log.info("{}", JSONObject.toJSONString(request));
AlipayTradePrecreateResponse response = alipayClient.execute(request);
log.info(response.getBody());//就是orderString 可以直接给客户端请求,无需再做处理。
return response.getBody();
} catch (AlipayApiException e) {
log.error(e.getMessage(), e);
}
return null;
}
//预授权冻结
......@@ -715,4 +690,23 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
//orderPayBiz.tradePay("20191114182254000019", "2019111410002001530505959461", 1,"扣除违约金", "扣除违约金");
//orderPayBiz.fundAuthQuery("20191031172653000026");
}
/**
* 更新支付状态
* @param orderPay
* @return
*/
public ObjectRestResponse updateStatus(OrderPay orderPay) {
if (orderPay == null) {
return ObjectRestResponse.paramIsEmpty();
}
OrderPay old = selectOne(orderPay);
if (old == null) {
return ObjectRestResponse.paramIsEmpty();
}
old.setStatus(1);
updateSelectiveByIdRe(old);
return ObjectRestResponse.succ();
}
}
......@@ -111,6 +111,11 @@ public class OrderPayController extends BaseController<OrderPayBiz,OrderPay> {
return baseBiz.fundAuthQuery(tradNo);
}
@PostMapping(value = "/app/unauth/updateStatus")
public ObjectRestResponse updateStatus(@RequestBody OrderPay orderPay) {
return baseBiz.updateStatus(orderPay);
}
@PostMapping("/app/unauth/transfer_account")
@IgnoreUserToken
public ObjectRestResponse<String> transferAccount(@RequestBody FundPayVo fundPayVo){
......
......@@ -222,6 +222,16 @@ public class OrderInfo implements Serializable {
*/
String customerJson;
/**
* 对公支付随机码
*/
String payCode;
/**
* 对公支付电子回单地址
*/
String payImg;
@Transient
private List<OrderItem> orderItemList;
......
package com.upyuns.platform.rs.website.feign;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.upyuns.platform.rs.website.entity.OrderInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
......@@ -12,4 +16,7 @@ import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(value = "rs-website", contextId = "website-base")
public interface WebsiteFeign {
@PostMapping(value = "orderInfo/web/updateOrderStatus")
public ObjectRestResponse updateOrderStatus(@RequestBody OrderInfo orderInfo);
}
......@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.OrderUtil;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.upyuns.platform.rs.datacenter.fegin.DatacenterFeign;
import com.upyuns.platform.rs.datacenter.pojo.ImageDataVO;
......@@ -16,6 +17,7 @@ import com.upyuns.platform.rs.datacenter.pojo.ImagePageFeginDTO;
import com.upyuns.platform.rs.universal.constant.DictionaryKey;
import com.upyuns.platform.rs.universal.entity.Dictionary;
import com.upyuns.platform.rs.universal.feign.ThirdFeign;
import com.upyuns.platform.rs.universal.vo.OrderPayVo;
import com.upyuns.platform.rs.website.dto.*;
import com.upyuns.platform.rs.website.entity.*;
import com.upyuns.platform.rs.website.mapper.OrderItemMapper;
......@@ -32,10 +34,7 @@ import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
......@@ -944,4 +943,68 @@ public class OrderInfoBiz extends BaseBiz<OrderInfoMapper, OrderInfo> {
return ObjectRestResponse.succ(itemInfoVoList);
}
/**
* 订单支付
* @param orderPayVo
* @return
*/
public JSONObject pay(OrderPayVo orderPayVo) {
if (orderPayVo == null || StringUtils.isBlank(orderPayVo.getOrderNo())) {
return JsonResultUtil.createFailedResult(ResultCode.PARAM_ILLEGAL_CODE, ResultCode.getMsg(ResultCode.PARAM_ILLEGAL_CODE));
}
OrderInfo orderInfo = getOneByOrderNo(orderPayVo.getOrderNo());
if (orderInfo == null) {
return JsonResultUtil.createFailedResult(ResultCode.ORDER_NOT_EXIST, ResultCode.getMsg(ResultCode.ORDER_NOT_EXIST));
}
orderInfo.setPayType(orderPayVo.getPayType());
orderInfo.setPayTime(new Date());
orderInfo.setPayStatus(1);
updateSelectiveByIdRe(orderInfo);
return thirdFeign.wx(orderPayVo);
}
/**
* 支付成功修改订单状态
* @param orderInfo
* @return
*/
public ObjectRestResponse updateOrderStatus(OrderInfo orderInfo) {
if (orderInfo == null || StringUtils.isBlank(orderInfo.getOrderNo())) {
return ObjectRestResponse.createFailedResult(ResultCode.PARAM_ILLEGAL_CODE, ResultCode.getMsg(ResultCode.PARAM_ILLEGAL_CODE));
}
OrderInfo old = getOneByOrderNo(orderInfo.getOrderNo());
if (old == null) {
return ObjectRestResponse.createFailedResult(ResultCode.ORDER_NOT_EXIST, ResultCode.getMsg(ResultCode.ORDER_NOT_EXIST));
}
old.setStatus(orderInfo.getPayStatus());
old.setPayTime(new Date());
updateSelectiveByIdRe(old);
return ObjectRestResponse.succ();
}
/**
* 对公账号支付设置
* @param orderInfo
* @return
*/
public ObjectRestResponse payByCompanyBank(OrderInfo orderInfo) {
if (orderInfo == null || StringUtils.isBlank(orderInfo.getOrderNo())) {
return ObjectRestResponse.createFailedResult(ResultCode.PARAM_ILLEGAL_CODE, ResultCode.getMsg(ResultCode.PARAM_ILLEGAL_CODE));
}
OrderInfo old = getOneByOrderNo(orderInfo.getOrderNo());
if (old == null) {
return ObjectRestResponse.createFailedResult(ResultCode.ORDER_NOT_EXIST, ResultCode.getMsg(ResultCode.ORDER_NOT_EXIST));
}
if (old.getPayCode().equals(orderInfo.getPayCode())) {
old.setPayImg(orderInfo.getPayImg());
old.setPayStatus(2);
old.setPayTime(new Date());
updateSelectiveByIdRe(old);
thirdFeign.
return ObjectRestResponse.succ();
} else {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "汇款识别码错误");
}
}
}
\ No newline at end of file
package com.upyuns.platform.rs.website.controller.web;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.upyuns.platform.rs.universal.vo.OrderPayVo;
import com.upyuns.platform.rs.website.biz.OrderInfoBiz;
import com.upyuns.platform.rs.website.dto.*;
import com.upyuns.platform.rs.website.entity.OrderInfo;
......@@ -67,6 +69,22 @@ public class OrderInfoWebController extends BaseController<OrderInfoBiz,OrderInf
return baseBiz.setAddressOrInvoice(orderInfoDto);
}
@PostMapping(value = "pay")
public JSONObject pay(OrderPayVo orderPayVo) {
orderPayVo.setUserId(getAppUser().getUserid());
return baseBiz.pay(orderPayVo);
}
@PostMapping(value = "updateOrderStatus")
public ObjectRestResponse updateOrderStatus(@RequestBody OrderInfo orderInfo) {
return baseBiz.updateOrderStatus(orderInfo);
}
@PostMapping(value = "payByCompanyBank")
public ObjectRestResponse payByCompanyBank(@RequestBody OrderInfo orderInfo) {
return baseBiz.payByCompanyBank(orderInfo);
}
@Override
public UserFeign getUserFeign() {
return userFeign;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment