Просмотр исходного кода

Merge branch 'master' of http://gogs.chelvc.com/wuyongqiang/maintain

woody 1 год назад
Родитель
Сommit
0cd99908e1

+ 52 - 0
src/main/java/com/chelvc/cloud/maintain/controller/ScoreController.java

@@ -0,0 +1,52 @@
+package com.chelvc.cloud.maintain.controller;
+
+import com.chelvc.cloud.maintain.copier.ScoreCopier;
+import com.chelvc.cloud.maintain.vo.ScoreVO;
+import com.chelvc.cloud.uc.api.dto.ScoreDTO;
+import com.chelvc.cloud.uc.api.param.ScorePagingParam;
+import com.chelvc.cloud.uc.api.service.ScoreService;
+import com.chelvc.framework.base.annotation.ResponseWrapping;
+import com.chelvc.framework.common.model.Pagination;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 积分接口
+ *
+ * @author qizai
+ * @date 2023/9/6
+ */
+@Validated
+@RestController
+@ResponseWrapping
+public class ScoreController {
+    @DubboReference
+    private ScoreService scoreService;
+
+    /**
+     * 查询用户积分明细分页信息
+     *
+     * @param param 查询参数
+     * @return 积分明细分页信息
+     */
+    @GetMapping("/score/paging")
+    public Pagination<ScoreVO> getCustomerScorePaging(@Valid ScorePagingParam param) {
+        Pagination<ScoreDTO> pagination = this.scoreService.getScorePaging(param);
+        List<ScoreDTO> records = pagination.getRecords();
+        if (CollectionUtils.isEmpty(records)) {
+            return Pagination.empty();
+        }
+
+        // 构建积分明细信息
+        List<ScoreVO> scoreDetails = records.stream().map(o -> ScoreCopier.INSTANCE.copying(o))
+                .collect(Collectors.toList());
+        return pagination.convert(scoreDetails);
+    }
+}

+ 44 - 0
src/main/java/com/chelvc/cloud/maintain/copier/ScoreCopier.java

@@ -0,0 +1,44 @@
+package com.chelvc.cloud.maintain.copier;
+
+import com.chelvc.cloud.maintain.vo.ScoreVO;
+import com.chelvc.cloud.uc.api.dto.ScoreDTO;
+import org.mapstruct.Builder;
+import org.mapstruct.IterableMapping;
+import org.mapstruct.Mapper;
+import org.mapstruct.Named;
+import org.mapstruct.factory.Mappers;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 积分记录对象拷贝接口
+ *
+ * @author qizai
+ * @Date 2023/9/6
+ **/
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface ScoreCopier {
+    /**
+     * 对象拷贝接口实例
+     */
+    ScoreCopier INSTANCE = Mappers.getMapper(ScoreCopier.class);
+
+    /**
+     * 积分记录拷贝
+     *
+     * @param score 积分记录
+     * @return 积分记录
+     */
+    @Named("dto2vo")
+    ScoreVO copying(ScoreDTO score);
+
+    /**
+     * 积分记录拷贝
+     *
+     * @param scores 积分记录集合
+     * @return 积分记录列表
+     */
+    @IterableMapping(qualifiedByName = "dto2vo")
+    List<ScoreVO> copying(Collection<ScoreDTO> scores);
+}

+ 51 - 0
src/main/java/com/chelvc/cloud/maintain/vo/ScoreVO.java

@@ -0,0 +1,51 @@
+package com.chelvc.cloud.maintain.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 积分记录信息
+ *
+ * @Author qizai
+ * @Date 2023/9/6
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ScoreVO implements Serializable {
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 积分值
+     */
+    private Integer value;
+
+    /**
+     * 积分来源
+     */
+    private String origin;
+
+    /**
+     * 积分备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+}