@ -1,17 +1,44 @@
package com.yxt.yyth.biz.lpkreserveorder ;
import cn.hutool.core.bean.BeanUtil ;
import cn.hutool.core.date.DateTime ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.metadata.IPage ;
import com.yxt.common.base.service.MybatisBaseService ;
import com.yxt.common.base.utils.PagerUtil ;
import com.yxt.common.base.utils.StringUtils ;
import com.yxt.common.core.query.PagerQuery ;
import com.yxt.common.core.result.ResultBean ;
import com.yxt.yyth.api.lpkreserveorder.Goods ;
import com.yxt.yyth.api.lpkreserveorder.LpkReserveOrder ;
import com.yxt.yyth.api.lpkreserveorder.LpkReserveOrderDto ;
import com.yxt.common.core.vo.PagerVo ;
import com.yxt.yyth.api.lpkcustomer.LpkCustomer ;
import com.yxt.yyth.api.lpkcustomer.LpkCustomerQuery ;
import com.yxt.yyth.api.lpkcustomer.LpkCustomerVo ;
import com.yxt.yyth.api.lpkgiftbaggoods.LpkGiftBagGoodsVo ;
import com.yxt.yyth.api.lpkgiftcard.AppletVo ;
import com.yxt.yyth.api.lpkgiftcard.GoodsVo ;
import com.yxt.yyth.api.lpkgiftcard.LpkGiftCard ;
import com.yxt.yyth.api.lpkreserveorder.* ;
import com.yxt.yyth.api.lpkreserveordergoods.LpkReserveOrderGoods ;
import com.yxt.yyth.api.lpkreserveordergoods.LpkReserveOrderGoodsDto ;
import com.yxt.yyth.api.lpkstore.LpkStore ;
import com.yxt.yyth.api.lpkstore.StoreSelect ;
import com.yxt.yyth.biz.lpkgiftbaggoods.LpkGiftBagGoodsService ;
import com.yxt.yyth.biz.lpkgiftcard.LpkGiftCardMapper ;
import com.yxt.yyth.biz.lpkgiftcard.LpkGiftCardService ;
import com.yxt.yyth.biz.lpkreserveordergoods.LpkReserveOrderGoodsService ;
import com.yxt.yyth.biz.lpkstore.LpkStoreService ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.beans.factory.annotation.Value ;
import org.springframework.stereotype.Service ;
import org.springframework.web.bind.annotation.RequestBody ;
import java.text.ParseException ;
import java.text.SimpleDateFormat ;
import java.util.ArrayList ;
import java.util.Collections ;
import java.util.Date ;
import java.util.List ;
/ * *
* @author wangpengfei
* @date 2023 / 11 / 23 10 : 36
@ -20,14 +47,121 @@ import org.springframework.web.bind.annotation.RequestBody;
public class LpkReserveOrderService extends MybatisBaseService < LpkReserveOrderMapper , LpkReserveOrder > {
@Autowired
LpkReserveOrderGoodsService lpkReserveOrderGoodsService ;
public ResultBean submission ( LpkReserveOrderDto dto ) {
ResultBean rb = new ResultBean ( ) ;
LpkReserveOrder order = new LpkReserveOrder ( ) ;
@Autowired
LpkGiftCardMapper lpkGiftCardMapper ;
@Autowired
LpkGiftBagGoodsService lpkGiftBagGoodsService ;
@Autowired
LpkStoreService lpkStoreService ;
@Value ( "${image.url.prefix:http://127.0.0.1:8080/upload/}" )
private String urlPrefix ;
public ResultBean submission ( LpkReserveOrderDto dto ) {
ResultBean rb = new ResultBean ( ) ;
LpkReserveOrder order = new LpkReserveOrder ( ) ;
BeanUtil . copyProperties ( dto , order , "id" , "sid" ) ;
order . setStoreSid ( dto . getValue ( ) ) ;
order . setCardSid ( dto . getSid ( ) ) ;
order . setCreateTime ( new DateTime ( ) ) ;
baseMapper . insert ( order ) ;
dto . setOrderSid ( order . getSid ( ) ) ;
lpkReserveOrderGoodsService . submissionDetail ( dto ) ;
return rb . success ( ) . setData ( "预约成功" ) ;
}
public ResultBean < PagerVo < LpkReserveOrderVo > > orderList ( PagerQuery < LpkReserveOrderQuery > pq ) {
ResultBean rb = ResultBean . fireFail ( ) ;
LpkReserveOrderQuery query = pq . getParams ( ) ;
QueryWrapper < LpkReserveOrder > qw = new QueryWrapper < > ( ) ;
qw . eq ( "1" , "1" ) ;
if ( StringUtils . isNotBlank ( query . getStore ( ) ) ) {
qw . like ( "s.name" , query . getStore ( ) ) ;
}
if ( StringUtils . isNotBlank ( query . getUserName ( ) ) ) {
qw . like ( "o.userName" , query . getUserName ( ) ) ;
}
String startDate = query . getStartDate ( ) ;
String endDate = query . getEndDate ( ) ;
qw . apply ( org . apache . commons . lang3 . StringUtils . isNotEmpty ( startDate ) , "date_format (o.reserveDate,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')" ) .
apply ( org . apache . commons . lang3 . StringUtils . isNotEmpty ( endDate ) , "date_format (o.reserveDate,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')"
) ;
qw . orderByDesc ( "o.createTime" ) ;
IPage < LpkReserveOrder > page = PagerUtil . queryToPage ( pq ) ;
IPage < LpkReserveOrderVo > pagging = baseMapper . orderList ( page , qw ) ;
PagerVo < LpkReserveOrderVo > p = PagerUtil . pageToVo ( pagging , null ) ;
return rb . success ( ) . setData ( p ) ;
}
public ResultBean orderByCardSid ( String sid ) {
ResultBean rb = ResultBean . fireFail ( ) ;
List < LpkReserveOrderCardVo > list = baseMapper . orderByCardSid ( sid ) ;
return rb . success ( ) . setData ( list ) ;
}
public ResultBean < PagerVo < LpkReserveOrderCardVo > > orderListByUserSid ( PagerQuery < LpkReserveOrderQuery > pq ) {
ResultBean rb = ResultBean . fireFail ( ) ;
LpkReserveOrderQuery query = pq . getParams ( ) ;
QueryWrapper < LpkReserveOrder > qw = new QueryWrapper < > ( ) ;
qw . eq ( "o.customerSid" , query . getUserSid ( ) ) ;
qw . orderByDesc ( "o.createTime" ) ;
IPage < LpkReserveOrder > page = PagerUtil . queryToPage ( pq ) ;
IPage < LpkReserveOrderCardVo > pagging = baseMapper . orderListByUserSid ( page , qw ) ;
PagerVo < LpkReserveOrderCardVo > p = PagerUtil . pageToVo ( pagging , null ) ;
return rb . success ( ) . setData ( p ) ;
}
public ResultBean orderDetails ( String orderSid ) {
ResultBean rb = new ResultBean ( ) . fail ( ) ;
LpkReserveOrder lpkReserveOrder = fetchBySid ( orderSid ) ;
SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
if ( null ! = lpkReserveOrder ) {
AppletVo vo = lpkGiftCardMapper . getGifCardBySid ( lpkReserveOrder . getCardSid ( ) ) ;
if ( StringUtils . isNotBlank ( lpkReserveOrder . getStoreSid ( ) ) ) {
LpkStore lpkStore = lpkStoreService . fetchBySid ( lpkReserveOrder . getStoreSid ( ) ) ;
if ( null ! = lpkStore ) {
if ( StringUtils . isNotBlank ( lpkStore . getName ( ) ) ) {
vo . setStore ( lpkStore . getName ( ) ) ;
}
}
}
if ( StringUtils . isNotBlank ( lpkReserveOrder . getReserveDate ( ) ) ) {
try {
Date parse = sdf . parse ( lpkReserveOrder . getReserveDate ( ) ) ;
vo . setReserveDate ( sdf . format ( parse ) ) ;
} catch ( ParseException e ) {
e . printStackTrace ( ) ;
}
}
List < LpkGiftBagGoodsVo > list = lpkGiftBagGoodsService . getGoodsByBagSid ( vo . getGiftbagSid ( ) ) ;
List < StoreSelect > l = lpkStoreService . getAllStore ( ) . getData ( ) ;
List < GoodsVo > goodsVos = new ArrayList < > ( ) ;
list . forEach ( s - > {
LpkReserveOrderGoods goods = lpkReserveOrderGoodsService . getReserveByCardSid ( vo . getSid ( ) , s . getGoodsSid ( ) ) . getData ( ) ;
LpkReserveOrderGoods orderGoods = lpkReserveOrderGoodsService . selByOrderSidAndGoodSid ( orderSid , s . getGoodsSid ( ) ) ;
GoodsVo goodsVo = new GoodsVo ( ) ;
goodsVo . setGoods ( s . getGoodsName ( ) ) ;
goodsVo . setNum ( s . getGoodsNumber ( ) ) ;
goodsVo . setGoodsSid ( s . getGoodsSid ( ) ) ;
goodsVo . setPic ( urlPrefix + s . getPicUrl ( ) ) ;
if ( null ! = goods ) {
if ( goods . getGoodsNumber ( ) ! = s . getGoodsNumber ( ) ) {
goodsVo . setLNum ( s . getGoodsNumber ( ) - goods . getGoodsNumber ( ) ) ;
goodsVo . setSelect ( s . getGoodsNumber ( ) - goods . getGoodsNumber ( ) ) ;
if ( null ! = orderGoods ) {
goodsVo . setOrderNum ( orderGoods . getGoodsNumber ( ) ) ;
}
goodsVos . add ( goodsVo ) ;
}
} else {
goodsVo . setLNum ( s . getGoodsNumber ( ) ) ;
goodsVo . setSelect ( s . getGoodsNumber ( ) ) ;
goodsVos . add ( goodsVo ) ;
}
} ) ;
vo . setGoodsVos ( goodsVos ) ;
vo . setSelect ( l ) ;
return rb . success ( ) . setData ( vo ) ;
}
return rb . success ( ) ;
}
}