|
@@ -1,5 +1,6 @@
|
|
|
package com.iamberry.wechat.handles.order;
|
|
|
|
|
|
+import com.iamberry.app.tool.log.RatFWLogger;
|
|
|
import com.iamberry.wechat.core.entity.PageBean;
|
|
|
import com.iamberry.wechat.core.entity.ResultMsg;
|
|
|
import com.iamberry.wechat.core.entity.WechatUtils;
|
|
@@ -23,11 +24,13 @@ import com.iamberry.wechat.face.coupon.ExchangeService;
|
|
|
import com.iamberry.wechat.face.home.HomeService;
|
|
|
import com.iamberry.wechat.face.member.CashLogService;
|
|
|
import com.iamberry.wechat.face.member.MemberService;
|
|
|
+import com.iamberry.wechat.face.order.AdminOrderService;
|
|
|
import com.iamberry.wechat.face.pay.PayService;
|
|
|
import com.iamberry.wechat.face.porduct.ProductColorService;
|
|
|
import com.iamberry.wechat.face.qrcode.TemporaryQrcodeService;
|
|
|
import com.iamberry.wechat.face.reback.RebackServices;
|
|
|
import com.iamberry.wechat.handles.mq.MQServiceProxy;
|
|
|
+import com.iamberry.wechat.sendMsg.SendMessageUtil;
|
|
|
import com.iamberry.wechat.service.ActivityUtil;
|
|
|
import com.iamberry.wechat.tools.NameUtils;
|
|
|
import com.iamberry.wechat.tools.OrderNOUtil;
|
|
@@ -36,15 +39,14 @@ import com.iamberry.wechat.tools.ValidatorUtil;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
-import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
-import org.springframework.web.bind.annotation.RequestParam;
|
|
|
-import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.ServletException;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
+import java.net.URLDecoder;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
@@ -56,7 +58,8 @@ import java.util.*;
|
|
|
@Controller
|
|
|
@RequestMapping("/wechat/order")
|
|
|
public class OrderHandler {
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private RatFWLogger logger;
|
|
|
@Autowired
|
|
|
private CartService cartService;
|
|
|
|
|
@@ -96,6 +99,9 @@ public class OrderHandler {
|
|
|
private ActivityUtil activityUtil;
|
|
|
@Autowired
|
|
|
private SettlementGiftService settlementGiftService;
|
|
|
+ @Autowired
|
|
|
+ private SendMessageUtil sendMessageUtil;
|
|
|
+
|
|
|
/**
|
|
|
* 支付前,调用方法
|
|
|
* @param request
|
|
@@ -108,7 +114,17 @@ public class OrderHandler {
|
|
|
|
|
|
ResultMsg msg = new ResultMsg();
|
|
|
msg.setResultCode(ResultInfo.ERRORCODE);
|
|
|
-
|
|
|
+
|
|
|
+ String orderId = request.getParameter("orderId");
|
|
|
+ if(orderId != null && !orderId.equals("")){
|
|
|
+ Order order = new Order();
|
|
|
+ order.setSalesOrderid(orderId);
|
|
|
+ order = cartService.selectOrderInfoById(order);
|
|
|
+ if(order!= null && order.getSalesSpellOrderId() != null){
|
|
|
+ msg.setMessage(ResultInfo.spellErrorMsg);
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+ }
|
|
|
OrderPayDto dto = new OrderPayDto();
|
|
|
// 用户信息
|
|
|
Member member = WechatUtils.getUserBySession(request);
|
|
@@ -182,12 +198,25 @@ public class OrderHandler {
|
|
|
int sum = 0; // 产品数量
|
|
|
int productNum = 0; //计算商品为滤芯的数量
|
|
|
boolean disable = true; //标识,是否可用优惠券,当购买商品只有滤芯时禁止使用优惠券
|
|
|
-
|
|
|
+ //获取是否是拼团订单字段 1是 2否
|
|
|
+ String isSpell = request.getParameter("isSpell");
|
|
|
for (CartDto cartDto : cartDtos) {
|
|
|
+ int subTotal = cartDto.getProductPrice();
|
|
|
if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
|
|
|
- total += cartDto.getCartNum() * cartDto.getProductPrice();
|
|
|
- sum++;
|
|
|
+ if (isSpell != null && isSpell.equals("1")) {
|
|
|
+ //是否可拼团
|
|
|
+
|
|
|
+ if(cartDto.getProductIsSpell() != null && cartDto.getProductIsSpell().intValue() == 2){
|
|
|
+ subTotal = cartDto.getColorSpellAmount(); // 小计 拼团价
|
|
|
+ }else{
|
|
|
+ subTotal = cartDto.getProductPrice(); // 小计 正常价
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
+ total += cartDto.getCartNum() * subTotal;
|
|
|
+ sum++;
|
|
|
+
|
|
|
//计算商品为滤芯的数量
|
|
|
if (cartDto.getProductType().intValue() == 2) {
|
|
|
productNum++;
|
|
@@ -397,6 +426,8 @@ public class OrderHandler {
|
|
|
List<OrderItem> list = new ArrayList<OrderItem>();
|
|
|
List<Integer> cartIds = new ArrayList<Integer>();
|
|
|
|
|
|
+
|
|
|
+
|
|
|
//添加赠品
|
|
|
ActivityDate activityDate = activityUtil.isActivity();
|
|
|
if(activityDate.isStatus()){
|
|
@@ -421,10 +452,20 @@ public class OrderHandler {
|
|
|
if(7 == cartDto.getCartColorId() || 8 == cartDto.getCartColorId()){
|
|
|
isCludeT1ORT2 = true;
|
|
|
}
|
|
|
-
|
|
|
if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
|
|
|
cartIds.add(cartDto.getCartId());
|
|
|
- Integer subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计
|
|
|
+ Integer subTotal = 0;
|
|
|
+ //是否是团购订单
|
|
|
+ if(temp.getIsSpell() != null && temp.getIsSpell() == 1){
|
|
|
+ //是否可拼团
|
|
|
+ if(cartDto.getProductIsSpell().intValue() == 2){
|
|
|
+ subTotal = cartDto.getCartNum() * cartDto.getColorSpellAmount(); // 小计 拼团价
|
|
|
+ }else{
|
|
|
+ subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计 正常价
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计 正常价
|
|
|
+ }
|
|
|
total += subTotal;
|
|
|
OrderItem item = new OrderItem();
|
|
|
item.setItemNum(cartDto.getCartNum());
|
|
@@ -441,6 +482,16 @@ public class OrderHandler {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //是否是团购订单
|
|
|
+ if(temp.getIsSpell() != null && temp.getIsSpell() == 1){
|
|
|
+ order.setSalesIsSpellOrder(1);//团购订单
|
|
|
+ }else{
|
|
|
+ order.setSalesIsSpellOrder(2);
|
|
|
+ }
|
|
|
+ //是否是被邀请人支付(完成拼单)
|
|
|
+ if(temp.getSpellOrderId() != null && !temp.getSpellOrderId().equals("")){
|
|
|
+ order.setSalesSpellOrderId(temp.getSpellOrderId());
|
|
|
+ }
|
|
|
// 准备订单对象
|
|
|
order.setSalesOpenid(member.getUserOpenid()); // openid
|
|
|
order.setSalesAmount(total); // 订单金额
|
|
@@ -601,7 +652,12 @@ public class OrderHandler {
|
|
|
|
|
|
if(updateFlase){
|
|
|
//设置订单状态,还有优惠券id
|
|
|
- order.setSalesStatus(2);
|
|
|
+
|
|
|
+ if(temp.getIsSpell() == 1){//如果是团购订单则状态改为正在团购
|
|
|
+ order.setSalesStatus(15);
|
|
|
+ }else{
|
|
|
+ order.setSalesStatus(2);
|
|
|
+ }
|
|
|
cartService.updateOrderStatus(order);
|
|
|
//修改优惠券状态
|
|
|
if(hasCoupon){
|
|
@@ -609,21 +665,25 @@ public class OrderHandler {
|
|
|
// int i=couponItemService.updateCouponItemById(couponItem);
|
|
|
}
|
|
|
|
|
|
- // 给rst推送订单
|
|
|
- try {
|
|
|
- MQMessage message = new MQMessage();
|
|
|
- message.setServiceToMessage(order.getSalesOrderid());
|
|
|
- message.setServiceOtherMessage("efast.trade.new.add");
|
|
|
- message.setServiceIsSend(2); // 没有推送的信息
|
|
|
- message.setServiceStatus(1); // 推送成功
|
|
|
- message.setServiceType(1); // 添加订单信息
|
|
|
- message.setServiceHandlerObjectName("efastOrderServiceImpl");
|
|
|
- message.setServiceHandlerMethodName("addOrderInfoToEfast");
|
|
|
- mQservice.insertMQMessage(message);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
+ if(temp.getIsSpell() == null || temp.getIsSpell() == 2){//如果是团购订单则暂时不推送订单,在完成拼单后再推送
|
|
|
+ /*if(o.getSalesIsSpellOrder() != null && o.getSalesIsSpellOrder() == 1 && o.getSalesSpellOrderId() != null){*/
|
|
|
+ // 给rst推送订单
|
|
|
+ try {
|
|
|
+ MQMessage message = new MQMessage();
|
|
|
+ message.setServiceToMessage(order.getSalesOrderid());
|
|
|
+ message.setServiceOtherMessage("efast.trade.new.add");
|
|
|
+ message.setServiceIsSend(2); // 没有推送的信息
|
|
|
+ message.setServiceStatus(1); // 推送成功
|
|
|
+ message.setServiceType(1); // 添加订单信息
|
|
|
+ message.setServiceHandlerObjectName("efastOrderServiceImpl");
|
|
|
+ message.setServiceHandlerMethodName("addOrderInfoToEfast");
|
|
|
+ mQservice.insertMQMessage(message);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
//更新账户余额
|
|
|
// if(balancePayAmount>0){
|
|
|
// member.setUserIncome(-balancePayAmount);
|
|
@@ -656,6 +716,134 @@ public class OrderHandler {
|
|
|
// }
|
|
|
// rebackServices.loadSingleOrderReward(order);
|
|
|
productInfoService.updateProductNumList(order.getSalesOrderid());
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改拼单信息并推送
|
|
|
+ */
|
|
|
+ if(temp.getSpellOrderId() != null && !temp.getSpellOrderId().equals("")){
|
|
|
+ //邀请人订单修改
|
|
|
+ Order or1 = new Order();
|
|
|
+ or1.setSalesOrderid(temp.getSpellOrderId());
|
|
|
+ or1.setSalesStatus(2);
|
|
|
+ or1.setSalesSpellOrderId(order.getSalesOrderid());
|
|
|
+ cartService.updateOrderSpellOrderId(or1);//修改状态为已支付,待发货,关联拼单订单id
|
|
|
+ //邀请人信息state
|
|
|
+ Order orderOne = new Order();
|
|
|
+ orderOne.setSalesOrderid(temp.getSpellOrderId());
|
|
|
+ orderOne = cartService.selectOrderInfoById(orderOne);
|
|
|
+ List<ShopOrderItemDto> orderItems1 = cartService.selectShopOrderItem(temp.getSpellOrderId());
|
|
|
+ //邀请人信息end
|
|
|
+ //被邀请人信息state
|
|
|
+ Order orderTwo = new Order();
|
|
|
+ orderTwo.setSalesOrderid(order.getSalesOrderid());
|
|
|
+ orderTwo = cartService.selectOrderInfoById(orderTwo);
|
|
|
+ List<ShopOrderItemDto> orderItems2 = cartService.selectShopOrderItem(order.getSalesOrderid());
|
|
|
+ //被邀请人信息end
|
|
|
+ if(orderOne.getSalesOpenid() != null){
|
|
|
+ Member memberOne = memberService.getMemberByUserOpenId(orderTwo.getSalesOpenid());
|
|
|
+ String name = "我";
|
|
|
+ if(memberOne != null && !memberOne.getUserNickname().equals("")){
|
|
|
+ try {
|
|
|
+ name = URLDecoder.decode(memberOne.getUserNickname(),"UTF-8");
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String names = name +",微信好友";
|
|
|
+
|
|
|
+ try {
|
|
|
+ names = name +","+(member.getUserNickname() == null? "微信好友": URLDecoder.decode(member.getUserNickname(),"UTF-8"));
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ //推送微信模板消息
|
|
|
+ logger.info("微信账户支付推送拼单成功消息-------------------------------------------------1");
|
|
|
+ try {
|
|
|
+ sendMessageUtil.spellPush(
|
|
|
+ "恭喜您与"+name+"拼单成功,点击逛逛更多好货吧。",
|
|
|
+ orderItems1.get(0).getItemProductName(),
|
|
|
+ names,
|
|
|
+ "点击查看拼单详情>>",
|
|
|
+ orderOne.getSalesOpenid(),
|
|
|
+ ResultInfo.ORDER_GUOQI+"?salesStatus=2");
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.info("推送拼单成功消息失败,失败openId:"+orderOne.getSalesOpenid());
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //推送邀请人订单到rst
|
|
|
+ try {
|
|
|
+ MQMessage message = new MQMessage();
|
|
|
+ message.setServiceToMessage(temp.getSpellOrderId());
|
|
|
+ message.setServiceOtherMessage("efast.trade.new.add");
|
|
|
+ message.setServiceIsSend(2); // 没有推送的信息
|
|
|
+ message.setServiceStatus(1); // 推送成功
|
|
|
+ message.setServiceType(1); // 添加订单信息
|
|
|
+ message.setServiceHandlerObjectName("efastOrderServiceImpl");
|
|
|
+ message.setServiceHandlerMethodName("addOrderInfoToEfast");
|
|
|
+ mQservice.insertMQMessage(message);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //被邀请人(当前)订单修改
|
|
|
+ Order or2 = new Order();
|
|
|
+ or2.setSalesOrderid(order.getSalesOrderid());
|
|
|
+ or2.setSalesStatus(2);
|
|
|
+ or2.setSalesSpellOrderId(temp.getSpellOrderId());
|
|
|
+ cartService.updateOrderSpellOrderId(or2);
|
|
|
+
|
|
|
+ if(orderTwo.getSalesOpenid() != null){
|
|
|
+ Member memberOne = memberService.getMemberByUserOpenId(orderOne.getSalesOpenid());
|
|
|
+ String name = "微信好友";
|
|
|
+ if(memberOne != null && !memberOne.getUserNickname().equals("")){
|
|
|
+ try {
|
|
|
+ name = URLDecoder.decode(memberOne.getUserNickname(),"UTF-8");
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String names = member.getUserNickname() == null? "我": member.getUserNickname() +","+name;
|
|
|
+ try {
|
|
|
+ names = member.getUserNickname() == null? "我": URLDecoder.decode(member.getUserNickname(),"UTF-8") +","+name;
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ //推送微信模板消息
|
|
|
+ logger.info("微信账户支付推送拼单成功消息-------------------------------------------------2");
|
|
|
+ try {
|
|
|
+ sendMessageUtil.spellPush(
|
|
|
+ "恭喜您与"+name+"拼单成功,点击逛逛更多好货吧。",
|
|
|
+ orderItems2.get(0).getItemProductName(),
|
|
|
+ names,
|
|
|
+ "点击查看拼单详情>>",
|
|
|
+ orderTwo.getSalesOpenid(),
|
|
|
+ ResultInfo.ORDER_GUOQI+"?salesStatus=2");
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.info("推送拼单成功消息失败,失败openId:"+orderTwo.getSalesOpenid());
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //推送被邀请人订单到rst
|
|
|
+ try {
|
|
|
+ MQMessage message = new MQMessage();
|
|
|
+ message.setServiceToMessage(order.getSalesOrderid());
|
|
|
+ message.setServiceOtherMessage("efast.trade.new.add");
|
|
|
+ message.setServiceIsSend(2); // 没有推送的信息
|
|
|
+ message.setServiceStatus(1); // 推送成功
|
|
|
+ message.setServiceType(1); // 添加订单信息
|
|
|
+ message.setServiceHandlerObjectName("efastOrderServiceImpl");
|
|
|
+ message.setServiceHandlerMethodName("addOrderInfoToEfast");
|
|
|
+ mQservice.insertMQMessage(message);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
msg.setResultCode(ResultInfo.SUCCESSCODE);
|
|
@@ -679,7 +867,7 @@ public class OrderHandler {
|
|
|
ResultMsg msg = new ResultMsg();
|
|
|
msg.setResultCode(ResultInfo.ERRORCODE);
|
|
|
Integer orderStatus = cartService.selectOrderStatusByOrderId(orderId);
|
|
|
- if (orderStatus != null && orderStatus.intValue() == 2) {
|
|
|
+ if (orderStatus != null && (orderStatus.intValue() == 2 || orderStatus.intValue() == 15) ) {
|
|
|
msg.setResultCode(ResultInfo.SUCCESSCODE);
|
|
|
msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
|
|
|
msg.setStatus(true);
|
|
@@ -704,6 +892,7 @@ public class OrderHandler {
|
|
|
@RequestParam(value = "orderId") String orderId) throws Exception {
|
|
|
ResultMsg msg = new ResultMsg();
|
|
|
msg.setResultCode(ResultInfo.ERRORCODE);
|
|
|
+
|
|
|
Member member = WechatUtils.getUserBySession(request); // 当前用户
|
|
|
Order order = new Order();
|
|
|
order.setSalesOrderid(orderId);
|
|
@@ -776,6 +965,8 @@ public class OrderHandler {
|
|
|
cartDto.setProductDiscount(sg.getSettGiftPrice());
|
|
|
cartDto.setProductPrice(sg.getSettGiftPrice());
|
|
|
cartDto.setTotal(sg.getSettGiftPrice()*num);
|
|
|
+ cartDto.setProductIsSpell(cd.getProductIsSpell());
|
|
|
+ cartDto.setColorSpellAmount(sg.getSettGiftPrice());
|
|
|
giftList.add(cartDto);
|
|
|
}
|
|
|
}
|
|
@@ -816,5 +1007,4 @@ public class OrderHandler {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-}
|
|
|
+}
|