Browse Source

Merge remote-tracking branch 'origin/dev' into dev

wangzhijun 1 month ago
parent
commit
7edb06311d

+ 0 - 7
nightFragrance-massage/src/main/java/com/ylx/massage/domain/dto/PublishMomentDTO.java

@@ -56,12 +56,6 @@ public class PublishMomentDTO {
     @ApiModelProperty("视频封面URL")
     private String videoCoverUrl;
 
-    /**
-     * 可见范围:1-公开
-     */
-    /*@ApiModelProperty(value = "可见范围:1-公开", required = true)
-    @NotNull(message = "可见范围不能为空")
-    private Integer visibleRange;*/
 
     /**
      * 纬度
@@ -87,7 +81,6 @@ public class PublishMomentDTO {
     @ApiModelProperty("详细地址信息")
     private String address;
 
-
     /**
      * 城市编码
      */

+ 1 - 15
nightFragrance-massage/src/main/java/com/ylx/massage/mapper/MaTechnicianMapper.java

@@ -24,7 +24,6 @@ import com.ylx.merchant.domain.vo.MerchantWithAddressVO;
 import com.ylx.project.domain.bookMerchant.vo.ProjectInfoVO;
 import org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
-import org.apache.ibatis.annotations.Select;
 
 /**
  * 技师Mapper接口
@@ -196,21 +195,8 @@ public interface MaTechnicianMapper extends BaseMapper<MaTechnician> {
      * 查询该城市是否有商户提供服务
      *
      * @param areaCode
-     * @return
+     * @return Boolean
      */
-    @Select("SELECT EXISTS (" +
-            "    SELECT 1" +
-            "    FROM ma_technician t" +
-            "    INNER JOIN ma_project p ON t.id = p.merchant_id" +
-            "    WHERE t.te_area_code = #{areaCode}" +
-            "      AND t.is_delete = 0" +
-            "      AND t.audit_status = 2" +
-            "      AND t.n_status2 = 0" +
-            "      AND t.merchant_status = 0" +
-            "      AND p.is_delete = 0" +
-            "      AND p.audit_status = 1" +
-            "      AND p.project_is_enable = 1" +
-            ") AS has_merchant_with_service")
     Boolean isHasMerchantCity(@Param("areaCode") String areaCode);
 
     /**

+ 27 - 3
nightFragrance-massage/src/main/java/com/ylx/moment/service/impl/TechnicianMomentServiceImpl.java

@@ -295,7 +295,9 @@ public class TechnicianMomentServiceImpl extends ServiceImpl<TechnicianMomentMap
 
         //查询是否保存为草稿
         Integer isDraft = dto.getIsDraft();
-        if (isDraft == 1) {
+        boolean draft = Objects.equals(isDraft, 1);
+        String cityCode = validatePublishCityCode(dto, draft);
+        if (draft) {
             //只校验标题
             if (dto.getTitle() == null || dto.getTitle().trim().isEmpty()) {
                 throw new ServiceException("动态标题不能为空");
@@ -341,6 +343,7 @@ public class TechnicianMomentServiceImpl extends ServiceImpl<TechnicianMomentMap
         moment.setLongitude(dto.getLongitude());
         moment.setLocation(dto.getLocation());
         moment.setAddress(dto.getAddress());
+        moment.setCityCode(cityCode);
 
         if(Objects.nonNull(dto.getMediaType())){
             // 设置封面图
@@ -356,7 +359,7 @@ public class TechnicianMomentServiceImpl extends ServiceImpl<TechnicianMomentMap
         }
 
         // 设置审核状态和发布时间
-        if (dto.getIsDraft() != null && dto.getIsDraft() == 1) {
+        if (draft) {
             // 保存草稿
             moment.setAuditStatus(0);
             moment.setPublishTime(null);
@@ -370,7 +373,6 @@ public class TechnicianMomentServiceImpl extends ServiceImpl<TechnicianMomentMap
         moment.setIsDelete(0);
         moment.setViewCount(0);
         moment.setCreateTime(LocalDateTime.now());
-        moment.setUpdateTime(LocalDateTime.now());
 
         // 8. 保存动态到数据库
         int insertResult = momentMapper.insert(moment);
@@ -413,6 +415,28 @@ public class TechnicianMomentServiceImpl extends ServiceImpl<TechnicianMomentMap
         return momentId;
     }
 
+    /**
+     * 验证发布的城市code
+     *
+     * @param dto 发布动态请求对象
+     * @param draft 是否草稿
+     * @return String 城市编码
+     */
+    private String validatePublishCityCode(PublishMomentDTO dto, boolean draft) {
+        String cityCode = StringUtils.trimToNull(dto.getCityCode());
+        if (draft && StringUtils.isBlank(cityCode)) {
+            return null;
+        }
+        if (StringUtils.isBlank(cityCode)) {
+            throw new ServiceException("城市编码不能为空");
+        }
+        Boolean cityOpened = maTechnicianMapper.isHasMerchantCity(cityCode);
+        if (!Boolean.TRUE.equals(cityOpened)) {
+            throw new ServiceException("当前城市暂未开通服务");
+        }
+        return cityCode;
+    }
+
     /**
      * 编辑动态
      *

+ 15 - 0
nightFragrance-massage/src/main/resources/mapper/massage/MaTechnicianMapper.xml

@@ -755,4 +755,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND service_state != 2
     </select>
 
+    <select id="isHasMerchantCity" resultType="java.lang.Boolean">
+        SELECT EXISTS (
+            SELECT 1
+            FROM ma_technician t
+            INNER JOIN ma_project p ON t.id = p.merchant_id
+            WHERE t.te_area_code = #{areaCode}
+              AND t.is_delete = 0
+              AND t.audit_status = 2
+              AND t.merchant_status = 0
+              AND p.is_delete = 0
+              AND p.audit_status = 1
+              AND p.project_is_enable = 1
+        ) AS has_merchant_with_service
+    </select>
+
 </mapper>