v1.0.12 #19
Generated
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
<component name="SqlDialectMappings">
|
<component name="SqlDialectMappings">
|
||||||
<file url="file://$PROJECT_DIR$/src/main/resources/db/migration/timiserver/V1__init_schema.sql" dialect="MariaDB" />
|
<file url="file://$PROJECT_DIR$/src/main/resources/db/migration/timiserver/V1__init_schema.sql" dialect="MariaDB" />
|
||||||
<file url="file://$PROJECT_DIR$/src/main/resources/db/migration/timiserver/V2__init_system_data.sql" dialect="GenericSQL" />
|
<file url="file://$PROJECT_DIR$/src/main/resources/db/migration/timiserver/V2__init_system_data.sql" dialect="GenericSQL" />
|
||||||
<file url="file://$PROJECT_DIR$/src/main/resources/mapper/timi-server/GaoEventRecordMapper.xml" dialect="MariaDB" />
|
<file url="file://$PROJECT_DIR$/src/main/resources/mapper/timi-server/gao/GaoEventRecordMapper.xml" dialect="MariaDB" />
|
||||||
<file url="PROJECT" dialect="MariaDB" />
|
<file url="PROJECT" dialect="MariaDB" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -39,6 +39,12 @@ public enum CorePermissionCode implements BuiltinPermissionCode {
|
|||||||
MULTILINGUAL_UPDATE("MULTILINGUAL:UPDATE", "多语言修改", false, true),
|
MULTILINGUAL_UPDATE("MULTILINGUAL:UPDATE", "多语言修改", false, true),
|
||||||
MULTILINGUAL_DELETE("MULTILINGUAL:DELETE", "多语言删除", false, true),
|
MULTILINGUAL_DELETE("MULTILINGUAL:DELETE", "多语言删除", false, true),
|
||||||
|
|
||||||
|
TAG_CREATE("TAG:CREATE", "标签创建", false, true),
|
||||||
|
TAG_READ("TAG:READ", "标签读取", false, true),
|
||||||
|
TAG_APPLY("TAG:APPLY", "标签应用", false, true),
|
||||||
|
TAG_UPDATE("TAG:UPDATE", "标签修改", false, true),
|
||||||
|
TAG_DELETE("TAG:DELETE", "标签删除", false, true),
|
||||||
|
|
||||||
USER_CREATE("USER:CREATE", "用户创建", false, true),
|
USER_CREATE("USER:CREATE", "用户创建", false, true),
|
||||||
USER_READ("USER:READ", "用户读取", false, true),
|
USER_READ("USER:READ", "用户读取", false, true),
|
||||||
USER_UPDATE("USER:UPDATE", "用户修改", false, true),
|
USER_UPDATE("USER:UPDATE", "用户修改", false, true),
|
||||||
|
|||||||
@@ -0,0 +1,111 @@
|
|||||||
|
package com.imyeyu.api.modules.common.controller;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonView;
|
||||||
|
import com.imyeyu.api.modules.common.entity.Tag;
|
||||||
|
import com.imyeyu.api.modules.common.entity.TagApply;
|
||||||
|
import com.imyeyu.api.modules.common.service.TagService;
|
||||||
|
import com.imyeyu.spring.annotation.AOPLog;
|
||||||
|
import com.imyeyu.spring.annotation.RequestRateLimit;
|
||||||
|
import com.imyeyu.spring.bean.Page;
|
||||||
|
import com.imyeyu.spring.bean.PageResult;
|
||||||
|
import com.imyeyu.spring.util.ResponseView;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/// 标签接口
|
||||||
|
///
|
||||||
|
/// @author 夜雨
|
||||||
|
/// @since 2026-08-12 15:09
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/tag")
|
||||||
|
public class TagController {
|
||||||
|
|
||||||
|
private final TagService service;
|
||||||
|
|
||||||
|
/// 查询标签列表
|
||||||
|
///
|
||||||
|
/// @param page 分页参数
|
||||||
|
/// @return 标签分页
|
||||||
|
@RequestRateLimit
|
||||||
|
@JsonView(ResponseView.Public.class)
|
||||||
|
@PostMapping("/list")
|
||||||
|
public PageResult<Tag> list(@RequestBody Page<Tag> page) {
|
||||||
|
return service.page(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 查询标签详情
|
||||||
|
///
|
||||||
|
/// @param id 标签 ID
|
||||||
|
/// @return 标签详情
|
||||||
|
@RequestRateLimit
|
||||||
|
@JsonView(ResponseView.Public.class)
|
||||||
|
@PostMapping("/detail")
|
||||||
|
public Tag detail(@RequestParam String id) {
|
||||||
|
return service.get(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 创建标签
|
||||||
|
///
|
||||||
|
/// @param tag 标签
|
||||||
|
/// @return 标签
|
||||||
|
@AOPLog
|
||||||
|
@RequestRateLimit
|
||||||
|
@JsonView(ResponseView.Public.class)
|
||||||
|
@PostMapping("/create")
|
||||||
|
public Tag create(@RequestBody Tag tag) {
|
||||||
|
service.create(tag);
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 更新标签
|
||||||
|
///
|
||||||
|
/// @param tag 标签
|
||||||
|
@AOPLog
|
||||||
|
@RequestRateLimit
|
||||||
|
@PostMapping("/update")
|
||||||
|
public void update(@RequestBody Tag tag) {
|
||||||
|
service.update(tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 删除标签
|
||||||
|
///
|
||||||
|
/// @param id 标签 ID
|
||||||
|
@AOPLog
|
||||||
|
@RequestRateLimit
|
||||||
|
@PostMapping("/delete")
|
||||||
|
public void delete(@RequestParam String id) {
|
||||||
|
service.delete(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 按业务查询标签
|
||||||
|
///
|
||||||
|
/// @param bizType 业务类型
|
||||||
|
/// @param bizId 业务 ID
|
||||||
|
/// @return 标签列表
|
||||||
|
@RequestRateLimit
|
||||||
|
@JsonView(ResponseView.Public.class)
|
||||||
|
@GetMapping("/list/biz/id")
|
||||||
|
public List<Tag> listByBizType(@RequestParam TagApply.BizType bizType, @RequestParam String bizId) {
|
||||||
|
return service.listByBizType(bizType, bizId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 差分保存业务标签
|
||||||
|
///
|
||||||
|
/// @param apply 标签请求
|
||||||
|
@AOPLog
|
||||||
|
@RequestRateLimit
|
||||||
|
@PostMapping("/apply")
|
||||||
|
public void apply(@RequestBody TagApply apply) {
|
||||||
|
service.apply(apply.getBizType(), apply.getBizId(), apply.getTagIdList());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,23 +1,28 @@
|
|||||||
package com.imyeyu.api.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
|
import com.imyeyu.api.annotation.MultilingualField;
|
||||||
import com.imyeyu.spring.annotation.table.Transient;
|
import com.imyeyu.spring.annotation.table.Transient;
|
||||||
import com.imyeyu.spring.entity.UUIDEntity;
|
import com.imyeyu.spring.entity.UUIDEntity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
/**
|
/// 标签
|
||||||
* @author 夜雨
|
///
|
||||||
* @since 2024-08-28 14:26
|
/// @author 夜雨
|
||||||
*/
|
/// @since 2024-08-28 14:26
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class Tag extends UUIDEntity {
|
public class Tag extends UUIDEntity {
|
||||||
|
|
||||||
protected String langKey;
|
/// 名称多语言 ID
|
||||||
|
protected String nameLangId;
|
||||||
|
|
||||||
|
/// 当前语言名称
|
||||||
@Transient
|
@Transient
|
||||||
protected String value;
|
@MultilingualField("nameLangId")
|
||||||
|
protected String name;
|
||||||
|
|
||||||
|
/// 中文名称
|
||||||
@Transient
|
@Transient
|
||||||
protected String zhCN;
|
protected String zhCN;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package com.imyeyu.api.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
|
import com.imyeyu.spring.annotation.table.Transient;
|
||||||
import com.imyeyu.spring.entity.UUIDEntity;
|
import com.imyeyu.spring.entity.UUIDEntity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标签应用
|
* 标签应用
|
||||||
*
|
*
|
||||||
@@ -14,12 +17,25 @@ import lombok.EqualsAndHashCode;
|
|||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class TagApply extends UUIDEntity {
|
public class TagApply extends UUIDEntity {
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
/// @author 夜雨
|
||||||
|
/// @since 2026-08-12 14:27
|
||||||
|
public enum BizType {
|
||||||
|
|
||||||
|
GAO_CUSTOMER
|
||||||
|
}
|
||||||
|
|
||||||
/** 业务类型 */
|
/** 业务类型 */
|
||||||
protected String bizType;
|
protected BizType bizType;
|
||||||
|
|
||||||
/** 业务 ID */
|
/** 业务 ID */
|
||||||
protected String bizId;
|
protected String bizId;
|
||||||
|
|
||||||
/** 标签 ID */
|
/** 标签 ID */
|
||||||
protected String tagId;
|
protected String tagId;
|
||||||
|
|
||||||
|
/// 标签 ID 列表
|
||||||
|
@Transient
|
||||||
|
private List<String> tagIdList;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
|
import com.imyeyu.api.modules.common.entity.TagApply;
|
||||||
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/// 标签应用 Mapper
|
||||||
|
///
|
||||||
|
/// @author 夜雨
|
||||||
|
/// @since 2026-08-12 15:05
|
||||||
|
public interface TagApplyMapper extends BaseMapper<TagApply, String> {
|
||||||
|
}
|
||||||
@@ -3,9 +3,14 @@ package com.imyeyu.api.modules.common.mapper;
|
|||||||
import com.imyeyu.api.modules.common.entity.Tag;
|
import com.imyeyu.api.modules.common.entity.Tag;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 夜雨
|
* @author 夜雨
|
||||||
* @since 2025-05-30 22:48
|
* @since 2025-05-30 22:48
|
||||||
*/
|
*/
|
||||||
public interface TagMapper extends BaseMapper<Tag, String> {
|
public interface TagMapper extends BaseMapper<Tag, String> {
|
||||||
|
|
||||||
|
List<Tag> selectByIdList(Collection<String> idList);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,31 @@
|
|||||||
package com.imyeyu.api.modules.common.service;
|
package com.imyeyu.api.modules.common.service;
|
||||||
|
|
||||||
import com.imyeyu.api.modules.common.entity.Tag;
|
import com.imyeyu.api.modules.common.entity.Tag;
|
||||||
|
import com.imyeyu.api.modules.common.entity.TagApply;
|
||||||
import com.imyeyu.spring.service.BaseService;
|
import com.imyeyu.spring.service.BaseService;
|
||||||
|
|
||||||
/**
|
import java.util.Collection;
|
||||||
* @author 夜雨
|
import java.util.List;
|
||||||
* @since 2025-05-30 22:46
|
|
||||||
*/
|
/// 标签服务
|
||||||
|
///
|
||||||
|
/// @author 夜雨
|
||||||
|
/// @since 2025-05-30 22:46
|
||||||
public interface TagService extends BaseService<Tag, String> {
|
public interface TagService extends BaseService<Tag, String> {
|
||||||
|
|
||||||
|
List<Tag> listByIdList(Collection<String> idList);
|
||||||
|
|
||||||
|
/// 按业务查询标签列表
|
||||||
|
///
|
||||||
|
/// @param bizType 业务类型
|
||||||
|
/// @param bizId 业务 ID
|
||||||
|
/// @return 标签列表
|
||||||
|
List<Tag> listByBizType(TagApply.BizType bizType, String bizId);
|
||||||
|
|
||||||
|
/// 差分保存业务标签
|
||||||
|
///
|
||||||
|
/// @param bizType 业务类型
|
||||||
|
/// @param bizId 业务 ID
|
||||||
|
/// @param tagIdList 标签 ID 列表
|
||||||
|
void apply(TagApply.BizType bizType, String bizId, List<String> tagIdList);
|
||||||
}
|
}
|
||||||
|
|||||||
+77
-4
@@ -1,27 +1,100 @@
|
|||||||
package com.imyeyu.api.modules.common.service.implement;
|
package com.imyeyu.api.modules.common.service.implement;
|
||||||
|
|
||||||
import com.imyeyu.api.modules.common.entity.Tag;
|
import com.imyeyu.api.modules.common.entity.Tag;
|
||||||
|
import com.imyeyu.api.modules.common.entity.TagApply;
|
||||||
|
import com.imyeyu.api.modules.common.mapper.TagApplyMapper;
|
||||||
import com.imyeyu.api.modules.common.mapper.TagMapper;
|
import com.imyeyu.api.modules.common.mapper.TagMapper;
|
||||||
|
import com.imyeyu.api.modules.common.service.MultilingualService;
|
||||||
import com.imyeyu.api.modules.common.service.TagService;
|
import com.imyeyu.api.modules.common.service.TagService;
|
||||||
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import com.imyeyu.spring.service.AbstractEntityService;
|
import com.imyeyu.spring.service.AbstractEntityService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
import java.util.Collection;
|
||||||
* @author 夜雨
|
import java.util.HashSet;
|
||||||
* @since 2025-05-30 22:47
|
import java.util.LinkedHashSet;
|
||||||
*/
|
import java.util.List;
|
||||||
|
|
||||||
|
/// 标签服务实现
|
||||||
|
///
|
||||||
|
/// @author 夜雨
|
||||||
|
/// @since 2025-05-30 22:47
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class TagServiceImplement extends AbstractEntityService<Tag, String> implements TagService {
|
public class TagServiceImplement extends AbstractEntityService<Tag, String> implements TagService {
|
||||||
|
|
||||||
private final TagMapper mapper;
|
private final TagMapper mapper;
|
||||||
|
private final TagApplyMapper applyMapper;
|
||||||
|
private final MultilingualService multilingualService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BaseMapper<Tag, String> mapper() {
|
protected BaseMapper<Tag, String> mapper() {
|
||||||
return mapper;
|
return mapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void create(Tag tag) {
|
||||||
|
TimiException.required(tag, "not found tag");
|
||||||
|
TimiException.required(tag.getZhCN(), "not found tag.zhCN");
|
||||||
|
tag.setNameLangId(multilingualService.create(tag.getZhCN()));
|
||||||
|
super.create(tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(Tag tag) {
|
||||||
|
TimiException.required(tag, "not found tag");
|
||||||
|
TimiException.required(tag.getId(), "not found tag.id");
|
||||||
|
if (tag.getZhCN() != null) {
|
||||||
|
if (tag.getNameLangId() == null) {
|
||||||
|
Tag dbTag = get(tag.getId());
|
||||||
|
TimiException.required(dbTag, "not found tag");
|
||||||
|
tag.setNameLangId(dbTag.getNameLangId());
|
||||||
|
}
|
||||||
|
tag.setNameLangId(multilingualService.createIfDifferent(tag.getNameLangId(), tag.getZhCN()));
|
||||||
|
}
|
||||||
|
super.update(tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Tag> listByIdList(Collection<String> idList) {
|
||||||
|
return mapper.selectByIdList(new HashSet<>(idList));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Tag> listByBizType(TagApply.BizType bizType, String bizId) {
|
||||||
|
return listByIdList(listApply(bizType, bizId).stream().map(TagApply::getTagId).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(TagApply.BizType bizType, String bizId, List<String> tagIdList) {
|
||||||
|
LinkedHashSet<String> tagIdSet = new LinkedHashSet<>(tagIdList == null ? List.of() : tagIdList);
|
||||||
|
for (TagApply apply : listApply(bizType, bizId)) {
|
||||||
|
if (tagIdSet.remove(apply.getTagId())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
applyMapper.delete(apply.getId());
|
||||||
|
}
|
||||||
|
List<Tag> tagList = listByIdList(tagIdSet);
|
||||||
|
for (Tag tag : tagList) {
|
||||||
|
TagApply apply = new TagApply();
|
||||||
|
apply.setBizType(bizType);
|
||||||
|
apply.setBizId(bizId);
|
||||||
|
apply.setTagId(tag.getId());
|
||||||
|
applyMapper.insert(apply);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<TagApply> listApply(TagApply.BizType bizType, String bizId) {
|
||||||
|
TimiException.required(bizType, "not found bizType");
|
||||||
|
TimiException.required(bizId, "not found bizId");
|
||||||
|
|
||||||
|
TagApply example = new TagApply();
|
||||||
|
example.setBizType(bizType);
|
||||||
|
example.setBizId(bizId);
|
||||||
|
return applyMapper.selectAllByExample(example);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
package com.imyeyu.api.modules.common.vo.tag;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author 夜雨
|
|
||||||
* @since 2025-05-30 22:58
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class TagRequest {
|
|
||||||
|
|
||||||
private String bizId;
|
|
||||||
|
|
||||||
private String zhCN;
|
|
||||||
}
|
|
||||||
@@ -4,6 +4,7 @@ import com.imyeyu.api.modules.gao.entity.GaoStoreBusinessDay;
|
|||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
import org.apache.ibatis.annotations.Update;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -27,7 +28,7 @@ public interface GaoStoreBusinessDayMapper extends BaseMapper<GaoStoreBusinessDa
|
|||||||
/// @param storeId 门店 ID
|
/// @param storeId 门店 ID
|
||||||
/// @param dateValue 日期值,格式为 yyyyMMdd
|
/// @param dateValue 日期值,格式为 yyyyMMdd
|
||||||
/// @return 营业日序号
|
/// @return 营业日序号
|
||||||
@Select("SELECT MAX(`business_day_no`) FROM `gao_store_business_day` WHERE `store_id` = #{storeId} AND `date_value` < #{dateValue} AND `open_status` = 'OPEN' AND `deleted_at` IS NULL")
|
@Select("SELECT MAX(`business_day_no`) FROM `gao_store_business_day` WHERE `store_id` = #{storeId} AND `date_value` < #{dateValue} AND `status` = 'OPEN' AND `deleted_at` IS NULL")
|
||||||
Long selectLastBusinessDayNoBefore(@Param("storeId") String storeId, @Param("dateValue") Integer dateValue);
|
Long selectLastBusinessDayNoBefore(@Param("storeId") String storeId, @Param("dateValue") Integer dateValue);
|
||||||
|
|
||||||
/// 查询指定日期及之后的营业日
|
/// 查询指定日期及之后的营业日
|
||||||
@@ -35,9 +36,16 @@ public interface GaoStoreBusinessDayMapper extends BaseMapper<GaoStoreBusinessDa
|
|||||||
/// @param storeId 门店 ID
|
/// @param storeId 门店 ID
|
||||||
/// @param beginDateValue 开始日期值,格式为 yyyyMMdd
|
/// @param beginDateValue 开始日期值,格式为 yyyyMMdd
|
||||||
/// @return 营业日列表
|
/// @return 营业日列表
|
||||||
@Select("SELECT * FROM `gao_store_business_day` WHERE `store_id` = #{storeId} AND `date_value` >= #{beginDateValue} AND `open_status` = 'OPEN' AND `deleted_at` IS NULL ORDER BY `date_value` ASC")
|
@Select("SELECT * FROM `gao_store_business_day` WHERE `store_id` = #{storeId} AND `date_value` >= #{beginDateValue} AND `status` = 'OPEN' AND `deleted_at` IS NULL ORDER BY `date_value` ASC")
|
||||||
List<GaoStoreBusinessDay> selectOpenListFromDate(@Param("storeId") String storeId, @Param("beginDateValue") Integer beginDateValue);
|
List<GaoStoreBusinessDay> selectOpenListFromDate(@Param("storeId") String storeId, @Param("beginDateValue") Integer beginDateValue);
|
||||||
|
|
||||||
|
/// 清空指定日期及之后的营业日序号
|
||||||
|
///
|
||||||
|
/// @param storeId 门店 ID
|
||||||
|
/// @param beginDateValue 开始日期值,格式为 yyyyMMdd
|
||||||
|
@Update("UPDATE `gao_store_business_day` SET `business_day_no` = NULL, `updated_at` = ROUND(UNIX_TIMESTAMP(CURRENT_TIMESTAMP(3)) * 1000) WHERE `store_id` = #{storeId} AND `date_value` >= #{beginDateValue} AND `status` = 'OPEN' AND `deleted_at` IS NULL")
|
||||||
|
void clearBusinessDayNoFromDate(@Param("storeId") String storeId, @Param("beginDateValue") Integer beginDateValue);
|
||||||
|
|
||||||
/// 查询日期范围内的营业日
|
/// 查询日期范围内的营业日
|
||||||
///
|
///
|
||||||
/// @param storeId 门店 ID
|
/// @param storeId 门店 ID
|
||||||
|
|||||||
+3
-4
@@ -97,12 +97,11 @@ public class GaoStoreBusinessDayServiceImplement extends AbstractEntityService<G
|
|||||||
TimiException.required(storeId, "not found storeId");
|
TimiException.required(storeId, "not found storeId");
|
||||||
TimiException.required(beginDateValue, "not found beginDateValue");
|
TimiException.required(beginDateValue, "not found beginDateValue");
|
||||||
long businessDayNo = TimiJava.defaultIfNull(mapper.selectLastBusinessDayNoBefore(storeId, beginDateValue), 0L);
|
long businessDayNo = TimiJava.defaultIfNull(mapper.selectLastBusinessDayNoBefore(storeId, beginDateValue), 0L);
|
||||||
|
mapper.clearBusinessDayNoFromDate(storeId, beginDateValue);
|
||||||
for (GaoStoreBusinessDay businessDay : mapper.selectOpenListFromDate(storeId, beginDateValue)) {
|
for (GaoStoreBusinessDay businessDay : mapper.selectOpenListFromDate(storeId, beginDateValue)) {
|
||||||
businessDayNo++;
|
businessDayNo++;
|
||||||
if (!Long.valueOf(businessDayNo).equals(businessDay.getBusinessDayNo())) {
|
businessDay.setBusinessDayNo(businessDayNo);
|
||||||
businessDay.setBusinessDayNo(businessDayNo);
|
mapper.update(businessDay);
|
||||||
mapper.update(businessDay);
|
|
||||||
}
|
|
||||||
eventRecordMapper.updateBusinessDayNoByStoreIdAndRegisteredDateValue(storeId, businessDay.getDateValue(), businessDayNo);
|
eventRecordMapper.updateBusinessDayNoByStoreIdAndRegisteredDateValue(storeId, businessDay.getDateValue(), businessDayNo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,14 @@
|
|||||||
ALTER TABLE `gao_store`
|
ALTER TABLE `gao_store`
|
||||||
ADD COLUMN `auto_closed_day` BOOLEAN NOT NULL DEFAULT FALSE COMMENT 'true 为启用自动计算休息日' AFTER `remark`;
|
ADD COLUMN `auto_closed_day` BOOLEAN NOT NULL DEFAULT FALSE COMMENT 'true 为启用自动计算休息日' AFTER `remark`;
|
||||||
ALTER TABLE `gao_store_business_day`
|
ALTER TABLE `gao_store_business_day`
|
||||||
RENAME COLUMN `open_status` TO `status`;
|
DROP KEY `uk_gao_store_business_day_active_no`,
|
||||||
|
DROP KEY `idx_gao_store_business_day_open_no`,
|
||||||
|
DROP COLUMN `active_business_day_no`;
|
||||||
|
ALTER TABLE `gao_store_business_day`
|
||||||
|
CHANGE COLUMN `open_status` `status` VARCHAR(32) NOT NULL COMMENT '营业状态';
|
||||||
|
ALTER TABLE `gao_store_business_day`
|
||||||
|
ADD COLUMN `active_business_day_no` BIGINT GENERATED ALWAYS AS (
|
||||||
|
CASE WHEN `deleted_at` IS NULL AND `status` = 'OPEN' THEN `business_day_no` ELSE NULL END
|
||||||
|
) STORED COMMENT '未删除营业日序号' INVISIBLE AFTER `business_day_no`,
|
||||||
|
ADD UNIQUE KEY `uk_gao_store_business_day_active_no` (`store_id`, `active_business_day_no`),
|
||||||
|
ADD KEY `idx_gao_store_business_day_status_no` (`store_id`, `status`, `business_day_no`);
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="com.imyeyu.api.modules.common.mapper.TagMapper">
|
||||||
|
<select id="selectByIdList" resultType="com.imyeyu.api.modules.common.entity.Tag">
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM `tag`
|
||||||
|
WHERE
|
||||||
|
TRUE
|
||||||
|
<if test="idList != null and !idList.isEmpty()">
|
||||||
|
AND `id` IN
|
||||||
|
<foreach collection="idList" item="id" separator="," open="(" close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test="idList == null or idList.isEmpty()">
|
||||||
|
AND FALSE
|
||||||
|
</if>
|
||||||
|
AND `deleted_at` IS NULL
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user