Browse Source

Merge remote-tracking branch 'origin/master'

lyx 3 tháng trước cách đây
mục cha
commit
5143e2e6f3

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

@@ -0,0 +1,18 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+import shop.alien.entity.store.LifeUserOrder;
+
+@Data
+@JsonInclude
+public class LifeUserOrderCommentVo extends LifeUserOrder {
+
+    private String groupBuyImgId;
+
+    private String groupBuyImgUrl;
+
+    private String groupBuyName;
+
+    private String groupBuyType;
+}

+ 25 - 3
alien-entity/src/main/java/shop/alien/mapper/StoreCommentMapper.java

@@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Select;
 import shop.alien.entity.store.LifeAppealManage;
 import shop.alien.entity.store.StoreComment;
 import shop.alien.entity.store.vo.LifeAppealManageVo;
+import shop.alien.entity.store.vo.LifeUserOrderCommentVo;
 import shop.alien.entity.store.vo.StoreCommentVo;
 import shop.alien.entity.store.vo.StoreCommitPercentVo;
 
@@ -117,18 +118,39 @@ public interface StoreCommentMapper extends BaseMapper<StoreComment> {
             "(select count(DISTINCT reply_id) from store_comment where reply_id is NOT null and store_id = #{storeId} and phone_id like '%store%' and delete_flag = 0) commentCount ")
     StoreCommitPercentVo getCommentByStoreId(Integer storeId);
 
-    @Select("SELECT" +
+    @Select("SELECT " +
             "SUM( score ) score," +
             "SUM( taste_score ) tasteScore," +
             "SUM( en_score ) enScore," +
             "SUM( service_score ) serviceScore," +
-            "COUNT(0) total" +
+            "COUNT(0) total " +
             "FROM" +
             "`store_comment` " +
-            "WHERE" +
+            "WHERE " +
             "business_type = 5 " +
             "AND delete_flag = 0 " +
             "AND reply_id IS NULL" +
             "AND store_id = #{storeId}")
     Map<String, String> getCommentCountAndScore(@Param("storeId") Integer storeId);
+
+
+    @Select("SELECT " +
+            "luo.*,lgbm.group_type groupBuyType,lgbm.group_name groupBuyName,lgbm.image_id groupBuyImgId " +
+            "FROM life_user_order luo LEFT JOIN order_coupon_middle ocm ON luo.id = ocm.order_id LEFT JOIN life_group_buy_main lgbm ON ocm.coupon_id = lgbm.id " +
+            "WHERE luo.`status` = 7 " +
+            "AND luo.coupon_type = 2 " +
+            "AND luo.delete_flag = 0 " +
+            "AND luo.user_id = #{userId} " +
+            "AND luo.id NOT IN (SELECT business_id FROM store_comment WHERE business_type = 5 AND user_id = #{userId} AND delete_flag = 0)")
+    IPage<LifeUserOrderCommentVo> getCommentOrderWPJPage(IPage<LifeUserOrderCommentVo> page, @Param("userId") String userId);
+
+    @Select("SELECT " +
+            "luo.*,lgbm.group_type groupBuyType,lgbm.group_name groupBuyName,lgbm.image_id groupBuyImgId " +
+            "FROM life_user_order luo LEFT JOIN order_coupon_middle ocm ON luo.id = ocm.order_id LEFT JOIN life_group_buy_main lgbm ON ocm.coupon_id = lgbm.id " +
+            "WHERE luo.`status` = 7 " +
+            "AND luo.coupon_type = 2 " +
+            "AND luo.delete_flag = 0 " +
+            "AND luo.user_id = #{userId} " +
+            "AND luo.id IN (SELECT business_id FROM store_comment WHERE business_type = 5 AND user_id = #{userId} AND delete_flag = 0)")
+    IPage<LifeUserOrderCommentVo> getCommentOrderYPJPage(IPage<LifeUserOrderCommentVo> page, @Param("userId") String userId);
 }

+ 28 - 2
alien-store/src/main/java/shop/alien/store/controller/LifeUserDynamicsController.java

@@ -3,9 +3,11 @@ package shop.alien.store.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.google.common.collect.Lists;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.LifeUserDynamics;
@@ -15,6 +17,7 @@ import shop.alien.store.service.LifeUserDynamicsService;
 import shop.alien.util.common.ListToPage;
 import shop.alien.util.common.netease.ImageCheckUtil;
 import shop.alien.util.common.netease.TextCheckUtil;
