From 49790027f566318f395b5d08ddb147c5f34db235 Mon Sep 17 00:00:00 2001
From: longbinbin <2284496322@qq.com>
Date: Fri, 29 Nov 2024 14:47:46 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E2=80=9Cbroker=E2=80=9D?=
 =?UTF-8?q?=E7=9B=B8=E5=85=B3CRUD=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../ycwl/basic/mapper/pc/BrokerMapper.java    | 20 +++++++++
 .../com/ycwl/basic/mapper/pc/MenuMapper.java  |  2 +
 .../model/pc/broker/entity/BrokerEntity.java  | 33 ++++++++++++++
 .../model/pc/broker/req/BrokerReqQuery.java   | 26 +++++++++++
 .../model/pc/broker/resp/BrokerRespVO.java    | 28 ++++++++++++
 .../model/pc/menu/entity/MenuEntity.java      | 42 +++++++++++++++++
 .../basic/model/pc/menu/resp/MenuRespVO.java  | 39 ++++++++++++++++
 src/main/resources/mapper/pc/BrokerMapper.xml | 45 +++++++++++++++++++
 src/main/resources/mapper/pc/MenuMapper.xml   |  5 +++
 9 files changed, 240 insertions(+)
 create mode 100644 src/main/java/com/ycwl/basic/mapper/pc/BrokerMapper.java
 create mode 100644 src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java
 create mode 100644 src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java
 create mode 100644 src/main/java/com/ycwl/basic/model/pc/broker/resp/BrokerRespVO.java
 create mode 100644 src/main/java/com/ycwl/basic/model/pc/menu/entity/MenuEntity.java
 create mode 100644 src/main/java/com/ycwl/basic/model/pc/menu/resp/MenuRespVO.java
 create mode 100644 src/main/resources/mapper/pc/BrokerMapper.xml

diff --git a/src/main/java/com/ycwl/basic/mapper/pc/BrokerMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/BrokerMapper.java
new file mode 100644
index 0000000..70e1d14
--- /dev/null
+++ b/src/main/java/com/ycwl/basic/mapper/pc/BrokerMapper.java
@@ -0,0 +1,20 @@
+package com.ycwl.basic.mapper.pc;
+
+import com.ycwl.basic.model.pc.broker.entity.BrokerEntity;
+import com.ycwl.basic.model.pc.broker.req.BrokerReqQuery;
+
+import java.util.List;
+
+/**
+ * @Author:longbinbin
+ * @Date:2024/11/29 14:15
+ * 推客/推广人
+ */
+public interface BrokerMapper {
+    List<BrokerEntity> list(BrokerReqQuery brokerReqQuery);
+    BrokerEntity getById(Long id);
+    int add(BrokerEntity broker);
+    int deleteById(Long id);
+    int update(BrokerEntity broker);
+    int updateStatus();
+}
diff --git a/src/main/java/com/ycwl/basic/mapper/pc/MenuMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/MenuMapper.java
index 0a1f16d..1d7e6e6 100644
--- a/src/main/java/com/ycwl/basic/mapper/pc/MenuMapper.java
+++ b/src/main/java/com/ycwl/basic/mapper/pc/MenuMapper.java
@@ -1,6 +1,7 @@
 package com.ycwl.basic.mapper.pc;
 
 import com.ycwl.basic.model.pc.menu.MenuNode;
+import com.ycwl.basic.model.pc.menu.entity.MenuEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -10,6 +11,7 @@ import java.util.List;
 public interface MenuMapper {
     int delete(@Param("id")String id);
     int addRoleMenu(@Param("id")String id,@Param("list") List<Integer> list);
+    int add(MenuEntity menuEntity);
 
     List<MenuNode>getListByType(@Param("type")Integer type);
 }
