浏览代码

中台列表详情审核需求开发

ldz 1 月之前
父节点
当前提交
cb5b5d349b

+ 18 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeUserExpert.java

@@ -74,4 +74,22 @@ public class LifeUserExpert extends Model<LifeUserExpert> {
     @TableField(value = "add_explanation")
     private String addExplanation;
 
+    @ApiModelProperty(value = "拒绝原因 ")
+    @TableField(value = "refuse_because")
+    private String refuseBecause;
+
+    @ApiModelProperty(value = "审核时间 ")
+    @TableField(value = "review_time")
+    private Date reviewTime;
+
+    @ApiModelProperty(value = "佣金比例 ")
+    @TableField(value = "commission_rate")
+    private Integer commissionRate;
+
+    @ApiModelProperty(value = "预付款比例 ")
+    @TableField(value = "advance_rate")
+    private Integer advanceRate;
+
+
+
 }

+ 17 - 1
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserExpertVo.java

@@ -100,6 +100,22 @@ public class LifeUserExpertVo extends LifeUserExpert {
     private List<Map<String, String>> sexPercentageList;
 
     @ApiModelProperty(value = "审核状态  0审核通过 1审核中 2审核未通过")
-    private Integer expertStuats;
+    private Integer expertStatus;
+
+    @ApiModelProperty(value = "推广类型")
+    private String promoteType;
+
+    @ApiModelProperty(value = "补充说明")
+    private String addExplanation;
+
+    @ApiModelProperty(value = "图片路径")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "拒绝原因")
+    private String refuseBecause;
+
+    @ApiModelProperty(value = "审核时间")
+    private Date reviewTime;
+
 
 }

+ 15 - 4
alien-entity/src/main/java/shop/alien/mapper/LifeUserExpertMapper.java

@@ -190,16 +190,27 @@ public interface LifeUserExpertMapper extends BaseMapper<LifeUserExpert> {
     @Select("select * from life_user_expert where user_id = #{userId} and delete_flag = 1")
     LifeUserExpert selectIsExpert(Integer userId);
 
-    @Update("update life_user_expert set expert_code = #{expertCode},expert_status = #{expertStatus},delete_flag = '0'" +
+    @Select("select * from life_user_expert where id = #{id} ")
+    LifeUserExpert selectIsExpertById(Integer id);
+
+    @Update("update life_user_expert set expert_code = #{expertCode},expert_status = #{expertStatus},delete_flag = '0',review_time =#{reviewTime} ,commission_rate =#{commissionRate},refuse_because=#{refuseBecause},advance_rate=#{advanceRate} " +
             "where id = #{id}")
     Boolean updateExpert(LifeUserExpert lifeUserExpert);
 
     @Select(
-            "select expert.* ,user.*" +
+            "select   expert.* ,img.promote_type,user.* "+
                     "from life_user_expert expert " +
                     "join life_user user on user.id = expert.user_id " +
-                    "where expert.expert_status = 1 and orders.expert_id = #{expertId} ")
+                    "left join expert_img img on img.user_id = expert.user_id " +
+                    "${ew.customSqlSegment}")
+    List<LifeUserExpertVo> getApplicationExpertList(@Param(Constants.WRAPPER) QueryWrapper<LifeUserExpertVo> wrapper);
+
 
-    IPage<LifeUserExpertVo> getApplicationExpertList(IPage<LifeUserExpertVo> iPage, @Param(Constants.WRAPPER) QueryWrapper<LifeUserExpertVo> wrapper);
+    @Select(
+            "select   expert.* ,user.* "+
+                    "from life_user_expert expert " +
+                    "join life_user user on user.id = expert.user_id " +
+                    "where expert.user_id=#{userId}")
+    LifeUserExpertVo getViewDetails(Integer userId);
 
 }

+ 5 - 1
alien-entity/src/main/resources/mapper/LifeUserExpertMapper.xml

@@ -14,11 +14,15 @@
         <result column="updated_user_id" property="updatedUserId" />
         <result column="expert_status" property="expertStatus" />
         <result column="add_explanation" property="addExplanation" />
+        <result column="refuse_because" property="refuseBecause" />
+        <result column="review_time" property="reviewTime" />
+        <result column="commission_rate" property="commissionRate" />
+        <result column="advance_rate" property="advanceRate" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, user_id, expert_code, delete_flag, created_time, created_user_id, updated_time, updated_user_id,expert_status, add_explanation
+        id, user_id, expert_code, delete_flag, created_time, created_user_id, updated_time, updated_user_id,expert_status, add_explanation,refuse_because,review_time,commission_rate,advance_rate
     </sql>
 
 </mapper>