+import shop.alien.util.common.safe.*;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -34,6 +37,12 @@ public class LifeUserDynamicsController {
 
     private final LifeUserDynamicsService lifeUserDynamicsService;
 
+    @Autowired
+    private TextModerationUtil textModerationUtil;
+
+    @Autowired
+    private ImageModerationUtil imageModerationUtil;
+
     @ApiOperation("社区列表")
     @ApiOperationSupport(order = 1)
     @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "分页页数", dataType = "String", paramType = "query", required = true),
@@ -75,15 +84,32 @@ public class LifeUserDynamicsController {
     @PostMapping("/addOrUpdate")
     public R<Integer> addOrUpdate(@RequestBody LifeUserDynamics lifeUserDynamics) {
         log.info("LifeUserDynamicsController.addOrUpdate?store={}", lifeUserDynamics.toString());
-        Map<String, String> checkText = TextCheckUtil.check(lifeUserDynamics.getContext());
+        /*Map<String, String> checkText = TextCheckUtil.check(lifeUserDynamics.getContext());
         if (null == checkText || checkText.get("result").equals("1")) {
             return R.data(2);
         }
         Map<String, String> checkImage = ImageCheckUtil.check(lifeUserDynamics.getImagePath(), 1);
         if (checkImage != null && checkImage.get("result").equals("1")) {
             return R.data(3);
-        }
+        }*/
         try {
+
+            List<String> servicesList = Lists.newArrayList();
+            servicesList.add(TextReviewServiceEnum.COMMENT_DETECTION_PRO.getService());
+            servicesList.add(TextReviewServiceEnum.LLM_QUERY_MODERATION.getService());
+            TextModerationResultVO textCheckResult = textModerationUtil.invokeFunction(lifeUserDynamics.getContext(), servicesList);
+            if ("high".equals(textCheckResult.getRiskLevel())) {
+                return R.data(2);
+            }
+
+            List<String> imgServicesList = Lists.newArrayList();
+            imgServicesList.add(ImageReviewServiceEnum.TONALITY_IMPROVE.getService());
+            imgServicesList.add(ImageReviewServiceEnum.AIGC_CHECK.getService());
+            ImageModerationResultVO response = imageModerationUtil.productPublishCheck(lifeUserDynamics.getImagePath(),imgServicesList);
+            if ("high".equals(response.getRiskLevel())) {
+                return R.data(3);
+            }
+
             int cnt = lifeUserDynamicsService.addOrUpdateStore(lifeUserDynamics);
             if (cnt == 0) {
                 return R.data(1);

+ 13 - 0
alien-store/src/main/java/shop/alien/store/controller/StoreCommentController.java

@@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartRequest;
 import shop.alien.entity.result.R;
+import shop.alien.entity.store.vo.LifeUserOrderCommentVo;
 import shop.alien.entity.store.vo.StoreCommentVo;
 import shop.alien.entity.store.vo.StoreCommitPercentVo;
 import shop.alien.store.service.StoreCommentService;
@@ -139,4 +140,16 @@ public class StoreCommentController {
         return R.fail("删除失败");
     }
 
+    @ApiOperation("未评价/已评价列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "pageSize", value = "页容", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "type", value = "1:未评价, 2:已评价", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "userId", value = "用户id", dataType = "String", paramType = "query", required = true),
+    })
+    @GetMapping("/getCommentOrderPage")
+    public R<IPage<LifeUserOrderCommentVo>> getCommentOrderPage(Integer pageNum, Integer pageSize, Integer type, String userId) {
+        log.info("StoreCommentController.getCommentOrderPage?pageNum={}&pageSize={}&type={}&userId={}", pageNum, pageSize, type, userId);
+        return R.data(storeCommentService.getCommentOrderPage(pageNum, pageSize, type, userId));
+    }
 }

+ 7 - 0
alien-store/src/main/java/shop/alien/store/service/StoreCommentService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springframework.web.multipart.MultipartRequest;
 import shop.alien.entity.store.StoreComment;
+import shop.alien.entity.store.vo.LifeUserOrderCommentVo;
 import shop.alien.entity.store.vo.StoreCommentVo;
 import shop.alien.entity.store.vo.StoreCommitPercentVo;
 
@@ -95,4 +96,10 @@ public interface StoreCommentService extends IService<StoreComment> {
      * @return StoreCommitPercentVo
      */
     StoreCommitPercentVo getCommitPercent(Integer storeId);
+
+    /**
+     * @param type 1:未评价, 2:已评价
+     */
+    IPage<LifeUserOrderCommentVo> getCommentOrderPage(Integer pageNum, Integer pageSize, Integer type, String userId);
+
 }

+ 3 - 3
alien-store/src/main/java/shop/alien/store/service/impl/LifeDiscountCouponServiceImpl.java

@@ -455,8 +455,8 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
 
         //storeId(前台传进来的是团购id)
         //根据团购id获取门店id
-        LifeCoupon lifeCoupon = lifeCouponMapper.selectById(storeId);
-        String makeSureStoreId = lifeCoupon.getStoreId();
+//        LifeCoupon lifeCoupon = lifeCouponMapper.selectById(storeId);
+//        String makeSureStoreId = lifeCoupon.getStoreId();
 
         //查询可用的优惠券 1、当前优惠券没过使用期,2、当前优惠券为待使用,3、是该门店的券
         queryWrapper.eq(LifeDiscountCouponUser::getUserId, userLoginInfo.getUserId());
@@ -469,7 +469,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
             //查询该优惠券属于哪个店铺
             LifeDiscountCoupon lifeDiscountCoupon = lifeDiscountCouponMapper.selectById(lifeDiscountCouponUser.getCouponId());
             String couponStoreId = lifeDiscountCoupon.getStoreId();
-            if (couponStoreId.equals(makeSureStoreId)) {
+            if (couponStoreId.equals(storeId)) {
                 lifeDiscountCouponUsers.add(lifeDiscountCouponUser);
             }
         }

+ 10 - 0
alien-store/src/main/java/shop/alien/store/service/impl/StoreCommentAppealServiceImpl.java

@@ -214,6 +214,16 @@ public class StoreCommentAppealServiceImpl extends ServiceImpl<StoreCommentAppea
 //                storeCommentAppealInfoVo.setResult(3);
 //                return storeCommentAppealInfoVo;
 //            }
+
+            List<String> servicesList = Lists.newArrayList();
+            servicesList.add(TextReviewServiceEnum.COMMENT_DETECTION_PRO.getService());
+            servicesList.add(TextReviewServiceEnum.LLM_QUERY_MODERATION.getService());
+            TextModerationResultVO textCheckResult = textModerationUtil.invokeFunction(appealReason, servicesList);
+            if ("high".equals(textCheckResult.getRiskLevel())) {
+                storeCommentAppealInfoVo.setResult(3);
+                return storeCommentAppealInfoVo;
+            }
+
             List<String> fileNameSet = new ArrayList<>(multipartRequest.getMultiFileMap().keySet());
             LambdaQueryWrapper<StoreCommentAppeal> wrapper = new LambdaQueryWrapper<>();
             //待审批, 已通过

+ 19 - 4
alien-store/src/main/java/shop/alien/store/service/impl/StoreCommentServiceImpl.java

@@ -18,10 +18,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartRequest;
 import shop.alien.entity.store.*;
-import shop.alien.entity.store.vo.LifeCouponVo;
-import shop.alien.entity.store.vo.StoreCommentAppealVo;
-import shop.alien.entity.store.vo.StoreCommentVo;
-import shop.alien.entity.store.vo.StoreCommitPercentVo;
+import shop.alien.entity.store.vo.*;
 import shop.alien.mapper.*;
 import shop.alien.store.service.StoreCommentService;
 import shop.alien.store.util.FileUploadUtil;
@@ -641,4 +638,22 @@ public class StoreCommentServiceImpl extends ServiceImpl<StoreCommentMapper, Sto
         }
         return null;
     }
