| | |
| | | import cn.lili.modules.lmk.domain.form.VideoFootPrintForm; |
| | | import cn.lili.modules.lmk.domain.form.VideoHomePageInfoForm; |
| | | import cn.lili.modules.lmk.domain.form.WxVideoForm; |
| | | import cn.lili.modules.lmk.domain.query.AuthorVideoQuery; |
| | | import cn.lili.modules.lmk.domain.query.HealthVideoQuery; |
| | | import cn.lili.modules.lmk.domain.query.WxHealthVideoQuery; |
| | | import cn.lili.modules.lmk.domain.query.*; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import lombok.RequiredArgsConstructor; |
| | | import java.util.List; |
| | |
| | | import io.swagger.annotations.ApiOperation; |
| | | import cn.lili.modules.lmk.service.VideoService; |
| | | import cn.lili.base.Result; |
| | | import cn.lili.modules.lmk.domain.query.VideoQuery; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | /** |
| | |
| | | public Result healthRecommendVideo(WxHealthVideoQuery query) { |
| | | return videoService.healthRecommendVideo(query); |
| | | } |
| | | @GetMapping("/kitchen/type") |
| | | @ApiOperation(value = "厨神视频类型列表", notes = "厨神视频类型列表") |
| | | public Result kitchenTypeList() { |
| | | return videoService.kitchenTypeList(); |
| | | } |
| | | |
| | | @GetMapping("/kitchen/recommend") |
| | | @ApiOperation(value = "厨神视频推荐", notes = "厨神视频推荐") |
| | | public Result kitchenRecommendVideo(WxKitchenVideoQuery query) { |
| | | return videoService.kitchenRecommendVideo(query); |
| | | } |
| | | @GetMapping("/goods/detail/{videoId}") |
| | | @ApiOperation(value = "视频商品查看", notes = "视频商品查看") |
| | | public Result getGoodsDetail(@PathVariable("videoId") String videoId) { |
New file |
| | |
| | | -----BEGIN CERTIFICATE----- |
| | | MIIEKzCCAxOgAwIBAgIUQI+FRbtTLFAdR9seUI0sqtgzEHcwDQYJKoZIhvcNAQEL |
| | | BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT |
| | | FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg |
| | | Q0EwHhcNMjUwNDAxMDU0NDU0WhcNMzAwMzMxMDU0NDU0WjCBhDETMBEGA1UEAwwK |
| | | MTcxMjU3NzU5MDEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTAwLgYDVQQL |
| | | DCfmt7HlnLPnvo7nm4rnrZDlhpzkuJrnp5HmioDmnInpmZDlhazlj7gxCzAJBgNV |
| | | BAYTAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEP |
| | | ADCCAQoCggEBAMpJI0pxouUDKZGtpIytAnLQSZMgltCGEmfuuFaMRN0eqiPJHbo0 |
| | | EUiRfJNUCBcFsf71iW5bSA2oxyPxh1oljalUDagBWng+3zaXBoFOHrWoswd0B9u1 |
| | | GdTX/9LEBiLu3MqENckHxI/hx22HuK0vEg2VFroj+5IBIf+KnJoyAkfCH5e8Ea+t |
| | | FCHlsZa5GqC3iAIB+JTmdSHTRKVfjWHGfGLmhHZt/intLDstlKP8IRbtTR9CRXE3 |
| | | Q5mVYURGzQ0VOe9zPGZE2CQ5Zd4ETOHwLRJy78nls4Eqn1D1UOZD88uSSi65MM86 |
| | | msjnH1u3upH1yeTT1Gr4Zvjz8FTjzVAzjL8CAwEAAaOBuTCBtjAJBgNVHRMEAjAA |
| | | MAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2 |
| | | Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJD |
| | | MDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJC |
| | | MjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQAf |
| | | BTOdG7IOxZGUujH83E0RULUcAFy/fIhwM15ZgI7dflCNO3n3Vlx3Q/NuHEKS70hH |
| | | kdmNCjusIMVDr8vixYwD3rQ6Dw5oi0DNWihLyj99JdqZlcxHSYsmuFXXWAzpvl1q |
| | | wwAqF1RrrBkoK8T1L3SzZsBRwJcjPZAtQmdaYyZ2wc0RN0LmJQ26Kr+AWTsQ/4NK |
| | | QC2dlIhRRCQzurBt4Y9s75iDnkckDZx82vJ2pCYAIgcPJRLTQ+06wRnMXajaEicN |
| | | lXknSrML7I4jM5zOHzuj7RkviFpTdXep1Tk+4E0pN6pXxLyR7uNJ0YuJqnqcdlTY |
| | | Di0KGtJMK0iUNMKQnFGA |
| | | -----END CERTIFICATE----- |
New file |
| | |
| | | -----BEGIN PRIVATE KEY----- |
| | | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDKSSNKcaLlAymR |
| | | raSMrQJy0EmTIJbQhhJn7rhWjETdHqojyR26NBFIkXyTVAgXBbH+9YluW0gNqMcj |
| | | 8YdaJY2pVA2oAVp4Pt82lwaBTh61qLMHdAfbtRnU1//SxAYi7tzKhDXJB8SP4cdt |
| | | h7itLxINlRa6I/uSASH/ipyaMgJHwh+XvBGvrRQh5bGWuRqgt4gCAfiU5nUh00Sl |
| | | X41hxnxi5oR2bf4p7Sw7LZSj/CEW7U0fQkVxN0OZlWFERs0NFTnvczxmRNgkOWXe |
| | | BEzh8C0Scu/J5bOBKp9Q9VDmQ/PLkkouuTDPOprI5x9bt7qR9cnk09Rq+Gb48/BU |
| | | 481QM4y/AgMBAAECggEAdJoeFp5USHA/OPL/4/siay43CvEBHif6WiCX74Ohelhf |
| | | uIsIcLnssIj0ZzRMCYFF7fJ5CrzhVsZQLB7gZ404EEAcMxi8no2XOy9pF4YBW7Nn |
| | | p0cx9Gp6/l6X31UROHe5m58EJeItYsbBnxhZ0rJMVLn4xMlTDQFMKLIsvRFQkS2F |
| | | ZHIFqklDP4kFMmpRlCdoLSTldYmFJ5AtepyXYimGA2dpYooDDhgR1FAudrybQFDh |
| | | A2h0iZTTmhABnbW3elL6PydjY4yszvM6I15a/eiynevXKVLyVYBHTV39XUOjJp6f |
| | | XpOW3nuxhkCK2xUfRgOgepxS+3/dauROtM4SQeo56QKBgQDsAoZwYRI0yeTYA0lo |
| | | m+QAwYGcbTaccKOghc6taIJi4xAOH5WloB6Uv+Wx3gn1DufOJt3yeF4/1+2W1oH6 |
| | | 9ZBZwNo98VqMg2oa4DxhX3Oa6v7VTqelFccGGZ+/Lim5bdMfcfapxlv8MB77OPJW |
| | | fCAA514hp2ydkkPprFtcPU1z9QKBgQDba1xyHpKmFuz7kju9OWLBq1x8v2GnOqW6 |
| | | 4ypfNob2ljYTK7BfldPupYF7VC4F6dZqqKlyJqe2rhgRWs49J772AHcGovEHaRsT |
| | | Pi63/EA3ASfi58MmuWI5Y/hFSnM6q14ZTnpD9ZKiInK8HFHjVCrCrfAE1G13/s+R |
| | | K+YpawTBYwKBgQCoqSlQWF69cObk5HxqkLWBQMiSdI4JgIm+5sELtdswNhq8LSAx |
| | | q9sO7JCG6ynsgklwTuBgLlsUfwhguk1LfoA5VBPjHn9aWXPTXxpnb+Ja/MM+xyYR |
| | | WR3RIzDBXIke5fhxyWzAaWxFLlKFsG2nFq98Vdw0asS5WtTDwpPLuFeInQKBgHHG |
| | | nv4x6jsjgikE7+Mz4YipUeEB4CI14AAjkTIj9SHiTBHuwpsd9vI1cgnAYckBMwTF |
| | | hm/BqY+pgKNnIbBGbtfi79VKIo+EKdz1joYq0CV1fPhE00W+NTerJe7QJyYR/E5F |
| | | ClM5AJsAH9x5FuE5IJ8oUGBAwq7JO1p8l/F8I9AfAoGBAMvLmGi36QRzv9VjQO1Z |
| | | S0yG9OjLqdexYl7ogZYW/ys1yZg9mYiFv1wjqkDhegiGM8QyNoUFq2d7cIFZtfz6 |
| | | 3wrcFn4JDW1l9VaB+IM2G4GEsgrZ4wLalKdCRR83KRvuTyjUKZYVvWNNrNzv0gp/ |
| | | 51l5UctJTdE2v4+9OTvpo8b2 |
| | | -----END PRIVATE KEY----- |
New file |
| | |
| | | package cn.lili.modules.lmk.domain.entity; |
| | | |
| | | import cn.lili.mybatis.BaseEntity; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zxl |
| | | * @since 2025-05-14 |
| | | */ |
| | | @Data |
| | | @TableName("lmk_tag") |
| | | public class Tag extends BaseEntity { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | |
| | | @TableField("tag_name") |
| | | private String tagName; |
| | | |
| | | @TableField("tag_type_id") |
| | | private String tagTypeId; |
| | | |
| | | |
| | | @TableField("sort_num") |
| | | private Integer sortNum; |
| | | |
| | | } |
New file |
| | |
| | | package cn.lili.modules.lmk.domain.entity; |
| | | |
| | | import cn.lili.mybatis.BaseEntity; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zxl |
| | | * @since 2025-05-14 |
| | | */ |
| | | @Data |
| | | @TableName("lmk_tag_type") |
| | | public class TagType extends BaseEntity { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @TableField("tag_type_name") |
| | | private String tagTypeName; |
| | | |
| | | @TableField("type_key") |
| | | private String typeKey; |
| | | |
| | | @TableField("parent_id") |
| | | private String parentId; |
| | | |
| | | @TableField("sort_num") |
| | | private Integer sortNum; |
| | | } |
New file |
| | |
| | | package cn.lili.modules.lmk.domain.form; |
| | | |
| | | import cn.lili.base.AbsForm; |
| | | import cn.lili.group.Add; |
| | | import cn.lili.group.Update; |
| | | import cn.lili.modules.lmk.domain.entity.Tag; |
| | | import cn.lili.modules.lmk.domain.entity.VideoTag; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.lang.NonNull; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | /** |
| | | * 视频标签表单 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "VideoTag表单", description = "视频标签表单") |
| | | public class TagForm extends AbsForm { |
| | | |
| | | @NotBlank(message = "标签名称不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("标签名称") |
| | | private String tagName; |
| | | |
| | | @NotNull(message = "标签分类不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("标签分类") |
| | | private String tagTypeId; |
| | | |
| | | @NotNull(message = "序号不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("序号") |
| | | private Integer sortNum; |
| | | |
| | | public static Tag getEntityByForm(@NonNull TagForm form, Tag entity) { |
| | | if (entity == null) { |
| | | entity = new Tag(); |
| | | } |
| | | BeanUtils.copyProperties(form, entity); |
| | | return entity; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package cn.lili.modules.lmk.domain.form; |
| | | |
| | | import cn.lili.base.AbsForm; |
| | | import cn.lili.group.Add; |
| | | import cn.lili.group.Update; |
| | | import cn.lili.modules.lmk.domain.entity.TagType; |
| | | import cn.lili.modules.lmk.domain.entity.VideoTag; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.lang.NonNull; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | /** |
| | | * 视频标签表单 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "VideoTag表单", description = "视频标签表单") |
| | | public class TagTypeForm extends AbsForm { |
| | | |
| | | @NotBlank(message = "标签名称不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("标签名称") |
| | | private String tagTypeName; |
| | | |
| | | @NotNull(message = "分类标识不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("分类标识") |
| | | private String typeKey; |
| | | |
| | | @NotNull(message = "父节点不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("父节点") |
| | | private String parentId; |
| | | |
| | | |
| | | @NotNull(message = "序号不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("序号") |
| | | private Integer sortNum; |
| | | |
| | | public static TagType getEntityByForm(@NonNull TagTypeForm form, TagType entity) { |
| | | if (entity == null) { |
| | | entity = new TagType(); |
| | | } |
| | | BeanUtils.copyProperties(form, entity); |
| | | return entity; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package cn.lili.modules.lmk.domain.query; |
| | | |
| | | import cn.lili.base.AbsQuery; |
| | | import cn.lili.group.Add; |
| | | import cn.lili.group.Update; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | /** |
| | | * 视频标签查询 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "Tag查询参数", description = "标签查询参数") |
| | | public class TagQuery extends AbsQuery { |
| | | |
| | | @ApiModelProperty("标签名称") |
| | | private String tagName; |
| | | |
| | | @ApiModelProperty("标签分类") |
| | | private String tagTypeId; |
| | | |
| | | |
| | | } |
| | | |
New file |
| | |
| | | package cn.lili.modules.lmk.domain.query; |
| | | |
| | | import cn.lili.base.AbsQuery; |
| | | import cn.lili.group.Add; |
| | | import cn.lili.group.Update; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | /** |
| | | * 视频标签查询 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "Tag分类查询参数", description = "标签分类查询参数") |
| | | public class TagTypeQuery extends AbsQuery { |
| | | |
| | | @ApiModelProperty("标签名称") |
| | | private String tagTypeName; |
| | | |
| | | @ApiModelProperty("分类标识") |
| | | private String typeKey; |
| | | |
| | | @ApiModelProperty("父节点") |
| | | private String parentId; |
| | | |
| | | } |
| | | |
New file |
| | |
| | | package cn.lili.modules.lmk.domain.query; |
| | | |
| | | import cn.lili.base.AbsQuery; |
| | | import cn.lili.modules.lmk.enums.general.VideoTypeEnum; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 微信小程序大健康查询参数 |
| | | * |
| | | * @author wp |
| | | * @since 2025-05-16 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "微信小程序大健康查询参数", description = "微信小程序大健康查询参数") |
| | | public class WxKitchenVideoQuery extends AbsQuery { |
| | | |
| | | /** |
| | | * @see VideoTypeEnum |
| | | */ |
| | | @ApiModelProperty("视频类型:视频、大健康、神厨,默认不传查视频") |
| | | private String videoType = VideoTypeEnum.COOK.getValue(); |
| | | |
| | | @ApiModelProperty("厨神视频标签id") |
| | | private String kitchenTypeId; |
| | | } |
| | | |
New file |
| | |
| | | package cn.lili.modules.lmk.domain.vo; |
| | | |
| | | import cn.lili.base.AbsVo; |
| | | import cn.lili.group.Add; |
| | | import cn.lili.group.Update; |
| | | import cn.lili.modules.lmk.domain.entity.TagType; |
| | | import cn.lili.modules.lmk.domain.entity.VideoTag; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.lang.NonNull; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 视频标签展示 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "标签分类响应数据", description = "标签分类响应数据") |
| | | public class TagTypeVO extends AbsVo { |
| | | |
| | | @ApiModelProperty("标签名称") |
| | | private String tagTypeName; |
| | | |
| | | @ApiModelProperty("分类标识") |
| | | private String typeKey; |
| | | |
| | | @ApiModelProperty("父节点") |
| | | private String parentId; |
| | | |
| | | @ApiModelProperty("序号") |
| | | private Integer sortNum; |
| | | |
| | | private List<TagVO> children; |
| | | |
| | | public static TagTypeVO getVoByEntity(@NonNull TagType entity, TagTypeVO vo) { |
| | | if (vo == null) { |
| | | vo = new TagTypeVO(); |
| | | } |
| | | BeanUtils.copyProperties(entity, vo); |
| | | return vo; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package cn.lili.modules.lmk.domain.vo; |
| | | |
| | | import cn.lili.base.AbsVo; |
| | | import cn.lili.group.Add; |
| | | import cn.lili.group.Update; |
| | | import cn.lili.modules.lmk.domain.entity.Tag; |
| | | import cn.lili.modules.lmk.domain.entity.VideoTag; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.lang.NonNull; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | /** |
| | | * 视频标签展示 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "标签响应数据", description = "标签响应数据") |
| | | public class TagVO extends AbsVo { |
| | | |
| | | @ApiModelProperty("标签名称") |
| | | private String tagName; |
| | | |
| | | @ApiModelProperty("标签分类") |
| | | private String tagTypeId; |
| | | |
| | | @ApiModelProperty("标签分类") |
| | | private String tagTypeName; |
| | | |
| | | |
| | | @ApiModelProperty("序号") |
| | | private Integer sortNum; |
| | | |
| | | public static TagVO getVoByEntity(@NonNull Tag entity, TagVO vo) { |
| | | if (vo == null) { |
| | | vo = new TagVO(); |
| | | } |
| | | BeanUtils.copyProperties(entity, vo); |
| | | return vo; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package cn.lili.modules.lmk.enums.general; |
| | | |
| | | import lombok.Getter; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Getter |
| | | public enum TagTypeKeyEnum { |
| | | USER("USER", "用户"), |
| | | GOODS("GOODS", "商品"); |
| | | |
| | | private final String value; |
| | | |
| | | |
| | | private final String desc; |
| | | |
| | | TagTypeKeyEnum(String value, String desc) { |
| | | this.value = value; |
| | | this.desc = desc; |
| | | } |
| | | |
| | | /** |
| | | * 获取含义 |
| | | * |
| | | * @param value |
| | | * @return |
| | | */ |
| | | public static String getDescByValue(String value) { |
| | | if (StringUtils.isBlank(value)) { |
| | | return null; |
| | | } |
| | | for (TagTypeKeyEnum e : TagTypeKeyEnum.values()) { |
| | | if (value.equals(e.getValue())) { |
| | | return e.getDesc(); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static List<Map<String, Object>> getList() { |
| | | return Arrays.stream(TagTypeKeyEnum.values()) |
| | | .map(e -> { |
| | | Map<String, Object> map = new LinkedHashMap<>(); |
| | | map.put("value", e.getValue()); |
| | | map.put("label", e.getDesc()); |
| | | return map; |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | } |
| | | } |
New file |
| | |
| | | package cn.lili.modules.lmk.mapper; |
| | | |
| | | import cn.lili.modules.lmk.domain.entity.Tag; |
| | | import cn.lili.modules.lmk.domain.query.TagQuery; |
| | | import cn.lili.modules.lmk.domain.vo.TagVO; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | /** |
| | | * 视频标签 Mapper 接口 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Mapper |
| | | public interface TagMapper extends BaseMapper<Tag> { |
| | | |
| | | IPage<TagVO> getPage(IPage<TagVO> page, @Param("query") TagQuery query); |
| | | } |
New file |
| | |
| | | package cn.lili.modules.lmk.mapper; |
| | | |
| | | import cn.lili.modules.lmk.domain.entity.TagType; |
| | | import cn.lili.modules.lmk.domain.vo.TagTypeVO; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 视频标签 Mapper 接口 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Mapper |
| | | public interface TagTypeMapper extends BaseMapper<TagType> { |
| | | |
| | | |
| | | List<TagTypeVO> getTree(@Param("typeKey") String typeKey, @Param("tagTypeName") String tagTypeName); |
| | | |
| | | List<TagTypeVO> getByParentId(@Param("id") String id); |
| | | } |
| | |
| | | |
| | | IPage recommendHealthVideo(IPage page, @Param("query") WxHealthVideoQuery query); |
| | | |
| | | |
| | | IPage wxKitchenVideoQuery(IPage page, @Param("query") WxKitchenVideoQuery query); |
| | | |
| | | /** |
| | | * 批量更新视频收藏数量 |
| | | * |
New file |
| | |
| | | package cn.lili.modules.lmk.service; |
| | | |
| | | import cn.lili.base.Result; |
| | | import cn.lili.modules.lmk.domain.entity.Tag; |
| | | import cn.lili.modules.lmk.domain.form.TagForm; |
| | | import cn.lili.modules.lmk.domain.query.TagQuery; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 标签 服务类 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | public interface TagService extends IService<Tag> { |
| | | |
| | | /** |
| | | * 添加 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | Result add(TagForm form); |
| | | |
| | | /** |
| | | * 修改 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | Result update(TagForm form); |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | Result remove(List<String> ids); |
| | | |
| | | /** |
| | | * id删除 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | Result removeById(String id); |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | Result page(TagQuery query); |
| | | |
| | | /** |
| | | * 列表 |
| | | * |
| | | * @param tagName |
| | | * @return |
| | | */ |
| | | Result all(String tagName); |
| | | |
| | | } |
New file |
| | |
| | | package cn.lili.modules.lmk.service; |
| | | |
| | | import cn.lili.base.Result; |
| | | import cn.lili.modules.lmk.domain.entity.TagType; |
| | | import cn.lili.modules.lmk.domain.form.TagTypeForm; |
| | | import cn.lili.modules.lmk.domain.query.TagTypeQuery; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 标签分类 服务类 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | public interface TagTypeService extends IService<TagType> { |
| | | |
| | | /** |
| | | * 添加 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | Result add(TagTypeForm form); |
| | | |
| | | /** |
| | | * 修改 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | Result update(TagTypeForm form); |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | Result remove(List<String> ids); |
| | | |
| | | /** |
| | | * id删除 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | Result removeById(String id); |
| | | |
| | | |
| | | /** |
| | | * 列表 |
| | | * |
| | | * @param tagTypeName |
| | | * @return |
| | | */ |
| | | Result getTree(String keyType, String tagTypeName); |
| | | |
| | | } |
| | |
| | | |
| | | Result healthRecommendVideo(WxHealthVideoQuery query); |
| | | |
| | | Result kitchenTypeList(); |
| | | |
| | | Result kitchenRecommendVideo(WxKitchenVideoQuery query); |
| | | |
| | | /** |
| | | * 批量更新视频收藏数量 |
| | | * |
New file |
| | |
| | | package cn.lili.modules.lmk.service.impl; |
| | | |
| | | import cn.lili.base.Result; |
| | | import cn.lili.modules.lmk.domain.entity.Tag; |
| | | import cn.lili.modules.lmk.domain.form.TagForm; |
| | | import cn.lili.modules.lmk.domain.query.TagQuery; |
| | | import cn.lili.modules.lmk.domain.vo.TagVO; |
| | | import cn.lili.modules.lmk.enums.general.TagCreateTypeEnum; |
| | | import cn.lili.modules.lmk.mapper.TagMapper; |
| | | import cn.lili.modules.lmk.service.TagService; |
| | | import cn.lili.utils.PageUtil; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.Assert; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 视频标签 服务实现类 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class TagServiceImpl extends ServiceImpl<TagMapper, Tag> implements TagService { |
| | | |
| | | |
| | | /** |
| | | * 添加 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result add(TagForm form) { |
| | | Tag entity = TagForm.getEntityByForm(form, null); |
| | | baseMapper.insert(entity); |
| | | return Result.ok("添加成功"); |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result update(TagForm form) { |
| | | Tag entity = baseMapper.selectById(form.getId()); |
| | | |
| | | // 为空抛IllegalArgumentException,做全局异常处理 |
| | | Assert.notNull(entity, "记录不存在"); |
| | | BeanUtils.copyProperties(form, entity); |
| | | baseMapper.updateById(entity); |
| | | return Result.ok("修改成功"); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result remove(List<String> ids) { |
| | | baseMapper.deleteBatchIds(ids); |
| | | return Result.ok("删除成功"); |
| | | } |
| | | |
| | | /** |
| | | * id删除 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result removeById(String id) { |
| | | baseMapper.deleteById(id); |
| | | return Result.ok("删除成功"); |
| | | } |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result page(TagQuery query) { |
| | | IPage<TagVO> page = PageUtil.getPage(query, TagVO.class); |
| | | page = baseMapper.getPage(page, query); |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 列表 |
| | | * |
| | | * @param tagName |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result all(String tagName) { |
| | | // List<Tag> entities = new LambdaQueryChainWrapper<>(baseMapper) |
| | | // .select(Tag::getId, Tag::getTagName) |
| | | // .like(StringUtils.isNotBlank(tagName), Tag::getTagName, tagName) |
| | | // .orderByDesc(Tag::getUseNum) |
| | | // .list(); |
| | | // List<SimpleTagVO> vos = entities.stream() |
| | | // .map(entity -> { |
| | | // SimpleTagVO vo = new SimpleTagVO(); |
| | | // BeanUtils.copyProperties(entity, vo); |
| | | // return vo; |
| | | // }) |
| | | // .collect(Collectors.toList()); |
| | | // return Result.ok().data(vos); |
| | | return Result.ok().data(new ArrayList<>()); |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package cn.lili.modules.lmk.service.impl; |
| | | |
| | | import cn.lili.base.Result; |
| | | import cn.lili.modules.lmk.domain.entity.TagType; |
| | | import cn.lili.modules.lmk.domain.form.TagForm; |
| | | import cn.lili.modules.lmk.domain.form.TagTypeForm; |
| | | import cn.lili.modules.lmk.domain.query.TagQuery; |
| | | import cn.lili.modules.lmk.domain.query.TagTypeQuery; |
| | | import cn.lili.modules.lmk.domain.vo.TagTypeVO; |
| | | import cn.lili.modules.lmk.domain.vo.TagVO; |
| | | import cn.lili.modules.lmk.enums.general.TagCreateTypeEnum; |
| | | import cn.lili.modules.lmk.mapper.TagMapper; |
| | | import cn.lili.modules.lmk.mapper.TagTypeMapper; |
| | | import cn.lili.modules.lmk.service.TagService; |
| | | import cn.lili.modules.lmk.service.TagTypeService; |
| | | import cn.lili.utils.PageUtil; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.Assert; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 视频标签 服务实现类 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class TagTypeServiceImpl extends ServiceImpl<TagTypeMapper, TagType> implements TagTypeService { |
| | | |
| | | /** |
| | | * 添加 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result add(TagTypeForm form) { |
| | | TagType entity = TagTypeForm.getEntityByForm(form, null); |
| | | baseMapper.insert(entity); |
| | | return Result.ok("添加成功"); |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result update(TagTypeForm form) { |
| | | TagType entity = baseMapper.selectById(form.getId()); |
| | | |
| | | // 为空抛IllegalArgumentException,做全局异常处理 |
| | | Assert.notNull(entity, "记录不存在"); |
| | | BeanUtils.copyProperties(form, entity); |
| | | baseMapper.updateById(entity); |
| | | return Result.ok("修改成功"); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result remove(List<String> ids) { |
| | | baseMapper.deleteBatchIds(ids); |
| | | return Result.ok("删除成功"); |
| | | } |
| | | |
| | | /** |
| | | * id删除 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result removeById(String id) { |
| | | baseMapper.deleteById(id); |
| | | return Result.ok("删除成功"); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 列表 |
| | | * |
| | | * @param tagTypeName |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result getTree(String keyType, String tagTypeName) { |
| | | List<TagTypeVO> list = baseMapper.getTree(keyType, tagTypeName); |
| | | return Result.ok().data(list); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | private final VideoAccountService videoAccountService; |
| | | private final KitchenVideoTypeRefService kitchenVideoTypeRefService; |
| | | private final VideoGoodsService videoGoodsService; |
| | | |
| | | private final KitchenTypeService kitchenTypeService; |
| | | |
| | | /** |
| | | * 添加 |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Result kitchenTypeList() { |
| | | List<KitchenType> list = kitchenTypeService.list(Wrappers.<KitchenType>lambdaQuery().orderByAsc(KitchenType::getSortNum)); |
| | | return Result.ok().data(list); |
| | | } |
| | | |
| | | @Override |
| | | public Result kitchenRecommendVideo(WxKitchenVideoQuery query) { |
| | | IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class); |
| | | baseMapper.wxKitchenVideoQuery(page, query); |
| | | page.getRecords().forEach(v -> { |
| | | if (VideoContentTypeEnum.VIDEO.getValue().equals(v.getVideoContentType())) { |
| | | v.setVideoUrl(cosUtil.getPreviewUrl(v.getVideoFileKey())); |
| | | v.setCoverUrl(cosUtil.getPreviewUrl(v.getCoverFileKey())); |
| | | } |
| | | }); |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateCollectNumBatch(List<CollectTypeNumVO> numList) { |
| | | // 按500条数据进行拆分 |
New file |
| | |
| | | <?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="cn.lili.modules.lmk.mapper.TagMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="cn.lili.modules.lmk.domain.vo.TagVO"> |
| | | <id column="id" property="id"/> |
| | | <result column="tag_type_id" property="tagTypeId"/> |
| | | <result column="tag_type_name" property="tagTypeName"/> |
| | | <result column="tag_name" property="tagName"/> |
| | | <result column="sort_num" property="sortNum"/> |
| | | |
| | | </resultMap> |
| | | <select id="getPage" resultMap="BaseResultMap"> |
| | | select t.id,t.tag_type_id,t.tag_name,t.sort_num,tt.tag_type_name as tag_type_name |
| | | from lmk_tag t |
| | | left join lmk_tag_type tt on t.tag_type_id = tt.id |
| | | where t.delete_flag = false |
| | | <if test="query.tagName != null and query.tagName != ''"> |
| | | and t.tag_name like concat('%',#{query.tagName},'%') |
| | | </if> |
| | | <if test="query.tagTypeId != null and query.tagTypeId != ''"> |
| | | and t.tag_type_id like concat('%',#{query.tagTypeId},'%') |
| | | </if> |
| | | order by t.sort_num |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?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="cn.lili.modules.lmk.mapper.TagTypeMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="cn.lili.modules.lmk.domain.vo.TagTypeVO"> |
| | | <id column="id" property="id"/> |
| | | <result column="tag_type_name" property="tagTypeName"/> |
| | | <result column="type_key" property="typeKey"/> |
| | | <result column="parent_id" property="parentId"/> |
| | | <result column="sort_num" property="sortNum"/> |
| | | <collection property="children" ofType="cn.lili.modules.lmk.domain.vo.TagVO" |
| | | select="cn.lili.modules.lmk.mapper.TagTypeMapper.getByParentId" column="id"> |
| | | </collection> |
| | | |
| | | |
| | | </resultMap> |
| | | <select id="getByParentId" resultMap="BaseResultMap"> |
| | | select * |
| | | from lmk_tag_type |
| | | where delete_flag = false |
| | | and parent_id = #{id} |
| | | order by sort_num asc |
| | | </select> |
| | | <select id="getTree" resultMap="BaseResultMap"> |
| | | select * |
| | | from lmk_tag_type |
| | | where delete_flag = false |
| | | <if test="tagTypeName != null and tagTypeName!=''"> |
| | | and tag_type_name like concat('%',#{tagTypeName},'%') |
| | | </if> |
| | | <if test="tagTypeName == null or tagTypeName==''"> |
| | | and parent_id = 0 |
| | | </if> |
| | | <if test="typeKey != null"> |
| | | and type_key = #{typeKey} |
| | | </if> |
| | | order by sort_num asc |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | AND LV.video_content_type = 'video' |
| | | </select> |
| | | |
| | | <select id="wxKitchenVideoQuery" resultMap="WxResultMap"> |
| | | SELECT |
| | | LV.author_id, |
| | | LV.cover_url, |
| | | LV.video_fit, |
| | | LV.video_duration, |
| | | LV.video_file_key, |
| | | LV.title, |
| | | LV.goods_view_num, |
| | | LV.goods_order_num, |
| | | LV.recommend, |
| | | LV.status, |
| | | LV.play_num, |
| | | LV.comment_num, |
| | | LV.collect_num, |
| | | LV.weight, |
| | | LV.audit_pass_time, |
| | | LV.update_time, |
| | | LV.video_content_type, |
| | | LV.video_type, |
| | | LV.video_imgs, |
| | | LV.id, |
| | | LAU.nick_name AS authorName, |
| | | LAU.avatar AS authorAvatar |
| | | FROM |
| | | lmk_video LV |
| | | LEFT JOIN li_admin_user LAU ON LV.author_id = LAU.id |
| | | <if test="query.kitchenTypeId !=null and query.kitchenTypeId !=''"> |
| | | JOIN (SELECT DISTINCT video_id FROM lmk_kitchen_video_type_ref WHERE kitchen_type_id = #{query.kitchenTypeId}) VT ON VT.video_id = LV.id |
| | | </if> |
| | | WHERE |
| | | LV.delete_flag = 0 AND LV.status = '1' AND LV.video_type = #{query.videoType} |
| | | AND LV.video_content_type = 'video' |
| | | </select> |
| | | |
| | | |
| | | <update id="updateCollectNumBatch"> |
| | | UPDATE lmk_video |
New file |
| | |
| | | package cn.lili.controller.lmk; |
| | | |
| | | import cn.lili.base.Result; |
| | | import cn.lili.group.Add; |
| | | import cn.lili.group.Update; |
| | | import cn.lili.modules.lmk.domain.form.TagForm; |
| | | import cn.lili.modules.lmk.domain.query.TagQuery; |
| | | import cn.lili.modules.lmk.service.TagService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.constraints.NotEmpty; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 视频标签 前端控制器 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Validated |
| | | @RequiredArgsConstructor |
| | | @Api(value = "标签", tags = "标签管理") |
| | | @RestController |
| | | @RequestMapping("/manager/lmk/tag") |
| | | public class TagController { |
| | | |
| | | private final TagService tagService; |
| | | |
| | | @PostMapping |
| | | @ApiOperation(value = "添加", notes = "添加") |
| | | public Result add(@RequestBody @Validated(Add.class) TagForm form) { |
| | | return tagService.add(form); |
| | | } |
| | | |
| | | @PutMapping |
| | | @ApiOperation(value = "修改", notes = "修改") |
| | | public Result update(@RequestBody @Validated(Update.class) TagForm form) { |
| | | return tagService.update(form); |
| | | } |
| | | |
| | | @DeleteMapping("/{id}") |
| | | @ApiOperation(value = "ID删除", notes = "ID删除") |
| | | public Result removeById(@PathVariable("id") String id) { |
| | | return tagService.removeById(id); |
| | | } |
| | | |
| | | @DeleteMapping("/batch") |
| | | @ApiOperation(value = "批量删除", notes = "批量删除") |
| | | public Result remove(@RequestBody @NotEmpty(message = "请选择数据") List<String> ids) { |
| | | return tagService.remove(ids); |
| | | } |
| | | |
| | | @GetMapping("/page") |
| | | @ApiOperation(value = "分页", notes = "分页") |
| | | public Result page(TagQuery query) { |
| | | return tagService.page(query); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package cn.lili.controller.lmk; |
| | | |
| | | import cn.lili.base.Result; |
| | | import cn.lili.group.Add; |
| | | import cn.lili.group.Update; |
| | | import cn.lili.modules.lmk.domain.form.TagTypeForm; |
| | | import cn.lili.modules.lmk.domain.query.TagTypeQuery; |
| | | import cn.lili.modules.lmk.enums.general.TagTypeKeyEnum; |
| | | import cn.lili.modules.lmk.service.TagTypeService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.constraints.NotEmpty; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 视频标签 前端控制器 |
| | | * |
| | | * @author xp |
| | | * @since 2025-05-13 |
| | | */ |
| | | @Validated |
| | | @RequiredArgsConstructor |
| | | @Api(value = "标签分类", tags = "标签分类管理") |
| | | @RestController |
| | | @RequestMapping("/manager/lmk/tag-type") |
| | | public class TagTypeController { |
| | | |
| | | private final TagTypeService tagTypeService; |
| | | |
| | | @PostMapping |
| | | @ApiOperation(value = "添加", notes = "添加") |
| | | public Result add(@RequestBody @Validated(Add.class) TagTypeForm form) { |
| | | return tagTypeService.add(form); |
| | | } |
| | | |
| | | @PutMapping |
| | | @ApiOperation(value = "修改", notes = "修改") |
| | | public Result update(@RequestBody @Validated(Update.class) TagTypeForm form) { |
| | | return tagTypeService.update(form); |
| | | } |
| | | |
| | | @DeleteMapping("/{id}") |
| | | @ApiOperation(value = "ID删除", notes = "ID删除") |
| | | public Result removeById(@PathVariable("id") String id) { |
| | | return tagTypeService.removeById(id); |
| | | } |
| | | |
| | | @DeleteMapping("/batch") |
| | | @ApiOperation(value = "批量删除", notes = "批量删除") |
| | | public Result remove(@RequestBody @NotEmpty(message = "请选择数据") List<String> ids) { |
| | | return tagTypeService.remove(ids); |
| | | } |
| | | |
| | | |
| | | @GetMapping("/list") |
| | | @ApiOperation(value = "列表", notes = "列表") |
| | | public Result list(String tagTypeName) { |
| | | return tagTypeService.getTree(null, tagTypeName); |
| | | } |
| | | |
| | | |
| | | @GetMapping("/key/list") |
| | | @ApiOperation(value = "keyType列表", notes = "keyType列表") |
| | | public Result keyList() { |
| | | return Result.ok().data(TagTypeKeyEnum.getList()); |
| | | } |
| | | } |
| | |
| | | import cn.lili.modules.order.order.entity.dto.OrderSearchParams; |
| | | import cn.lili.modules.order.order.entity.vo.OrderDetailVO; |
| | | import cn.lili.modules.order.order.entity.vo.OrderSimpleVO; |
| | | import cn.lili.modules.order.order.service.OrderPackageService; |
| | | import cn.lili.modules.order.order.service.OrderPriceService; |
| | | import cn.lili.modules.order.order.service.OrderService; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | */ |
| | | @Autowired |
| | | private OrderPriceService orderPriceService; |
| | | |
| | | @Autowired |
| | | private OrderPackageService orderPackageService; |
| | | |
| | | |
| | | @ApiOperation(value = "查询订单列表分页") |
| | |
| | | return ResultUtil.data(orderService.getTraces(orderSn)); |
| | | } |
| | | |
| | | @GetMapping(value = "/getPackage/{orderSn}") |
| | | public ResultMessage<Object> getPackage(@NotBlank(message = "订单编号不能为空") @PathVariable String orderSn) { |
| | | return ResultUtil.data(orderPackageService.getOrderPackageVOList(orderSn)); |
| | | } |
| | | @ApiOperation(value = "卖家订单备注") |
| | | @PutMapping("/{orderSn}/sellerRemark") |
| | | public ResultMessage<Object> sellerRemark(@PathVariable String orderSn, @RequestParam String sellerRemark) { |
New file |
| | |
| | | -----BEGIN CERTIFICATE----- |
| | | MIIEKzCCAxOgAwIBAgIUQI+FRbtTLFAdR9seUI0sqtgzEHcwDQYJKoZIhvcNAQEL |
| | | BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT |
| | | FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg |
| | | Q0EwHhcNMjUwNDAxMDU0NDU0WhcNMzAwMzMxMDU0NDU0WjCBhDETMBEGA1UEAwwK |
| | | MTcxMjU3NzU5MDEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTAwLgYDVQQL |
| | | DCfmt7HlnLPnvo7nm4rnrZDlhpzkuJrnp5HmioDmnInpmZDlhazlj7gxCzAJBgNV |
| | | BAYTAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEP |
| | | ADCCAQoCggEBAMpJI0pxouUDKZGtpIytAnLQSZMgltCGEmfuuFaMRN0eqiPJHbo0 |
| | | EUiRfJNUCBcFsf71iW5bSA2oxyPxh1oljalUDagBWng+3zaXBoFOHrWoswd0B9u1 |
| | | GdTX/9LEBiLu3MqENckHxI/hx22HuK0vEg2VFroj+5IBIf+KnJoyAkfCH5e8Ea+t |
| | | FCHlsZa5GqC3iAIB+JTmdSHTRKVfjWHGfGLmhHZt/intLDstlKP8IRbtTR9CRXE3 |
| | | Q5mVYURGzQ0VOe9zPGZE2CQ5Zd4ETOHwLRJy78nls4Eqn1D1UOZD88uSSi65MM86 |
| | | msjnH1u3upH1yeTT1Gr4Zvjz8FTjzVAzjL8CAwEAAaOBuTCBtjAJBgNVHRMEAjAA |
| | | MAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2 |
| | | Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJD |
| | | MDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJC |
| | | MjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQAf |
| | | BTOdG7IOxZGUujH83E0RULUcAFy/fIhwM15ZgI7dflCNO3n3Vlx3Q/NuHEKS70hH |
| | | kdmNCjusIMVDr8vixYwD3rQ6Dw5oi0DNWihLyj99JdqZlcxHSYsmuFXXWAzpvl1q |
| | | wwAqF1RrrBkoK8T1L3SzZsBRwJcjPZAtQmdaYyZ2wc0RN0LmJQ26Kr+AWTsQ/4NK |
| | | QC2dlIhRRCQzurBt4Y9s75iDnkckDZx82vJ2pCYAIgcPJRLTQ+06wRnMXajaEicN |
| | | lXknSrML7I4jM5zOHzuj7RkviFpTdXep1Tk+4E0pN6pXxLyR7uNJ0YuJqnqcdlTY |
| | | Di0KGtJMK0iUNMKQnFGA |
| | | -----END CERTIFICATE----- |
New file |
| | |
| | | -----BEGIN PRIVATE KEY----- |
| | | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDKSSNKcaLlAymR |
| | | raSMrQJy0EmTIJbQhhJn7rhWjETdHqojyR26NBFIkXyTVAgXBbH+9YluW0gNqMcj |
| | | 8YdaJY2pVA2oAVp4Pt82lwaBTh61qLMHdAfbtRnU1//SxAYi7tzKhDXJB8SP4cdt |
| | | h7itLxINlRa6I/uSASH/ipyaMgJHwh+XvBGvrRQh5bGWuRqgt4gCAfiU5nUh00Sl |
| | | X41hxnxi5oR2bf4p7Sw7LZSj/CEW7U0fQkVxN0OZlWFERs0NFTnvczxmRNgkOWXe |
| | | BEzh8C0Scu/J5bOBKp9Q9VDmQ/PLkkouuTDPOprI5x9bt7qR9cnk09Rq+Gb48/BU |
| | | 481QM4y/AgMBAAECggEAdJoeFp5USHA/OPL/4/siay43CvEBHif6WiCX74Ohelhf |
| | | uIsIcLnssIj0ZzRMCYFF7fJ5CrzhVsZQLB7gZ404EEAcMxi8no2XOy9pF4YBW7Nn |
| | | p0cx9Gp6/l6X31UROHe5m58EJeItYsbBnxhZ0rJMVLn4xMlTDQFMKLIsvRFQkS2F |
| | | ZHIFqklDP4kFMmpRlCdoLSTldYmFJ5AtepyXYimGA2dpYooDDhgR1FAudrybQFDh |
| | | A2h0iZTTmhABnbW3elL6PydjY4yszvM6I15a/eiynevXKVLyVYBHTV39XUOjJp6f |
| | | XpOW3nuxhkCK2xUfRgOgepxS+3/dauROtM4SQeo56QKBgQDsAoZwYRI0yeTYA0lo |
| | | m+QAwYGcbTaccKOghc6taIJi4xAOH5WloB6Uv+Wx3gn1DufOJt3yeF4/1+2W1oH6 |
| | | 9ZBZwNo98VqMg2oa4DxhX3Oa6v7VTqelFccGGZ+/Lim5bdMfcfapxlv8MB77OPJW |
| | | fCAA514hp2ydkkPprFtcPU1z9QKBgQDba1xyHpKmFuz7kju9OWLBq1x8v2GnOqW6 |
| | | 4ypfNob2ljYTK7BfldPupYF7VC4F6dZqqKlyJqe2rhgRWs49J772AHcGovEHaRsT |
| | | Pi63/EA3ASfi58MmuWI5Y/hFSnM6q14ZTnpD9ZKiInK8HFHjVCrCrfAE1G13/s+R |
| | | K+YpawTBYwKBgQCoqSlQWF69cObk5HxqkLWBQMiSdI4JgIm+5sELtdswNhq8LSAx |
| | | q9sO7JCG6ynsgklwTuBgLlsUfwhguk1LfoA5VBPjHn9aWXPTXxpnb+Ja/MM+xyYR |
| | | WR3RIzDBXIke5fhxyWzAaWxFLlKFsG2nFq98Vdw0asS5WtTDwpPLuFeInQKBgHHG |
| | | nv4x6jsjgikE7+Mz4YipUeEB4CI14AAjkTIj9SHiTBHuwpsd9vI1cgnAYckBMwTF |
| | | hm/BqY+pgKNnIbBGbtfi79VKIo+EKdz1joYq0CV1fPhE00W+NTerJe7QJyYR/E5F |
| | | ClM5AJsAH9x5FuE5IJ8oUGBAwq7JO1p8l/F8I9AfAoGBAMvLmGi36QRzv9VjQO1Z |
| | | S0yG9OjLqdexYl7ogZYW/ys1yZg9mYiFv1wjqkDhegiGM8QyNoUFq2d7cIFZtfz6 |
| | | 3wrcFn4JDW1l9VaB+IM2G4GEsgrZ4wLalKdCRR83KRvuTyjUKZYVvWNNrNzv0gp/ |
| | | 51l5UctJTdE2v4+9OTvpo8b2 |
| | | -----END PRIVATE KEY----- |
New file |
| | |
| | | -----BEGIN CERTIFICATE----- |
| | | MIIEKzCCAxOgAwIBAgIUQI+FRbtTLFAdR9seUI0sqtgzEHcwDQYJKoZIhvcNAQEL |
| | | BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT |
| | | FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg |
| | | Q0EwHhcNMjUwNDAxMDU0NDU0WhcNMzAwMzMxMDU0NDU0WjCBhDETMBEGA1UEAwwK |
| | | MTcxMjU3NzU5MDEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTAwLgYDVQQL |
| | | DCfmt7HlnLPnvo7nm4rnrZDlhpzkuJrnp5HmioDmnInpmZDlhazlj7gxCzAJBgNV |
| | | BAYTAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEP |
| | | ADCCAQoCggEBAMpJI0pxouUDKZGtpIytAnLQSZMgltCGEmfuuFaMRN0eqiPJHbo0 |
| | | EUiRfJNUCBcFsf71iW5bSA2oxyPxh1oljalUDagBWng+3zaXBoFOHrWoswd0B9u1 |
| | | GdTX/9LEBiLu3MqENckHxI/hx22HuK0vEg2VFroj+5IBIf+KnJoyAkfCH5e8Ea+t |
| | | FCHlsZa5GqC3iAIB+JTmdSHTRKVfjWHGfGLmhHZt/intLDstlKP8IRbtTR9CRXE3 |
| | | Q5mVYURGzQ0VOe9zPGZE2CQ5Zd4ETOHwLRJy78nls4Eqn1D1UOZD88uSSi65MM86 |
| | | msjnH1u3upH1yeTT1Gr4Zvjz8FTjzVAzjL8CAwEAAaOBuTCBtjAJBgNVHRMEAjAA |
| | | MAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2 |
| | | Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJD |
| | | MDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJC |
| | | MjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQAf |
| | | BTOdG7IOxZGUujH83E0RULUcAFy/fIhwM15ZgI7dflCNO3n3Vlx3Q/NuHEKS70hH |
| | | kdmNCjusIMVDr8vixYwD3rQ6Dw5oi0DNWihLyj99JdqZlcxHSYsmuFXXWAzpvl1q |
| | | wwAqF1RrrBkoK8T1L3SzZsBRwJcjPZAtQmdaYyZ2wc0RN0LmJQ26Kr+AWTsQ/4NK |
| | | QC2dlIhRRCQzurBt4Y9s75iDnkckDZx82vJ2pCYAIgcPJRLTQ+06wRnMXajaEicN |
| | | lXknSrML7I4jM5zOHzuj7RkviFpTdXep1Tk+4E0pN6pXxLyR7uNJ0YuJqnqcdlTY |
| | | Di0KGtJMK0iUNMKQnFGA |
| | | -----END CERTIFICATE----- |
New file |
| | |
| | | -----BEGIN PRIVATE KEY----- |
| | | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDKSSNKcaLlAymR |
| | | raSMrQJy0EmTIJbQhhJn7rhWjETdHqojyR26NBFIkXyTVAgXBbH+9YluW0gNqMcj |
| | | 8YdaJY2pVA2oAVp4Pt82lwaBTh61qLMHdAfbtRnU1//SxAYi7tzKhDXJB8SP4cdt |
| | | h7itLxINlRa6I/uSASH/ipyaMgJHwh+XvBGvrRQh5bGWuRqgt4gCAfiU5nUh00Sl |
| | | X41hxnxi5oR2bf4p7Sw7LZSj/CEW7U0fQkVxN0OZlWFERs0NFTnvczxmRNgkOWXe |
| | | BEzh8C0Scu/J5bOBKp9Q9VDmQ/PLkkouuTDPOprI5x9bt7qR9cnk09Rq+Gb48/BU |
| | | 481QM4y/AgMBAAECggEAdJoeFp5USHA/OPL/4/siay43CvEBHif6WiCX74Ohelhf |
| | | uIsIcLnssIj0ZzRMCYFF7fJ5CrzhVsZQLB7gZ404EEAcMxi8no2XOy9pF4YBW7Nn |
| | | p0cx9Gp6/l6X31UROHe5m58EJeItYsbBnxhZ0rJMVLn4xMlTDQFMKLIsvRFQkS2F |
| | | ZHIFqklDP4kFMmpRlCdoLSTldYmFJ5AtepyXYimGA2dpYooDDhgR1FAudrybQFDh |
| | | A2h0iZTTmhABnbW3elL6PydjY4yszvM6I15a/eiynevXKVLyVYBHTV39XUOjJp6f |
| | | XpOW3nuxhkCK2xUfRgOgepxS+3/dauROtM4SQeo56QKBgQDsAoZwYRI0yeTYA0lo |
| | | m+QAwYGcbTaccKOghc6taIJi4xAOH5WloB6Uv+Wx3gn1DufOJt3yeF4/1+2W1oH6 |
| | | 9ZBZwNo98VqMg2oa4DxhX3Oa6v7VTqelFccGGZ+/Lim5bdMfcfapxlv8MB77OPJW |
| | | fCAA514hp2ydkkPprFtcPU1z9QKBgQDba1xyHpKmFuz7kju9OWLBq1x8v2GnOqW6 |
| | | 4ypfNob2ljYTK7BfldPupYF7VC4F6dZqqKlyJqe2rhgRWs49J772AHcGovEHaRsT |
| | | Pi63/EA3ASfi58MmuWI5Y/hFSnM6q14ZTnpD9ZKiInK8HFHjVCrCrfAE1G13/s+R |
| | | K+YpawTBYwKBgQCoqSlQWF69cObk5HxqkLWBQMiSdI4JgIm+5sELtdswNhq8LSAx |
| | | q9sO7JCG6ynsgklwTuBgLlsUfwhguk1LfoA5VBPjHn9aWXPTXxpnb+Ja/MM+xyYR |
| | | WR3RIzDBXIke5fhxyWzAaWxFLlKFsG2nFq98Vdw0asS5WtTDwpPLuFeInQKBgHHG |
| | | nv4x6jsjgikE7+Mz4YipUeEB4CI14AAjkTIj9SHiTBHuwpsd9vI1cgnAYckBMwTF |
| | | hm/BqY+pgKNnIbBGbtfi79VKIo+EKdz1joYq0CV1fPhE00W+NTerJe7QJyYR/E5F |
| | | ClM5AJsAH9x5FuE5IJ8oUGBAwq7JO1p8l/F8I9AfAoGBAMvLmGi36QRzv9VjQO1Z |
| | | S0yG9OjLqdexYl7ogZYW/ys1yZg9mYiFv1wjqkDhegiGM8QyNoUFq2d7cIFZtfz6 |
| | | 3wrcFn4JDW1l9VaB+IM2G4GEsgrZ4wLalKdCRR83KRvuTyjUKZYVvWNNrNzv0gp/ |
| | | 51l5UctJTdE2v4+9OTvpo8b2 |
| | | -----END PRIVATE KEY----- |