|
@@ -1,16 +1,20 @@
|
|
|
package com.iamberry.wechat.handles.agentInfo;
|
|
|
|
|
|
import com.iamberry.wechat.core.entity.ResultMsg;
|
|
|
-import com.iamberry.wechat.core.entity.WechatUtils;
|
|
|
import com.iamberry.wechat.core.entity.agentInfo.AgentConfig;
|
|
|
import com.iamberry.wechat.core.entity.agentInfo.AgentOrder;
|
|
|
import com.iamberry.wechat.core.entity.agentInfo.AgentOrderItem;
|
|
|
import com.iamberry.wechat.core.entity.agentInfo.AgentTooth;
|
|
|
-import com.iamberry.wechat.core.entity.member.Member;
|
|
|
+import com.iamberry.wechat.core.entity.cart.SendPayDto;
|
|
|
+import com.iamberry.wechat.core.entity.pay.PayResult;
|
|
|
import com.iamberry.wechat.core.entity.product.Product;
|
|
|
import com.iamberry.wechat.face.agentInfo.AgentInfoService;
|
|
|
import com.iamberry.wechat.face.agentInfo.AgentPurchaseOrderService;
|
|
|
import com.iamberry.wechat.face.cart.ProductInfoService;
|
|
|
+import com.iamberry.wechat.face.pay.PayService;
|
|
|
+import com.iamberry.wechat.tools.NameUtils;
|
|
|
+import com.iamberry.wechat.tools.OrderNOUtil;
|
|
|
+import com.iamberry.wechat.tools.ResultInfo;
|
|
|
import net.sf.json.JSONArray;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Controller;
|
|
@@ -20,6 +24,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* 采购&订单
|
|
@@ -33,6 +38,8 @@ public class AgentOrderHandler {
|
|
|
private ProductInfoService productInfoService;
|
|
|
@Autowired
|
|
|
private AgentPurchaseOrderService agentPurchaseOrderService;
|
|
|
+ @Autowired
|
|
|
+ private PayService payService;
|
|
|
|
|
|
/**
|
|
|
* 获取采购信息
|
|
@@ -54,7 +61,7 @@ public class AgentOrderHandler {
|
|
|
if (agentTooth == null) {
|
|
|
rm.setStatus(false);
|
|
|
rm.setMessage("未找到该用户!");
|
|
|
- rm.setResultCode("404");
|
|
|
+ rm.setResultCode(ResultInfo.ERRORCODE);
|
|
|
return rm;
|
|
|
}
|
|
|
|
|
@@ -81,22 +88,31 @@ public class AgentOrderHandler {
|
|
|
|
|
|
/**
|
|
|
* 支付前,调用方法
|
|
|
+ *
|
|
|
* @param request
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value = "/payBefore", method = RequestMethod.POST)
|
|
|
- public ResultMsg payBefore(HttpServletRequest request,AgentOrder agentOrder) throws Exception {
|
|
|
+ public ResultMsg payBefore(HttpServletRequest request, AgentOrder agentOrder) throws Exception {
|
|
|
ResultMsg msg = new ResultMsg();
|
|
|
+ msg.setResultCode(ResultInfo.ERRORCODE);
|
|
|
msg.setStatus(false);
|
|
|
- msg.setResultCode("400");
|
|
|
|
|
|
//获取代理商信息
|
|
|
- Member member = WechatUtils.getUserBySession(request);
|
|
|
- String agentOpenid = member.getUserOpenid();
|
|
|
+// Member member = WechatUtils.getUserBySession(request);
|
|
|
+// /** 数据格式校验 */
|
|
|
+// if (member == null || member.getUserOpenid() == null) {// 校验当前用户信息是否丢失
|
|
|
+// msg.setMessage(ResultInfo.loginOutError);
|
|
|
+// return msg;
|
|
|
+// }
|
|
|
+// String openId = member.getUserOpenid();
|
|
|
+ String openId = "o-icasz5a10CfmJ_s-hvW-Ltqwtc";
|
|
|
+ Integer codeId = 101;
|
|
|
+
|
|
|
AgentTooth agentTooth = new AgentTooth();
|
|
|
- agentTooth.setAgentOpenid(agentOpenid);
|
|
|
+ agentTooth.setAgentOpenid(openId);
|
|
|
agentTooth = agentInfoService.getAgentTooth(agentTooth);
|
|
|
if (agentTooth == null) {
|
|
|
msg.setMessage("未找到该用户!");
|
|
@@ -104,66 +120,123 @@ public class AgentOrderHandler {
|
|
|
}
|
|
|
|
|
|
//验证前台传过来的数据是否规范
|
|
|
- if(!isValiAgentOrder(agentOrder)){
|
|
|
+ if (!isValiAgentOrder(agentOrder)) {
|
|
|
msg.setMessage("订单格式内容出错!");
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
- //---------------生成订单 --- start -----------------------
|
|
|
+ //---------------生成订单 --- start ---------------------
|
|
|
JSONArray jsonArray = JSONArray.fromObject(agentOrder.getAgentOrderItemJson());
|
|
|
- List<AgentOrderItem> agentOrderItemList = (List) JSONArray.toCollection(jsonArray,AgentOrderItem.class);
|
|
|
- if(agentOrderItemList == null || agentOrderItemList.size() < 1){
|
|
|
+ List<AgentOrderItem> agentOrderItemList = (List) JSONArray.toCollection(jsonArray, AgentOrderItem.class);
|
|
|
+ if (agentOrderItemList == null || agentOrderItemList.size() < 1) {
|
|
|
msg.setMessage("未选择产品!");
|
|
|
return msg;
|
|
|
}
|
|
|
-
|
|
|
- agentPurchaseOrderService.addAgentOrder(agentOrder,agentOrderItemList);
|
|
|
+ agentOrder.setAgentOrderid(OrderNOUtil.createOrderCode(codeId));
|
|
|
+ Map<String, Object> map = agentPurchaseOrderService.addAgentOrder(agentOrder, agentOrderItemList);
|
|
|
+ if (map.get("status") == null || map.get("status") == 400) {
|
|
|
+ msg.setMessage(map.get("msg").toString());
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
//---------------生成订单 --- end -----------------------
|
|
|
|
|
|
+ //支付
|
|
|
+ ResultMsg resultMsg = this.pay((AgentOrder) map.get("agentOrder"),openId);
|
|
|
+
|
|
|
+ if (resultMsg.getResultCode() == ResultInfo.SUCCESSCODE){
|
|
|
+ msg.setResultCode(ResultInfo.SUCCESSCODE);
|
|
|
+ msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
|
|
|
+ msg.setStatus(true);
|
|
|
+ }else{
|
|
|
+ msg.setResultCode(ResultInfo.ERRORCODE);
|
|
|
+ msg.setMessage(NameUtils.getConfig("ERRORINFO"));
|
|
|
+ msg.setStatus(true);
|
|
|
+ }
|
|
|
+ msg.setData(resultMsg.getData());
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 代理商订单支付调用
|
|
|
+ * @param agentOrder 订单
|
|
|
+ * @param openId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private ResultMsg pay(AgentOrder agentOrder,String openId){
|
|
|
+ boolean flag = false;
|
|
|
+ ResultMsg msg = new ResultMsg();
|
|
|
|
|
|
+ SendPayDto dto = new SendPayDto();
|
|
|
+ dto.setSuccess(false);
|
|
|
+ //查询订单项
|
|
|
+ List<AgentOrderItem> agentOrderList = agentPurchaseOrderService.listAgentOrderItemByOrderId(agentOrder.getAgentOrderid());
|
|
|
+ if(agentOrderList == null || agentOrderList.size() < 1){
|
|
|
+ msg.setResultCode(ResultInfo.ERRORCODE);
|
|
|
+ msg.setMessage("查询订单报错");
|
|
|
+ msg.setStatus(false);
|
|
|
+ msg.setData(dto);
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
|
|
|
-// OrderPayDto dto = new OrderPayDto();
|
|
|
- //回显用户支付过的地址信息
|
|
|
-// Order order = cartService.getOrderRecentAddress(member.getUserOpenid());
|
|
|
-// if(order!=null){
|
|
|
-// HashMap<String,String> map = new HashMap<String,String>();
|
|
|
-// //map.put("orderId", order.getSalesOrderid());
|
|
|
-// map.put("salesAddressName", order.getSalesAddressName());
|
|
|
-// map.put("salesAddressInfo", order.getSalesAddressInfo());
|
|
|
-// map.put("salesAddressTel", order.getSalesAddressTel());
|
|
|
-// map.put("salesAddressPostnum", order.getSalesAddressPostnum());
|
|
|
-// dto.setAddressInfo(map);
|
|
|
-// }
|
|
|
-//
|
|
|
-// msg.setResultCode(ResultInfo.SUCCESSCODE);
|
|
|
-// msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
|
|
|
-// msg.setData(dto);
|
|
|
-// msg.setStatus(true);
|
|
|
+ if (agentOrder.getAgentYetAmount() > 0) {
|
|
|
+ // 发起支付
|
|
|
+ PayResult result = payService.requestPay(openId, agentOrder.getAgentOrderid(), agentOrder.getAgentYetAmount(), agentOrderList.get(0).getItemProductName() + "...", NameUtils.getConfig("WECHAT_AGENT_PURCHASE_ORDER_BACK"));
|
|
|
+ if (result.isPaySuccess()) {
|
|
|
+ dto.setInfo(result.getPayData());
|
|
|
+ dto.setSuccess(true);
|
|
|
+ dto.setOrderId(agentOrder.getAgentOrderid());
|
|
|
+ flag = true;
|
|
|
+ } else {
|
|
|
+ dto.setSuccess(false);
|
|
|
+ dto.setInfo(result.getPayData());
|
|
|
+ dto.setOrderId(agentOrder.getAgentOrderid());
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ } else if (agentOrder.getAgentYetAmount() == 0) {
|
|
|
+ dto.setInfo("isOK");
|
|
|
+ dto.setSuccess(true);
|
|
|
+ dto.setOrderId(agentOrder.getAgentOrderid());
|
|
|
+ flag = true;
|
|
|
+ } else {
|
|
|
+ msg.setResultCode(ResultInfo.ERRORCODE);
|
|
|
+ msg.setMessage(ResultInfo.paramFormatError);
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
|
|
|
+ if(flag){
|
|
|
+ msg.setResultCode(ResultInfo.SUCCESSCODE);
|
|
|
+ msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
|
|
|
+ msg.setData(dto);
|
|
|
+ msg.setStatus(true);
|
|
|
+ }else {
|
|
|
+ msg.setResultCode(ResultInfo.ERRORCODE);
|
|
|
+ msg.setMessage(NameUtils.getConfig("ERRORINFO"));
|
|
|
+ msg.setData(dto);
|
|
|
+ msg.setStatus(false);
|
|
|
+ }
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 支付前的验证
|
|
|
+ *
|
|
|
* @param agentOrder
|
|
|
* @return
|
|
|
*/
|
|
|
- public boolean isValiAgentOrder(AgentOrder agentOrder){
|
|
|
- if(agentOrder.getAgentAddressInfo() == null || agentOrder.getAgentAddressInfo() == ""){
|
|
|
+ public boolean isValiAgentOrder(AgentOrder agentOrder) {
|
|
|
+ if (agentOrder.getAgentAddressInfo() == null || agentOrder.getAgentAddressInfo() == "") {
|
|
|
return false;
|
|
|
}
|
|
|
- if (agentOrder.getAgentAddressName() == null || agentOrder.getAgentAddressName() == ""){
|
|
|
+ if (agentOrder.getAgentAddressName() == null || agentOrder.getAgentAddressName() == "") {
|
|
|
return false;
|
|
|
}
|
|
|
- if (agentOrder.getAgentAddressPostnum() == null || agentOrder.getAgentAddressPostnum() == ""){
|
|
|
+ if (agentOrder.getAgentAddressPostnum() == null || agentOrder.getAgentAddressPostnum() == "") {
|
|
|
return false;
|
|
|
}
|
|
|
- if (agentOrder.getAgentAddressTel() == null){
|
|
|
+ if (agentOrder.getAgentAddressTel() == null) {
|
|
|
return false;
|
|
|
}
|
|
|
- if(agentOrder.getAgentOrderItemJson() == null || agentOrder.getAgentOrderItemJson() == ""){
|
|
|
+ if (agentOrder.getAgentOrderItemJson() == null || agentOrder.getAgentOrderItemJson() == "") {
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|