From f04bb37f47ff1eb51e5e8c42d73514c1e9c33710 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期二, 20 八月 2024 17:22:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TGoodsMapper.java | 1 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/EnterpriseQuery.java | 10 ++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TGoodsService.java | 2 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java | 2 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java | 13 +++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java | 53 +++++++++++-- ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java | 9 ++ ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java | 19 ++++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java | 34 ++++++++ ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml | 10 ++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java | 54 +++++++++++++ 11 files changed, 196 insertions(+), 11 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/EnterpriseQuery.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/EnterpriseQuery.java new file mode 100644 index 0000000..dca0181 --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/EnterpriseQuery.java @@ -0,0 +1,10 @@ +package com.ruoyi.account.api.dto; + +import com.ruoyi.common.core.web.domain.BasePojo; +import com.ruoyi.common.core.web.page.BasePage; +import lombok.Data; + +@Data +public class EnterpriseQuery extends BasePage { + private String phone; +} diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java index 4177dd3..fae4223 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java @@ -4,8 +4,10 @@ import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.feignClient.OrderClient; import com.ruoyi.order.api.model.TChargingOrder; +import com.ruoyi.order.api.model.TExchangeOrder; import com.ruoyi.order.api.query.TActivityStatisticsQuery; import com.ruoyi.order.api.vo.TActivityVO; +import com.ruoyi.other.api.dto.ExchangeDto; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; @@ -41,6 +43,17 @@ } @Override + public R<Long> getExchangeById(Integer goodsIds, Long userId) { + return R.fail("根据订单数" + cause.getMessage()); + } + + @Override + public R<Long> exchangeCreate(ExchangeDto exchangeDto) { + return R.fail("创建订单" + cause.getMessage()); + } + + + @Override public R<TActivityVO> activityStatistics(TActivityStatisticsQuery dto) { return R.fail("查询活动费用统计失败:" + cause.getMessage()); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java index 9e59397..dea8dce 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java @@ -4,12 +4,15 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.order.api.factory.ChargingOrderFallbackFactory; import com.ruoyi.order.api.factory.OrderFallbackFactory; +import com.ruoyi.order.api.model.TExchangeOrder; import com.ruoyi.order.api.query.TActivityStatisticsQuery; import com.ruoyi.order.api.vo.TActivityVO; +import com.ruoyi.other.api.dto.ExchangeDto; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -30,6 +33,12 @@ */ @PostMapping("/t-exchange-order/getCodeByOrderId") public R<List<String>> getCodeByOrderId(String goodsIds); + //查询已兑换的订单数 + @PostMapping("/t-exchange-order/getById") + public R<Long> getExchangeById(@RequestParam("goodId") Integer goodId,@RequestParam("userId") Long userId); + @PostMapping("/t-exchange-order/create") + public R<Long> exchangeCreate(@RequestBody ExchangeDto exchangeDto); + /** * 管理后台 活动费用统计 * @param diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java new file mode 100644 index 0000000..5c180d3 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java @@ -0,0 +1,19 @@ +package com.ruoyi.other.api.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ExchangeDto { + @ApiModelProperty("商品id") + Integer goodId; + @ApiModelProperty("地址id") + Integer addressId; + @ApiModelProperty("备注") + String remark; + @ApiModelProperty(hidden = true) + Long userId; + @ApiModelProperty(hidden = true) + Integer userId; + +} diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java index e91f208..85897a2 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java @@ -40,7 +40,7 @@ * 建桩申请 */ @Log(title = "建桩申请", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE) - @ApiOperation(tags = {"小程序-建桩申请"},value = "建桩申请") + @ApiOperation(tags = {"小程序-建桩申请","后台-申请表单-申请建桩"},value = "建桩申请") @PostMapping(value = "/add") public AjaxResult<Boolean> add(@RequestBody TApplyChargingPile dto) { // 用户id diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java index f612c11..4881695 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java @@ -1,6 +1,9 @@ package com.ruoyi.other.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.account.api.dto.EnterpriseQuery; +import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; @@ -10,10 +13,10 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; /** * <p> @@ -29,6 +32,8 @@ private final TEnterpriseUserApplicationService enterpriseUserApplicationService; private final TokenService tokenService; + @Resource + private AppUserClient appUserClient; @Autowired public TEnterpriseUserApplicationController(TEnterpriseUserApplicationService enterpriseUserApplicationService, TokenService tokenService) { @@ -40,7 +45,7 @@ * 添加计费策略管理 */ @Log(title = "添加集团用户申请", businessType = BusinessType.INSERT) - @ApiOperation(tags = {"小程序-计费策略"},value = "添加集团用户申请") + @ApiOperation(tags = {"小程序-集团用户","后台-申请表单-集团用户"},value = "添加集团用户申请") @PostMapping(value = "/add") public AjaxResult<Boolean> add(@Validated @RequestBody TEnterpriseUserApplication dto) { // 用户id @@ -49,13 +54,43 @@ } - @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "集团用户列表") @PostMapping(value = "/page") - public AjaxResult<Boolean> page(@RequestBody TEnterpriseUserApplication dto) { + public AjaxResult<Page<TEnterpriseUserApplication>> page(EnterpriseQuery enterpriseQuery) { // 用户id - dto.setAppUserId(tokenService.getLoginUserApplet().getUserId()); - return AjaxResult.ok(enterpriseUserApplicationService.save(dto)); + if (enterpriseQuery.getPhone()!=null) { + List<Long> userIds = appUserClient.getUserIdsByPhone(enterpriseQuery.getPhone()).getData(); + if (userIds.isEmpty()){ + return AjaxResult.warn("未查询到用户"); + } + Page<TEnterpriseUserApplication> page = enterpriseUserApplicationService.lambdaQuery().in(TEnterpriseUserApplication::getAppUserId, userIds).page(Page.of(enterpriseQuery.getPageCurr(), enterpriseQuery.getPageSize())); + return AjaxResult.ok(page); + }else { + Page<TEnterpriseUserApplication> page = enterpriseUserApplicationService.lambdaQuery().page(Page.of(enterpriseQuery.getPageCurr(), enterpriseQuery.getPageSize())); + return AjaxResult.ok(page); + } + } + + + @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "备注") + @GetMapping(value = "/remark") + public AjaxResult pass(Integer id,String remark) { + // 用户id + TEnterpriseUserApplication byId = enterpriseUserApplicationService.getById(id); + byId.setRemark(remark); + enterpriseUserApplicationService.updateById(byId); + return AjaxResult.success(); + } + + @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "备注") + @DeleteMapping(value = "/delete") + public AjaxResult delete(String ids) { + String[] split = ids.split(","); + for (String s : split) { + enterpriseUserApplicationService.removeById(s); + } + return AjaxResult.success(); + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java index 29dd21b..d91debd 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java @@ -1,12 +1,18 @@ package com.ruoyi.other.controller; +import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.order.api.feignClient.OrderClient; import com.ruoyi.other.api.domain.TActivity; import com.ruoyi.other.api.domain.TGoods; import com.ruoyi.other.api.dto.AdvertisingDTO; +import com.ruoyi.other.api.dto.ExchangeDto; import com.ruoyi.other.api.dto.GoodsDTO; import com.ruoyi.other.service.TActivityService; import com.ruoyi.other.service.TAdvertisingService; @@ -14,6 +20,8 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; /** * <p> @@ -30,6 +38,12 @@ private TGoodsService goodsService; @Autowired private TActivityService activityService; + @Resource + private TokenService tokenService; + @Resource + private AppUserClient appUserClient; + @Resource + private OrderClient orderClient; @@ -62,7 +76,7 @@ @GetMapping("/getInfo") - @ApiOperation(tags = {"管理后台-商品管理"},value = "商品查看详情") + @ApiOperation(tags = {"管理后台-商品管理","小程序-兑换商城"},value = "商品查看详情") public AjaxResult<TGoods> getInfo(Integer id) { return AjaxResult.ok(goodsService.getById(id)); } @@ -74,6 +88,44 @@ public AjaxResult<PageInfo<TGoods>> pageList(@RequestBody GoodsDTO dto) { return AjaxResult.ok(goodsService.pageList(dto)); } + + + @ApiOperation(tags = {"小程序-兑换商城"},value = "商品列表分页查询") + @PostMapping(value = "/app/pageList") + public AjaxResult<PageInfo<TGoods>> apppageList(BasePage basePage) { + return AjaxResult.ok(goodsService.pageList1(basePage)); + } + + @ApiOperation(tags = {"小程序-兑换商城"},value = "兑换商品") + @PostMapping(value = "/app/shop") + public AjaxResult<PageInfo<TGoods>> shop(@RequestBody ExchangeDto exchangeDto) { + //查询当前商品信息 + TGoods good = goodsService.getById(exchangeDto.getGoodId()); + + //检查当前用户积分是否够 + Long userId = tokenService.getLoginUserApplet().getUserId(); + TAppUser user = appUserClient.getUserById(userId).getData(); + if (user.getPoints()<good.getRedeemPoints()){ + return AjaxResult.error("当前用户积分不足"); + } + //检查当前用户是否到达兑换上限 + Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId).getData(); + if (good.getLimitExchangeTimes()!=-1&&count>=good.getLimitExchangeTimes()){ + return AjaxResult.error("当前用户已到达兑换上限"); + } + //生成积分兑换成功的订单 + orderClient.exchangeCreate(exchangeDto); + + //如果是优惠卷,赠送优惠卷给用户 + + + + + //生成消耗积分的记录 + + + } + /** * 根据id获取商品信息 diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TGoodsMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TGoodsMapper.java index 2f73928..491b8ad 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TGoodsMapper.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TGoodsMapper.java @@ -20,5 +20,6 @@ public interface TGoodsMapper extends BaseMapper<TGoods> { List<TGoods> pageList(@Param("pageInfo")PageInfo<TGoods> pageInfo, @Param("req") GoodsDTO dto); + List<TGoods> pageList1(@Param("pageInfo")PageInfo<TGoods> pageInfo); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TGoodsService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TGoodsService.java index 99d40ec..d37be56 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TGoodsService.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TGoodsService.java @@ -1,6 +1,7 @@ package com.ruoyi.other.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.other.api.domain.TGoods; import com.ruoyi.other.api.dto.GoodsDTO; @@ -16,5 +17,6 @@ public interface TGoodsService extends IService<TGoods> { PageInfo<TGoods> pageList(GoodsDTO dto); + PageInfo<TGoods> pageList1(BasePage basePage); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java index f0de342..7372668 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.other.service.impl; +import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.order.api.feignClient.OrderClient; import com.ruoyi.other.api.domain.TGoods; @@ -55,4 +56,37 @@ pageInfo.setRecords(list); return pageInfo; } + @Override + public PageInfo<TGoods> pageList1(BasePage basePage) { + GoodsDTO dto = new GoodsDTO(); + dto.setType(2); + dto.setStatus(1); + dto.setPageCurr(basePage.getPageCurr()); + dto.setPageSize(basePage.getPageSize()); + PageInfo<TGoods> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); + List<TGoods> list = this.baseMapper.pageList1(pageInfo); + + StringBuilder stringBuilder = new StringBuilder(); + for (TGoods temp : list) { + stringBuilder.append(temp.getId()).append(","); + } + if (StringUtils.hasLength(stringBuilder)){ + // 去除最后一个字符 + stringBuilder.deleteCharAt(stringBuilder.length()-1); + } + if (list.isEmpty()) { + pageInfo.setRecords(list); + return pageInfo; + } + String string = stringBuilder.toString(); + // 订单号加上商品类型 + String res = string+"-"+dto.getType(); + + List<Integer> data = orderClient.getSalesCountByGoodsId(res).getData(); + for (int i = 0; i < list.size(); i++) { + list.get(i).setSalesCount(data.get(i)); + } + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml index a602e33..552b98c 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml +++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml @@ -50,4 +50,14 @@ ORDER BY create_time DESC </select> + <select id="pageList1" resultType="com.ruoyi.other.api.domain.TGoods"> + select * from t_goods + <where> + AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} + </where> + ORDER BY + CASE WHEN `inventory` = 0 THEN 0 ELSE 1 END DESC, + `redeem_points` ASC; + </select> + </mapper> -- Gitblit v1.7.1