| @@ -329,7 +329,7 @@ public class WxCarController extends BaseController { | |||
| userCarQ.setCUserId(memberId); | |||
| userCarQ.setId(couponOrderId); | |||
| 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) { | |||
| userCar = list.get(0); | |||
| WxCUserBasicInfo user; | |||
| @@ -1,11 +1,13 @@ | |||
| package com.iformall.domain.po; | |||
| import com.baomidou.mybatisplus.annotation.TableField; | |||
| import com.baomidou.mybatisplus.annotation.TableName; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import lombok.Data; | |||
| import lombok.EqualsAndHashCode; | |||
| import java.util.Date; | |||
| import java.util.List; | |||
| @TableName(value = "wx_coupon_merchant") | |||
| @Data | |||
| @@ -16,8 +18,12 @@ public class WxCouponMerchant extends TenantEntity { | |||
| @io.swagger.annotations.ApiModelProperty(value="",name="productId") | |||
| private Long productId; | |||
| @TableField(exist = false) | |||
| private List<Long> productIds; | |||
| @io.swagger.annotations.ApiModelProperty(value="",name="merchantId") | |||
| private Long merchantId; | |||
| @TableField(exist = false) | |||
| private List<Long> merchantIds; | |||
| @io.swagger.annotations.ApiModelProperty(value="",name="parameter") | |||
| private String parameter; | |||
| @@ -3,6 +3,7 @@ package com.iformall.mapper; | |||
| import com.iformall.common.CommonMapper; | |||
| import com.iformall.domain.po.WxCouponMerchant; | |||
| import com.iformall.domain.po.WxMerchant; | |||
| import com.iformall.domain.vo.WxMerchantProductVo; | |||
| import com.iformall.domain.vo.WxMerchantVo; | |||
| @@ -146,7 +146,7 @@ public interface WxCouponOrderService { | |||
| ResultData carListCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize); | |||
| List<WxCouponOrderCarCVo> carListCUserVo(WxCouponOrder record); | |||
| List<WxCouponOrderCarCVo> carListCUserVo(WxCouponOrder record,boolean getMerchant); | |||
| /** | |||
| * A端查询分页列表 | |||
| @@ -155,7 +155,8 @@ public interface WxMerchantService { | |||
| 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); | |||
| @@ -110,6 +110,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||
| @Autowired | |||
| WxCouponMapper wxCouponMapper; | |||
| @Lazy | |||
| @Autowired | |||
| WxMerchantService wxMerchantService; | |||
| @@ -676,15 +677,15 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||
| @Override | |||
| 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 | |||
| 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(); | |||
| couponQ.updateTenantInfo(wxCouponOrder); | |||
| List<Integer> types = new ArrayList<Integer>(); | |||
| @@ -700,14 +701,14 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||
| PageInfo<WxCouponOrderCarCVo> retPageInfo = new PageInfo<WxCouponOrderCarCVo>(); | |||
| retPageInfo.setPageNum(pageInfo.getPageNum()); | |||
| retPageInfo.setPageSize(pageInfo.getPageSize()); | |||
| retPageInfo.setList(couponOrderListToCarVoList(wxCouponOrder,pageInfo.getList())); | |||
| retPageInfo.setList(couponOrderListToCarVoList(wxCouponOrder,pageInfo.getList(),getMerchant)); | |||
| retPageInfo.setPages(pageInfo.getPages()); | |||
| retPageInfo.setTotal(pageInfo.getTotal()); | |||
| 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) { | |||
| //查询coupon | |||
| 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>(); | |||
| for (int i = 0 ; i < couponOrderList.size(); i++){ | |||
| WxCouponOrder co = couponOrderList.get(i); | |||
| WxCouponOrderCarCVo cvo = getCouponOrderCarVo(co,couponMap,couponCarMap); | |||
| WxCouponOrderCarCVo cvo = getCouponOrderCarVo(co,couponMap,couponCarMap,getMerchant,couponMerchantVoMap); | |||
| if (null != cvo) { | |||
| volist.add(cvo); | |||
| } | |||
| } | |||
| return volist; | |||
| } | |||
| 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) { | |||
| return null; | |||
| } | |||
| @@ -790,6 +792,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||
| if (null != couponCar) { | |||
| cvo.setVendorParams(couponCar.getVendorParams()); | |||
| } | |||
| if (getMerchant && null != couponMerchantVoMap) { | |||
| cvo.setMerchantVoList(couponMerchantVoMap.get(cvo.getCouponId())); | |||
| } | |||
| return cvo; | |||
| } catch (IllegalAccessException | InvocationTargetException 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) { | |||
| 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 | |||
| 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 | |||
| @@ -363,7 +363,9 @@ public class EtcpHelper { | |||
| } | |||
| // 优先从从商户表里取 | |||
| businessId = getETCPBusinessID(merchantVo.getId()); | |||
| if (null != merchantVo) { | |||
| businessId = getETCPBusinessID(merchantVo.getId()); | |||
| } | |||
| if (StringUtils.isBlank(businessId)) { | |||
| // 1期只有一个虚拟商户,可以写在商场配置里 | |||
| businessId = objParams.getString("businessId"); | |||
| @@ -60,7 +60,20 @@ | |||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||
| #{idItem} | |||
| </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> | |||
| </sql> | |||