| @@ -329,7 +329,7 @@ public class WxCarController extends BaseController { | |||||
| userCarQ.setCUserId(memberId); | userCarQ.setCUserId(memberId); | ||||
| userCarQ.setId(couponOrderId); | userCarQ.setId(couponOrderId); | ||||
| userCarQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | userCarQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | ||||
| List<WxCouponOrderCarCVo> list = wxCouponOrderService.carListCUserVo(userCarQ); | |||||
| List<WxCouponOrderCarCVo> list = wxCouponOrderService.carListCUserVo(userCarQ,true); | |||||
| if (null != list && list.size() > 0) { | if (null != list && list.size() > 0) { | ||||
| userCar = list.get(0); | userCar = list.get(0); | ||||
| WxCUserBasicInfo user; | WxCUserBasicInfo user; | ||||
| @@ -1,11 +1,13 @@ | |||||
| package com.iformall.domain.po; | package com.iformall.domain.po; | ||||
| import com.baomidou.mybatisplus.annotation.TableField; | |||||
| import com.baomidou.mybatisplus.annotation.TableName; | import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import lombok.Data; | import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | import lombok.EqualsAndHashCode; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | |||||
| @TableName(value = "wx_coupon_merchant") | @TableName(value = "wx_coupon_merchant") | ||||
| @Data | @Data | ||||
| @@ -16,8 +18,12 @@ public class WxCouponMerchant extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="",name="productId") | @io.swagger.annotations.ApiModelProperty(value="",name="productId") | ||||
| private Long productId; | private Long productId; | ||||
| @TableField(exist = false) | |||||
| private List<Long> productIds; | |||||
| @io.swagger.annotations.ApiModelProperty(value="",name="merchantId") | @io.swagger.annotations.ApiModelProperty(value="",name="merchantId") | ||||
| private Long merchantId; | private Long merchantId; | ||||
| @TableField(exist = false) | |||||
| private List<Long> merchantIds; | |||||
| @io.swagger.annotations.ApiModelProperty(value="",name="parameter") | @io.swagger.annotations.ApiModelProperty(value="",name="parameter") | ||||
| private String parameter; | private String parameter; | ||||
| @@ -3,6 +3,7 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxCouponMerchant; | import com.iformall.domain.po.WxCouponMerchant; | ||||
| import com.iformall.domain.po.WxMerchant; | |||||
| import com.iformall.domain.vo.WxMerchantProductVo; | import com.iformall.domain.vo.WxMerchantProductVo; | ||||
| import com.iformall.domain.vo.WxMerchantVo; | import com.iformall.domain.vo.WxMerchantVo; | ||||
| @@ -146,7 +146,7 @@ public interface WxCouponOrderService { | |||||
| ResultData carListCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize); | ResultData carListCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize); | ||||
| List<WxCouponOrderCarCVo> carListCUserVo(WxCouponOrder record); | |||||
| List<WxCouponOrderCarCVo> carListCUserVo(WxCouponOrder record,boolean getMerchant); | |||||
| /** | /** | ||||
| * A端查询分页列表 | * A端查询分页列表 | ||||
| @@ -155,7 +155,8 @@ public interface WxMerchantService { | |||||
| PageInfo<WxMerchant> listVoAsPage(WxMerchant wxMerchant, Integer pageNum, Integer pageSize); | PageInfo<WxMerchant> listVoAsPage(WxMerchant wxMerchant, Integer pageNum, Integer pageSize); | ||||
| List<WxMerchantVo> findMerchantVoList(Long productId,String tenantId); | |||||
| List<WxMerchantVo> findMerchantVoList(Long couponId,String tenantId); | |||||
| Map<Long,List<WxMerchantVo>> findCouponMerchantVoList(List<Long> couponIds,String tenantId); | |||||
| PageInfo<WxMerchant> listVoAsPage2(WxMerchant wxMerchant, Integer pageNum, Integer pageSize); | PageInfo<WxMerchant> listVoAsPage2(WxMerchant wxMerchant, Integer pageNum, Integer pageSize); | ||||
| @@ -110,6 +110,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| @Autowired | @Autowired | ||||
| WxCouponMapper wxCouponMapper; | WxCouponMapper wxCouponMapper; | ||||
| @Lazy | |||||
| @Autowired | @Autowired | ||||
| WxMerchantService wxMerchantService; | WxMerchantService wxMerchantService; | ||||
| @@ -676,15 +677,15 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| @Override | @Override | ||||
| public ResultData carListCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize) { | public ResultData carListCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize) { | ||||
| return new ResultData(findCarListOfCUser(record,pageIndex,pageSize)); | |||||
| return new ResultData(findCarListOfCUser(record,pageIndex,pageSize,true)); | |||||
| } | } | ||||
| @Override | @Override | ||||
| public List<WxCouponOrderCarCVo> carListCUserVo(WxCouponOrder record) { | |||||
| return findCarListOfCUser(record,1,10).getList(); | |||||
| public List<WxCouponOrderCarCVo> carListCUserVo(WxCouponOrder record,boolean getMerchant) { | |||||
| return findCarListOfCUser(record,1,10,getMerchant).getList(); | |||||
| } | } | ||||
| private PageInfo<WxCouponOrderCarCVo> findCarListOfCUser(WxCouponOrder wxCouponOrder,Integer pageIndex, Integer pageSize){ | |||||
| private PageInfo<WxCouponOrderCarCVo> findCarListOfCUser(WxCouponOrder wxCouponOrder,Integer pageIndex, Integer pageSize,boolean getMerchant){ | |||||
| WxCoupon couponQ = new WxCoupon(); | WxCoupon couponQ = new WxCoupon(); | ||||
| couponQ.updateTenantInfo(wxCouponOrder); | couponQ.updateTenantInfo(wxCouponOrder); | ||||
| List<Integer> types = new ArrayList<Integer>(); | List<Integer> types = new ArrayList<Integer>(); | ||||
| @@ -700,14 +701,14 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| PageInfo<WxCouponOrderCarCVo> retPageInfo = new PageInfo<WxCouponOrderCarCVo>(); | PageInfo<WxCouponOrderCarCVo> retPageInfo = new PageInfo<WxCouponOrderCarCVo>(); | ||||
| retPageInfo.setPageNum(pageInfo.getPageNum()); | retPageInfo.setPageNum(pageInfo.getPageNum()); | ||||
| retPageInfo.setPageSize(pageInfo.getPageSize()); | retPageInfo.setPageSize(pageInfo.getPageSize()); | ||||
| retPageInfo.setList(couponOrderListToCarVoList(wxCouponOrder,pageInfo.getList())); | |||||
| retPageInfo.setList(couponOrderListToCarVoList(wxCouponOrder,pageInfo.getList(),getMerchant)); | |||||
| retPageInfo.setPages(pageInfo.getPages()); | retPageInfo.setPages(pageInfo.getPages()); | ||||
| retPageInfo.setTotal(pageInfo.getTotal()); | retPageInfo.setTotal(pageInfo.getTotal()); | ||||
| return retPageInfo; | return retPageInfo; | ||||
| } | } | ||||
| private List<WxCouponOrderCarCVo> couponOrderListToCarVoList(TenantEntity tenantEntity,List<WxCouponOrder> couponOrderList) { | |||||
| private List<WxCouponOrderCarCVo> couponOrderListToCarVoList(TenantEntity tenantEntity,List<WxCouponOrder> couponOrderList,boolean getMerchant) { | |||||
| if (null != couponOrderList) { | if (null != couponOrderList) { | ||||
| //查询coupon | //查询coupon | ||||
| List<Long> couponIds = new ArrayList<Long>(); | List<Long> couponIds = new ArrayList<Long>(); | ||||
| @@ -750,21 +751,22 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| } | } | ||||
| } | } | ||||
| Map<Long, List<WxMerchantVo>> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIds, tenantEntity.getTenantId()); | |||||
| List<WxCouponOrderCarCVo> volist = new ArrayList<WxCouponOrderCarCVo>(); | List<WxCouponOrderCarCVo> volist = new ArrayList<WxCouponOrderCarCVo>(); | ||||
| for (int i = 0 ; i < couponOrderList.size(); i++){ | for (int i = 0 ; i < couponOrderList.size(); i++){ | ||||
| WxCouponOrder co = couponOrderList.get(i); | WxCouponOrder co = couponOrderList.get(i); | ||||
| WxCouponOrderCarCVo cvo = getCouponOrderCarVo(co,couponMap,couponCarMap); | |||||
| WxCouponOrderCarCVo cvo = getCouponOrderCarVo(co,couponMap,couponCarMap,getMerchant,couponMerchantVoMap); | |||||
| if (null != cvo) { | if (null != cvo) { | ||||
| volist.add(cvo); | volist.add(cvo); | ||||
| } | } | ||||
| } | } | ||||
| return volist; | return volist; | ||||
| } | } | ||||
| return null; | return null; | ||||
| } | } | ||||
| private WxCouponOrderCarCVo getCouponOrderCarVo(WxCouponOrder co,Map<Long,WxCoupon> couponMap,Map<Long,WxCouponCar> couponCarMap) { | |||||
| private WxCouponOrderCarCVo getCouponOrderCarVo(WxCouponOrder co,Map<Long,WxCoupon> couponMap,Map<Long,WxCouponCar> couponCarMap,boolean getMerchant,Map<Long, List<WxMerchantVo>> couponMerchantVoMap) { | |||||
| if (null == co) { | if (null == co) { | ||||
| return null; | return null; | ||||
| } | } | ||||
| @@ -791,6 +793,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| if (null != couponCar) { | if (null != couponCar) { | ||||
| cvo.setVendorParams(couponCar.getVendorParams()); | cvo.setVendorParams(couponCar.getVendorParams()); | ||||
| } | } | ||||
| if (getMerchant && null != couponMerchantVoMap) { | |||||
| cvo.setMerchantVoList(couponMerchantVoMap.get(cvo.getCouponId())); | |||||
| } | |||||
| return cvo; | return cvo; | ||||
| } catch (IllegalAccessException | InvocationTargetException e) { | } catch (IllegalAccessException | InvocationTargetException e) { | ||||
| logger.error("getCouponOrderCarVo error.",e); | logger.error("getCouponOrderCarVo error.",e); | ||||
| @@ -923,11 +923,86 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||||
| public PageInfo<WxMerchantTradeDetailVo> userTradeDetailList(WxMerchant record, Integer pageIndex, Integer pageSize) { | public PageInfo<WxMerchantTradeDetailVo> userTradeDetailList(WxMerchant record, Integer pageIndex, Integer pageSize) { | ||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMerchantMapper.userTradeDetailList(record)); | return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMerchantMapper.userTradeDetailList(record)); | ||||
| } | } | ||||
| @Override | |||||
| public Map<Long,List<WxMerchantVo>> findCouponMerchantVoList(List<Long> couponIds,String tenantId) { | |||||
| List<Long> merchantIds = wxCouponMerchantMapper.findMerchantByProductIds(tenantId, couponIds); | |||||
| if(null != merchantIds && merchantIds.size() > 0 ) { | |||||
| WxMerchant merchantQ = new WxMerchant(); | |||||
| merchantQ.setTenantId(tenantId); | |||||
| merchantQ.setIds(merchantIds); | |||||
| List<WxMerchant> merchantList = wxMerchantMapper.findList(merchantQ); | |||||
| Map<Long,WxMerchant> merchantMap = new HashMap<Long,WxMerchant>(); | |||||
| if (null != merchantList) { | |||||
| for (int i = 0 ; i < merchantList.size() ; i++) { | |||||
| WxMerchant m = merchantList.get(i); | |||||
| if (null != m) { | |||||
| merchantMap.put(m.getId(), m); | |||||
| } | |||||
| } | |||||
| } | |||||
| WxCouponMerchant couponMerchantQ = new WxCouponMerchant(); | |||||
| couponMerchantQ.setTenantId(tenantId); | |||||
| couponMerchantQ.setStatus(0); | |||||
| couponMerchantQ.setProductIds(couponIds); | |||||
| List<WxCouponMerchant> couponMerchantList = wxCouponMerchantMapper.findList(couponMerchantQ); | |||||
| if (null == couponMerchantList) { | |||||
| return null; | |||||
| } | |||||
| Map<Long,List<WxMerchantVo>> retMap = new HashMap<Long,List<WxMerchantVo>>(); | |||||
| for (int i = 0 ; i < couponMerchantList.size() ; i ++) { | |||||
| WxCouponMerchant cm = couponMerchantList.get(i); | |||||
| Long couponId = cm.getProductId(); | |||||
| Long merchantId = cm.getMerchantId(); | |||||
| if (null != couponId && null != merchantId) { | |||||
| List<WxMerchantVo> volist = retMap.get(couponId); | |||||
| if (null == volist) { | |||||
| volist = new ArrayList<WxMerchantVo>(); | |||||
| } | |||||
| retMap.put(couponId, volist); | |||||
| WxMerchantVo vo = merchantToVo(cm,merchantMap.get(merchantId)); | |||||
| if (null != vo) { | |||||
| volist.add(vo); | |||||
| } | |||||
| } | |||||
| } | |||||
| return retMap; | |||||
| } | |||||
| return null; | |||||
| } | |||||
| private WxMerchantVo merchantToVo(WxCouponMerchant cm,WxMerchant m) { | |||||
| if (null == cm) { | |||||
| return null; | |||||
| } | |||||
| if (null == m) { | |||||
| return null; | |||||
| } | |||||
| WxMerchantVo vo = new WxMerchantVo(); | |||||
| vo.setId(m.getId()); | |||||
| vo.setTenantId(m.getTenantId()); | |||||
| vo.setParentTenantId(m.getParentTenantId()); | |||||
| vo.setMerchantImgUrl(m.getImgUrl()); | |||||
| vo.setMerchantName(m.getName()); | |||||
| vo.setMerchantLinkPhone(m.getLinkPhone()); | |||||
| vo.setMerchantStatus(m.getStatus()); | |||||
| vo.setBusinessId(m.getBusinessId()); | |||||
| vo.setSubBusinessId(m.getSubBusinessId()); | |||||
| vo.setParameter(cm.getParameter()); | |||||
| vo.setLinkLinePhone(m.getLinkLinePhone()); | |||||
| return vo; | |||||
| } | |||||
| @Override | @Override | ||||
| public List<WxMerchantVo> findMerchantVoList(Long productId,String tenantId) { | |||||
| return wxCouponMerchantMapper.findMerchantVoList(productId,tenantId); | |||||
| public List<WxMerchantVo> findMerchantVoList(Long couponId,String tenantId) { | |||||
| List<Long> couponIds = new ArrayList<Long>(); | |||||
| couponIds.add(couponId); | |||||
| Map<Long,List<WxMerchantVo>> couponMerchantVoList = findCouponMerchantVoList(couponIds,tenantId); | |||||
| if (null != couponMerchantVoList) { | |||||
| return couponMerchantVoList.get(couponId); | |||||
| } | |||||
| return null; | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -363,7 +363,9 @@ public class EtcpHelper { | |||||
| } | } | ||||
| // 优先从从商户表里取 | // 优先从从商户表里取 | ||||
| businessId = getETCPBusinessID(merchantVo.getId()); | |||||
| if (null != merchantVo) { | |||||
| businessId = getETCPBusinessID(merchantVo.getId()); | |||||
| } | |||||
| if (StringUtils.isBlank(businessId)) { | if (StringUtils.isBlank(businessId)) { | ||||
| // 1期只有一个虚拟商户,可以写在商场配置里 | // 1期只有一个虚拟商户,可以写在商场配置里 | ||||
| businessId = objParams.getString("businessId"); | businessId = objParams.getString("businessId"); | ||||
| @@ -60,7 +60,20 @@ | |||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| #{idItem} | #{idItem} | ||||
| </foreach> | </foreach> | ||||
| </if> | |||||
| </if> | |||||
| <if test=" null != merchantIds "> | |||||
| and merchant_id in | |||||
| <foreach collection="merchantIds" index="index" item="merchantIdItem" open="(" separator="," close=")"> | |||||
| #{merchantIdItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != productIds "> | |||||
| and product_id in | |||||
| <foreach collection="productIds" index="index" item="productIdItem" open="(" separator="," close=")"> | |||||
| #{productIdItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | <if test=" null != sortColumns"> order by ${sortColumns} </if> | ||||
| </sql> | </sql> | ||||