package com.iformall.service; import com.alibaba.fastjson.JSONArray; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.*; import com.iformall.enums.EnumCouponVerifyType; import com.iformall.enums.EnumPayVersion; import com.iformall.enums.EnumPayWay; import com.iformall.service.order.entity.WxComposeOrder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; public interface WxCouponOrderService { /** * 根据实体查询分页列表 * * @param record * @param pageIndex * @param pageSize * @return */ PageInfo listAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize); /** * 根据Id获得实体 * * @param id * @return */ WxCouponOrder getById(Long id,String tenantId); /** * 保存或更新实体 * * @param record */ void saveOrUpdate(WxCouponOrder record); /** * 根据Id删除实体 * * @param id */ //void deleteById(Long id); /** * 根据主键couponOrderId(券码)核销 * * @param couponOrder * @param bUser 核销人(登录用户) */ WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser, EnumCouponVerifyType couponVerifyType); /** * 核销后发送消息 */ void sendInsideCouponVerifyMsg(Long couponOrderId, TenantEntity couponOrderTenantEntity, Long merchantId, TenantEntity mallTenantEntity); /** * 核销后处理 * * @param couponOrder * @param bmerchant 核销商户 */ void actionAfterVerify(WxCouponOrder couponOrder, WxMerchant merchant); /** * 核销发券 * @param couponOrder */ boolean sendCouponAfterVerify(WxCouponOrder couponOrder); /** * B端刷卡支付发券 * @param tenantEntity * @param orderId * @param cUserId */ boolean sendCouponAfterMicroPay(TenantEntity tenantEntity, Long orderId, Long cUserId); /** * 核销分账 * @param couponOrder */ void shareAfterVerify(WxCouponOrder couponOrder, WxMerchant wxMerchant,boolean mulityShare); WxMerchantSubsidy recordAfterVerified(WxOrder order, WxMerchant wxMerchant); /** * 核销后补贴 * @param couponOrder */ void subsidyAfterVerify(WxCouponOrder couponOrder, WxMerchant merchant); /** * 核销模板消息 * @param couponOrder * @param merchant */ void sendVerifyMsg(WxCouponOrder couponOrder, WxMerchant merchant, boolean hadSentCoupon); /** * 根据日期 b用户查券list * * @param bUserId B端用户) */ ResultData listOnDateAsPage(Long bUserId, String date, Integer pageIndex, Integer pageSize, boolean isVerified); /** * C用户查券list *@deprecated * @param record C端用户 */ //PageInfo listCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize); /** * C用户查券list * * @param record C端用户 */ PageInfo listCUserVoAsPageOptimize(WxCouponOrder record, Integer pageIndex, Integer pageSize); /** * C用户查券详情 * */ WxCouponOrderCVo detailCUserVo(String couponOrderId,TenantEntity tenantinfo); WxCouponOrderCVo simpleDetailCUserVo(String couponOrderId,TenantEntity tenantinfo); /** * C用户查券carlist * * @param record C端用户 */ ResultData carListCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize); List carListCUserVo(WxCouponOrder record,boolean getMerchant); /** * A端查询分页列表 * * @param wxCouponOrder * @param pageIndex * @param pageSize * @return */ ResultData listAdminAsPage(WxCouponOrderBVo wxCouponOrder, Integer pageIndex, Integer pageSize); ResultData detailAdminVo(Long couponOrderId,TenantEntity tenantinfo); /** * 日期分组 消费总数 * @param tenantEntity * @param startTime * @param endTime * @return */ List queryPriceTotalGroup(TenantEntity tenantEntity, Date startTime, Date endTime); /** * 查询消费额 * @return */ int queryPriceTotal(WxCouponOrder wxCouponOrder); ////// ------- 卡 /** * C用户查卡list * * @param record C端用户 */ ResultData listCardVoAsPage(WxCardCVo record, Integer pageIndex, Integer pageSize); /** * C用户查卡详情 * * @param ownerId C端用户 */ ResultData cardDetailCUserVo(Long ownerId, TenantEntity tenantinfo,String couponOrderId); ResultData cardAccept(WxCouponOrder wxCouponOrder); ResultData queryCardStatus(WxCouponOrder wxCouponOrder); void exportData(boolean cUserEntry,WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response); /** * B端-收银台-支持优惠券 */ JSONArray queryMicroPayCouponOrder(WxMerchantBUser user, WxCUserBasicInfo cUser, Integer price); WxPayOrder microPayPreVerify(WxComposeOrder composeOrder, WxCouponOrder couponOrder, WxMerchantBUser bUser, Integer price, EnumPayWay payWay,EnumPayVersion payVersion,String ipstr,String authCode); Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId,EnumPayWay payWay,EnumPayVersion payVersion); /** * 尚安停车 */ Integer shangAnVerify(Long couponOrderId,TenantEntity tenantinfo); int findCount(WxCouponOrder wxCouponOrder); void statisticsWriteOff(WxCouponOrder wxCouponOrder, Map resultMap); PageInfo goodsListAsPage(WxCouponOrderBVo couponOrderBvo, Integer pageNum, Integer pageSize); List couponDataMap(TenantEntity tenantEntity,Date startTime,Date endTime); List findAvailCouponOrder(TenantEntity tenantEntity,Long cUserId,Long merchantId,Long posOrderId); PageInfo userTradeDetailList(WxMerchant wxMerchant,Date startTime,Date endTime,Integer pageIndex,Integer pageSize); }