Jelajahi Sumber

feat(store): 更新打卡记录删除标记查询接口

- 添加 StoreClockInDeleteFlagVo 数据传输对象
- 修改 getDeleteFlagById 接口返回门店营业状态信息
- 更新数据库查询语句为左连接查询门店信息
- 扩展接口功能支持同时获取删除标记和营业状态
fcw 1 hari lalu
induk
melakukan
bedd62cf83

+ 24 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreClockInDeleteFlagVo.java

@@ -0,0 +1,24 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 打卡记录删除标记及关联门店营业状态
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "StoreClockInDeleteFlagVo", description = "打卡删除标记与门店营业状态")
+public class StoreClockInDeleteFlagVo {
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    private Integer deleteFlag;
+
+    @ApiModelProperty(value = "商铺id")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "营业状态(-1:注销中, 0:正常营业, 1:暂停营业, 2:筹建中, 99:永久关门)")
+    private Integer businessStatus;
+}

+ 7 - 3
alien-entity/src/main/java/shop/alien/mapper/StoreClockInMapper.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import shop.alien.entity.store.StoreClockIn;
+import shop.alien.entity.store.vo.StoreClockInDeleteFlagVo;
 import shop.alien.entity.store.vo.StoreClockInVo;
 
 import java.util.List;
@@ -130,8 +131,11 @@ public interface StoreClockInMapper extends BaseMapper<StoreClockIn> {
                                                  @Param("city") String city);
 
     /**
-     * 按主键查询删除标记(含已逻辑删除记录;原生 SQL
+     * 按主键查询删除标记、门店 id 及门店营业状态(打卡含已逻辑删除;门店左连接不过滤 delete_flag
      */
-    @Select("SELECT delete_flag FROM store_clock_in WHERE id = #{id} LIMIT 1")
-    Integer selectDeleteFlagById(@Param("id") Integer id);
+    @Select("SELECT clock.delete_flag AS deleteFlag, clock.store_id AS storeId, store.business_status AS businessStatus " +
+            "FROM store_clock_in clock " +
+            "LEFT JOIN store_info store ON store.id = clock.store_id " +
+            "WHERE clock.id = #{id} LIMIT 1")
+    StoreClockInDeleteFlagVo selectDeleteFlagAndBusinessStatusById(@Param("id") Integer id);
 }

+ 3 - 2
alien-store/src/main/java/shop/alien/store/controller/StoreClockInController.java

@@ -10,6 +10,7 @@ import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreClockIn;
 import shop.alien.entity.store.UserLoginInfo;
 import shop.alien.entity.store.vo.ClockInRecordValidateVo;
+import shop.alien.entity.store.vo.StoreClockInDeleteFlagVo;
 import shop.alien.entity.store.vo.StoreClockInVo;
 import shop.alien.store.annotation.TrackEvent;
 import shop.alien.store.service.StoreClockInService;
@@ -140,11 +141,11 @@ public class StoreClockInController {
         return R.data(storeClockInService.getClockInRecordValidate(userId, year, city));
     }
 
-    @ApiOperation("根据主键查询删除标记")
+    @ApiOperation("根据主键查询删除标记及门店营业状态")
     @ApiOperationSupport(order = 8)
     @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "主键id", dataType = "Integer", paramType = "query")})
     @GetMapping("/getDeleteFlagById")
-    public R<Integer> getDeleteFlagById(Integer id) {
+    public R<StoreClockInDeleteFlagVo> getDeleteFlagById(Integer id) {
         log.info("StoreClockInController.getDeleteFlagById?id={}", id);
         return R.data(storeClockInService.getDeleteFlagById(id));
     }

+ 3 - 2
alien-store/src/main/java/shop/alien/store/service/StoreClockInService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import shop.alien.entity.store.StoreClockIn;
 import shop.alien.entity.store.vo.ClockInRecordValidateVo;
+import shop.alien.entity.store.vo.StoreClockInDeleteFlagVo;
 import shop.alien.entity.store.vo.StoreClockInVo;
 
 import java.util.List;
@@ -57,8 +58,8 @@ public interface StoreClockInService extends IService<StoreClockIn> {
     ClockInRecordValidateVo getClockInRecordValidate(Integer userId, Integer year, String city);
 
     /**
-     * 按主键查询删除标记(0 未删除,1 已删除);无此记录时返回 null。
+     * 按主键查询删除标记、门店 id 及门店营业状态;无此打卡记录时返回 null。
      */
-    Integer getDeleteFlagById(Integer id);
+    StoreClockInDeleteFlagVo getDeleteFlagById(Integer id);
 
 }

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

@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import shop.alien.entity.store.*;
 import shop.alien.entity.store.vo.ClockInRecordValidateVo;
+import shop.alien.entity.store.vo.StoreClockInDeleteFlagVo;
 import shop.alien.entity.store.vo.MonthClockInItem;
 import shop.alien.entity.store.vo.StoreClockInPageVo;
 import shop.alien.entity.store.vo.StoreClockInVo;
@@ -552,10 +553,10 @@ public class StoreClockInServiceImpl extends ServiceImpl<StoreClockInMapper, Sto
     }
 
     @Override
-    public Integer getDeleteFlagById(Integer id) {
+    public StoreClockInDeleteFlagVo getDeleteFlagById(Integer id) {
         if (id == null) {
             return null;
         }
-        return storeClockInMapper.selectDeleteFlagById(id);
+        return storeClockInMapper.selectDeleteFlagAndBusinessStatusById(id);
     }
 }