+ 25 - 8
alien-store/src/main/java/shop/alien/store/controller/LifeUserExpertController.java

@@ -2,6 +2,7 @@ package shop.alien.store.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.*;
+import lombok.Data;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.CrossOrigin;
@@ -57,13 +58,15 @@ public class LifeUserExpertController {
     @ApiOperationSupport(order = 3)
     @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "用户id", dataType = "Integer", paramType = "query", required = true),
             @ApiImplicitParam(name = "userPhone", value = "用户电话", dataType = "String", paramType = "query", required = true),
-            @ApiImplicitParam(name = "comment", value = "拒绝原因", dataType = "String", paramType = "query", required = true),
+            @ApiImplicitParam(name = "comment", value = "拒绝原因", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "commissionRate", value = "佣金比例", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "advanceRate", value = "预付款比例", dataType = "Integer", paramType = "query"),
             @ApiImplicitParam(name = "expertStatus", value = "审核状态 通过0 审核中1 拒绝2", dataType = "Integer", paramType = "query", required = true)})
 //    @ApiImplicitParam(name = "expertType", value = "达人类型", dataType = "String", paramType = "query", required = true)})
     @GetMapping("/becomeExpert")
-    public R<Boolean> becomeExpert(Integer id,  String userPhone, String comment, Integer expertStatus) {
-        log.info("LifeUserExpertController.becomeExpert?id={},expertType={}", id, expertStatus);
-        return R.data(lifeUserExpertService.becomeExpert(id, userPhone,comment,expertStatus));
+    public R<Boolean> becomeExpert(Integer id,  String userPhone, String comment, Integer expertStatus ,Integer commissionRate, Integer advanceRate) {
+        log.info("LifeUserExpertController.becomeExpert?id={},userPhone={},comment={},expertStatus={}", id, userPhone,comment,expertStatus);
+        return R.data(lifeUserExpertService.becomeExpert(id, userPhone,comment,expertStatus,commissionRate, advanceRate));
     }
 
     @ApiOperation("取消达人")
@@ -111,12 +114,26 @@ public class LifeUserExpertController {
     @ApiOperationSupport(order = 9)
     @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "分页页数", dataType = "Integer", paramType = "query", required = true),
             @ApiImplicitParam(name = "size", value = "分页条数", dataType = "Integer", paramType = "query", required = true),
-            @ApiImplicitParam(name = "userName", value = "姓名", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "userName", value = "用户昵称", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "realName", value = "真实姓名", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "userPhone", value = "联系电话", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "expertStatus", value = "审核状态", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "createdTime", value = "开始时间", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "endTime", value = "结束时间", dataType = "String", paramType = "query"),
             @ApiImplicitParam(name = "userId", value = "用户id", dataType = "String", paramType = "query")})
     @GetMapping("/getApplicationExpertList")
-    public R<IPage<LifeUserExpertVo>> getApplicationExpertList(Integer page, Integer size, String userName, String expertCode, Integer userId) {
-        log.info("LifeUserExpertController.getUserExpertList?page={},size={},userName={},phone={},userId={}", page, size, userName, expertCode, userId);
-        return R.data(lifeUserExpertService.getApplicationExpertList(page, size, userName, expertCode, userId));
+    public R<IPage<LifeUserExpertVo>> getApplicationExpertList(Integer page, Integer size, String userName, String realName, String userPhone, Integer expertStatus, String createdTime, String endTime , Integer userId) {
+        log.info("LifeUserExpertController.getApplicationExpertList?page={},size={},userName={},userName={},realName={},userPhone={},expertStatus={},createdTime={},endTime={},userId={}", page, size, userName,realName,userPhone,expertStatus,createdTime,endTime,userId);
+        return R.data(lifeUserExpertService.getApplicationExpertList(page, size, userName, realName, userPhone, expertStatus, createdTime, endTime, userId));
+    }
+
+    @ApiOperation("查看详情")
+    @ApiOperationSupport(order = 10)
+    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "用户id", dataType = "String", paramType = "query")})
+    @GetMapping("/getViewDetails")
+    public R<LifeUserExpertVo> getViewDetails( Integer userId) {
+        log.info("LifeUserExpertController.getViewDetails?userId={}",userId);
+        return R.data(lifeUserExpertService.getViewDetails(userId));
     }
 
 

+ 5 - 2
alien-store/src/main/java/shop/alien/store/service/LifeUserExpertService.java