diff --git a/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java b/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java
new file mode 100644
index 0000000..d195acc
--- /dev/null
+++ b/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java
@@ -0,0 +1,33 @@
+package com.ycwl.basic.model.pc.broker.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author:longbinbin
+ * @Date:2024/11/29 14:19
+ * 推客,也就是推广人
+ */
+@Data
+@TableName("broker")
+public class BrokerEntity {
+    @TableId
+    private Long id;
+    /**
+     * 推客名称
+     */
+    private String name;
+    /**
+     * 专属优惠码,新建时生成
+     */
+    private String promoCode;
+    /**
+     * 状态,0禁用,1启用
+     */
+    private Integer status;
+    private Date createAt;
+    private Date updateAt;
+}
diff --git a/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java
new file mode 100644
index 0000000..d9cdce0
--- /dev/null
+++ b/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java
@@ -0,0 +1,26 @@
+package com.ycwl.basic.model.pc.broker.req;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author:longbinbin
+ * @Date:2024/11/29 14:29
+ */
+@Data
+@ApiModel("查询推客列表请求参数")
+public class BrokerReqQuery {
+    private Long id;
+    @ApiModelProperty("推客名称")
+    private String name;
+    @ApiModelProperty("专属优惠码")
+    private String promoCode;
+    @ApiModelProperty("状态,0禁用,1启用")
+    private Integer status;
+    private Date startTime;
+    private Date endTime;
+}
diff --git a/src/main/java/com/ycwl/basic/model/pc/broker/resp/BrokerRespVO.java b/src/main/java/com/ycwl/basic/model/pc/broker/resp/BrokerRespVO.java
new file mode 100644
index 0000000..1ae70b1
--- /dev/null
+++ b/src/main/java/com/ycwl/basic/model/pc/broker/resp/BrokerRespVO.java
@@ -0,0 +1,28 @@
+package com.ycwl.basic.model.pc.broker.resp;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author:longbinbin
+ * @Date:2024/11/29 14:24
+ */
+@Data
+public class BrokerRespVO {
+    @TableId
+    private Long id;
+    @ApiModelProperty("推客名称")
+    private String name;
+    @ApiModelProperty("专属优惠码")
+    private String promoCode;
+    @ApiModelProperty("状态,0禁用,1启用")
+    private Integer status;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+}
diff --git a/src/main/java/com/ycwl/basic/model/pc/menu/entity/MenuEntity.java b/src/main/java/com/ycwl/basic/model/pc/menu/entity/MenuEntity.java
new file mode 100644
index 0000000..a0a98c4
--- /dev/null
+++ b/src/main/java/com/ycwl/basic/model/pc/menu/entity/MenuEntity.java
@@ -0,0 +1,42 @@
+package com.ycwl.basic.model.pc.menu.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author:longbinbin
+ * @Date:2024/11/29 14:06
+ */
+@Data
+@TableName("menu")
+public class MenuEntity {
+    @TableId
+    @ApiModelProperty(value = "ID")
+    private String id;
+
+    @ApiModelProperty(value = "父节点ID")
+    private String parentId;
+    @ApiModelProperty(value = "路由")
+    private String target;
+
+    @ApiModelProperty(value = "菜单名")
+    private String name;
+    @ApiModelProperty(value = "菜单类型 (0菜单 1按钮)")
+    private Integer type;
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+    @ApiModelProperty(value = "权限路径")
+    private String permissionUrl;
+    @ApiModelProperty(value = "是否删除 (0正常 1删除)")
+    private String isRemove;
+    @ApiModelProperty(value = "业务类型 (0 系统菜单 1 业务菜单)")
+    private Integer businessType;
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+    @ApiModelProperty("图标")
+    private String icon;
+}
diff --git a/src/main/java/com/ycwl/basic/model/pc/menu/resp/MenuRespVO.java b/src/main/java/com/ycwl/basic/model/pc/menu/resp/MenuRespVO.java
new file mode 100644
index 0000000..cc5ed5d
--- /dev/null
+++ b/src/main/java/com/ycwl/basic/model/pc/menu/resp/MenuRespVO.java
@@ -0,0 +1,39 @@
+package com.ycwl.basic.model.pc.menu.resp;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author:longbinbin
+ * @Date:2024/11/29 14:16
+ */
+@Data
+public class MenuRespVO {
+    @ApiModelProperty(value = "ID")
+    private String id;
+
+    @ApiModelProperty(value = "父节点ID")
+    private String parentId;
+    @ApiModelProperty(value = "路由")
+    private String target;
+
+    @ApiModelProperty(value = "菜单名")
+    private String name;
+    @ApiModelProperty(value = "菜单类型 (0菜单 1按钮)")
+    private Integer type;
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+    @ApiModelProperty(value = "权限路径")
+    private String permissionUrl;
+    @ApiModelProperty(value = "是否删除 (0正常 1删除)")
+    private String isRemove;
+    @ApiModelProperty(value = "业务类型 (0 系统菜单 1 业务菜单)")
+    private Integer businessType;
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+    @ApiModelProperty("图标")
+    private String icon;
+}
diff --git a/src/main/resources/mapper/pc/BrokerMapper.xml b/src/main/resources/mapper/pc/BrokerMapper.xml
new file mode 100644
index 0000000..b70e9be
--- /dev/null
+++ b/src/main/resources/mapper/pc/BrokerMapper.xml
@@ -0,0 +1,45 @@
+<?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.ycwl.basic.mapper.pc.BrokerMapper">
+    <insert id="add">
+        insert into broker(id, `name`, promo_code) values (#{id}, #{name}, #{promoCode})
+    </insert>
+    <update id="update">
+        update broker set `name` = #{name}, promo_code = #{promoCode} where id = #{id}
+    </update>
+    <update id="updateStatus">
+        update broker
+        set status = (CASE
+            status
+                          WHEN 1 THEN
+                              0
+                          WHEN 0 THEN
+                              1
+                          ELSE null
+            END)
+        where id = #{id}
+    </update>
+    <delete id="deleteById">
+        delete from broker where id = #{id}
+    </delete>
+    <select id="list" resultType="com.ycwl.basic.model.pc.broker.entity.BrokerEntity">
+        select id, `name`, promo_code, status, create_at, update_at
+        from broker
+        <where>
+            <if test="name!= null and name!= ''">
+                and `name` like concat('%', #{name}, '%')
+            </if>
+            <if test="promoCode!= null and promoCode!= ''">
+                and promo_code like concat('%', #{promoCode}, '%')
+            </if>
+            <if test="status!= null">
+                and `status` = #{status}
+            </if>
+        </where>
+    </select>
+    <select id="getById" resultType="com.ycwl.basic.model.pc.broker.entity.BrokerEntity">
+        select id, `name`, promo_code, status, create_at, update_at
+        from broker
+        where id = #{id}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/pc/MenuMapper.xml b/src/main/resources/mapper/pc/MenuMapper.xml
index a08b20f..2421b2c 100644
--- a/src/main/resources/mapper/pc/MenuMapper.xml
+++ b/src/main/resources/mapper/pc/MenuMapper.xml
@@ -8,6 +8,11 @@
             (#{id},#{item})
         </foreach>
     </insert>
+    <insert id="add">
+        insert into menu(id, parent_id, target, `name`, type, sort, permission_url, is_remove, business_type, icon)
+        values
+        (#{id}, #{parentId}, #{target}, #{name}, #{type}, #{sort}, #{permissionUrl}, #{isRemove}, #{businessType}, #{icon})
+    </insert>
 
     <delete id="delete">
         delete