ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/EnterpriseQuery.java
New file @@ -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; } 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()); } 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 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java
New file @@ -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; } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -177,7 +177,7 @@ @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "查询计费审核分页列表") @PostMapping(value = "/auth/pageList") public AjaxResult authPageList(@RequestBody TAccountingStrategyQuery query) { public AjaxResult<PageInfo<TAccountingStrategyVO>> authPageList(@RequestBody TAccountingStrategyQuery query) { Long userid = tokenService.getLoginUser().getUserid(); Page<TAccountingStrategy> page = accountingStrategyService.lambdaQuery() .in(TAccountingStrategy::getFirstUserId, userid) 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 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(); } } 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获取商品信息 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); } 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); } 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; } } 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>