From 72aaf45389cd09c206ee1b90f0c7f5bf59782930 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 22 十月 2025 18:27:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysGoodsController.java | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 107 insertions(+), 12 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysGoodsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysGoodsController.java
index ff2598a..a8c865b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysGoodsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysGoodsController.java
@@ -6,17 +6,21 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.BaseModel;
+import com.ruoyi.common.core.domain.BasePage;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.ExchangeGoodsDto;
import com.ruoyi.system.dto.TErpGoodsUpdateStatusDto;
import com.ruoyi.system.model.*;
+import com.ruoyi.system.query.ExchangeGoodsRecordQuery;
import com.ruoyi.system.query.TSysGoodsExchangeQuery;
import com.ruoyi.system.query.TSysGoodsQuery;
import com.ruoyi.system.service.*;
+import com.ruoyi.system.vo.ExchangeGoodsRecordDetailVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -46,16 +50,19 @@
private final TSysGoodsExchangeService sysGoodsExchangeService;
private final TCrmClinicService crmClinicService;
private final TCrmClinicPointsService crmClinicPointsService;
+ private final TCrmChangePointsService crmChangePointsService;
@Autowired
- public TSysGoodsController(TokenService tokenService, TSysGoodsService sysGoodsService, TCrmSupplierService crmSupplierService, TSysGoodsExchangeService sysGoodsExchangeService, TCrmClinicService crmClinicService, TCrmClinicPointsService crmClinicPointsService) {
+ public TSysGoodsController(TokenService tokenService, TSysGoodsService sysGoodsService, TCrmSupplierService crmSupplierService, TSysGoodsExchangeService sysGoodsExchangeService, TCrmClinicService crmClinicService, TCrmClinicPointsService crmClinicPointsService, TCrmChangePointsService crmChangePointsService) {
this.sysGoodsService = sysGoodsService;
this.tokenService = tokenService;
this.crmSupplierService = crmSupplierService;
this.sysGoodsExchangeService = sysGoodsExchangeService;
this.crmClinicService = crmClinicService;
this.crmClinicPointsService = crmClinicPointsService;
+
+ this.crmChangePointsService = crmChangePointsService;
}
@@ -90,7 +97,9 @@
List<TSysGoodsExchange> list = sysGoodsExchangeService.list(new LambdaQueryWrapper<TSysGoodsExchange>().in(TSysGoodsExchange::getGoodsId, records.stream().map(TSysGoods::getId).collect(Collectors.toList())));
records.forEach(item -> {
item.setExchangeQuantity(list.stream().filter(item1 -> item1.getGoodsId().equals(item.getId())).mapToInt(TSysGoodsExchange::getGoodsCount).sum());
- item.setSurplusQuantity(item.getGoodsTotal() - item.getExchangeQuantity());
+ if (item.getGoodsTotal() != null) {
+ item.setSurplusQuantity(item.getGoodsTotal() - item.getExchangeQuantity());
+ }
});
}
pageInfo.setRecords(records);
@@ -189,7 +198,10 @@
@PostMapping(value = "/getExchangeRecord")
public R<PageInfo<TSysGoodsExchange>> getExchangeRecord(@RequestBody @Valid TSysGoodsExchangeQuery query) {
PageInfo<TSysGoodsExchange> page = new PageInfo<>(query.getPageNum(), query.getPageSize());
- LambdaQueryWrapper<TSysGoodsExchange> wrapper = new LambdaQueryWrapper<TSysGoodsExchange>().eq(TSysGoodsExchange::getGoodsId, query.getId());
+ LambdaQueryWrapper<TSysGoodsExchange> wrapper = new LambdaQueryWrapper<TSysGoodsExchange>();
+ if (query.getId() != null && !query.getId().isEmpty()) {
+ wrapper.eq(TSysGoodsExchange::getGoodsId, query.getId());
+ }
if (query.getClinicName() != null && !query.getClinicName().isEmpty()) {
wrapper.like(TSysGoodsExchange::getClinicName, query.getClinicName());
}
@@ -213,7 +225,7 @@
return R.fail("该订单已发货");
}
exchange1.setStatus(2);
- exchange1.setLogisticsNumber(exchange1.getLogisticsNumber());
+ exchange1.setLogisticsNumber(exchange.getLogisticsNumber());
sysGoodsExchangeService.updateById(exchange1);
return R.ok();
}
@@ -227,7 +239,7 @@
public R<HashMap<String, Object>> pageListClinic(@RequestBody TSysGoodsQuery query) {
PageInfo<TSysGoods> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
LambdaQueryWrapper<TSysGoods> tSysGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>();
- tSysGoodsLambdaQueryWrapper.eq(TSysGoods::getStatus,1);
+ tSysGoodsLambdaQueryWrapper.eq(TSysGoods::getStatus, 1);
if (query.getGoodsName() != null && !query.getGoodsName().isEmpty()) {
tSysGoodsLambdaQueryWrapper.like(TSysGoods::getGoodsName, query.getGoodsName());
}
@@ -239,24 +251,26 @@
List<TSysGoodsExchange> list = sysGoodsExchangeService.list(new LambdaQueryWrapper<TSysGoodsExchange>().in(TSysGoodsExchange::getGoodsId, records.stream().map(TSysGoods::getId).collect(Collectors.toList())));
records.forEach(item -> {
item.setExchangeQuantity(list.stream().filter(item1 -> item1.getGoodsId().equals(item.getId())).mapToInt(TSysGoodsExchange::getGoodsCount).sum());
- item.setSurplusQuantity(item.getGoodsTotal() - item.getExchangeQuantity());
+ if (item.getGoodsTotal() != null) {
+ item.setSurplusQuantity(item.getGoodsTotal() - item.getExchangeQuantity());
+ }
});
}
pageInfo.setRecords(records);
HashMap<String, Object> map = new HashMap<>();
- map.put("data",pageInfo);
+ map.put("data", pageInfo);
// 获取我的可用积分
- map.put("total",sysGoodsService.count(tSysGoodsLambdaQueryWrapper));
+ map.put("total", sysGoodsService.count(tSysGoodsLambdaQueryWrapper));
SysUser user = tokenService.getLoginUser().getUser();
Integer roleType = user.getRoleType();
- if(roleType == 5){
+ if (roleType == 5) {
// 诊所
TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
.eq(TCrmClinic::getUserId, user.getUserId())
.last("LIMIT 1"));
List<TCrmClinicPoints> list = crmClinicPointsService.list(new LambdaQueryWrapper<TCrmClinicPoints>().eq(TCrmClinicPoints::getClinicId, crmClinic.getId()).ge(TCrmClinicPoints::getExpireTime, new Date()).last(" and points > use_points"));
- map.put("myPoints",list.stream().mapToInt(item -> item.getPoints() - item.getUsePoints()).sum());
+ map.put("myPoints", list.stream().mapToInt(item -> item.getPoints() - item.getUsePoints()).sum());
}
return R.ok(map);
}
@@ -267,7 +281,7 @@
@ApiOperation(value = "获取积分商品列表--详情")
@GetMapping(value = "/detail/{id}")
public R<TSysGoods> detail(@PathVariable String id) {
- TSysGoods goods= sysGoodsService.getById(id);
+ TSysGoods goods = sysGoodsService.getById(id);
return R.ok(goods);
}
@@ -280,7 +294,7 @@
public R<?> exchangeGoods(@RequestBody @Valid ExchangeGoodsDto dto) {
SysUser user = tokenService.getLoginUser().getUser();
Integer roleType = user.getRoleType();
- if(roleType == 5){
+ if (roleType == 5) {
// 诊所
TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
.eq(TCrmClinic::getUserId, user.getUserId())
@@ -291,5 +305,86 @@
return R.fail("请选择正确的角色");
}
+
+ /**
+ * 兑换商品记录
+ */
+ @ApiOperation(value = "兑换商品记录--诊所")
+ @PostMapping(value = "/exchangeGoodsRecord")
+ public R<?> exchangeGoodsRecord(@RequestBody ExchangeGoodsRecordQuery query) {
+ SysUser user = tokenService.getLoginUser().getUser();
+ Integer roleType = user.getRoleType();
+ if (roleType == 5) {
+ // 诊所
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, user.getUserId())
+ .last("LIMIT 1"));
+
+ LambdaQueryWrapper<TSysGoodsExchange> eq = new LambdaQueryWrapper<TSysGoodsExchange>().eq(TSysGoodsExchange::getClinicId, crmClinic.getId());
+ if (query.getName() != null && !query.getName().isEmpty()) {
+ eq.like(TSysGoodsExchange::getGoodsName, query.getName());
+ }
+ eq.orderByDesc(BaseModel::getCreateTime);
+
+
+ PageInfo<TSysGoodsExchange> page = sysGoodsExchangeService.page(new PageInfo<>(query.getPageNum(), query.getPageSize()), eq);
+ return R.ok(page);
+ }
+ return R.fail("请选择正确的角色");
+ }
+
+ /**
+ * 兑换商品记录
+ */
+ @ApiOperation(value = "兑换商品记录详情--诊所")
+ @GetMapping(value = "/exchangeGoodsRecordDetail/{id}")
+ public R<ExchangeGoodsRecordDetailVo> exchangeGoodsRecord(@PathVariable String id) {
+ SysUser user = tokenService.getLoginUser().getUser();
+ Integer roleType = user.getRoleType();
+ if (roleType == 5) {
+ // 诊所
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, user.getUserId())
+ .last("LIMIT 1"));
+ TSysGoodsExchange exchangeServiceById = sysGoodsExchangeService.getById(id);
+ if (exchangeServiceById.getClinicId().equals(crmClinic.getId())) {
+ ExchangeGoodsRecordDetailVo vo = new ExchangeGoodsRecordDetailVo();
+ BeanUtils.copyProperties(exchangeServiceById, vo);
+
+ String goodsId = vo.getGoodsId();
+ TSysGoods sysGoods = sysGoodsService.getById(goodsId);
+ vo.setGoodsDetail(sysGoods.getGoodsDetail());
+ vo.setGoodsCover(sysGoods.getGoodsCover());
+
+
+ return R.ok(vo);
+ }
+ }
+ return R.fail("请选择正确的角色");
+ }
+
+
+ /**
+ * 兑换商品记录
+ */
+ @ApiOperation(value = "积分变更记录--诊所")
+ @PostMapping(value = "/pointsRecordDetail")
+ public R<PageInfo<TCrmChangePoints>> pointsRecordDetail(@RequestBody BasePage page) {
+ SysUser user = tokenService.getLoginUser().getUser();
+ Integer roleType = user.getRoleType();
+ if (roleType == 5) {
+ // 诊所
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, user.getUserId())
+ .last("LIMIT 1"));
+
+ PageInfo<TCrmChangePoints> page1 = crmChangePointsService.page(new PageInfo<>(page.getPageNum(), page.getPageSize()), new LambdaQueryWrapper<TCrmChangePoints>().eq(TCrmChangePoints::getBranchSalespersonId, crmClinic.getId()).eq(TCrmChangePoints::getUserType, 3).orderByDesc(BaseModel::getCreateTime));
+
+ return R.ok(page1);
+ }
+ return R.fail("请选择正确的角色");
+ }
+
+
}
--
Gitblit v1.7.1