@@ -2,6 +2,7 @@ package shop.alien.store.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import lombok.Data;
 import shop.alien.entity.store.LifeUserExpert;
 import shop.alien.entity.store.vo.ExpertGoodsTypeVo;
 import shop.alien.entity.store.vo.LifeUserExpertOrderVo;
@@ -23,7 +24,7 @@ public interface LifeUserExpertService extends IService<LifeUserExpert> {
 
     IPage<LifeUserExpertOrderVo> getExpertOrderList(int page, int size, Integer expertId, String orderNo, String storeName, Integer storeId);
 
-    boolean becomeExpert(Integer id, String userPhone,String comment,Integer expertStatus);
+    boolean becomeExpert(Integer id,  String userPhone, String comment, Integer expertStatus ,Integer commissionRate, Integer advanceRate);
 
     boolean cancelExpert(Integer id);
 
@@ -41,5 +42,7 @@ public interface LifeUserExpertService extends IService<LifeUserExpert> {
      */
     List<ExpertGoodsTypeVo> greatGoodsType(Integer expertId);
 
-    IPage<LifeUserExpertVo> getApplicationExpertList(int page, int size, String userName, String expertCode, Integer userId);
+    IPage<LifeUserExpertVo> getApplicationExpertList(Integer page, Integer size, String userName, String realName, String userPhone, Integer expertStatus, String createdTime, String endTime , Integer userId);
+
+    LifeUserExpertVo getViewDetails(Integer expertId);
 }

+ 65 - 28
alien-store/src/main/java/shop/alien/store/service/impl/LifeUserExpertServiceImpl.java

@@ -14,12 +14,9 @@ import shop.alien.entity.store.*;
 import shop.alien.entity.store.vo.ExpertGoodsTypeVo;
 import shop.alien.entity.store.vo.LifeUserExpertOrderVo;
 import shop.alien.entity.store.vo.LifeUserExpertVo;
-import shop.alien.mapper.LifeNoticeMapper;
-import shop.alien.mapper.LifeUserExpertMapper;
-import shop.alien.mapper.LifeUserExpertOrderMapper;
-import shop.alien.mapper.LifeUserExpertWorksMapper;
-import shop.alien.store.service.LifeUserExpertOrderService;
+import shop.alien.mapper.*;
 import shop.alien.store.service.LifeUserExpertService;
+import shop.alien.util.common.ListToPage;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -46,7 +43,7 @@ public class LifeUserExpertServiceImpl extends ServiceImpl<LifeUserExpertMapper,
     private final LifeUserExpertMapper lifeUserExpertMapper;
 
     private final LifeUserExpertWorksMapper lifeUserExpertWorksMapper;
-    private final LifeUserExpertOrderService lifeUserExpertOrderService;
+    private final ExpertImgMapper expertImgMapper;
     private final LifeUserExpertOrderMapper lifeUserExpertOrderMapper;
     private final LifeNoticeMapper lifeNoticeMapper;
 
@@ -76,25 +73,32 @@ public class LifeUserExpertServiceImpl extends ServiceImpl<LifeUserExpertMapper,
     }
 
     @Override