+
+    @Override
+    public IPage<LifeUserOrderCommentVo> getCommentOrderPage(Integer pageNum, Integer pageSize, Integer type, String userId) {
+        IPage<LifeUserOrderCommentVo> lifeUserOrderCommentVoIPage = new Page<>(pageNum, pageSize);
+        IPage<LifeUserOrderCommentVo> commentOrderPage;
+        if (type == 1) {
+            commentOrderPage = storeCommentMapper.getCommentOrderWPJPage(lifeUserOrderCommentVoIPage, userId);
+        } else {
+            commentOrderPage = storeCommentMapper.getCommentOrderYPJPage(lifeUserOrderCommentVoIPage, userId);
+        }
+        List<String> collect = commentOrderPage.getRecords().stream().map(LifeUserOrderCommentVo::getGroupBuyImgId).collect(Collectors.toList());
+
+        if (ObjectUtils.isNotEmpty(collect)) {
+            List<StoreImg> storeImgList = storeImgMapper.selectList(new QueryWrapper<StoreImg>().in("id", collect));
+            commentOrderPage.getRecords().forEach(i -> i.setGroupBuyImgUrl(storeImgList.stream().filter(j -> j.getId().toString().equals(i.getGroupBuyImgId())).findFirst().map(StoreImg::getImgUrl).orElse(null)));
+        }
+        return commentOrderPage;
+    }
 }