diff --git a/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/auth/wx/AccessTokenUtil.java b/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/auth/wx/AccessTokenUtil.java index 8763bc8..3b9d6d9 100644 --- a/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/auth/wx/AccessTokenUtil.java +++ b/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/auth/wx/AccessTokenUtil.java @@ -37,4 +37,16 @@ public class AccessTokenUtil { } return token; } + + /** + * 清除token + * @param appId + */ + public static void clearToken(String appId) { + if (StringUtils.isBlank(appId)) { + return; + } + RedisCache redisCache = SpringUtils.getBean(RedisCache.class); + redisCache.deleteObject(CacheConstants.WX_ACCESS_TOKEN + appId); + } } diff --git a/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/auth/wx/WxAuthService.java b/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/auth/wx/WxAuthService.java index 674ca5c..78922b5 100644 --- a/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/auth/wx/WxAuthService.java +++ b/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/auth/wx/WxAuthService.java @@ -55,7 +55,7 @@ public class WxAuthService { * @param config * @return */ - public String getWxPhoneNumber(String mobileCode, WxConfig config) { + public String getWxPhoneNumber(String mobileCode, WxConfig config,boolean retry) { String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token="; // 根据手机号获取到用户名 @@ -73,7 +73,12 @@ public class WxAuthService { Integer errcode = body.getInteger("errcode"); if (errcode == null || !errcode.equals(0)) { log.error("获取手机号失败 {}", body); - throw new ServiceException("获取手机号失败"); + // 若获取手机号失败,则清除access_token,并且重试 + AccessTokenUtil.clearToken(config.getAppId()); + if (retry) { + return getWxPhoneNumber(mobileCode, config, false); + } + throw new ServiceException("获取手机号失败" + body.toJSONString()); } String phoneInfo = body.getString("phone_info"); diff --git a/common-ruoyi/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/common-ruoyi/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 7ae1075..f1e2cdd 100644 --- a/common-ruoyi/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/common-ruoyi/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -249,7 +249,7 @@ public class SysLoginService // 优先使用手机号登录(如果提供了手机号验证码) if (StringUtils.hasText(body.getMobileCode())) { - phone = wxAuthService.getWxPhoneNumber(body.getMobileCode(), wxConfig); + phone = wxAuthService.getWxPhoneNumber(body.getMobileCode(), wxConfig,true); // 查询用户 user = userService.selectUserByUserName(phone); diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/domain/GoodsQuery.java b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/domain/GoodsQuery.java index bf01eb7..0f3a365 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/domain/GoodsQuery.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/domain/GoodsQuery.java @@ -11,4 +11,5 @@ public class GoodsQuery extends GoodsVO{ @ApiModelProperty("商品ID列表") private List goodsIds; + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/domain/GoodsVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/domain/GoodsVO.java index 48dba59..e8fdecc 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/domain/GoodsVO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/domain/GoodsVO.java @@ -18,4 +18,7 @@ public class GoodsVO extends Goods{ @ApiModelProperty("商品SKU") private List skuVO; + @ApiModelProperty("所属分类") + private String categoryName; + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/mapper/GoodsMapper.java b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/mapper/GoodsMapper.java index b92887e..d35e793 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/mapper/GoodsMapper.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/mapper/GoodsMapper.java @@ -1,9 +1,11 @@ package com.ruoyi.bst.goods.mapper; +import java.util.Arrays; import java.util.List; import com.ruoyi.bst.goods.domain.Goods; import com.ruoyi.bst.goods.domain.GoodsVO; import com.ruoyi.bst.goods.domain.GoodsQuery; +import com.ruoyi.common.domain.vo.LongStringVO; import org.apache.ibatis.annotations.Param; /** @@ -73,4 +75,6 @@ public interface GoodsMapper public int deleteGoodsByIds(@Param("ids") List ids); List selectIdByQuery(@Param("query") GoodsQuery query); + + List selectGoodsNameGroupById(@Param("query") GoodsQuery query); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/mapper/GoodsMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/mapper/GoodsMapper.xml index 130fa5d..ecdf18b 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/mapper/GoodsMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/mapper/GoodsMapper.xml @@ -35,7 +35,8 @@ bg.create_time, bg.min_price, bg.max_price, - bg.total_stock + bg.total_stock, + bgc.name as category_name from @@ -43,6 +44,7 @@ bst_goods bg left join bst_store bs on bg.store_id = bs.store_id + left join bst_goods_category bgc on bg.category_id = bgc.id @@ -85,6 +87,16 @@ + + insert into bst_goods diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/service/GoodsService.java b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/service/GoodsService.java index 21b86db..95e5cb3 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/service/GoodsService.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/service/GoodsService.java @@ -1,9 +1,11 @@ package com.ruoyi.bst.goods.service; +import java.util.Arrays; import java.util.List; import com.ruoyi.bst.goods.domain.Goods; import com.ruoyi.bst.goods.domain.GoodsVO; import com.ruoyi.bst.goods.domain.GoodsQuery; +import com.ruoyi.common.domain.vo.LongStringVO; /** * 商品Service接口 @@ -70,4 +72,7 @@ public interface GoodsService int updateGoodsBasicInfo(Goods goods); + void assembler(List list); + + List selectGoodsNameGroupById(GoodsQuery query); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/service/impl/GoodsServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/service/impl/GoodsServiceImpl.java index 473bd84..bc0f1b1 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/goods/service/impl/GoodsServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/goods/service/impl/GoodsServiceImpl.java @@ -6,11 +6,13 @@ import java.util.Collections; import java.util.List; import com.github.pagehelper.PageHelper; +import com.ruoyi.bst.goods.service.GoodsAssembler; import com.ruoyi.bst.goods.service.GoodsService; import com.ruoyi.bst.sku.domain.Sku; import com.ruoyi.bst.sku.domain.SkuQuery; import com.ruoyi.bst.sku.domain.SkuVO; import com.ruoyi.bst.sku.service.SkuService; +import com.ruoyi.bst.spec.domain.Spec; import com.ruoyi.bst.spec.domain.SpecQuery; import com.ruoyi.bst.spec.domain.SpecVO; import com.ruoyi.bst.spec.service.SpecAssembler; @@ -19,6 +21,7 @@ import com.ruoyi.bst.specValue.domain.SpecValue; import com.ruoyi.bst.specValue.domain.SpecValueVO; import com.ruoyi.bst.specValue.service.SpecValueService; import com.ruoyi.bst.storeStaff.domain.enums.StoreStaffPermission; +import com.ruoyi.common.domain.vo.LongStringVO; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.common.utils.collection.CollectionUtils; @@ -52,6 +55,8 @@ public class GoodsServiceImpl implements GoodsService private SkuService skuService; @Autowired private SpecAssembler specAssembler; + @Autowired + private GoodsAssembler goodsAssembler; /** * 查询商品 @@ -353,4 +358,16 @@ public class GoodsServiceImpl implements GoodsService data.setStatus(goods.getStatus()); return goodsMapper.updateGoods(goods); } + + @Override + public void assembler(List list) { + List specList = new ArrayList<>(); + goodsAssembler.assembleSpecList(list); + + } + + @Override + public List selectGoodsNameGroupById(GoodsQuery query) { + return goodsMapper.selectGoodsNameGroupById(query); + } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/location/service/impl/LocationAssemblerImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/location/service/impl/LocationAssemblerImpl.java index ce032ea..f14994d 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/location/service/impl/LocationAssemblerImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/location/service/impl/LocationAssemblerImpl.java @@ -44,6 +44,7 @@ public class LocationAssemblerImpl implements LocationAssembler { for (LocationVO location : list) { Integer currentNum = idToCurrentNum.get(location.getId()); + currentNum = currentNum == null ? 0 : currentNum; location.setCurrentNum(currentNum); } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/sku/domain/SkuQuery.java b/ruoyi-service/src/main/java/com/ruoyi/bst/sku/domain/SkuQuery.java index a2b9356..be865b9 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/sku/domain/SkuQuery.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/sku/domain/SkuQuery.java @@ -3,10 +3,15 @@ package com.ruoyi.bst.sku.domain; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + @Data public class SkuQuery extends SkuVO { - @ApiModelProperty("goodsId") + @ApiModelProperty("商品ID") private Long goodsId; + @ApiModelProperty("skuID列表") + private List skuIds; + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/Storage.java b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/Storage.java index f21150b..a5c81cd 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/Storage.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/Storage.java @@ -1,5 +1,6 @@ package com.ruoyi.bst.storage.domain; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -32,27 +33,27 @@ public class Storage extends BaseEntity @Excel(name = "存放位置ID") @ApiModelProperty("存放位置ID") - @NotNull(message = "存放位置ID不能为空",groups = {ValidGroup.Create.class}) private Long locationId; @Excel(name = "店铺ID") @ApiModelProperty("店铺ID") - @NotNull(message = "店铺ID不能为空",groups = {ValidGroup.Create.class}) private Long storeId; + @Excel(name = "商品ID") + @ApiModelProperty("商品ID不能为空") + @NotNull(message = "商品ID不能为空",groups = {ValidGroup.Create.class}) + private Long goodsId; + @Excel(name = "用户ID") @ApiModelProperty("用户ID") - @NotNull(message = "用户ID不能为空",groups = {ValidGroup.Create.class}) private Long userId; @Excel(name = "商品skuID") @ApiModelProperty("商品skuID") - @NotNull(message = "商品skuID不能为空",groups = {ValidGroup.Create.class}) private Long skuId; @Excel(name = "商品名称") @ApiModelProperty("商品名称") - @NotBlank(message = "商品名称不能为空",groups = {ValidGroup.Create.class}) private String goodsName; @Excel(name = "存放数量") @@ -67,10 +68,9 @@ public class Storage extends BaseEntity @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "存放期限", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("存放期限") - private Date deadline; + private LocalDateTime deadline; @ApiModelProperty("规格值列表") - @NotNull(message = "规格值列表不能为空",groups = {ValidGroup.Create.class}) private List specValue; @Excel(name = "存放状态") diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/StorageQuery.java b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/StorageQuery.java index 6b9a105..b5561af 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/StorageQuery.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/StorageQuery.java @@ -17,4 +17,6 @@ public class StorageQuery extends StorageVO{ @ApiModelProperty("是否被取完") private Boolean takenAll; + + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/StorageVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/StorageVO.java index c4306ad..5d6bc5b 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/StorageVO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/StorageVO.java @@ -10,9 +10,6 @@ public class StorageVO extends Storage{ @ApiModelProperty("用户名称") private String userName; - @ApiModelProperty("商品名称") - private String goodsName; - @ApiModelProperty("店铺名称") private String storeName; @@ -22,9 +19,6 @@ public class StorageVO extends Storage{ @ApiModelProperty("当前数量") private Integer currentNum; - @ApiModelProperty("商品ID") - private Long goodsId; - public Integer getCurrentNum() { return getTotalNum() - getTakenNum(); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/dto/DepositStorageDTO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/dto/DepositStorageDTO.java index 1bce961..c65fac2 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/dto/DepositStorageDTO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/domain/dto/DepositStorageDTO.java @@ -1,17 +1,23 @@ package com.ruoyi.bst.storage.domain.dto; import com.ruoyi.bst.storage.domain.Storage; +import com.ruoyi.bst.storage.domain.StorageVO; import com.ruoyi.common.core.validate.ValidGroup; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.Valid; import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; import java.util.List; @Data public class DepositStorageDTO { + @ApiModelProperty("店铺ID") + @NotNull(message = "店铺ID不能为空",groups = ValidGroup.Create.class) + private Long storeId; + @ApiModelProperty("用户电话") @NotNull(message = "用户电话不能为空",groups = ValidGroup.Create.class) private String phone; @@ -19,9 +25,17 @@ public class DepositStorageDTO { @ApiModelProperty("备注") private String remark; + @ApiModelProperty("存放位置ID") + @NotNull(message = "存放位置ID不能为空",groups = ValidGroup.Create.class) + private Long locationId; + + @ApiModelProperty("存放天数") + private Integer storageDays; + @Valid @ApiModelProperty("存酒信息") @NotNull(message = "存酒信息不能为空",groups = ValidGroup.Create.class) private List storage; + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/mapper/StorageMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/mapper/StorageMapper.xml index 26f03b5..b576f78 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/mapper/StorageMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/mapper/StorageMapper.xml @@ -10,7 +10,6 @@ - @@ -19,6 +18,7 @@ + @@ -32,12 +32,10 @@ bst.total_num, bst.taken_num, bst.deadline, - bst.spec_value, bst.remark, bst.create_time, bst.status, bg.name as goods_name, - bg.id as goods_id, bstor.store_name, su.user_name, bl.name as location_name @@ -47,8 +45,7 @@ bst_storage bst - left join bst_sku bsk on bst.sku_id = bsk.id - left join bst_goods bg on bsk.goods_id = bg.id + left join bst_goods bg on bst.goods_id = bg.id left join sys_user su on bst.user_id = su.user_id left join bst_store bstor on bst.store_id = bstor.store_id left join bst_location bl on bst.location_id = bl.id @@ -165,13 +162,13 @@ store_id, user_id, sku_id, - goods_name, total_num, taken_num, deadline, spec_value, remark, create_time, + goods_id, values @@ -184,8 +181,6 @@ default, #{i.skuId}, default, - #{i.goodsName}, - default, #{i.totalNum}, default, #{i.takenNum}, @@ -200,6 +195,8 @@ default, #{i.createTime}, default, + #{i.goodsId}, + default, diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/service/StorageAssembler.java b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/service/StorageAssembler.java new file mode 100644 index 0000000..1f0c39d --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/service/StorageAssembler.java @@ -0,0 +1,17 @@ +package com.ruoyi.bst.storage.service; + +import com.ruoyi.bst.spec.domain.SpecVO; +import com.ruoyi.bst.storage.domain.Storage; +import com.ruoyi.bst.storage.domain.StorageVO; + +import java.util.List; + +public interface StorageAssembler { + + /** + * 拼接规格值列表 + * @param list 规格项列表 + */ + void assembleGoodsName(List list); + +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/service/impl/StorageAssemblerImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/service/impl/StorageAssemblerImpl.java new file mode 100644 index 0000000..a047c40 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/service/impl/StorageAssemblerImpl.java @@ -0,0 +1,61 @@ +package com.ruoyi.bst.storage.service.impl; + +import com.ruoyi.bst.goods.domain.GoodsQuery; +import com.ruoyi.bst.goods.mapper.GoodsMapper; +import com.ruoyi.bst.goods.service.GoodsAssembler; +import com.ruoyi.bst.goods.service.GoodsService; +import com.ruoyi.bst.sku.domain.SkuQuery; +import com.ruoyi.bst.sku.domain.SkuVO; +import com.ruoyi.bst.sku.mapper.SkuMapper; +import com.ruoyi.bst.spec.domain.SpecVO; +import com.ruoyi.bst.spec.service.SpecAssembler; +import com.ruoyi.bst.specValue.domain.SpecValueQuery; +import com.ruoyi.bst.specValue.domain.SpecValueVO; +import com.ruoyi.bst.specValue.service.SpecValueService; +import com.ruoyi.bst.storage.domain.Storage; +import com.ruoyi.bst.storage.domain.StorageQuery; +import com.ruoyi.bst.storage.domain.StorageVO; +import com.ruoyi.bst.storage.mapper.StorageMapper; +import com.ruoyi.bst.storage.service.StorageAssembler; +import com.ruoyi.common.core.domain.vo.UserVO; +import com.ruoyi.common.domain.vo.LongIntegerVO; +import com.ruoyi.common.domain.vo.LongStringVO; +import com.ruoyi.common.utils.collection.CollectionUtils; +import javafx.util.converter.LongStringConverter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class StorageAssemblerImpl implements StorageAssembler { + + @Autowired + private SpecValueService specValueService; + @Autowired + private StorageMapper storageMapper; + @Autowired + private SkuMapper skuMapper; + @Autowired + private GoodsService goodsService; + + @Override + public void assembleGoodsName(List list) { + if (CollectionUtils.isEmptyElement(list)) { + return; + } + List goodsIds = list.stream().map(Storage::getGoodsId).collect(Collectors.toList()); + GoodsQuery query = new GoodsQuery(); + query.setGoodsIds(goodsIds); + + Map idToNameMap = goodsService.selectGoodsNameGroupById(query) + .stream().collect(Collectors.toMap(LongStringVO::getKey, LongStringVO::getValue)); + for (Storage storage : list) { + storage.setGoodsName(idToNameMap.get(storage.getGoodsId())); + } + + } +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/service/impl/StorageServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/service/impl/StorageServiceImpl.java index 9afa6fd..78051f3 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/storage/service/impl/StorageServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/storage/service/impl/StorageServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.bst.storage.service.impl; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -7,11 +8,14 @@ import java.util.Map; import java.util.stream.Collectors; import com.github.pagehelper.PageHelper; +import com.ruoyi.bst.goods.service.GoodsAssembler; import com.ruoyi.bst.location.domain.LocationQuery; import com.ruoyi.bst.location.domain.LocationVO; +import com.ruoyi.bst.sku.service.SkuService; import com.ruoyi.bst.storage.domain.dto.DepositStorageDTO; import com.ruoyi.bst.storage.domain.dto.TakeOutWineDTO; import com.ruoyi.bst.storage.domain.enums.StorageStatus; +import com.ruoyi.bst.storage.service.StorageAssembler; import com.ruoyi.bst.storageRecord.domain.StorageRecord; import com.ruoyi.bst.storageRecord.service.StorageRecordService; import com.ruoyi.bst.storeStaff.domain.enums.StoreStaffPermission; @@ -47,6 +51,12 @@ public class StorageServiceImpl implements StorageService { private StorageService storageService; @Autowired private UserService userService; + @Autowired + private SkuService skuService; + @Autowired + private GoodsAssembler goodsAssembler; + @Autowired + private StorageAssembler storageAssembler; /** * 查询存酒 @@ -139,9 +149,13 @@ public class StorageServiceImpl implements StorageService { UserVO user = userService.selectUserByPhonenumber(dto.getPhone()); ServiceUtil.assertion(user == null,"当前用户不存在"); + storageAssembler.assembleGoodsName(dto.getStorage()); // 设置对应属性进行批量插入 dto.getStorage().forEach(storage -> { storage.setRemark(dto.getRemark()); + storage.setStoreId(dto.getStoreId()); + storage.setLocationId(dto.getLocationId()); + storage.setDeadline(LocalDateTime.now().plusDays(dto.getStorageDays())); storage.setCreateTime(DateUtils.getNowDate()); storage.setUserId(user.getUserId()); list.add(storage); diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/storageRecord/domain/StorageRecordQuery.java b/ruoyi-service/src/main/java/com/ruoyi/bst/storageRecord/domain/StorageRecordQuery.java index 5e5584a..cf76748 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/storageRecord/domain/StorageRecordQuery.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/storageRecord/domain/StorageRecordQuery.java @@ -1,7 +1,12 @@ package com.ruoyi.bst.storageRecord.domain; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class StorageRecordQuery extends StorageRecordVO{ + + @ApiModelProperty("商品名称") + private String goodsName; + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/storageRecord/mapper/StorageRecordMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/storageRecord/mapper/StorageRecordMapper.xml index 1772402..02f8538 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/storageRecord/mapper/StorageRecordMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/storageRecord/mapper/StorageRecordMapper.xml @@ -33,7 +33,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bg.id as goods_id, su.user_name, bst.goods_name, - bst.spec_value, bst.total_num, bst.taken_num from @@ -53,8 +52,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bsr.store_id = #{query.storeId} and bsr.user_id = #{query.userId} and bsr.reason = #{query.reason} - and bs.store_name = #{query.storeName} - and su.user_name = #{query.userName} + and bs.store_name like concat ('%',#{query.storeName},'%') + and su.user_name like concat ('%',#{query.userName},'%') + and bg.name like concat ('%',#{query.goodsName},'%') and bsr.umber = #{query.number} ${@com.ruoyi.framework.util.DataScopeUtil@create(query.scope) .userSetAlias("bs.user_id") diff --git a/ruoyi-service/src/main/java/com/ruoyi/common/domain/vo/LongStringVO.java b/ruoyi-service/src/main/java/com/ruoyi/common/domain/vo/LongStringVO.java new file mode 100644 index 0000000..5f09b53 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/common/domain/vo/LongStringVO.java @@ -0,0 +1,11 @@ +package com.ruoyi.common.domain.vo; + +import lombok.Data; + +@Data +public class LongStringVO { + + private Long key; + + private String value; +} diff --git a/ruoyi-web/src/main/java/com/ruoyi/task/chat/ChatTask.java b/ruoyi-web/src/main/java/com/ruoyi/task/chat/ChatTask.java index 590a3df..b030d16 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/task/chat/ChatTask.java +++ b/ruoyi-web/src/main/java/com/ruoyi/task/chat/ChatTask.java @@ -34,10 +34,8 @@ public class ChatTask { List cacheList = redisCache.getAndClearCacheList(pendingKey); - // TODO 批量新增主表 List chatList = CollectionUtils.map(cacheList, ChatCacheDTO::getChat); - // TODO 获取子表数据,并扁平化 List msgList = cacheList.stream().map(ChatCacheDTO::getMsgList).flatMap(Collection::stream).collect(Collectors.toList()); // 数据库操作 diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppStorageController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppStorageController.java index 5fb0985..f6d2520 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppStorageController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppStorageController.java @@ -26,9 +26,11 @@ public class AppStorageController extends BaseController { @ApiOperation("我的存酒信息") @GetMapping("/myWine") public TableDataInfo myWine(@RequestParam Long storeId) { + startPage(); StorageQuery query = new StorageQuery(); query.setUserId(getUserId()); query.setStoreId(storeId); + query.setTakenAll(false); return getDataTable(storageService.selectStorageList(query)); } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/GoodsController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/GoodsController.java index 8fdaf51..ecc0221 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/GoodsController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/GoodsController.java @@ -3,6 +3,7 @@ package com.ruoyi.web.bst; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.ruoyi.bst.goods.service.GoodsAssembler; import com.ruoyi.bst.goods.service.GoodsConverter; import com.ruoyi.bst.goods.service.GoodsService; import com.ruoyi.bst.goods.service.GoodsValidator; diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/StorageController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/StorageController.java index 15b1cc4..3bea87f 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/StorageController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/StorageController.java @@ -62,7 +62,7 @@ public class StorageController extends BaseController * 导出存酒列表 */ @PreAuthorize("@ss.hasPermi('bst:storage:export')") - @Log(title = "存酒", businessType = BusinessType.EXPORT) + @Log(title = "导出存酒列表", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, StorageQuery query) { @@ -98,7 +98,7 @@ public class StorageController extends BaseController * 修改存酒 */ @PreAuthorize("@ss.hasPermi('bst:storage:edit')") - @Log(title = "存酒", businessType = BusinessType.UPDATE) + @Log(title = "修改存酒信息", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody @Validated(ValidGroup.Update.class) Storage storage) { @@ -115,6 +115,14 @@ public class StorageController extends BaseController @Log(title = "存酒", businessType = BusinessType.OTHER) @PutMapping("/storageWine") public AjaxResult storageWine(@RequestBody @Validated(ValidGroup.Create.class) DepositStorageDTO dto) { + // 权限校验 + List ids = new ArrayList<>(); + dto.getStorage().forEach(storage -> { + ids.add(storage.getId()); + }); + if (!storageValidator.canEdit(ids)){ + return AjaxResult.error("您无权限修改当前存酒信息"); + } return AjaxResult.success(storageService.storageWine(dto)); }