|
|
|
@ -1,17 +1,27 @@ |
|
|
|
package org.jeecg.api.service.impl; |
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.lang.StringUtils; |
|
|
|
import org.jeecg.api.bean.PageBean; |
|
|
|
import org.jeecg.api.service.AppletOrderService; |
|
|
|
import org.jeecg.common.api.vo.Result; |
|
|
|
import org.jeecg.config.shiro.ShiroRealm; |
|
|
|
import org.jeecg.modules.commonAddOrder.entity.CommonAddOrder; |
|
|
|
import org.jeecg.modules.commonAddOrder.service.ICommonAddOrderService; |
|
|
|
import org.jeecg.modules.commonAddress.entity.CommonAddress; |
|
|
|
import org.jeecg.modules.commonAddress.service.ICommonAddressService; |
|
|
|
import org.jeecg.modules.commonConfig.entity.CommonConfig; |
|
|
|
import org.jeecg.modules.commonMoneyLog.entity.CommonMoneyLog; |
|
|
|
import org.jeecg.modules.commonMoneyLog.service.ICommonMoneyLogService; |
|
|
|
import org.jeecg.modules.commonOrder.entity.CommonOrder; |
|
|
|
import org.jeecg.modules.commonOrder.service.ICommonOrderService; |
|
|
|
import org.jeecg.modules.commonShop.entity.CommonShop; |
|
|
|
import org.jeecg.modules.commonShop.service.ICommonShopService; |
|
|
|
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; |
|
|
|
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; |
|
|
|
import org.jeecg.modules.pay.MpWxPayService; |
|
|
|
@ -21,6 +31,7 @@ import org.springframework.stereotype.Service; |
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
@ -38,17 +49,40 @@ public class AppletOrderServiceImpl implements AppletOrderService { |
|
|
|
private MpWxPayService mpWxPayService; |
|
|
|
@Resource |
|
|
|
private ICommonMoneyLogService commonMoneyLogService; |
|
|
|
@Resource |
|
|
|
private ICommonAddressService commonAddressService; |
|
|
|
@Resource |
|
|
|
private ICommonShopService commonShopService; |
|
|
|
@Resource |
|
|
|
private ICommonAddOrderService iCommonAddOrderService; |
|
|
|
|
|
|
|
//获取订单信息列表带分页 |
|
|
|
@Override |
|
|
|
public Result<?> getOrderPageBean(String token, Integer status, PageBean pageBean){ |
|
|
|
public Result<?> getOrderPageBean(String token, Integer state, PageBean pageBean){ |
|
|
|
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
Page<CommonOrder> page = new Page<CommonOrder>(pageBean.getPageNo(), pageBean.getPageSize()); |
|
|
|
Page<CommonOrder> page1 = commonOrderService.lambdaQuery() |
|
|
|
.eq(CommonOrder::getUserId, hanHaiMember.getId()) |
|
|
|
.eq(CommonOrder::getStatus, status) |
|
|
|
.orderByDesc(CommonOrder::getCreateTime) |
|
|
|
.page(page); |
|
|
|
if(state != null){ |
|
|
|
page1 = commonOrderService.lambdaQuery() |
|
|
|
.eq(CommonOrder::getUserId, hanHaiMember.getId()) |
|
|
|
.eq(CommonOrder::getStatus, state) |
|
|
|
.orderByDesc(CommonOrder::getCreateTime) |
|
|
|
.page(page); |
|
|
|
} |
|
|
|
//循环得到订单信息 |
|
|
|
List<CommonOrder> records = page1.getRecords(); |
|
|
|
for (CommonOrder commonOrder : records) { |
|
|
|
commonOrder.setChildren(commonOrderService.lambdaQuery().eq(CommonOrder::getPid, commonOrder.getId()).list()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return Result.OK("订单信息查询成功",page1); |
|
|
|
} |
|
|
|
|
|
|
|
@ -60,6 +94,7 @@ public class AppletOrderServiceImpl implements AppletOrderService { |
|
|
|
.eq(CommonOrder::getUserId, hanHaiMember.getId()) |
|
|
|
.eq(CommonOrder::getId, orderId) |
|
|
|
.one(); |
|
|
|
commonOrder.setChildren(commonOrderService.lambdaQuery().eq(CommonOrder::getPid, commonOrder.getId()).list()); |
|
|
|
return Result.OK("订单信息查询成功",commonOrder); |
|
|
|
} |
|
|
|
|
|
|
|
@ -129,4 +164,162 @@ public class AppletOrderServiceImpl implements AppletOrderService { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//取消订单 |
|
|
|
@Override |
|
|
|
public Result<?> cancelOrder(String token,String orderId){ |
|
|
|
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
CommonOrder commonOrder = commonOrderService.getById(orderId); |
|
|
|
if (commonOrder.getStatus().equals("0")){ |
|
|
|
commonOrder.setStatus("3"); |
|
|
|
commonOrderService.updateById(commonOrder); |
|
|
|
HanHaiMember hanHaiMember1 = hanHaiMemberService.getById(hanHaiMember.getId()); |
|
|
|
hanHaiMember1.setMoney(hanHaiMember1.getMoney().add(commonOrder.getPrice())); |
|
|
|
hanHaiMemberService.updateById(hanHaiMember1); |
|
|
|
} |
|
|
|
return Result.OK("取消成功"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//商城-支付回调 |
|
|
|
@Override |
|
|
|
public Result<?> payNotify(String requestBody){ |
|
|
|
WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody); |
|
|
|
String outTradeNo = notify.getOutTradeNo(); |
|
|
|
log.info("支付回调订单号码:"+outTradeNo); |
|
|
|
//查询订单信息 |
|
|
|
CommonOrder commonOrder = commonOrderService.getById(outTradeNo); |
|
|
|
//如果该订单为未支付,修改订单状态 |
|
|
|
if (commonOrder.getStatus().equals("0")){ |
|
|
|
commonOrder.setStatus("1"); |
|
|
|
commonOrderService.updateById(commonOrder); |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//商城-加入购物车之后一次下多个订单 |
|
|
|
//商城-立即购买多少商品 |
|
|
|
@Override |
|
|
|
public Result<?> createSumOrder(String token,String list,String addressId,Integer payType,String orderAddId){ |
|
|
|
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
|
|
|
|
//orderId 不为 空 |
|
|
|
if(StringUtils.isNotBlank(orderAddId)){ |
|
|
|
CommonAddOrder commonAddOrder = iCommonAddOrderService.getById(orderAddId); |
|
|
|
//修改订单状态 |
|
|
|
commonAddOrder.setIsPay("Y"); |
|
|
|
iCommonAddOrderService.updateById(commonAddOrder); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//用户地址不能为空 |
|
|
|
if(StringUtils.isBlank(addressId)){ |
|
|
|
return Result.error("请选择收货地址"); |
|
|
|
} |
|
|
|
//查询地址是否存在 |
|
|
|
CommonAddress commonAddress = commonAddressService.getById(addressId); |
|
|
|
if (commonAddress==null){ |
|
|
|
return Result.error("地址不存在"); |
|
|
|
} |
|
|
|
//把list转为对象 list = [{"shopId":"1","num":1},{"shopId":"2","num":2}] |
|
|
|
List<CommonOrder> list1 = JSON.parseArray(list, CommonOrder.class); |
|
|
|
//创建订单标识 |
|
|
|
String orderId = IdWorker.getIdStr(); |
|
|
|
if(null!=list1 && list1.size()>0){ |
|
|
|
//订单总额 |
|
|
|
BigDecimal totalPrice = new BigDecimal(0); |
|
|
|
//订单商品数量 |
|
|
|
Integer totalNum = 0; |
|
|
|
|
|
|
|
//创建订单详情 |
|
|
|
for (CommonOrder sku : list1) { |
|
|
|
//查询商品信息 |
|
|
|
CommonShop commonShop = commonShopService.getById(sku.getShopId()); |
|
|
|
//商品不能为空 |
|
|
|
if (commonShop==null){ |
|
|
|
return Result.error("商品不存在"); |
|
|
|
} |
|
|
|
//创建订单 |
|
|
|
BigDecimal price = commonShop.getPrice().multiply(new BigDecimal(sku.getNum())); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sku.setPid(orderId); |
|
|
|
|
|
|
|
sku.setHasChild("0"); |
|
|
|
sku.setShopId(commonShop.getId()); |
|
|
|
sku.setTitle(commonShop.getName()); |
|
|
|
sku.setImage(commonShop.getImage()); |
|
|
|
sku.setPrice(price); |
|
|
|
sku.setNum(sku.getNum()); |
|
|
|
sku.setMaterial(commonShop.getMaterial()); |
|
|
|
sku.setCreateTime(new Date()); |
|
|
|
sku.setPrice(price); |
|
|
|
|
|
|
|
sku.setImage(commonShop.getImage()); |
|
|
|
sku.setCreateTime(new Date()); |
|
|
|
|
|
|
|
commonOrderService.save(sku); |
|
|
|
|
|
|
|
//计算总价格 |
|
|
|
totalPrice = totalPrice.add(price); |
|
|
|
|
|
|
|
totalNum = totalNum + sku.getNum(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//创建主订单 |
|
|
|
CommonOrder cityOrder = new CommonOrder(); |
|
|
|
cityOrder.setId(orderId); |
|
|
|
cityOrder.setUserId(hanHaiMember.getId()); |
|
|
|
cityOrder.setShopId(null); |
|
|
|
cityOrder.setNum(totalNum); |
|
|
|
cityOrder.setAddress(commonAddress.getAddress()); |
|
|
|
cityOrder.setName(commonAddress.getName()); |
|
|
|
cityOrder.setPhone(commonAddress.getPhone()); |
|
|
|
cityOrder.setAddressDetail(commonAddress.getAddressDetails()); |
|
|
|
// cityOrder.seta(addressId); |
|
|
|
cityOrder.setName(commonAddress.getName()); |
|
|
|
cityOrder.setTitle("组合订单"); |
|
|
|
cityOrder.setPrice(totalPrice); |
|
|
|
cityOrder.setPid("0"); |
|
|
|
cityOrder.setHasChild("1"); |
|
|
|
|
|
|
|
// cityOrder.setShopState(2); |
|
|
|
|
|
|
|
cityOrder.setImage(null); |
|
|
|
cityOrder.setStatus("0"); |
|
|
|
cityOrder.setCreateTime(new Date()); |
|
|
|
|
|
|
|
commonOrderService.save(cityOrder); |
|
|
|
|
|
|
|
//吊起微信支付 |
|
|
|
String s = totalPrice.multiply(new BigDecimal(100)).toString(); |
|
|
|
int i1 = Double.valueOf(s).intValue(); |
|
|
|
Object appOrder = mpWxPayService.createOrder( |
|
|
|
"购买"+ "组合订单" , |
|
|
|
"127.0.0.1", |
|
|
|
orderId, |
|
|
|
i1, |
|
|
|
orderId, |
|
|
|
hanHaiMember.getAppletOpenid(), |
|
|
|
cityOrder.toString()); |
|
|
|
|
|
|
|
return Result.OK("支付成功",appOrder); |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
} |