| @@ -80,13 +80,14 @@ public class WxCouponOrderController extends BaseController { | |||||
| } | } | ||||
| if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderCVo(); | if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderCVo(); | ||||
| wxCouponOrder.setCUserId(memberId); | wxCouponOrder.setCUserId(memberId); | ||||
| if (wxCouponOrder.getCouponOrderStatus() == null) | |||||
| wxCouponOrder.updateTenantInfo(getTenantInfo()); | |||||
| if (wxCouponOrder.getCouponOrderStatus() == null) { | |||||
| wxCouponOrder.setSortColumns(BaseEntity.SortField.CreateDate_DESC, BaseEntity.SortField.Id_DESC); | wxCouponOrder.setSortColumns(BaseEntity.SortField.CreateDate_DESC, BaseEntity.SortField.Id_DESC); | ||||
| else if (wxCouponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()) | |||||
| }else if (wxCouponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()) { | |||||
| wxCouponOrder.setSortColumns(BaseEntity.SortField.CreateDate_DESC, BaseEntity.SortField.Id_DESC); | wxCouponOrder.setSortColumns(BaseEntity.SortField.CreateDate_DESC, BaseEntity.SortField.Id_DESC); | ||||
| else | |||||
| }else { | |||||
| wxCouponOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC, BaseEntity.SortField.Id_DESC); | wxCouponOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC, BaseEntity.SortField.Id_DESC); | ||||
| } | |||||
| PageInfo<WxCouponOrderCVo> page = wxCouponOrderService.listCUserVoAsPageOptimize(wxCouponOrder, pageNum, pageSize); | PageInfo<WxCouponOrderCVo> page = wxCouponOrderService.listCUserVoAsPageOptimize(wxCouponOrder, pageNum, pageSize); | ||||
| Date now = new Date(); | Date now = new Date(); | ||||
| @@ -431,92 +432,4 @@ public class WxCouponOrderController extends BaseController { | |||||
| memCouponFromDspService.couponOrderFromDsp(tenantEntity, member.getPhone()); | memCouponFromDspService.couponOrderFromDsp(tenantEntity, member.getPhone()); | ||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| @ApiOperation(value = "核销接口", notes = "{\"couponOrderId\":\"string\"}") | |||||
| @PostMapping("verify") | |||||
| public ResultData verify(@RequestBody Map<String, String> paramMap) { | |||||
| logger.info("couponOrderController.verify:" + paramMap.toString()); | |||||
| String couponOrderIdStr = paramMap.get("couponOrderId"); | |||||
| if (StringUtils.isBlank(couponOrderIdStr)) { | |||||
| logger.error("couponOrderId不能为空: " + paramMap.toString()); | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||||
| } | |||||
| Long couponOrderId = 0L; | |||||
| try { | |||||
| couponOrderId = Long.valueOf(couponOrderIdStr); | |||||
| } catch (NumberFormatException e) { | |||||
| couponOrderId = 0L; | |||||
| logger.error("couponOrderId参数不正确: " + paramMap.toString()); | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||||
| } | |||||
| WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr,getTenantInfo()); | |||||
| if (wxCouponOrderCVo == null) | |||||
| return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); | |||||
| WxCUserBasicInfo member; | |||||
| try { | |||||
| member = getCacheMember(); | |||||
| } catch (Exception e) { | |||||
| return new ResultData(Result.ERROR,e.getMessage()); | |||||
| } | |||||
| Date now = new Date(); | |||||
| if (wxCouponOrderCVo.getValidType().equals(EnumCouponValidType.BETWEEN_TWO_TIME.getCode())){ | |||||
| // && !wxCouponOrderCVo.getType().equals(EnumCouponType.COUPON_PREORDER.getCode())) { | |||||
| if(wxCouponOrderCVo.getType().equals(EnumCouponType.COUPON_PREORDER.getCode())){ | |||||
| if (wxCouponOrderCVo.getPickStartDate().after(now)) { | |||||
| logger.error("此券有效期未开始:" + couponOrderIdStr); | |||||
| return new ResultData(ErrorCode.COUPON_ORDER_IS_EARLIER_THAN_VALIDDATE); | |||||
| } | |||||
| if (wxCouponOrderCVo.getPickEndDate().before(now)) { | |||||
| logger.error("此券有效期已结束:" + couponOrderIdStr); | |||||
| return new ResultData(ErrorCode.COUPON_ORDER_IS_LATER_THAN_VALIDDATE); | |||||
| } | |||||
| }else{ | |||||
| if (wxCouponOrderCVo.getValidStartDate().after(now)) { | |||||
| logger.error("此券有效期未开始:" + couponOrderIdStr); | |||||
| return new ResultData(ErrorCode.COUPON_ORDER_IS_EARLIER_THAN_VALIDDATE); | |||||
| } | |||||
| if (wxCouponOrderCVo.getValidEndDate().before(now)) { | |||||
| logger.error("此券有效期已结束:" + couponOrderIdStr); | |||||
| return new ResultData(ErrorCode.COUPON_ORDER_IS_LATER_THAN_VALIDDATE); | |||||
| } | |||||
| } | |||||
| } else { | |||||
| if (wxCouponOrderCVo.getExpiredTime().before(now)) { | |||||
| logger.error("此券已过期:" + couponOrderIdStr); | |||||
| return new ResultData(ErrorCode.COUPON_IS_EXPIRED); | |||||
| } | |||||
| } | |||||
| WxCouponOrder wxCouponOrder = wxCouponOrderService.getById(couponOrderId,getTenantInfo().getTenantId()); | |||||
| if (wxCouponOrder == null) { | |||||
| logger.error("券ID不存在:" + couponOrderId); | |||||
| return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); | |||||
| } | |||||
| if(!member.getId().equals(wxCouponOrder.getCUserId())){ | |||||
| logger.error("此券不属于此人:" + member.getId()); | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); | |||||
| } | |||||
| WxCouponOrder couponOrder = null; | |||||
| try { | |||||
| couponOrder = wxCouponOrderService.verify(wxCouponOrder,null,EnumCouponVerifyType.VERIFY_C); | |||||
| } catch (MallinkException e) { | |||||
| logger.error("核销异常: " + e.getMessage()); | |||||
| return new ResultData(e.getErrorCode(), e.getMessage()); | |||||
| } catch (Exception e) { | |||||
| logger.error("核销异常: " + e.getMessage()); | |||||
| return new ResultData(ErrorCode.VERIFY_ERROR, e.getMessage()); | |||||
| } | |||||
| if (couponOrder != null && couponOrder.getMerchantId() != null) { | |||||
| wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId()); | |||||
| } | |||||
| return new ResultData(couponOrder); | |||||
| } | |||||
| } | } | ||||
| @@ -342,7 +342,7 @@ public class PosServiceImpl implements PosService { | |||||
| } | } | ||||
| coQ.put("cUserId", user.getId()); | coQ.put("cUserId", user.getId()); | ||||
| coQ.put("merchantId", merchantId); | coQ.put("merchantId", merchantId); | ||||
| List<WxCouponOrderCVo> avaCoList = couponOrderMapper.findAvailCouponOrder(coQ); | |||||
| List<WxCouponOrderCVo> avaCoList = couponOrderService.findAvailCouponOrder(tenantEntity,user.getId(),merchantId,null); | |||||
| JSONArray selCoArr = JSONObject.parseArray(coListStr); | JSONArray selCoArr = JSONObject.parseArray(coListStr); | ||||
| if (config.getCoupon().equals(EnumPosCouponEnableType.SingleEnable.getCode())) { | if (config.getCoupon().equals(EnumPosCouponEnableType.SingleEnable.getCode())) { | ||||
| @@ -947,7 +947,7 @@ public class PosServiceImpl implements PosService { | |||||
| } | } | ||||
| coQ.put("cUserId", user.getId()); | coQ.put("cUserId", user.getId()); | ||||
| coQ.put("merchantId", merchantId); | coQ.put("merchantId", merchantId); | ||||
| List<WxCouponOrderCVo> avaCoList = couponOrderMapper.findAvailCouponOrder(coQ); | |||||
| List<WxCouponOrderCVo> avaCoList = couponOrderService.findAvailCouponOrder(tenantEntity,user.getId(),merchantId,null); | |||||
| JSONArray selCoArr = JSONObject.parseArray(coListStr); | JSONArray selCoArr = JSONObject.parseArray(coListStr); | ||||
| if (config.getCoupon().equals(EnumPosCouponEnableType.SingleEnable.getCode())) { | if (config.getCoupon().equals(EnumPosCouponEnableType.SingleEnable.getCode())) { | ||||
| if (selCoArr.size() > 1) { | if (selCoArr.size() > 1) { | ||||
| @@ -142,6 +142,8 @@ public class WxCoupon extends TenantEntity { | |||||
| private String remark; | private String remark; | ||||
| @io.swagger.annotations.ApiModelProperty(value="状态(-1:全部,0:草稿/待生效,1:已生效,2:已失效,3:已作废)",name="status") | @io.swagger.annotations.ApiModelProperty(value="状态(-1:全部,0:草稿/待生效,1:已生效,2:已失效,3:已作废)",name="status") | ||||
| private Integer status; | private Integer status; | ||||
| @TableField(exist = false) | |||||
| private List<Integer> statusList; | |||||
| @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | ||||
| private Date createDate; | private Date createDate; | ||||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") | @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") | ||||
| @@ -38,6 +38,8 @@ public class WxCouponOrderCVo extends WxCouponOrder { | |||||
| /** 基础购买到的券信息 */ | /** 基础购买到的券信息 */ | ||||
| @io.swagger.annotations.ApiModelProperty(value = "单张券ID", name = "couponId") | @io.swagger.annotations.ApiModelProperty(value = "单张券ID", name = "couponId") | ||||
| private Long couponId; | private Long couponId; | ||||
| @TableField(exist = false) | |||||
| private List<Long> couponIds; | |||||
| @io.swagger.annotations.ApiModelProperty(value = "用户订单ID", name = "orderId") | @io.swagger.annotations.ApiModelProperty(value = "用户订单ID", name = "orderId") | ||||
| private Long orderId; | private Long orderId; | ||||
| @io.swagger.annotations.ApiModelProperty(value = "该订单对应券的实际过期时间 ", name = "expiredTime") | @io.swagger.annotations.ApiModelProperty(value = "该订单对应券的实际过期时间 ", name = "expiredTime") | ||||
| @@ -18,6 +18,9 @@ public interface WxCouponMapper extends CommonMapper<WxCoupon, Long> { | |||||
| List<WxCoupon> findTenantSimpleList(WxCoupon wxCoupon); | List<WxCoupon> findTenantSimpleList(WxCoupon wxCoupon); | ||||
| WxCoupon findSimpleDetail(WxCoupon wxCoupon); | |||||
| List<WxCoupon> findSimpleDetailList(WxCoupon wxCoupon); | |||||
| List<Long> findIdList(WxCoupon wxCoupon); | List<Long> findIdList(WxCoupon wxCoupon); | ||||
| List<WxCoupon> findCouponList(WxCoupon wxCoupon); | List<WxCoupon> findCouponList(WxCoupon wxCoupon); | ||||
| @@ -46,12 +46,9 @@ public interface WxCouponOrderMapper extends CommonMapper<WxCouponOrder, Long> { | |||||
| List<WxCouponOrder> findListOfOrderedByDateForBUser(Map dateMap); | List<WxCouponOrder> findListOfOrderedByDateForBUser(Map dateMap); | ||||
| List<WxCouponOrder> findListOfVerifiedByDateForBUser(Map dateMap); | List<WxCouponOrder> findListOfVerifiedByDateForBUser(Map dateMap); | ||||
| //@Deprecated | |||||
| //List<WxCouponOrderCVo> findListOfCUser(WxCouponOrder wxCouponOrder); | |||||
| List<WxCouponOrderCVo> findListOfCUserOptimize(WxCouponOrder wxCouponOrder); | |||||
| List<WxCouponOrder> findListOfCUserOptimize(WxCouponOrder wxCouponOrder); | |||||
| WxCouponOrderCVo findDetailOfCUser(@Param("id")Long id,@Param("tenantId")String tenantId); | |||||
| WxCouponOrderCVo findSimpleDetailOfCUser(@Param("id")Long id,@Param("tenantId")String tenantId); | |||||
| WxCouponOrder findDetailOfCUser(@Param("id")Long id,@Param("tenantId")String tenantId); | |||||
| List<WxCouponOrder> findListOfAdmin(WxCouponOrderBVo wxCouponOrder); | List<WxCouponOrder> findListOfAdmin(WxCouponOrderBVo wxCouponOrder); | ||||
| WxCouponOrder findDetailOfAdmin(@Param("id")Long id,@Param("tenantId")String tenantId,@Param("finalTenantId")String finalTenantId); | WxCouponOrder findDetailOfAdmin(@Param("id")Long id,@Param("tenantId")String tenantId,@Param("finalTenantId")String finalTenantId); | ||||
| @@ -91,7 +88,7 @@ public interface WxCouponOrderMapper extends CommonMapper<WxCouponOrder, Long> { | |||||
| /// POS接口 | /// POS接口 | ||||
| List<WxCouponOrderCVo> findAvailCouponOrder(Map<String,Object> params); | |||||
| List<WxCouponOrder> findCouponOrderForPos(Map<String,Object> params); | |||||
| //卡延期,将过期的状态变为使用中 | //卡延期,将过期的状态变为使用中 | ||||
| void cardDefer(@Param("couponId")Long couponId,@Param("tenantId")String tenantId,@Param("expireTime")Date expireTime); | void cardDefer(@Param("couponId")Long couponId,@Param("tenantId")String tenantId,@Param("expireTime")Date expireTime); | ||||
| @@ -148,14 +148,6 @@ public interface WxCouponOrderService { | |||||
| List<WxCouponOrderCarCVo> carListCUserVo(WxCouponOrder record); | List<WxCouponOrderCarCVo> carListCUserVo(WxCouponOrder record); | ||||
| /** | |||||
| * B用户查券详情 | |||||
| * | |||||
| * @param bUserId B端用户 | |||||
| */ | |||||
| ResultData detailBUserVo(Long bUserId, String couponOrderId); | |||||
| /** | /** | ||||
| * A端查询分页列表 | * A端查询分页列表 | ||||
| * | * | ||||
| @@ -227,4 +219,7 @@ public interface WxCouponOrderService { | |||||
| PageInfo<WxCouponOrderBVo> goodsListAsPage(WxCouponOrderBVo couponOrderBvo, Integer pageNum, Integer pageSize); | PageInfo<WxCouponOrderBVo> goodsListAsPage(WxCouponOrderBVo couponOrderBvo, Integer pageNum, Integer pageSize); | ||||
| List<MarkingCouponDataReportVo> couponDataMap(TenantEntity tenantEntity,Date startTime,Date endTime); | List<MarkingCouponDataReportVo> couponDataMap(TenantEntity tenantEntity,Date startTime,Date endTime); | ||||
| /// POS接口 | |||||
| List<WxCouponOrderCVo> findAvailCouponOrder(TenantEntity tenantEntity,Long cUserId,Long merchantId,Long posOrderId); | |||||
| } | } | ||||
| @@ -523,14 +523,134 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| @Override | @Override | ||||
| public PageInfo<WxCouponOrderCVo> listCUserVoAsPageOptimize(WxCouponOrder record, Integer pageIndex, Integer pageSize) { | public PageInfo<WxCouponOrderCVo> listCUserVoAsPageOptimize(WxCouponOrder record, Integer pageIndex, Integer pageSize) { | ||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findListOfCUserOptimize(record)); | |||||
| PageInfo<WxCouponOrder> pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findListOfCUserOptimize(record)); | |||||
| PageInfo<WxCouponOrderCVo> cvoPageInfo = new PageInfo<WxCouponOrderCVo>(); | |||||
| cvoPageInfo.setList(couponOrderListToCVoList(record,pageInfo.getList())); | |||||
| cvoPageInfo.setPageNum(pageInfo.getPageNum()); | |||||
| cvoPageInfo.setPageSize(pageInfo.getPageSize()); | |||||
| cvoPageInfo.setPages(pageInfo.getPages()); | |||||
| return cvoPageInfo; | |||||
| } | } | ||||
| private List<WxCouponOrderCVo> couponOrderListToCVoList(TenantEntity tenantEntity,List<WxCouponOrder> couponOrderList) { | |||||
| if (null != couponOrderList) { | |||||
| //查询coupon | |||||
| List<Long> couponIds = new ArrayList<Long>(); | |||||
| for (int i = 0 ; i < couponOrderList.size(); i++){ | |||||
| WxCouponOrder co = couponOrderList.get(i); | |||||
| Long couponId = co.getCouponId(); | |||||
| if (null != couponId && (!couponIds.contains(couponId))) { | |||||
| couponIds.add(couponId); | |||||
| } | |||||
| } | |||||
| WxCoupon couponQ = new WxCoupon(); | |||||
| couponQ.updateTenantInfo(tenantEntity); | |||||
| if (couponIds.size() > 0 ) { | |||||
| couponQ.setIds(couponIds); | |||||
| } | |||||
| List<WxCoupon> couponList = wxCouponMapper.findTenantSimpleList(couponQ); | |||||
| Map<Long,WxCoupon> couponMap = new HashMap<Long,WxCoupon>(); | |||||
| if (null != couponList) { | |||||
| for (int i = 0 ; i < couponList.size(); i++ ) { | |||||
| WxCoupon c = couponList.get(i); | |||||
| if (null != c) { | |||||
| couponMap.put(c.getId(), c); | |||||
| } | |||||
| } | |||||
| } | |||||
| List<WxCouponOrderCVo> volist = new ArrayList<WxCouponOrderCVo>(); | |||||
| for (int i = 0 ; i < couponOrderList.size(); i++){ | |||||
| WxCouponOrder co = couponOrderList.get(i); | |||||
| WxCouponOrderCVo cvo = getCouponOrderCVo(co,couponMap); | |||||
| if (null != cvo) { | |||||
| volist.add(cvo); | |||||
| } | |||||
| } | |||||
| return volist; | |||||
| } | |||||
| return null; | |||||
| } | |||||
| private WxCouponOrderCVo getCouponOrderCVo(WxCouponOrder co,Map<Long,WxCoupon> couponMap) { | |||||
| if (null == co) { | |||||
| return null; | |||||
| } | |||||
| try { | |||||
| WxCouponOrderCVo cvo = new WxCouponOrderCVo(); | |||||
| BeanUtils.copyProperties(cvo, co); | |||||
| WxCoupon coupon = couponMap.get(cvo.getCouponId()); | |||||
| if (null != coupon) { | |||||
| cvo.setType(coupon.getType()); | |||||
| cvo.setCoverImg(coupon.getCoverImg()); | |||||
| cvo.setTitle(coupon.getTitle()); | |||||
| cvo.setSubTitle(coupon.getSubTitle()); | |||||
| cvo.setSalePrice(coupon.getSalePrice()); | |||||
| cvo.setUsePrice(coupon.getUsePrice()); | |||||
| cvo.setPrice(coupon.getPrice()); | |||||
| cvo.setUnit(coupon.getUnit()); | |||||
| cvo.setValidType(coupon.getValidType()); | |||||
| cvo.setValidStartDate(coupon.getValidStartDate()); | |||||
| cvo.setValidEndDate(coupon.getValidEndDate()); | |||||
| cvo.setAutoRefund(coupon.getAutoRefund()); | |||||
| } | |||||
| return cvo; | |||||
| } catch (IllegalAccessException | InvocationTargetException e) { | |||||
| logger.error("getCouponOrderCVo error.",e); | |||||
| } | |||||
| return null; | |||||
| } | |||||
| private WxCouponOrderCVo getCouponOrderCDetailVo(WxCouponOrder co) { | |||||
| if (null == co || null == co.getCouponId()) { | |||||
| return null; | |||||
| } | |||||
| WxCoupon couponQ = new WxCoupon(); | |||||
| couponQ.updateTenantInfo(co); | |||||
| couponQ.setId(co.getCouponId()); | |||||
| WxCoupon coupon = wxCouponMapper.findSimpleDetail(couponQ); | |||||
| return getCouponOrderCDetailVo(co,coupon); | |||||
| } | |||||
| private WxCouponOrderCVo getCouponOrderCDetailVo(WxCouponOrder co,WxCoupon coupon) { | |||||
| try { | |||||
| WxCouponOrderCVo cvo = new WxCouponOrderCVo(); | |||||
| BeanUtils.copyProperties(cvo, co); | |||||
| if (null != coupon) { | |||||
| cvo.setType(coupon.getType()); | |||||
| cvo.setCoverImg(coupon.getCoverImg()); | |||||
| cvo.setTitle(coupon.getTitle()); | |||||
| cvo.setSubTitle(coupon.getSubTitle()); | |||||
| cvo.setSalePrice(coupon.getSalePrice()); | |||||
| cvo.setUsePrice(coupon.getUsePrice()); | |||||
| cvo.setPrice(coupon.getPrice()); | |||||
| cvo.setTailPrice(coupon.getTailPrice()); | |||||
| cvo.setOrigPrice(coupon.getOrigPrice()); | |||||
| cvo.setUnit(coupon.getUnit()); | |||||
| cvo.setDetail(coupon.getDetail()); | |||||
| cvo.setRemark(coupon.getRemark()); | |||||
| cvo.setValidType(coupon.getValidType()); | |||||
| cvo.setValidStartDate(coupon.getValidStartDate()); | |||||
| cvo.setValidEndDate(coupon.getValidEndDate()); | |||||
| cvo.setPickStartDate(coupon.getPickStartDate()); | |||||
| cvo.setPickEndDate(coupon.getPickEndDate()); | |||||
| cvo.setAutoRefund(coupon.getAutoRefund()); | |||||
| } | |||||
| return cvo; | |||||
| } catch (IllegalAccessException | InvocationTargetException e) { | |||||
| logger.error("getCouponOrderCVo error.",e); | |||||
| } | |||||
| return null; | |||||
| } | |||||
| @Override | @Override | ||||
| public WxCouponOrderCVo detailCUserVo(String couponOrderId,TenantEntity tenantinfo) { | public WxCouponOrderCVo detailCUserVo(String couponOrderId,TenantEntity tenantinfo) { | ||||
| WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderMapper.findDetailOfCUser(Long.valueOf(couponOrderId),tenantinfo.getTenantId()); | |||||
| WxCouponOrder couponOrder = wxCouponOrderMapper.findDetailOfCUser(Long.valueOf(couponOrderId),tenantinfo.getTenantId()); | |||||
| if (null == couponOrder) { | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | |||||
| } | |||||
| WxCouponOrderCVo wxCouponOrderCVo = getCouponOrderCDetailVo(couponOrder); | |||||
| if (wxCouponOrderCVo == null) | if (wxCouponOrderCVo == null) | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | ||||
| return wxCouponOrderCVo; | return wxCouponOrderCVo; | ||||
| @@ -538,10 +658,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| @Override | @Override | ||||
| public WxCouponOrderCVo simpleDetailCUserVo(String couponOrderId,TenantEntity tenantinfo) { | public WxCouponOrderCVo simpleDetailCUserVo(String couponOrderId,TenantEntity tenantinfo) { | ||||
| WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderMapper.findSimpleDetailOfCUser(Long.valueOf(couponOrderId),tenantinfo.getTenantId()); | |||||
| if (wxCouponOrderCVo == null) | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | |||||
| return wxCouponOrderCVo; | |||||
| return detailCUserVo(couponOrderId,tenantinfo); | |||||
| } | } | ||||
| @@ -555,30 +672,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| return wxCouponOrderMapper.findCarListOfCUser(record); | return wxCouponOrderMapper.findCarListOfCUser(record); | ||||
| } | } | ||||
| @Override | |||||
| public ResultData detailBUserVo(Long bUserId, String couponOrderId) { | |||||
| WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectById(bUserId); | |||||
| if (wxMerchantBUser == null) { | |||||
| logger.error("用户不存在:" + bUserId); | |||||
| throw new MallinkException(ErrorCode.USER_IS_EMPTY); | |||||
| } | |||||
| WxMerchant wxMerchant = wxMerchantMapper.selectById(wxMerchantBUser.getMerchantId()); | |||||
| if (wxMerchant == null) { | |||||
| logger.error("商户不存在:" + bUserId); | |||||
| throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND); | |||||
| } | |||||
| WxCouponOrderCVo wxCouponOrderCVo = null; | |||||
| try { | |||||
| wxCouponOrderCVo = wxCouponOrderMapper.findDetailOfCUser(Long.valueOf(couponOrderId),wxMerchantBUser.getTenantId()); | |||||
| } catch (Exception e) { | |||||
| return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); | |||||
| } | |||||
| if (wxCouponOrderCVo == null) | |||||
| return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); | |||||
| return new ResultData(wxCouponOrderCVo); | |||||
| } | |||||
| @Override | @Override | ||||
| public ResultData listAdminAsPage(WxCouponOrderBVo wxCouponOrderBVo, Integer pageIndex, Integer pageSize) { | public ResultData listAdminAsPage(WxCouponOrderBVo wxCouponOrderBVo, Integer pageIndex, Integer pageSize) { | ||||
| handleWxCouponOrderBVoQueryParam(wxCouponOrderBVo); | handleWxCouponOrderBVoQueryParam(wxCouponOrderBVo); | ||||
| @@ -2051,7 +2144,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| } | } | ||||
| coQ.put("cUserId", cUser.getId()); | coQ.put("cUserId", cUser.getId()); | ||||
| coQ.put("merchantId", user.getMerchantId()); | coQ.put("merchantId", user.getMerchantId()); | ||||
| List<WxCouponOrderCVo> avaCoList = wxCouponOrderMapper.findAvailCouponOrder(coQ); | |||||
| List<WxCouponOrderCVo> avaCoList = this.findAvailCouponOrder(user,cUser.getId(),user.getMerchantId(),null); | |||||
| JSONArray couponList = new JSONArray(); | JSONArray couponList = new JSONArray(); | ||||
| for(int i=0;i<avaCoList.size();i++) { | for(int i=0;i<avaCoList.size();i++) { | ||||
| WxCouponOrderCVo couponOrderCVo = avaCoList.get(i); | WxCouponOrderCVo couponOrderCVo = avaCoList.get(i); | ||||
| @@ -2531,4 +2624,116 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| return null; | return null; | ||||
| } | } | ||||
| @Override | |||||
| public List<WxCouponOrderCVo> findAvailCouponOrder(TenantEntity tenantEntity,Long cUserId,Long merchantId,Long posOrderId) { | |||||
| Map param = posCouponOrderQueryParam(tenantEntity,cUserId,merchantId); | |||||
| List<Long> realCouponIds = (List<Long>) param.get("couponIds"); | |||||
| if (realCouponIds.size() <= 0 ) { | |||||
| return null; | |||||
| } | |||||
| param.put("status", 0); | |||||
| List<WxCouponOrder> couponOrderList = wxCouponOrderMapper.findCouponOrderForPos(param); | |||||
| List<WxCouponOrder> couponOrderList1 = null; | |||||
| if (null != posOrderId) { | |||||
| param.put("status", 100); | |||||
| PosCouponOrderVerify posCouponOrderVerifyQ = new PosCouponOrderVerify(); | |||||
| posCouponOrderVerifyQ.setPosOrderId(posOrderId); | |||||
| List<PosCouponOrderVerify> posList = posCouponOrderVerifyMapper.findList(posCouponOrderVerifyQ); | |||||
| if (null != posList && posList.size() > 0 ) { | |||||
| List<Long> ids = new ArrayList<Long>(); | |||||
| for (int i = 0 ; i < posList.size() ; i ++) { | |||||
| PosCouponOrderVerify pos = posList.get(i); | |||||
| if (null != pos && null != pos.getCouponOrderId()) { | |||||
| if (!ids.contains(pos.getCouponOrderId())) { | |||||
| ids.add(pos.getCouponOrderId()); | |||||
| } | |||||
| } | |||||
| } | |||||
| if (ids.size() > 0) { | |||||
| param.put("ids",ids); | |||||
| couponOrderList1 = wxCouponOrderMapper.findCouponOrderForPos(param); | |||||
| } | |||||
| } | |||||
| } | |||||
| WxCoupon couponQ1 = new WxCoupon(); | |||||
| couponQ1.updateTenantInfo(tenantEntity); | |||||
| couponQ1.setIds(realCouponIds); | |||||
| List<WxCoupon> couponList = wxCouponMapper.findSimpleDetailList(couponQ1); | |||||
| Map<Long,WxCoupon> couponMap = new HashMap<Long,WxCoupon>(); | |||||
| List<WxCouponOrderCVo> retList = new ArrayList<WxCouponOrderCVo>(); | |||||
| if (null != couponList) { | |||||
| for (int i = 0 ; i < couponList.size() ; i ++) { | |||||
| WxCoupon c = couponList.get(i); | |||||
| if (null != c) { | |||||
| couponMap.put(c.getId(), c); | |||||
| } | |||||
| } | |||||
| } | |||||
| if (null != couponOrderList) { | |||||
| for (int i = 0 ; i < couponOrderList.size() ; i ++) { | |||||
| WxCouponOrderCVo cvo = getPosVo(couponOrderList.get(i),couponMap); | |||||
| if (null != cvo) { | |||||
| retList.add(cvo); | |||||
| } | |||||
| } | |||||
| } | |||||
| if (null != couponOrderList1) { | |||||
| for (int i = 0 ; i < couponOrderList1.size() ; i ++) { | |||||
| WxCouponOrderCVo cvo = getPosVo(couponOrderList1.get(i),couponMap); | |||||
| if (null != cvo) { | |||||
| retList.add(cvo); | |||||
| } | |||||
| } | |||||
| } | |||||
| if (retList.size() <= 0 ) { | |||||
| return null; | |||||
| } | |||||
| return retList; | |||||
| } | |||||
| private Map posCouponOrderQueryParam(TenantEntity tenantEntity,Long cUserId,Long merchantId) { | |||||
| Map param = new HashMap(); | |||||
| param.put("cUserId", cUserId); | |||||
| param.put("tenantId", tenantEntity.getTenantId()); | |||||
| param.put("parentTenantId", tenantEntity.getParentTenantId()); | |||||
| List<Long> merchantIds = new ArrayList<Long>(); | |||||
| merchantIds.add(merchantId); | |||||
| List<Long> merchantCouponIds = wxCouponMerchantMapper.findMerchantProductIds(tenantEntity.getTenantId(), merchantIds, null); | |||||
| WxCoupon couponQ = new WxCoupon(); | |||||
| couponQ.updateTenantInfo(tenantEntity); | |||||
| List<Integer> statusList = new ArrayList<Integer>(); | |||||
| statusList.add(1); | |||||
| statusList.add(2); | |||||
| statusList.add(6); | |||||
| couponQ.setStatusList(statusList); | |||||
| List<Long> couponIds = wxCouponMapper.findIdList(couponQ); | |||||
| List<Long> realCouponIds = new ArrayList<Long>(); | |||||
| if (null != merchantCouponIds) { | |||||
| realCouponIds.addAll(merchantCouponIds); | |||||
| } | |||||
| if (null != couponIds) { | |||||
| realCouponIds.retainAll(couponIds); | |||||
| } | |||||
| param.put("couponIds", realCouponIds); | |||||
| return param; | |||||
| } | |||||
| private WxCouponOrderCVo getPosVo(WxCouponOrder co,Map<Long,WxCoupon> couponMap) { | |||||
| WxCouponOrderCVo cvo = null; | |||||
| Long couponId = co.getCouponId(); | |||||
| if (null != couponId) { | |||||
| cvo = getCouponOrderCDetailVo(co,couponMap.get(couponId)); | |||||
| }else { | |||||
| cvo = getCouponOrderCDetailVo(co,null); | |||||
| } | |||||
| return cvo; | |||||
| } | |||||
| } | } | ||||
| @@ -307,6 +307,13 @@ | |||||
| #{typeItem} | #{typeItem} | ||||
| </foreach> | </foreach> | ||||
| </if> | </if> | ||||
| <if test=" null != statusList "> | |||||
| and status in | |||||
| <foreach collection="statusList" index="index" item="statusItem" open="(" separator="," close=")"> | |||||
| #{statusItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != sortColumns">order by ${sortColumns}</if> | <if test=" null != sortColumns">order by ${sortColumns}</if> | ||||
| </sql> | </sql> | ||||
| @@ -317,7 +324,7 @@ | |||||
| </select> | </select> | ||||
| <select id="findTenantSimpleList" parameterType="com.iformall.domain.po.WxCoupon" resultMap="BaseResultMap"> | <select id="findTenantSimpleList" parameterType="com.iformall.domain.po.WxCoupon" resultMap="BaseResultMap"> | ||||
| select id,title,sale_price,use_price,price,auto_refund,business,subsidy_type,source_type,type,unit | |||||
| select id,title,sale_price,use_price,price,auto_refund,business,subsidy_type,source_type,type,unit,cover_img,sub_title,valid_type,valid_start_date,valid_end_date | |||||
| from wx_coupon c where c.`tenant_id` = #{tenantId} | from wx_coupon c where c.`tenant_id` = #{tenantId} | ||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| @@ -326,6 +333,19 @@ | |||||
| </foreach> | </foreach> | ||||
| </if> | </if> | ||||
| </select> | </select> | ||||
| <select id="findSimpleDetail" parameterType="com.iformall.domain.po.WxCoupon" resultMap="BaseResultMap"> | |||||
| select c.id,c.type,c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.tail_price,c.orig_price,c.unit,c.detail,c.remark,c.valid_type,c.valid_start_date, | |||||
| c.valid_end_date,c.pick_start_date,c.pick_end_date,c.auto_refund,c.business,c.subsidy_type,c.source_type | |||||
| from wx_coupon c where c.id = #{id} and c.`tenant_id` = #{tenantId} | |||||
| </select> | |||||
| <select id="findSimpleDetailList" parameterType="com.iformall.domain.po.WxCoupon" resultMap="BaseResultMap"> | |||||
| select c.id,c.type,c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.tail_price,c.orig_price,c.unit,c.detail,c.remark,c.valid_type,c.valid_start_date, | |||||
| c.valid_end_date,c.pick_start_date,c.pick_end_date,c.auto_refund,c.business,c.subsidy_type,c.source_type | |||||
| from wx_coupon c | |||||
| <include refid="dynamicWhereConditions"/> | |||||
| </select> | |||||
| <select id="findIdList" parameterType="com.iformall.domain.po.WxCoupon" resultType="Long"> | <select id="findIdList" parameterType="com.iformall.domain.po.WxCoupon" resultType="Long"> | ||||
| select id | select id | ||||
| @@ -912,163 +912,12 @@ | |||||
| </if> | </if> | ||||
| </select> | </select> | ||||
| <sql id="allCUserCouponOrderDetailColumns"> | |||||
| co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark,co.pay_vendor, | |||||
| co.`freight_price`,co.`shipping_type`,co.`shipping_address`,co.`shipping_status`,co.`delivery_info`, | |||||
| c.type,c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.tail_price,c.orig_price,c.unit,c.detail,c.remark,c.valid_type,c.valid_start_date,c.valid_end_date,c.pick_start_date,c.pick_end_date,c.auto_refund | |||||
| </sql> | |||||
| <sql id="simpleCUserCouponOrderDetailColumns"> | |||||
| co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark,co.pay_vendor, | |||||
| co.`freight_price`,co.`shipping_type`,co.`shipping_address`,co.`shipping_status`,co.`delivery_info` | |||||
| </sql> | |||||
| <resultMap id="CVoResultMap" type="com.iformall.domain.vo.WxCouponOrderCVo"> | |||||
| <id column="id" jdbcType="BIGINT" property="id" /> | |||||
| <result column="tenant_id" jdbcType="BIGINT" property="tenantId" /> | |||||
| <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId" /> | |||||
| <result column="coupon_id" jdbcType="BIGINT" property="couponId" /> | |||||
| <result column="coupon_type" jdbcType="INTEGER" property="couponType" /> | |||||
| <result column="c_user_id" jdbcType="BIGINT" property="cUserId" /> | |||||
| <result column="owner_id" jdbcType="BIGINT" property="ownerId" /> | |||||
| <result column="b_user_id" jdbcType="BIGINT" property="bUserId" /> | |||||
| <result column="order_id" jdbcType="BIGINT" property="orderId" /> | |||||
| <result column="expired_time" jdbcType="TIMESTAMP" property="expiredTime" /> | |||||
| <result column="coupon_order_status" jdbcType="INTEGER" property="couponOrderStatus" /> | |||||
| <result column="create_date" jdbcType="TIMESTAMP" property="createDate" /> | |||||
| <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" /> | |||||
| <result column="coupon_price" jdbcType="INTEGER" property="couponPrice" /> | |||||
| <result column="verify_type" jdbcType="INTEGER" property="verifyType" /> | |||||
| <result column="verify_remark" jdbcType="VARCHAR" property="verifyRemark" /> | |||||
| <result column="pay_vendor" jdbcType="INTEGER" property="payVendor" /> | |||||
| <result column="freight_price" jdbcType="INTEGER" property="freightPrice"/> | |||||
| <result column="shipping_type" jdbcType="INTEGER" property="shippingType"/> | |||||
| <result column="shipping_address" jdbcType="VARCHAR" property="shippingAddress"/> | |||||
| <result column="shipping_status" jdbcType="INTEGER" property="shippingStatus"/> | |||||
| <result column="delivery_info" jdbcType="VARCHAR" property="deliveryInfo"/> | |||||
| <result column="type" jdbcType="INTEGER" property="type" /> | |||||
| <result column="cover_img" jdbcType="VARCHAR" property="coverImg" /> | |||||
| <result column="title" jdbcType="VARCHAR" property="title" /> | |||||
| <result column="sub_title" jdbcType="VARCHAR" property="subTitle" /> | |||||
| <result column="sale_price" jdbcType="INTEGER" property="salePrice" /> | |||||
| <result column="use_price" jdbcType="INTEGER" property="usePrice" /> | |||||
| <result column="detail" jdbcType="VARCHAR" property="detail" /> | |||||
| <result column="price" jdbcType="INTEGER" property="price" /> | |||||
| <result column="tail_price" jdbcType="INTEGER" property="tailPrice"/> | |||||
| <result column="orig_price" jdbcType="INTEGER" property="origPrice"/> | |||||
| <result column="unit" jdbcType="INTEGER" property="unit" /> | |||||
| <result column="remark" jdbcType="VARCHAR" property="remark" /> | |||||
| <result column="valid_type" jdbcType="INTEGER" property="validType" /> | |||||
| <result column="valid_start_date" jdbcType="TIMESTAMP" property="validStartDate"/> | |||||
| <result column="valid_end_date" jdbcType="TIMESTAMP" property="validEndDate"/> | |||||
| <result column="auto_refund" jdbcType="INTEGER" property="autoRefund" /> | |||||
| <result column="pick_start_date" jdbcType="TIMESTAMP" property="pickStartDate"/> | |||||
| <result column="pick_end_date" jdbcType="TIMESTAMP" property="pickEndDate"/> | |||||
| <result column="send_channel_type" jdbcType="INTEGER" property="sendChannelType" /> | |||||
| <collection column="{productId=coupon_id,tenantId=tenant_id}" property="merchantVoList" | |||||
| ofType="com.iformall.domain.vo.WxMerchantVo" | |||||
| javaType="java.util.List" | |||||
| select="com.iformall.mapper.WxCouponMerchantMapper.findMerchantVoList" > | |||||
| </collection> | |||||
| </resultMap> | |||||
| <resultMap id="CVoResultMapOptimize" type="com.iformall.domain.vo.WxCouponOrderCVo"> | |||||
| <id column="id" jdbcType="BIGINT" property="id" /> | |||||
| <result column="tenant_id" jdbcType="BIGINT" property="tenantId" /> | |||||
| <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId" /> | |||||
| <result column="coupon_id" jdbcType="BIGINT" property="couponId" /> | |||||
| <result column="coupon_type" jdbcType="INTEGER" property="couponType" /> | |||||
| <result column="c_user_id" jdbcType="BIGINT" property="cUserId" /> | |||||
| <result column="owner_id" jdbcType="BIGINT" property="ownerId" /> | |||||
| <result column="b_user_id" jdbcType="BIGINT" property="bUserId" /> | |||||
| <result column="order_id" jdbcType="BIGINT" property="orderId" /> | |||||
| <result column="expired_time" jdbcType="TIMESTAMP" property="expiredTime" /> | |||||
| <result column="coupon_order_status" jdbcType="INTEGER" property="couponOrderStatus" /> | |||||
| <result column="create_date" jdbcType="TIMESTAMP" property="createDate" /> | |||||
| <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" /> | |||||
| <result column="coupon_price" jdbcType="INTEGER" property="couponPrice" /> | |||||
| <result column="verify_type" jdbcType="INTEGER" property="verifyType" /> | |||||
| <result column="verify_remark" jdbcType="VARCHAR" property="verifyRemark" /> | |||||
| <result column="pay_vendor" jdbcType="INTEGER" property="payVendor" /> | |||||
| <result column="freight_price" jdbcType="INTEGER" property="freightPrice"/> | |||||
| <result column="shipping_type" jdbcType="INTEGER" property="shippingType"/> | |||||
| <result column="shipping_address" jdbcType="VARCHAR" property="shippingAddress"/> | |||||
| <result column="shipping_status" jdbcType="INTEGER" property="shippingStatus"/> | |||||
| <result column="delivery_info" jdbcType="VARCHAR" property="deliveryInfo"/> | |||||
| <result column="type" jdbcType="INTEGER" property="type" /> | |||||
| <result column="cover_img" jdbcType="VARCHAR" property="coverImg" /> | |||||
| <result column="title" jdbcType="VARCHAR" property="title" /> | |||||
| <result column="sub_title" jdbcType="VARCHAR" property="subTitle" /> | |||||
| <result column="sale_price" jdbcType="INTEGER" property="salePrice" /> | |||||
| <result column="use_price" jdbcType="INTEGER" property="usePrice" /> | |||||
| <result column="detail" jdbcType="VARCHAR" property="detail" /> | |||||
| <result column="price" jdbcType="INTEGER" property="price" /> | |||||
| <result column="unit" jdbcType="INTEGER" property="unit" /> | |||||
| <result column="remark" jdbcType="VARCHAR" property="remark" /> | |||||
| <result column="valid_type" jdbcType="INTEGER" property="validType" /> | |||||
| <result column="valid_start_date" jdbcType="TIMESTAMP" property="validStartDate"/> | |||||
| <result column="valid_end_date" jdbcType="TIMESTAMP" property="validEndDate"/> | |||||
| <result column="auto_refund" jdbcType="INTEGER" property="autoRefund" /> | |||||
| <result column="send_channel_type" jdbcType="INTEGER" property="sendChannelType" /> | |||||
| </resultMap> | |||||
| <!-- <select id="findListOfCUser" parameterType="com.iformall.domain.vo.WxCouponOrderCVo" resultMap="CVoResultMap"> | |||||
| select <include refid="allCUserCouponOrderListColumns" /> | |||||
| from wx_coupon c,wx_coupon_order co | |||||
| left join wx_coupon_action_log cal on cal.coupon_order_id = co.id | |||||
| where 1=1 | |||||
| and co.coupon_id = c.id | |||||
| and co.coupon_type != 5 | |||||
| and co.coupon_type != 51 | |||||
| and co.coupon_type < 100 | |||||
| <if test="cUserId != null"> | |||||
| and co.c_user_id = #{cUserId} | |||||
| </if> | |||||
| <if test="ownerId != null"> | |||||
| and co.owner_id = #{ownerId} | |||||
| </if> | |||||
| <if test="tenantId != null"> | |||||
| and co.tenant_id = #{tenantId} | |||||
| </if> | |||||
| <if test="couponOrderStatus != null and 0 == couponOrderStatus"> | |||||
| AND (co.coupon_order_status = #{couponOrderStatus} OR co.coupon_order_status = 100 ) | |||||
| </if> | |||||
| <if test="couponOrderStatus != null and 0 != couponOrderStatus"> | |||||
| AND co.coupon_order_status = #{couponOrderStatus} | |||||
| </if> | |||||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | |||||
| </select> --> | |||||
| <!-- <sql id="allCUserCouponOrderListColumns"> | |||||
| co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type, | |||||
| c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.unit,c.valid_type,c.valid_start_date,c.valid_end_date,c.auto_refund, | |||||
| cal.channel_type as send_channel_type | |||||
| </sql> --> | |||||
| <sql id="allCUserCouponOrderListColumns"> | |||||
| <select id="findListOfCUserOptimize" parameterType="com.iformall.domain.vo.WxCouponOrderCVo" resultMap="BaseResultMap"> | |||||
| select | |||||
| co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark,co.pay_vendor, | co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark,co.pay_vendor, | ||||
| co.`freight_price`,co.`shipping_type`,co.`shipping_address`,co.`shipping_status`,co.`delivery_info`, | |||||
| c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.unit,c.valid_type,c.valid_start_date,c.valid_end_date,c.auto_refund | |||||
| </sql> | |||||
| <select id="findListOfCUserOptimize" parameterType="com.iformall.domain.vo.WxCouponOrderCVo" resultMap="CVoResultMapOptimize"> | |||||
| select <include refid="allCUserCouponOrderListColumns" /> | |||||
| from wx_coupon c,wx_coupon_order co | |||||
| <!-- left join wx_coupon_action_log cal on cal.coupon_order_id = co.id --> | |||||
| where 1=1 | |||||
| and co.coupon_id = c.id | |||||
| co.`freight_price`,co.`shipping_type`,co.`shipping_address`,co.`shipping_status`,co.`delivery_info` | |||||
| from wx_coupon_order co | |||||
| where co.c_user_id = #{cUserId} and co.`tenant_id` = #{tenantId} | |||||
| <choose> | <choose> | ||||
| <when test=" null != couponType"> | <when test=" null != couponType"> | ||||
| and co.coupon_type = #{couponType} | and co.coupon_type = #{couponType} | ||||
| @@ -1082,15 +931,9 @@ | |||||
| </otherwise> | </otherwise> | ||||
| </choose> | </choose> | ||||
| <if test="cUserId != null"> | |||||
| and co.c_user_id = #{cUserId} | |||||
| </if> | |||||
| <if test="ownerId != null"> | <if test="ownerId != null"> | ||||
| and co.owner_id = #{ownerId} | and co.owner_id = #{ownerId} | ||||
| </if> | </if> | ||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and co.`tenant_id` = #{tenantId} | |||||
| </if> | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | <if test=" null != parentTenantId and '' != parentTenantId"> | ||||
| and co.`parent_tenant_id` = #{parentTenantId} | and co.`parent_tenant_id` = #{parentTenantId} | ||||
| </if> | </if> | ||||
| @@ -1100,63 +943,51 @@ | |||||
| <if test="couponOrderStatus != null and 0 != couponOrderStatus"> | <if test="couponOrderStatus != null and 0 != couponOrderStatus"> | ||||
| AND co.coupon_order_status = #{couponOrderStatus} | AND co.coupon_order_status = #{couponOrderStatus} | ||||
| </if> | </if> | ||||
| <if test=" null != couponIds"> | |||||
| and co.coupon_id in | |||||
| <foreach collection="couponIds" index="index" item="couponIdItem" open="(" separator="," close=")"> | |||||
| #{couponIdItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | <if test=" null != sortColumns"> order by ${sortColumns} </if> | ||||
| </select> | </select> | ||||
| <select id="findDetailOfCUser" parameterType="java.util.HashMap" resultMap="CVoResultMap"> | |||||
| select <include refid="allCUserCouponOrderDetailColumns" /> | |||||
| from wx_coupon_order co, wx_coupon c | |||||
| where co.coupon_id = c.id | |||||
| and co.id = #{id} and co.tenant_id = #{tenantId} | |||||
| </select> | |||||
| <select id="findSimpleDetailOfCUser" parameterType="java.util.HashMap" resultMap="CVoResultMap"> | |||||
| select <include refid="simpleCUserCouponOrderDetailColumns" /> | |||||
| <select id="findDetailOfCUser" parameterType="java.util.HashMap" resultMap="BaseResultMap"> | |||||
| select | |||||
| co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark,co.pay_vendor, | |||||
| co.`freight_price`,co.`shipping_type`,co.`shipping_address`,co.`shipping_status`,co.`delivery_info`, | |||||
| from wx_coupon_order co | from wx_coupon_order co | ||||
| where co.id = #{id} and co.tenant_id = #{tenantId} | where co.id = #{id} and co.tenant_id = #{tenantId} | ||||
| </select> | </select> | ||||
| <select id="findAvailCouponOrder" parameterType="java.util.Map" resultMap="CVoResultMap"> | |||||
| select <include refid="allCUserCouponOrderDetailColumns" /> | |||||
| <select id="findCouponOrderForPos" parameterType="java.util.Map" resultMap="BaseResultMap"> | |||||
| select | |||||
| co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark,co.pay_vendor, | |||||
| co.`freight_price`,co.`shipping_type`,co.`shipping_address`,co.`shipping_status`,co.`delivery_info` | |||||
| from wx_coupon_order co | from wx_coupon_order co | ||||
| inner join wx_coupon c on c.id = co.coupon_id | |||||
| inner join wx_coupon_merchant cm on cm.product_id = co.coupon_id | |||||
| where co.c_user_id = #{cUserId} | where co.c_user_id = #{cUserId} | ||||
| and co.coupon_order_status = 0 | |||||
| and co.coupon_order_status = #{status} | |||||
| <if test=" null != tenantId and '' != tenantId"> | <if test=" null != tenantId and '' != tenantId"> | ||||
| and co.`tenant_id` = #{tenantId} | and co.`tenant_id` = #{tenantId} | ||||
| </if> | </if> | ||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | <if test=" null != parentTenantId and '' != parentTenantId"> | ||||
| and co.`parent_tenant_id` = #{parentTenantId} | and co.`parent_tenant_id` = #{parentTenantId} | ||||
| </if> | </if> | ||||
| and cm.merchant_id = #{merchantId} | |||||
| and co.expired_time > now() | and co.expired_time > now() | ||||
| and c.type in (1, 2, 6) | |||||
| union | |||||
| select <include refid="allCUserCouponOrderDetailColumns" /> | |||||
| from wx_coupon_order co | |||||
| inner join wx_coupon c on c.id = co.coupon_id | |||||
| inner join wx_coupon_merchant cm on cm.product_id = co.coupon_id | |||||
| inner join pos_coupon_order_verify pco on pco.coupon_order_id = co.id | |||||
| where co.c_user_id = #{cUserId} | |||||
| and co.coupon_order_status = 100 | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and co.`tenant_id` = #{tenantId} | |||||
| </if> | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and co.`parent_tenant_id` = #{parentTenantId} | |||||
| <if test=" null != couponIds"> | |||||
| and co.coupon_id in | |||||
| <foreach collection="couponIds" index="index" item="couponIdItem" open="(" separator="," close=")"> | |||||
| #{couponIdItem} | |||||
| </foreach> | |||||
| </if> | </if> | ||||
| and cm.merchant_id = #{merchantId} | |||||
| and co.expired_time > now() | |||||
| and c.type in (1, 2, 6) | |||||
| <if test="posOrderId != null"> | |||||
| and pco.pos_order_id = #{posOrderId} | |||||
| <if test=" null != ids "> | |||||
| and id in | |||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||||
| #{idItem} | |||||
| </foreach> | |||||
| </if> | </if> | ||||
| </select> | </select> | ||||
| <sql id="allCUserCouponOrderCarListColumns"> | <sql id="allCUserCouponOrderCarListColumns"> | ||||
| co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark,co.pay_vendor, | co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark,co.pay_vendor, | ||||
| c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.unit, | c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.unit, | ||||