Przeglądaj źródła

Merge branch 'dev' into 'mp-server-test'

Dev

See merge request quanshu/mp-server!746
jiang hao 2 lat temu
rodzic
commit
2a68c6cc7c

+ 43 - 10
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserMineController.java

@@ -3,15 +3,13 @@ package com.qs.mp.web.controller.api.user;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.qs.mp.admin.domain.Ticket;
 import com.qs.mp.admin.domain.vo.TicketListVO;
 import com.qs.mp.admin.service.IGoodsService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
-import com.qs.mp.common.enums.PrizeStorageStatusEnum;
-import com.qs.mp.common.enums.TicketPrizeTypeEnum;
-import com.qs.mp.common.enums.TicketStatusEnum;
-import com.qs.mp.common.enums.UserCouponStatusEnum;
+import com.qs.mp.common.enums.*;
 import com.qs.mp.common.utils.DateUtils;
 import com.qs.mp.common.utils.StringUtils;
 import com.qs.mp.user.domain.UserCoin;
@@ -19,6 +17,7 @@ import com.qs.mp.user.domain.UserCoinLog;
 import com.qs.mp.user.domain.UserCoupon;
 import com.qs.mp.user.domain.UserPrizeStorage;
 import com.qs.mp.user.domain.param.UserPrizeStorageQueryParam;
+import com.qs.mp.user.domain.param.UserPrizeStorageUpdateParam;
 import com.qs.mp.user.domain.vo.UserCouponVO;
 import com.qs.mp.user.domain.vo.UserPrizeStorageVO;
 import com.qs.mp.user.service.IUserCoinLogService;