-    public boolean becomeExpert(Integer id, String userPhone ,String comment ,Integer expertStatus) {
+    public boolean becomeExpert(Integer id,  String userPhone, String comment, Integer expertStatus ,Integer commissionRate, Integer advanceRate) {
         LambdaQueryWrapper<LifeUserExpert> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(LifeUserExpert::getId, id);
-        wrapper.eq(LifeUserExpert::getDeleteFlag, 1);
-        LifeUserExpert lifeUserExpert = lifeUserExpertMapper.selectIsExpert(id);
-        if (lifeUserExpert != null) {
-            lifeUserExpert.setDeleteFlag(0);
-            lifeUserExpert.setExpertStatus(expertStatus);
-            return lifeUserExpertMapper.updateExpert(lifeUserExpert);
+        LifeUserExpert lifeUserExpert = lifeUserExpertMapper.selectIsExpertById(id);
+        if (lifeUserExpert == null) {
+            return false;
         }
-        LifeUserExpert expert = new LifeUserExpert();
-        expert.setId(id);
-        expert.setExpertStatus(expertStatus);
-        if (expertStatus == 0){
-            expert.setExpertCode(setExpertCode());
-        } else if(expertStatus == 2){
-            expert.setExpertCode(null);
-            expert.setDeleteFlag(1);
+        lifeUserExpert.setDeleteFlag(0);
+        lifeUserExpert.setExpertStatus(expertStatus);
+        lifeUserExpert.setReviewTime(new Date());
+        lifeUserExpert.setUpdatedTime(new Date());
+        if (expertStatus == 0) {
+            lifeUserExpert.setRefuseBecause(null);
+            lifeUserExpert.setExpertCode(setExpertCode());
+            lifeUserExpert.setCommissionRate(commissionRate);
+            lifeUserExpert.setAdvanceRate(advanceRate);
+        } else if (expertStatus == 2) {
+            lifeUserExpert.setRefuseBecause(comment);
+            lifeUserExpert.setExpertStatus(2);
         }
+        sendMessage(expertStatus, userPhone, comment);
+        return lifeUserExpertMapper.updateExpert(lifeUserExpert);
+    }
+
+
+    public void sendMessage(Integer expertStatus,String userPhone ,String comment) {
         LifeNotice lifeMessage = new LifeNotice();
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         String formattedDate = LocalDateTime.now().format(formatter);
@@ -123,7 +127,6 @@ public class LifeUserExpertServiceImpl extends ServiceImpl<LifeUserExpertMapper,
             lifeMessage.setSenderId("system");
             lifeNoticeMapper.insert(lifeMessage);
         }
-        return lifeUserExpertMapper.updateExpert(expert);
     }
 
     public Integer setExpertCode() {
@@ -346,16 +349,50 @@ public class LifeUserExpertServiceImpl extends ServiceImpl<LifeUserExpertMapper,
     }
 
     @Override
-    public IPage<LifeUserExpertVo> getApplicationExpertList(int page, int size, String userName, String expertCode, Integer userId) {
+    public IPage<LifeUserExpertVo> getApplicationExpertList(Integer page, Integer size, String userName, String realName, String userPhone, Integer expertStatus, String createdTime, String endTime , Integer userId) {
         QueryWrapper<LifeUserExpertVo> wrapper = new QueryWrapper<>();
         wrapper.eq("expert.delete_flag", 0);
         wrapper.eq("user.delete_flag", 0);
-        wrapper.eq(userId != null, "user.id", userId);
-        wrapper.eq( "expert.expert_status", 1);
+        wrapper.eq(userId != null, "expert.user_id", userId);
         wrapper.like(StringUtils.isNotEmpty(userName), "user.user_name", userName);
-        wrapper.like(StringUtils.isNotEmpty(expertCode), "expert.expert_code", expertCode);
-        wrapper.orderByDesc("accountMoney");
-        return lifeUserExpertMapper.getApplicationExpertList(new Page<>(page, size), wrapper);
+        wrapper.like(StringUtils.isNotEmpty(realName), "user.real_name", realName);
+        wrapper.like(StringUtils.isNotEmpty(userPhone), "user.user_phone", userPhone);
+        //查询在createdTime之后的数据
+        if (createdTime != null && !createdTime.isEmpty()){
+            wrapper.gt("expert.created_time", createdTime);
+        }
+//        wrapper.gt(createdTime != null, "expert.created_time", createdTime);
+//        //查询在createdTime之前数据
+        if (endTime != null && !endTime.isEmpty()) {
+            wrapper.lt("expert.created_time", endTime);
+        }
+//        wrapper.lt(endTime != null, "expert.created_time", endTime);
+        List<LifeUserExpertVo>  a=lifeUserExpertMapper.getApplicationExpertList( wrapper);
+        List<LifeUserExpertVo> list = a.stream()
+                .distinct()
+                .sorted(Comparator.comparing(LifeUserExpertVo::getCreatedTime).reversed())
+                .collect(Collectors.toList());
+        return ListToPage.setPage(list,page, size);
+    }
+
+    @Override
+    public LifeUserExpertVo getViewDetails(Integer userId) {
+        QueryWrapper<ExpertImg> wrapper = new QueryWrapper<>();
+        wrapper.eq("user_id", userId);
+        List<ExpertImg> list =expertImgMapper.selectList( wrapper);
+        //对list进行处理,提取图片路径,添加到一个新的String中,用,分割
+        String imgUrl = list.stream()
+                .map(ExpertImg::getImgUrl)
+                .collect(Collectors.joining(","));
+                list.forEach(expertImg -> expertImg.setImgUrl(imgUrl));
+        LifeUserExpertVo  expertVo=lifeUserExpertMapper.getViewDetails(userId);
+        expertVo.setImgUrl(imgUrl);
+        if (CollectionUtils.isEmpty(list)){
+            return expertVo;
+        }
+        String  promoteType=list.get(0).getPromoteType();
+        expertVo.setPromoteType(promoteType);
+        return expertVo;
     }
 
 }