彩票网站开发周期,上海做网站的小公司有哪些,seo站内优化和站外优化,修改wordpress设置day09 接口
一 优惠券管理1.新增优惠券接口说明新增优惠券功能#xff0c;如果优惠券有限定使用范围#xff0c;注意保持范围数据请求方式POST请求路径/coupons请求参数{ name : 新年大促, // 优惠券名称 specific : true, // 是否…day09 接口一 优惠券管理1.新增优惠券接口说明新增优惠券功能如果优惠券有限定使用范围注意保持范围数据请求方式POST请求路径/coupons请求参数{ name : 新年大促, // 优惠券名称 specific : true, // 是否限定使用范围 scopes: [2001, 2004, 2007], // 限定的分类id集合 discountType : 1, // 折扣类型 thresholdAmount : 100, // 折扣阈值0代表无门槛 discountValue : 15, // 优惠值。满减填优惠金额折扣填折扣值 maxDiscountAmount : 0, // 最大优惠金额 obtainWay : 1, // 领取方式1-手动领取2-兑换码 totalNum : 200, // 优惠券总发放数量 userLimit : 1, // 每个人的限领数量 }返回值无CouponController.java/** * 新增优惠券 * * param coupon * return */ApiOperation(新增优惠券)PostMappingpublicvoidsaveCoupon(RequestBodyValidCouponFormDTOcoupon){couponService.saveCoupon(coupon);}ICouponService.javavoidsaveCoupon(ValidCouponFormDTOcoupon);CouponServiceImpl.java测试时注意添加优惠券时优惠券名称需要不少于4OverrideTransactionalpublicvoidsaveCoupon(CouponFormDTOcoupon){// 1.拷贝优惠券相关信息Couponcoupon1BeanUtils.copyProperties(coupon,Coupon.class);// 2.保存优惠券save(coupon1);// 3.保存限定范围指定的课程或者分类生效if(!coupon.getSpecific()){//没有范围限定return;}//4.有的话就需要去存储该获取优惠券的使用范围ListLongscopescoupon.getScopes();ListCouponScopelistnewArrayList();for(Longscope:scopes){//保存优惠券和课程或者分类的关系// 1.创建对象三个属性范围限定的类型业务的id优惠券的idCouponScopescope1newCouponScope();// 2.设置属性scope1.setCouponId(coupon1.getId());scope1.setBizId(scope);scope1.setType(1);list.add(scope1);}couponScopeService.saveBatch(list);}2.修改优惠券请求方式PUT请求路径/coupons/{id}请求参数与新增类似参考新增接口。返回值无CouponController.java/** * 修改优惠券 * * param coupon * return */ApiOperation(修改优惠券)PutMapping({id})publicvoidupdateCoupon(RequestBodyCouponFormDTOcoupon){couponService.updateById(BeanUtils.copyProperties(coupon,Coupon.class));}分页查询优惠券接口说明分页查询优惠券默认按照创建时间排序请求方式GET请求路径/coupons/page请求参数{ pageNo : 1, // 页码 pageSize : 10, // 每页大小 type : 1, // 折扣类型 status : 1, // 优惠券状态 name : 大促, // 优惠券名称关键字 }返回值{ list: [ { id: 110, // 优惠券id name: 年中大促, // 优惠券名称 discountType: 1, // 优惠券折扣类型 thresholdAmount: 100, // 优惠门槛 discountValue: 10, // 优惠值 maxDiscountAmount: 0, // 优惠上限 specific: true, // 是否限定范围 obtainWay: 1, // 领取方式 totalNum: 1000, // 总发放数量 issueNum: 800, // 已领取数量 usedNum: 100 // 已使用数量 createTime: 2023-05-01, // 创建时间 issueBeginTime: 2023-06-01, // 发放开始时间 issueEndTime: 2023-06-20, // 发放结束时间 termBeginTime: 2023-06-10, // 使用有效期开始时间 termEndTime: 2023-06-30, // 使用有效期结束时间 termDays: 0, // 有效天数 status: 1, // 状态 } ], pages: 0, total: 0 }CouponController.java/** * 分页查询优惠券 * * param query * return */ApiOperation(分页查询优惠券)GetMapping(/page)publicPageDTOCouponPageVOqueryCoupons(CouponQueryquery){returncouponService.queryCoupons(query);}ICouponService.javaPageDTOCouponPageVOqueryCoupons(CouponQueryquery);CouponServiceImpl.javaOverridepublicPageDTOCouponPageVOqueryCoupons(CouponQueryquery){Integerstatusquery.getStatus();Stringnamequery.getName();Integertypequery.getType();PageCouponpagelambdaQuery().eq(status!null,Coupon::getDiscountType,type).eq(status!null,Coupon::getStatus,status).like(name!null,Coupon::getName,name).page(query.toMpPageDefaultSortByCreateTimeDesc());ListCouponrecordspage.getRecords();if(CollUtils.isEmpty(records)){returnPageDTO.empty(page);}ArrayListCouponPageVOcouponPageVOSnewArrayList();for(Couponrecord:records){CouponPageVOvoBeanUtils.copyProperties(record,CouponPageVO.class);couponPageVOS.add(vo);}returnPageDTO.of(page,couponPageVOS);}3.根据id查询优惠券接口说明都需要根据id查询优惠券的详细信息请求方式GET请求路径/coupons/{id}请求参数路径占位符id返回值{ id: 110, // 优惠券id name: 年中大促, // 优惠券名称 discountType: 1, // 优惠券折扣类型 thresholdAmount: 100, // 优惠门槛 discountValue: 10, // 优惠值 maxDiscountAmount: 0, // 优惠上限 specific: true, // 是否限定范围 scopes: [ // 限定的分类 {id: 2001, name: IT互联网} ] obtainWay: 1, // 领取方式 totalNum: 1000, // 总发放数量 useLimit: 1, // 限领数量 issueBeginTime: 2023-06-01, // 发放开始时间 issueEndTime: 2023-06-20, // 发放结束时间 termBeginTime: 2023-06-10, // 使用有效期开始时间 termEndTime: 2023-06-30, // 使用有效期结束时间 termDays: 0, // 有效天数 }CouponController.java/** * 根据id查询优惠券 * * param id * return */ApiOperation(根据id查询优惠券)GetMapping({id})publicCouponDetailVOgetById(PathVariable(id)Longid){returncouponService.queryById(id);}ICouponService.javaCouponDetailVOqueryById(Longid);CouponServiceImpl.javaOverride public CouponDetailVO queryById(Long id) { Coupon coupon getById(id); CouponDetailVO couponDetailVO BeanUtils.copyBean(coupon, CouponDetailVO.class); if (couponDetailVO null || !coupon.getSpecific()) { // 数据不存在或者没有限定范围直接结束 return couponDetailVO; } LambdaQueryWrapperCouponScope queryWrapper new LambdaQueryWrapper(); queryWrapper.eq(CouponScope::getCouponId, id); ListCouponScope couponScopes couponScopeMapper.selectList(queryWrapper); if (CollUtils.isEmpty(couponScopes)) { return couponDetailVO; } ListCouponScopeVO scopeVOS couponScopes.stream() .map(CouponScope::getBizId) .map(cateId - new CouponScopeVO(cateId, categoryCache.getNameByLv3Id(cateId))) .collect(Collectors.toList()); couponDetailVO.setScopes(scopeVOS); return couponDetailVO; }4.删除优惠券请求方式DELETE请求路径/coupons/{id}请求参数与新增类似参考新增接口。返回值无CouponController.java/** * 删除优惠券 * * param id * return */ApiOperation(删除优惠券)DeleteMapping({id})publicvoiddeleteById(PathVariable(id)Longid){couponService.deleteById(id);}ICouponService.javavoiddeleteById(Longid);CouponServiceImpl.javaOverride public void deleteById(Long id) { // 1.查询 Coupon coupon getById(id); if (coupon null || coupon.getStatus() ! DRAFT) { throw new BadRequestException(优惠券不存在或者优惠券正在使用中); } // 2.删除优惠券 boolean success remove(new LambdaQueryWrapperCoupon() .eq(Coupon::getId, id) .eq(Coupon::getStatus, DRAFT) ); if (!success) { throw new BadRequestException(优惠券不存在或者优惠券正在使用中); } // 3.删除优惠券对应限定范围 if (!coupon.getSpecific()) { return; } couponScopeService.remove(new LambdaQueryWrapperCouponScope().eq(CouponScope::getCouponId, id)); }二 优惠券发放1.发放优惠券版本1接口说明发放优惠券请求方式PUT请求路径/coupons/{id}/issue请求参数{ issueBeginTime: 2023-06-01, // 发放开始时间 issueEndTime: 2023-06-20, // 发放结束时间 termBeginTime: 2023-06-10, // 使用有效期开始时间 termEndTime: 2023-06-30, // 使用有效期结束时间 termDays: 0, // 有效天数 }返回值无CouponController.java/** * 发放优惠券 * * param dto * return */ApiOperation(发放优惠券)PutMapping({id}/issue)publicvoidbeginIssue(RequestBodyValidCouponIssueFormDTOdto){couponService.beginIssue(dto);}ICouponService.javavoidbeginIssue(ValidCouponIssueFormDTOdto);CouponServiceImpl.javaOverridepublicvoidbeginIssue(CouponIssueFormDTOdto){//1.查询优惠券CouponbyIdthis.getById(dto.getId());//2.判断优惠券的状态是否是暂停或者待发放if(byId.getStatus()!DRAFTbyId.getStatus()!PAUSE){thrownewBadRequestException(优惠券状态错误);}//3.判断是否是立刻发放(当前时间为null或者发放时间已经过了都代表立即发放)LocalDateTimeissueBeginTimedto.getIssueBeginTime();booleanisBeginissueBeginTimenull||!issueBeginTime.isAfter(LocalDateTime.now());//4.更新优惠券CouponcouponBeanUtils.copyProperties(dto,Coupon.class);if(isBegin){coupon.setStatus(CouponStatus.ISSUING);coupon.setIssueBeginTime(issueBeginTime);}else{coupon.setStatus(CouponStatus.UN_ISSUE);}this.updateById(coupon);}2.发放优惠券版本2兑换码算法3.暂停发放请求方式PUT请求路径/coupons/{id}/pause请求参数路径占位符id返回值无CouponController.javaApiOperation(停发优惠券)PutMapping(/{id}/pause)publicvoidpauseIssue(ApiParam(优惠券id)PathVariable(id)longid){couponService.pauseIssue(id);}ICouponService.javavoidpauseIssue(longid);CouponServiceImpl.javaOverridepublicvoidpauseIssue(longid){this.lambdaUpdate().eq(Coupon::getId,id).set(Coupon::getStatus,CouponStatus.PAUSE).update();}