|
@@ -38,6 +38,7 @@ import com.iamberry.wechat.tools.NameUtils;
|
|
|
import com.iamberry.wechat.tools.OrderNOUtil;
|
|
|
import com.iamberry.wechat.tools.ResultInfo;
|
|
|
import com.iamberry.wechat.tools.ValidatorUtil;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
import org.apache.poi.ss.formula.functions.T;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -178,10 +179,10 @@ public class OrderHandler {
|
|
|
String isSpell = request.getParameter("isSpell");
|
|
|
for (CartDto cartDto : cartDtos) {
|
|
|
int subTotal = cartDto.getProductDiscount();
|
|
|
- if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
|
|
|
+ if (cartDto.getProductStatus() != null && cartDto.getProductStatus() == 1) {
|
|
|
if (isSpell != null && isSpell.equals("1")) {
|
|
|
//是否可拼团
|
|
|
- if(cartDto.getProductIsSpell() != null && cartDto.getProductIsSpell().intValue() == 2){
|
|
|
+ if(cartDto.getProductIsSpell() != null && cartDto.getProductIsSpell() == 2){
|
|
|
subTotal = cartDto.getColorSpellAmount(); // 小计 拼团价
|
|
|
}else{
|
|
|
subTotal = cartDto.getProductDiscount(); // 小计 正常价
|
|
@@ -192,7 +193,7 @@ public class OrderHandler {
|
|
|
sum++;
|
|
|
|
|
|
//计算商品为滤芯的数量
|
|
|
- if (cartDto.getProductType().intValue() == 2) {
|
|
|
+ if (cartDto.getProductType() == 2) {
|
|
|
productNum++;
|
|
|
}
|
|
|
}
|
|
@@ -292,26 +293,15 @@ public class OrderHandler {
|
|
|
*/
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value = "/pay", method = RequestMethod.POST)
|
|
|
- public ResultMsg requestPay(
|
|
|
- TempOrderDto temp,
|
|
|
- HttpServletRequest request
|
|
|
- ) {
|
|
|
+ public ResultMsg requestPay(TempOrderDto temp, HttpServletRequest request) {
|
|
|
|
|
|
ResultMsg msg = new ResultMsg();
|
|
|
msg.setResultCode(ResultInfo.ERRORCODE);
|
|
|
- //System.out.println(temp.toString());
|
|
|
//当前支付时间
|
|
|
Date nowDate=new Date();
|
|
|
-
|
|
|
SendPayDto dto = new SendPayDto();
|
|
|
dto.setSuccess(false);
|
|
|
- Member member = WechatUtils.getUserBySession(request); // 当前用户
|
|
|
- member = memberService.getMemberByUserId(member.getUserId());
|
|
|
- /** 数据格式校验 */
|
|
|
- if (member == null || member.getUserOpenid() == null) {// 校验当前用户信息是否丢失
|
|
|
- msg.setMessage(ResultInfo.loginOutError);
|
|
|
- return msg;
|
|
|
- }
|
|
|
+ Member member = memberService.getMemberByUserId(WechatUtils.getUserBySession(request).getUserId());
|
|
|
|
|
|
if("收货人".equals(temp.getOrderAddressName())){
|
|
|
msg.setMessage("收货人信息有误,请重新选择地址信息!");
|
|
@@ -321,9 +311,8 @@ public class OrderHandler {
|
|
|
msg.setMessage("收货人电话信息有误,请重新选择地址信息!");
|
|
|
return msg;
|
|
|
}
|
|
|
-
|
|
|
- member=memberService.getMemberByUserId(member.getUserId());
|
|
|
- if (!validatorUtil.validatorObject(temp)) { // 校验订单信息是否输入有误
|
|
|
+ if (!validatorUtil.validatorObject(temp)) {
|
|
|
+ // 校验订单信息是否输入有误
|
|
|
msg.setMessage(ResultInfo.paramFormatError);
|
|
|
return msg;
|
|
|
}
|
|
@@ -336,17 +325,19 @@ public class OrderHandler {
|
|
|
Integer [] cartId = null;
|
|
|
try {
|
|
|
cartId = checkCartIdListString(temp.getCartIdStr());
|
|
|
- } catch (Exception e) { // 一旦发生异常,表示错误
|
|
|
- msg.setMessage(ResultInfo.paramFormatError);
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 一旦发生异常,表示错误
|
|
|
+ msg.setMessage(e.getMessage());
|
|
|
return msg;
|
|
|
}
|
|
|
List<CartDto> cartDtos = cartService.selectCartItemByListId(cartId);
|
|
|
- if (cartDtos == null || cartDtos.size() <= 0) {// 根据购物车ID,查询数据库中对应的产品信息(ID、产品状态)
|
|
|
+ if (cartDtos == null || cartDtos.size() <= 0) {
|
|
|
+ // 根据购物车ID,查询数据库中对应的产品信息(ID、产品状态)
|
|
|
msg.setMessage(ResultInfo.cartEmptyError);
|
|
|
return msg;
|
|
|
}
|
|
|
-
|
|
|
- boolean isUse99Voucher = false; //true:可以使用 false:不允许使用
|
|
|
+ //true:可以使用 false:不允许使用
|
|
|
+ boolean isUse99Voucher = false;
|
|
|
if(temp.getExchangeColorId() != null && !"".equals(temp.getExchangeColorId())){
|
|
|
boolean flag = false;
|
|
|
Integer exchangeColorId = Integer.valueOf(temp.getExchangeColorId());
|
|
@@ -365,7 +356,7 @@ public class OrderHandler {
|
|
|
cartDto.setCartColorId(productColor.getColorId());
|
|
|
cartDto.setCartNum(1);
|
|
|
cartDto.setProductName(productColor.getColorProductName());
|
|
|
- cartDto.setProductType(productColor.getColorProductType()); //colorProductType
|
|
|
+ cartDto.setProductType(productColor.getColorProductType());
|
|
|
cartDto.setProductPrice(productColor.getColorPrice());
|
|
|
cartDto.setProductDiscount(productColor.getColorDiscount());
|
|
|
cartDto.setProductStatus(1);
|
|
@@ -377,52 +368,45 @@ public class OrderHandler {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- //根据openid查询该用户是否购买过订单
|
|
|
-// ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
|
|
|
-// shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
|
|
|
-// shopSalesOrderDto.setSalesStatus("2");
|
|
|
-// int orderNum = cartService.selectOrderCount(shopSalesOrderDto);
|
|
|
-
|
|
|
- int total = 0; // 需要支付的总额, 单位为分
|
|
|
-
|
|
|
+ // 需要支付的总额, 单位为分
|
|
|
+ int total = 0;
|
|
|
//vip会员买年套滤芯减价,此表示为减价金额
|
|
|
int priceReduction = 0;
|
|
|
-
|
|
|
- boolean isCludeT1ORT2 = false; //是否包含T1/T2
|
|
|
+ //是否包含T1/T2
|
|
|
+ boolean isCludeT1ORT2 = false;
|
|
|
|
|
|
/** 提前准备订单项数据 */
|
|
|
/** 准备数据 */
|
|
|
Order order = new Order();
|
|
|
- order.setSalesOrderid(OrderNOUtil.createOrderCode(member.getUserId())); // 订单ID
|
|
|
+ order.setSalesOrderid(OrderNOUtil.createOrderCode(member.getUserId()));
|
|
|
List<OrderItem> list = new ArrayList<OrderItem>();
|
|
|
List<Integer> cartIds = new ArrayList<Integer>();
|
|
|
-
|
|
|
//添加赠品
|
|
|
activityUtil.preferential(cartDtos);
|
|
|
-
|
|
|
for (CartDto cartDto : cartDtos) {
|
|
|
//VIP用户滤芯年套减一百
|
|
|
if(cartDto.getCartColorId() == 5 && member.getUserIsVip() == 2){
|
|
|
priceReduction += 10000*cartDto.getCartNum();
|
|
|
}
|
|
|
-
|
|
|
if(7 == cartDto.getCartColorId() || 8 == cartDto.getCartColorId()){
|
|
|
isCludeT1ORT2 = true;
|
|
|
}
|
|
|
- if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
|
|
|
+ if (cartDto.getProductStatus() != null && cartDto.getProductStatus() == 1) {
|
|
|
cartIds.add(cartDto.getCartId());
|
|
|
Integer subTotal = 0;
|
|
|
//是否是团购订单
|
|
|
if(temp.getIsSpell() != null && temp.getIsSpell() == 1){
|
|
|
//是否可拼团
|
|
|
- if(cartDto.getProductIsSpell().intValue() == 2){
|
|
|
- subTotal = cartDto.getCartNum() * cartDto.getColorSpellAmount(); // 小计 拼团价
|
|
|
+ if(cartDto.getProductIsSpell() == 2){
|
|
|
+ subTotal = cartDto.getCartNum() * cartDto.getColorSpellAmount();
|
|
|
+ // 小计 拼团价
|
|
|
}else{
|
|
|
- subTotal = cartDto.getCartNum() * cartDto.getProductDiscount(); // 小计 正常价
|
|
|
+ subTotal = cartDto.getCartNum() * cartDto.getProductDiscount();
|
|
|
+ // 小计 正常价
|
|
|
}
|
|
|
}else{
|
|
|
- subTotal = cartDto.getCartNum() * cartDto.getProductDiscount(); // 小计 正常价
|
|
|
+ subTotal = cartDto.getCartNum() * cartDto.getProductDiscount();
|
|
|
+ // 小计 正常价
|
|
|
}
|
|
|
total += subTotal;
|
|
|
OrderItem item = new OrderItem();
|
|
@@ -443,7 +427,8 @@ public class OrderHandler {
|
|
|
|
|
|
//是否是团购订单
|
|
|
if(temp.getIsSpell() != null && temp.getIsSpell() == 1){
|
|
|
- order.setSalesIsSpellOrder(1);//团购订单
|
|
|
+ //团购订单
|
|
|
+ order.setSalesIsSpellOrder(1);
|
|
|
}else{
|
|
|
order.setSalesIsSpellOrder(2);
|
|
|
}
|
|
@@ -452,17 +437,15 @@ public class OrderHandler {
|
|
|
order.setSalesSpellOrderId(temp.getSpellOrderId());
|
|
|
}
|
|
|
// 准备订单对象
|
|
|
- order.setSalesOpenid(member.getUserOpenid()); // openid
|
|
|
- order.setSalesAmount(total); // 订单金额
|
|
|
-
|
|
|
+ order.setSalesOpenid(member.getUserOpenid());
|
|
|
+ order.setSalesAmount(total);
|
|
|
int mustPay=0;
|
|
|
-
|
|
|
String couponId=temp.getCouponId();
|
|
|
CouponItemDto couponItemDto=new CouponItemDto();
|
|
|
CouponItem couponItem=new CouponItem();
|
|
|
boolean hasCoupon=false;
|
|
|
//获取优惠券不为空
|
|
|
- if(couponId!=null && !couponId.equals("")){
|
|
|
+ if(!StringUtils.isEmpty(couponId)){
|
|
|
hasCoupon=true;
|
|
|
//查询优惠券,获取对应的金额
|
|
|
couponItemDto = couponItemService.getCouponItemById(couponId);
|
|
@@ -474,25 +457,29 @@ public class OrderHandler {
|
|
|
couponItem.setCouponUseDate(couponItemDto.getCouponUseDate());
|
|
|
|
|
|
if(null==couponItemDto || !couponItemDto.getUseropenid().equals(member.getUserOpenid()) || couponItemDto.getCouponUseStatus()!=1){
|
|
|
- msg.setMessage(ResultInfo.COUPON_INVALID); //优惠券无效
|
|
|
+ //优惠券无效
|
|
|
+ msg.setMessage(ResultInfo.COUPON_INVALID);
|
|
|
return msg;
|
|
|
}
|
|
|
if(couponItem.getCouponUseEndDate().getTime()<nowDate.getTime()){
|
|
|
- msg.setMessage(ResultInfo.COUPON_OUTOFDATE); //优惠券过期
|
|
|
+ //优惠券过期
|
|
|
+ msg.setMessage(ResultInfo.COUPON_OUTOFDATE);
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
//消费达到指定额度
|
|
|
CouponType couponType = couponTypeService.getCouponTypeById(couponItemDto.getCouponId());
|
|
|
if(couponType.getCouponConsumeEnough()>total){
|
|
|
- msg.setMessage(ResultInfo.COUPON_CONSUME_NO_ENOUGH); //消费额度不足
|
|
|
+ //消费额度不足
|
|
|
+ msg.setMessage(ResultInfo.COUPON_CONSUME_NO_ENOUGH);
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
if(3 == couponType.getCouponType()){
|
|
|
if(couponType.getCouponId() == 10001){
|
|
|
if(!isCludeT1ORT2){
|
|
|
- msg.setMessage(ResultInfo.COUPON_T1_T2_NO_MSG); //未购买指定商品
|
|
|
+ //未购买指定商品
|
|
|
+ msg.setMessage(ResultInfo.COUPON_T1_T2_NO_MSG);
|
|
|
return msg;
|
|
|
}
|
|
|
}else if(couponType.getCouponId() == 10000){
|
|
@@ -514,7 +501,8 @@ public class OrderHandler {
|
|
|
}
|
|
|
}
|
|
|
if(!fl){
|
|
|
- msg.setMessage(ResultInfo.COUPON_NO_MEET_DEMAND); //消费没有达到需求
|
|
|
+ //消费没有达到需求
|
|
|
+ msg.setMessage(ResultInfo.COUPON_NO_MEET_DEMAND);
|
|
|
return msg;
|
|
|
}
|
|
|
}
|
|
@@ -536,7 +524,8 @@ public class OrderHandler {
|
|
|
Integer integralNum = temp.getOrderIntegralNum();
|
|
|
//使用积分
|
|
|
if(integralNum != null && integralNum != 0){
|
|
|
- if(member.getUserIsVip() == 2 && member.getUserSurplusIntegral() >= integralNum){// vip用户 && 用户积分大于等于使用的积分
|
|
|
+ if(member.getUserIsVip() == 2 && member.getUserSurplusIntegral() >= integralNum){
|
|
|
+ // vip用户 && 用户积分大于等于使用的积分
|
|
|
//积分的使用需要除以10,但是支付金额的单位为分,所以需要乘以100 == 》 integralNum/10*100 ==》 integralNum*10
|
|
|
total -= integralNum*10;
|
|
|
}else{
|
|
@@ -587,9 +576,7 @@ public class OrderHandler {
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
flag = false;
|
|
|
- System.out.println("====插入订单列表信息失败====");
|
|
|
- msg.setMessage(ResultInfo.paramFormatError);
|
|
|
- e.printStackTrace();
|
|
|
+ msg.setMessage(e.getMessage());
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
@@ -624,7 +611,8 @@ public class OrderHandler {
|
|
|
if(updateFlase){
|
|
|
//设置订单状态,还有优惠券id
|
|
|
|
|
|
- if(temp.getIsSpell() == 1){//如果是团购订单则状态改为正在团购
|
|
|
+ if(temp.getIsSpell() == 1){
|
|
|
+ //如果是团购订单则状态改为正在团购
|
|
|
order.setSalesStatus(15);
|
|
|
}else{
|
|
|
order.setSalesStatus(2);
|
|
@@ -636,16 +624,17 @@ public class OrderHandler {
|
|
|
// int i=couponItemService.updateCouponItemById(couponItem);
|
|
|
}
|
|
|
|
|
|
- if(temp.getIsSpell() == null || temp.getIsSpell() == 2){//如果是团购订单则暂时不推送订单,在完成拼单后再推送
|
|
|
+ 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.setServiceIsSend(2);
|
|
|
+ message.setServiceStatus(1);
|
|
|
+ message.setServiceType(1);
|
|
|
message.setServiceHandlerObjectName("efastOrderServiceImpl");
|
|
|
message.setServiceHandlerMethodName("addOrderInfoToEfast");
|
|
|
mQservice.insertMQMessage(message);
|
|
@@ -653,39 +642,7 @@ public class OrderHandler {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
//更新账户余额
|
|
|
-// if(balancePayAmount>0){
|
|
|
-// member.setUserIncome(-balancePayAmount);
|
|
|
-// memberService.updateUserIncomeByOpenId(member);
|
|
|
-//
|
|
|
-// //修改用户购买记录为已购买
|
|
|
-// memberService.updateIsBaughtByOpenid(member.getUserOpenid(), 2);
|
|
|
-// //更新用户绑定状态
|
|
|
-// if (member.getUserIsFlag()!= null && member.getUserIsFlag() == 1) {
|
|
|
-// member.setUserIsFlag(2);//终身绑定
|
|
|
-// homeService.updateMemberIsFlagByOpenid(member);
|
|
|
-// }
|
|
|
-// try {
|
|
|
-// temporaryQrcodeService.applyTempQrcode(member.getUserOpenid());//为用户生成二维码
|
|
|
-// } catch (Exception e) {
|
|
|
-// System.out.println("为用户生成二维码失败!");
|
|
|
-// }
|
|
|
-//
|
|
|
-// //现金使用记录
|
|
|
-// CashLog log=new CashLog();
|
|
|
-// log.setCashLogsIntroduction("订单支出");
|
|
|
-// log.setCashLogsNum(balancePayAmount);
|
|
|
-// log.setCashLogsOpenid(member.getUserOpenid());
|
|
|
-// log.setCashLogsType(2);
|
|
|
-// log.setCashLogsResType(3);
|
|
|
-// log.setCashLogsOrderid(order.getSalesOrderid());
|
|
|
-// log.setCashLogsCreateDate(nowDate);
|
|
|
-// cashLogService.addCashLog(log);
|
|
|
-//
|
|
|
-// }
|
|
|
-// rebackServices.loadSingleOrderReward(order);
|
|
|
productInfoService.updateProductNumList(order.getSalesOrderid());
|
|
|
|
|
|
/**
|
|
@@ -697,7 +654,8 @@ public class OrderHandler {
|
|
|
or1.setSalesOrderid(temp.getSpellOrderId());
|
|
|
or1.setSalesStatus(2);
|
|
|
or1.setSalesSpellOrderId(order.getSalesOrderid());
|
|
|
- cartService.updateOrderSpellOrderId(or1);//修改状态为已支付,待发货,关联拼单订单id
|
|
|
+ //修改状态为已支付,待发货,关联拼单订单id
|
|
|
+ cartService.updateOrderSpellOrderId(or1);
|
|
|
//邀请人信息state
|
|
|
Order orderOne = new Order();
|
|
|
orderOne.setSalesOrderid(temp.getSpellOrderId());
|
|
@@ -720,27 +678,27 @@ public class OrderHandler {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
- String names = name +",微信好友";
|
|
|
+ String names = name +",微信好友";
|
|
|
|
|
|
- try {
|
|
|
- names = name +","+(member.getUserNickname() == null? "微信好友": URLDecoder.decode(member.getUserNickname(),"UTF-8"));
|
|
|
- } catch (UnsupportedEncodingException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
+ 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();
|
|
|
- }
|
|
|
+ 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 {
|
|
@@ -756,11 +714,6 @@ public class OrderHandler {
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
//被邀请人(当前)订单修改
|
|
|
Order or2 = new Order();
|
|
|
or2.setSalesOrderid(order.getSalesOrderid());
|
|
@@ -804,9 +757,9 @@ public class OrderHandler {
|
|
|
MQMessage message = new MQMessage();
|
|
|
message.setServiceToMessage(order.getSalesOrderid());
|
|
|
message.setServiceOtherMessage("efast.trade.new.add");
|
|
|
- message.setServiceIsSend(2); // 没有推送的信息
|
|
|
- message.setServiceStatus(1); // 推送成功
|
|
|
- message.setServiceType(1); // 添加订单信息
|
|
|
+ message.setServiceIsSend(2);
|
|
|
+ message.setServiceStatus(1);
|
|
|
+ message.setServiceType(1);
|
|
|
message.setServiceHandlerObjectName("efastOrderServiceImpl");
|
|
|
message.setServiceHandlerMethodName("addOrderInfoToEfast");
|
|
|
mQservice.insertMQMessage(message);
|