@@ -42,6 +41,7 @@ import ma.glasnost.orika.MapperFacade;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
+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;
@@ -159,14 +159,47 @@ public class UserMineController extends BaseApiController {
   public TableDataInfo listPrize(@RequestBody JSONObject param) {
     Long userId = SecurityUtils.getLoginUser().getUserId();
     startPage();
-    List<UserPrizeStorage> userPrizeStorageList = userPrizeStorageService.list(
-            new LambdaQueryWrapper<UserPrizeStorage>()
-                    .eq(UserPrizeStorage::getUserId, userId)
-                    .eq(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.NOT_DISTRIBUTED)
-                    .orderByDesc(UserPrizeStorage::getCreatedTime));
-    return getDataTable(userPrizeStorageList);
+    QueryWrapper<UserPrizeStorage> queryWrapper = new QueryWrapper<>();
+    queryWrapper.eq("t1.user_id", userId);
+    queryWrapper.eq("t1.status", PrizeStorageStatusEnum.NOT_DISTRIBUTED);
+    queryWrapper.orderByDesc("t1.created_time");
+    List<UserPrizeStorageVO> userPrizeStorageVOList = userPrizeStorageService.listByQueryWrapper(queryWrapper);
+    return getDataTable(userPrizeStorageVOList);
   }
 
+
+  @PostMapping("/prize/saveSku")
+  @ApiOperation("设置实物奖品的SKU")
+  @ApiResponses(
+          @ApiResponse(code = 200, message = "success")
+  )
+  public AjaxResult saveSku(@Validated @RequestBody UserPrizeStorageUpdateParam userPrizeStorageUpdateParam) {
+    UserPrizeStorage userPrizeStorage = userPrizeStorageService.getById(userPrizeStorageUpdateParam.getStorageId());
+    if (userPrizeStorage == null) {
+      return AjaxResult.error("奖品存储ID不正确");
+    }
+
+    if (PrizeStorageInTypeEnum.COIN_EXCHANGE.equals(userPrizeStorage.getInType())) {
+      return AjaxResult.error("当前来源不支持选择规格");
+    }
+
+    if (userPrizeStorage.getSkuId() != null) {
+      return AjaxResult.error("非法调用,已存在规格");
+    }
+
+    // 保存商品的sku信息
+    boolean rtn = userPrizeStorageService.update(new LambdaUpdateWrapper<UserPrizeStorage>()
+            .set(UserPrizeStorage::getSkuId, userPrizeStorageUpdateParam.getSkuId())
+            .set(UserPrizeStorage::getProperties, userPrizeStorageUpdateParam.getProperties())
+            .eq(UserPrizeStorage::getStorageId, userPrizeStorageUpdateParam.getStorageId()));
+    if (!rtn) {
+      return AjaxResult.error("保存规格失败,请重试");
+    }
+
+    return AjaxResult.success();
+  }
+
+
   /**
    * 我的
    */

+ 29 - 0
mp-service/src/main/java/com/qs/mp/user/domain/param/UserPrizeStorageUpdateParam.java

@@ -0,0 +1,29 @@
+package com.qs.mp.user.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author Cup
+ * @date 2022/6/20
+ */
+@ApiModel(value = "用户实物奖品更新入参类")
+@Data
+public class UserPrizeStorageUpdateParam {
+
+    @NotBlank(message = "奖品存储ID不能为空")
+    @ApiModelProperty("奖品存储id")
+    private String storageId;
+
+    @NotNull(message = "skuId不能为空")
+    @ApiModelProperty("skuId")
+    private Long skuId;
+
+    @NotBlank(message = "sku属性不能为空")
+    @ApiModelProperty("sku属性")
+    private String properties;
+}

+ 3 - 0
mp-service/src/main/java/com/qs/mp/user/domain/vo/UserPrizeStorageVO.java

@@ -15,4 +15,7 @@ import java.math.BigDecimal;
 @ApiModel("用户事务奖品库出参类")
 @Data
 public class UserPrizeStorageVO extends UserPrizeStorage {
+
+    @ApiModelProperty("是否多sku: 0否,1是")
+    private Integer isMoreSku;
 }

+ 12 - 0
mp-service/src/main/java/com/qs/mp/user/mapper/UserPrizeStorageMapper.java

@@ -1,7 +1,13 @@
 package com.qs.mp.user.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.user.domain.UserPrizeStorage;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.mp.user.domain.vo.UserPrizeStorageVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @auther quanshu
@@ -10,4 +16,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface UserPrizeStorageMapper extends BaseMapper<UserPrizeStorage> {
 
+    /**
+     * 根据条件查询用户奖品库信息
+     * @param queryWrapper
+     * @return
+     */
+    List<UserPrizeStorageVO> listByQueryWrapper(@Param(Constants.WRAPPER) QueryWrapper<UserPrizeStorage> queryWrapper);
 }

+ 11 - 0
mp-service/src/main/java/com/qs/mp/user/service/IUserPrizeStorageService.java

@@ -1,9 +1,13 @@
 package com.qs.mp.user.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.qs.mp.common.enums.PrizeStorageInTypeEnum;
 import com.qs.mp.user.domain.UserPrizeStorage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qs.mp.user.domain.vo.UserPrizeStorageVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -23,4 +27,11 @@ public interface IUserPrizeStorageService extends IService<UserPrizeStorage> {
    * @param refId
    */
   void takeInStorage(Long userId, String title, String picUrl, String goodsId, PrizeStorageInTypeEnum inTypeEnum, String refId);
+
+  /**
+   * 根据条件查询用户奖品库信息
+   * @param queryWrapper
+   * @return
+   */
+  List<UserPrizeStorageVO> listByQueryWrapper(QueryWrapper<UserPrizeStorage> queryWrapper);
 }

+ 11 - 1
mp-service/src/main/java/com/qs/mp/user/service/impl/UserPrizeStorageServiceImpl.java

@@ -1,18 +1,22 @@
 package com.qs.mp.user.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.qs.mp.common.enums.PrizeStorageInTypeEnum;
 import com.qs.mp.common.enums.PrizeStorageStatusEnum;
 import com.qs.mp.system.service.id.BizIdGenerator;
 import com.qs.mp.user.domain.UserPrizeStorage;
+import com.qs.mp.user.domain.vo.UserPrizeStorageVO;
 import com.qs.mp.user.mapper.UserPrizeStorageMapper;
 import com.qs.mp.user.service.IUserPrizeStorageService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 用户实物奖品仓库 服务实现类
@@ -26,7 +30,13 @@ public class UserPrizeStorageServiceImpl extends ServiceImpl<UserPrizeStorageMap
   @Autowired
   private BizIdGenerator bizIdGenerator;
 
-  @Override
+
+    @Override
+    public List<UserPrizeStorageVO> listByQueryWrapper(QueryWrapper<UserPrizeStorage> queryWrapper) {
+        return getBaseMapper().listByQueryWrapper(queryWrapper);
+    }
+
+    @Override
   public void takeInStorage(Long userId, String title, String picUrl, String goodsId, PrizeStorageInTypeEnum inTypeEnum, String refId) {
       UserPrizeStorage userPrizeStorage = new UserPrizeStorage();
       userPrizeStorage.setStorageId(bizIdGenerator.newIdWithUidSharding(String.valueOf(userId)));

+ 6 - 0
mp-service/src/main/resources/mapper/user/UserPrizeStorageMapper.xml

@@ -24,4 +24,10 @@
         storage_id, user_id, goods_id, sku_id, properties, title, pic_url, goods_num, in_type, ref_id, status, created_time, updated_time
     </sql>
 
+    <select id="listByQueryWrapper" resultType="com.qs.mp.user.domain.vo.UserPrizeStorageVO">
+        select t1.*, t2.sku_prop ,IF(t2.sku_prop is null, 0, 1) isMoreSku
+        from mp_user_prize_storage t1
+         left join mp_goods t2 on t1.goods_id = t2.goods_id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>