|
@@ -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();
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
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;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
+
|
|
|
+ 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;
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ 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;
|