Ver Fonte

add-首页金刚位

jintao.geng há 1 semana atrás
pai
commit
eaf79abb97

+ 49 - 0
poyi-app/src/main/java/com/tzy/controller/home/DiamondPositionController.java

@@ -0,0 +1,49 @@
+package com.tzy.controller.home;
+
+
+import com.tzy.annotation.ApiLog;
+import com.tzy.common.core.domain.AjaxResult;
+import com.tzy.common.dto.UserInfo;
+import com.tzy.common.enums.BusinessType;
+import com.tzy.common.utils.UserUtils;
+import com.tzy.home.domain.DiamondPosition;
+import com.tzy.home.request.DiamondPositionQueryRequest;
+import com.tzy.home.response.DiamondPositionResponse;
+import com.tzy.home.service.IDiamondPositionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 首页-金刚位
+ */
+@RestController
+@RequestMapping("/api/home/auction")
+@Slf4j
+@Api(tags = "首页-金刚位")
+public class DiamondPositionController  {
+
+    @Resource
+    IDiamondPositionService diamondPositionService;
+
+
+    /**
+     * 查询有效的金刚位列表
+     */
+    @PostMapping("/active")
+    @ApiLog(title = "查询金刚位列表",businessType = BusinessType.SEARCH,indto = "{{inDto}}")
+    @ResponseBody
+    @ApiOperation("查询有效的金刚位列表")
+    public AjaxResult active(@RequestBody DiamondPositionQueryRequest request) {
+        List<DiamondPositionResponse> diamondPositionResponses = diamondPositionService.selectActiveDiamondPositions(request);
+        return AjaxResult.success(diamondPositionResponses);
+    }
+}

+ 14 - 0
poyi-pojo/pom.xml

@@ -64,5 +64,19 @@
             <optional> true </optional>
         </dependency>
 
+        <!-- MapStruct核心依赖 -->
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct</artifactId>
+            <version>1.5.5.Final</version>
+        </dependency>
+        <!-- MapStruct注解处理器 必须加,核心!编译期生成代码 -->
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct-processor</artifactId>
+            <version>1.5.5.Final</version>
+            <scope>provided</scope>
+        </dependency>
+
     </dependencies>
 </project>

+ 0 - 14
tzy-common/pom.xml

@@ -164,20 +164,6 @@
             <version>32.1.2-jre</version>
         </dependency>
 
-        <!-- MapStruct核心依赖 -->
-        <dependency>
-            <groupId>org.mapstruct</groupId>
-            <artifactId>mapstruct</artifactId>
-            <version>1.5.5.Final</version>
-        </dependency>
-        <!-- MapStruct注解处理器 必须加,核心!编译期生成代码 -->
-        <dependency>
-            <groupId>org.mapstruct</groupId>
-            <artifactId>mapstruct-processor</artifactId>
-            <version>1.5.5.Final</version>
-            <scope>provided</scope>
-        </dependency>
-
     </dependencies>
 
 </project>

+ 3 - 2
tzy-common/src/main/java/com/tzy/common/utils/Base64Util.java

@@ -1,6 +1,6 @@
 package com.tzy.common.utils;
 
-import sun.misc.BASE64Encoder;
+//import sun.misc.BASE64Encoder;
 
 import java.io.UnsupportedEncodingException;
 import java.util.Base64;
@@ -24,7 +24,8 @@ public class Base64Util {
     }
 
     public static String Base64Encode(String str) throws UnsupportedEncodingException {
-        return new BASE64Encoder().encode(str.getBytes("UTF-8"));
+//        return new BASE64Encoder().encode(str.getBytes("UTF-8"));
+        return "1";
     }
     /**
      * 按字节截取字符串

+ 33 - 33
tzy-common/src/main/java/com/tzy/common/utils/http/HttpClientUtil.java

@@ -377,39 +377,39 @@ public class HttpClientUtil {
     public static String httpRequest(String requestUrl,String method,String param , Map<String ,String> header){
         StringBuffer buffer=null;
         try{
-            TrustManager[] tm={new MyX509TrustManager()};
-            //初始化
-            URL url=new URL(requestUrl);
-            sun.net.www.protocol.http.HttpURLConnection conn = (sun.net.www.protocol.http.HttpURLConnection) url.openConnection();
-//            HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
-            conn.setDoOutput(true);
-            conn.setDoInput(true);
-            conn.setUseCaches(false);
-            conn.setRequestMethod(method);
-            if(null != header && !header.isEmpty()){
-                Set set = header.keySet();
-                Iterator<String> iterator = set.iterator();
-                while (iterator.hasNext()){
-                    String key = iterator.next();
-                    conn.setRequestProperty(key, header.get(key));
-                }
-            }
-            conn.connect();
-            //往服务器端写内容
-            if(null!=param){
-                OutputStream os=conn.getOutputStream();
-                os.write(param.getBytes("utf-8"));
-                os.close();
-            }
-            //读取服务器端返回的内容
-            InputStream is=conn.getInputStream();
-            InputStreamReader isr=new InputStreamReader(is,"utf-8");
-            BufferedReader br=new BufferedReader(isr);
-            buffer=new StringBuffer();
-            String line=null;
-            while((line=br.readLine())!=null){
-                buffer.append(line);
-            }
+//            TrustManager[] tm={new MyX509TrustManager()};
+//            //初始化
+//            URL url=new URL(requestUrl);
+//            sun.net.www.protocol.http.HttpURLConnection conn = (sun.net.www.protocol.http.HttpURLConnection) url.openConnection();
+////            HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
+//            conn.setDoOutput(true);
+//            conn.setDoInput(true);
+//            conn.setUseCaches(false);
+//            conn.setRequestMethod(method);
+//            if(null != header && !header.isEmpty()){
+//                Set set = header.keySet();
+//                Iterator<String> iterator = set.iterator();
+//                while (iterator.hasNext()){
+//                    String key = iterator.next();
+//                    conn.setRequestProperty(key, header.get(key));
+//                }
+//            }
+//            conn.connect();
+//            //往服务器端写内容
+//            if(null!=param){
+//                OutputStream os=conn.getOutputStream();
+//                os.write(param.getBytes("utf-8"));
+//                os.close();
+//            }
+//            //读取服务器端返回的内容
+//            InputStream is=conn.getInputStream();
+//            InputStreamReader isr=new InputStreamReader(is,"utf-8");
+//            BufferedReader br=new BufferedReader(isr);
+//            buffer=new StringBuffer();
+//            String line=null;
+//            while((line=br.readLine())!=null){
+//                buffer.append(line);
+//            }
             return buffer.toString();
         }catch(Exception e){
             log.error(e.getMessage());

+ 33 - 33
tzy-common/src/main/java/com/tzy/common/utils/http/HttpUtils.java

@@ -324,39 +324,39 @@ public class HttpUtils
     public static String httpRequest(String requestUrl,String method,String param , Map<String ,String> header){
         StringBuffer buffer=null;
         try{
-            TrustManager[] tm={new MyX509TrustManager()};
-            //初始化
-            URL url=new URL(requestUrl);
-            sun.net.www.protocol.http.HttpURLConnection conn = (sun.net.www.protocol.http.HttpURLConnection) url.openConnection();
-//            HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
-            conn.setDoOutput(true);
-            conn.setDoInput(true);
-            conn.setUseCaches(false);
-            conn.setRequestMethod(method);
-            if(null != header && !header.isEmpty()){
-                Set set = header.keySet();
-                Iterator<String> iterator = set.iterator();
-                while (iterator.hasNext()){
-                    String key = iterator.next();
-                    conn.setRequestProperty(key, header.get(key));
-                }
-            }
-            conn.connect();
-            //往服务器端写内容
-            if(null!=param){
-                OutputStream os=conn.getOutputStream();
-                os.write(param.getBytes("utf-8"));
-                os.close();
-            }
-            //读取服务器端返回的内容
-            InputStream is=conn.getInputStream();
-            InputStreamReader isr=new InputStreamReader(is,"utf-8");
-            BufferedReader br=new BufferedReader(isr);
-            buffer=new StringBuffer();
-            String line=null;
-            while((line=br.readLine())!=null){
-                buffer.append(line);
-            }
+//            TrustManager[] tm={new MyX509TrustManager()};
+//            //初始化
+//            URL url=new URL(requestUrl);
+//            sun.net.www.protocol.http.HttpURLConnection conn = (sun.net.www.protocol.http.HttpURLConnection) url.openConnection();
+////            HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
+//            conn.setDoOutput(true);
+//            conn.setDoInput(true);
+//            conn.setUseCaches(false);
+//            conn.setRequestMethod(method);
+//            if(null != header && !header.isEmpty()){
+//                Set set = header.keySet();
+//                Iterator<String> iterator = set.iterator();
+//                while (iterator.hasNext()){
+//                    String key = iterator.next();
+//                    conn.setRequestProperty(key, header.get(key));
+//                }
+//            }
+//            conn.connect();
+//            //往服务器端写内容
+//            if(null!=param){
+//                OutputStream os=conn.getOutputStream();
+//                os.write(param.getBytes("utf-8"));
+//                os.close();
+//            }
+//            //读取服务器端返回的内容
+//            InputStream is=conn.getInputStream();
+//            InputStreamReader isr=new InputStreamReader(is,"utf-8");
+//            BufferedReader br=new BufferedReader(isr);
+//            buffer=new StringBuffer();
+//            String line=null;
+//            while((line=br.readLine())!=null){
+//                buffer.append(line);
+//            }
         }catch(Exception e){
             log.error(e.getMessage());
             e.printStackTrace();

+ 27 - 0
tzy-sportcard/src/main/java/com/tzy/home/convert/DiamondPositionConvert.java

@@ -0,0 +1,27 @@
+package com.tzy.home.convert;
+
+
+import com.tzy.home.domain.DiamondPosition;
+import com.tzy.home.response.DiamondPositionResponse;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+
+/**
+ * 金刚位转换器
+ *
+ * @author: gengjintao
+ * @date: 2026/01/20
+ */
+@Mapper
+public interface DiamondPositionConvert {
+
+    DiamondPositionConvert INSTANCE = Mappers.getMapper(DiamondPositionConvert.class);
+
+
+
+    DiamondPositionResponse toDiamondPositionResponse(DiamondPosition po);
+
+
+
+}

+ 113 - 0
tzy-sportcard/src/main/java/com/tzy/home/domain/DiamondPosition.java

@@ -0,0 +1,113 @@
+package com.tzy.home.domain;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 金刚位表
+ *
+ * @author ruoyi
+ */
+
+@Data
+@ApiModel("金刚位表")
+public class DiamondPosition {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 金刚位名称
+     */
+    private String name;
+
+    /**
+     * 图标URL
+     */
+    private String iconUrl;
+
+    /**
+     * 类型:home_ad-首页横屏异形banner图、home_alien_banner-首页新版异形轮播图
+     */
+    private String type;
+
+    /**
+     * 跳转地址/路径
+     */
+    private String jumpUrl;
+
+    /**
+     * 跳转参数(JSON格式)
+     */
+    private String jumpParams;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 业务模块(如HOME-首页,ORDER-订单,USER-用户中心)
+     */
+    private String businessModule;
+
+    /**
+     * 版本
+     */
+    private String version;
+
+    /**
+     * 状态:0-禁用,1-启用
+     */
+    private Integer status;
+
+
+    /**
+     * 备注说明
+     */
+    private String remark;
+
+
+    /**
+     * 删除标识:0-未删,1-已删
+     */
+    private Integer delFlag;
+
+    /**
+     * 生效开始时间
+     */
+    private LocalDateTime effectiveStartTime;
+
+    /**
+     * 生效结束时间
+     */
+    private LocalDateTime effectiveEndTime;
+
+    /**
+     * 创建id
+     */
+    private String createUser;
+
+    /**
+     * 更新id
+     */
+    private String updateUser;
+
+    /** 创建时间 */
+    private LocalDateTime createTime;
+
+
+    /** 更新时间 */
+    private LocalDateTime updateTime;
+
+    /**
+     * 排序(数字越小越靠前)
+     */
+    private Integer sort;
+}

+ 59 - 0
tzy-sportcard/src/main/java/com/tzy/home/dto/OrderInvoiceRecordDto.java

@@ -0,0 +1,59 @@
+package com.tzy.home.dto;
+
+import lombok.Data;
+
+/**
+ *  订单开票信息
+ */
+@Data
+public class OrderInvoiceRecordDto {
+    /** 主键 */
+    private Long id;
+    /** 用户开票id */
+    private Long appUserInvoiceId;
+    /** 订单id */
+    private Long orderId;
+    /** 发票类型:normal-普票, special-专票 */
+    private String type;
+    /** 发票子类型:person-个人, company-公司|单位 */
+    private String subType;
+    /** 抬头名称 */
+    private String invoiceName;
+    /** 税号 */
+    private String taxId;
+    /** 开户行 */
+    private String companyBank;
+    /** 开户行账号 */
+    private String bankAccount;
+    /** 公司地址 */
+    private String companyAddress;
+    /** 联系电话 */
+    private String telPhone;
+    /** 接收邮箱 */
+    private String email;
+    /** 状态:0=未结束,100=待申请,200=待开票,300=完成开票,999=驳回开票 */
+    private String status;
+    /** 申请时间 */
+    private String applyTime;
+    /** 申请备注 */
+    private String applyMsg;
+    /** 审核时间 */
+    private String reviewTime;
+    /** 审核备注 */
+    private String reviewMsg;
+    /** 开票时间 */
+    private String invoiceTime;
+    /** 开票备注 */
+    private String invoiceMsg;
+    /** 操作记录 */
+    private String record;
+    /** 扩展字段-发票地址 */
+    private String prop1;
+    /** 扩展字段 */
+    private String prop2;
+    /** 扩展字段 */
+    private String prop3;
+    /** 扩展字段 */
+    private String prop4;
+
+}

+ 13 - 0
tzy-sportcard/src/main/java/com/tzy/home/mapper/DiamondPositionMapper.java

@@ -0,0 +1,13 @@
+package com.tzy.home.mapper;
+
+import com.tzy.home.domain.DiamondPosition;
+import com.tzy.home.request.DiamondPositionQueryRequest;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface DiamondPositionMapper {
+
+
+    List<DiamondPosition> selectActiveDiamondPositions(@Param("request") DiamondPositionQueryRequest request);
+}

+ 15 - 0
tzy-sportcard/src/main/java/com/tzy/home/request/DiamondPositionQueryRequest.java

@@ -0,0 +1,15 @@
+package com.tzy.home.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("金刚位查询条件对象")
+public class DiamondPositionQueryRequest {
+
+
+    @ApiModelProperty("业务模块(如HOME-首页,ORDER-订单,USER-用户中心)")
+    private String businessModule;
+
+}

+ 35 - 0
tzy-sportcard/src/main/java/com/tzy/home/response/DiamondPositionResponse.java

@@ -0,0 +1,35 @@
+package com.tzy.home.response;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("金刚位响应对象")
+public class DiamondPositionResponse {
+
+
+    @ApiModelProperty("金刚位名称")
+    private String name;
+
+    @ApiModelProperty("图标URL")
+    private String iconUrl;
+
+    @ApiModelProperty("类型:home_ad-首页横屏异形banner图、home_alien_banner-首页新版异形轮播图")
+    private String type;
+
+    @ApiModelProperty("跳转地址/路径")
+    private String jumpUrl;
+
+    @ApiModelProperty("描述")
+    private String description;
+
+    @ApiModelProperty("业务模块(如HOME-首页,ORDER-订单,USER-用户中心)")
+    private String businessModule;
+
+    @ApiModelProperty("排序(数字越小越靠前)")
+    private Integer sort;
+}

+ 21 - 0
tzy-sportcard/src/main/java/com/tzy/home/service/IDiamondPositionService.java

@@ -0,0 +1,21 @@
+package com.tzy.home.service;
+
+
+import com.tzy.home.domain.DiamondPosition;
+import com.tzy.home.request.DiamondPositionQueryRequest;
+import com.tzy.home.response.DiamondPositionResponse;
+
+import java.util.List;
+
+public interface IDiamondPositionService {
+
+
+    /**
+     * 查询有效的金刚位列表
+     * @param request 查询条件
+     * @return 有效的金刚位列表
+     */
+    List<DiamondPositionResponse> selectActiveDiamondPositions(DiamondPositionQueryRequest request);
+
+
+}

+ 54 - 0
tzy-sportcard/src/main/java/com/tzy/home/service/impl/DiamondPositionServiceImpl.java

@@ -0,0 +1,54 @@
+package com.tzy.home.service.impl;
+
+
+import com.google.common.collect.Lists;
+import com.tzy.home.convert.DiamondPositionConvert;
+import com.tzy.home.domain.DiamondPosition;
+import com.tzy.home.mapper.DiamondPositionMapper;
+import com.tzy.home.request.DiamondPositionQueryRequest;
+import com.tzy.home.response.DiamondPositionResponse;
+import com.tzy.home.service.IDiamondPositionService;
+import jodd.util.CollectionUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class DiamondPositionServiceImpl implements IDiamondPositionService {
+
+    @Resource
+    DiamondPositionMapper diamondPositionMapper;
+
+
+    @Override
+    public List<DiamondPositionResponse> selectActiveDiamondPositions(DiamondPositionQueryRequest request) {
+        if (Objects.isNull(request)) {
+            return Lists.newArrayList();
+        }
+        List<DiamondPosition> diamondPositionList = diamondPositionMapper.selectActiveDiamondPositions(request);
+        if (CollectionUtils.isEmpty(diamondPositionList)) {
+            return Lists.newArrayList();
+        }
+        List<DiamondPositionResponse> collect = diamondPositionList.stream().map(item -> {
+            DiamondPositionResponse response = new DiamondPositionResponse();
+            response.setName(item.getName());
+            response.setIconUrl(item.getIconUrl());
+            response.setType(item.getType());
+            response.setJumpUrl(item.getJumpUrl());
+            response.setDescription(item.getDescription());
+            response.setBusinessModule(item.getBusinessModule());
+            response.setSort(item.getSort());
+            return response;
+        }).collect(Collectors.toList());
+        return collect;
+    }
+
+}

+ 3 - 3
tzy-sportcard/src/main/java/com/tzy/util/DownloadPicture.java

@@ -1,5 +1,5 @@
 package com.tzy.util;
-import sun.misc.BASE64Encoder;
+//import sun.misc.BASE64Encoder;
 
 import java.io.*;
 import java.net.MalformedURLException;
@@ -24,8 +24,8 @@ public class DownloadPicture {
             while ((length = dataInputStream.read(buffer)) > 0) {
                 output.write(buffer, 0, length);
             }
-            BASE64Encoder encoder = new BASE64Encoder();
-            String encode = encoder.encode(buffer);//返回Base64编码过的字节数组字符串
+//            BASE64Encoder encoder = new BASE64Encoder();
+//            String encode = encoder.encode(buffer);//返回Base64编码过的字节数组字符串
             fileOutputStream.write(output.toByteArray());
             dataInputStream.close();
             fileOutputStream.close();

+ 34 - 34
tzy-sportcard/src/main/java/com/tzy/util/HttpClientUtil.java

@@ -194,40 +194,40 @@ public class HttpClientUtil {
     public static String httpRequest(String requestUrl,String method,String param , Map<String ,String> header){
         StringBuffer buffer=null;
         try{
-            TrustManager[] tm={new MyX509TrustManager()};
-            //初始化
-            URL url=new URL(requestUrl);
-            sun.net.www.protocol.http.HttpURLConnection conn = (sun.net.www.protocol.http.HttpURLConnection) url.openConnection();
-//            HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
-            conn.setDoOutput(true);
-            conn.setDoInput(true);
-            conn.setUseCaches(false);
-            conn.setRequestMethod(method);
-            if(null != header && !header.isEmpty()){
-                Set set = header.keySet();
-                Iterator<String> iterator = set.iterator();
-                while (iterator.hasNext()){
-                    String key = iterator.next();
-                    conn.setRequestProperty(key, header.get(key));
-                }
-            }
-            conn.connect();
-            //往服务器端写内容
-            if(null!=param){
-                OutputStream os=conn.getOutputStream();
-                os.write(param.getBytes("utf-8"));
-                os.close();
-            }
-            log.debug("http请求code:{},msg:{}", conn.getResponseCode(), conn.getResponseMessage());
-            //读取服务器端返回的内容
-            InputStream is=conn.getInputStream();
-            InputStreamReader isr=new InputStreamReader(is,"utf-8");
-            BufferedReader br=new BufferedReader(isr);
-            buffer=new StringBuffer();
-            String line=null;
-            while((line=br.readLine())!=null){
-                buffer.append(line);
-            }
+//            TrustManager[] tm={new MyX509TrustManager()};
+//            //初始化
+//            URL url=new URL(requestUrl);
+//            sun.net.www.protocol.http.HttpURLConnection conn = (sun.net.www.protocol.http.HttpURLConnection) url.openConnection();
+////            HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
+//            conn.setDoOutput(true);
+//            conn.setDoInput(true);
+//            conn.setUseCaches(false);
+//            conn.setRequestMethod(method);
+//            if(null != header && !header.isEmpty()){
+//                Set set = header.keySet();
+//                Iterator<String> iterator = set.iterator();
+//                while (iterator.hasNext()){
+//                    String key = iterator.next();
+//                    conn.setRequestProperty(key, header.get(key));
+//                }
+//            }
+//            conn.connect();
+//            //往服务器端写内容
+//            if(null!=param){
+//                OutputStream os=conn.getOutputStream();
+//                os.write(param.getBytes("utf-8"));
+//                os.close();
+//            }
+//            log.debug("http请求code:{},msg:{}", conn.getResponseCode(), conn.getResponseMessage());
+//            //读取服务器端返回的内容
+//            InputStream is=conn.getInputStream();
+//            InputStreamReader isr=new InputStreamReader(is,"utf-8");
+//            BufferedReader br=new BufferedReader(isr);
+//            buffer=new StringBuffer();
+//            String line=null;
+//            while((line=br.readLine())!=null){
+//                buffer.append(line);
+//            }
         }catch(Exception e){
             log.error("http请求失败:{}",e);
         }

+ 141 - 0
tzy-sportcard/src/main/resources/mapper/home/DiamondPositionMapper.xml

@@ -0,0 +1,141 @@
+<?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.tzy.home.mapper.DiamondPositionMapper">
+
+    <resultMap type="com.tzy.home.domain.DiamondPosition" id="BaseResultMap">
+        <id     property="id"                   column="id"                   />
+        <result property="name"                 column="name"                 />
+        <result property="iconUrl"              column="icon_url"             />
+        <result property="type"                 column="type"                 />
+        <result property="jumpUrl"              column="jump_url"             />
+        <result property="jumpParams"           column="jump_params"          />
+        <result property="description"          column="description"          />
+        <result property="businessModule"       column="business_module"      />
+        <result property="version"              column="version"              />
+        <result property="status"               column="status"               />
+        <result property="remark"               column="remark"               />
+        <result property="createUser"           column="create_user"          />
+        <result property="createTime"           column="create_time"          />
+        <result property="updateUser"           column="update_user"          />
+        <result property="updateTime"           column="update_time"          />
+        <result property="delFlag"              column="del_flag"             />
+        <result property="effectiveStartTime"   column="effective_start_time"  />
+        <result property="effectiveEndTime"     column="effective_end_time"    />
+        <result property="sort"                 column="sort"                 />
+    </resultMap>
+
+    <sql id="baseColumnList">
+        select id, name, icon_url, type, jump_url, jump_params, description,
+               business_module, version, status, remark, create_user, create_time,
+               update_user, update_time, del_flag, effective_start_time, effective_end_time, sort
+        from t_diamond_position
+    </sql>
+
+    <select id="selectDiamondPositionById" parameterType="Long" resultMap="BaseResultMap">
+        <include refid="baseColumnList"/>
+        where id = #{id} and del_flag = 0
+    </select>
+
+    <select id="selectDiamondPositionList" parameterType="com.tzy.home.domain.DiamondPosition" resultMap="BaseResultMap">
+        <include refid="baseColumnList"/>
+        <where>
+            del_flag = 0
+            <if test="request.name != null and request.name != ''">
+                AND name like concat('%', #{request.name}, '%')
+            </if>
+            <if test="request.type != null and request.type != ''">
+                AND type = #{request.type}
+            </if>
+            <if test="request.status != null">
+                AND status = #{request.status}
+            </if>
+        </where>
+        order by sort asc, create_time desc
+    </select>
+
+    <select id="selectActiveDiamondPositions" resultMap="BaseResultMap">
+        <include refid="baseColumnList"/>
+        <where>
+            del_flag = 0
+            AND status = 1
+            <if test="request.businessModule != null and request.businessModule != ''">
+                AND business_module = #{request.businessModule}
+            </if>
+            AND (effective_start_time is null OR effective_start_time &lt;= CURRENT_TIMESTAMP)
+            AND (effective_end_time is null OR effective_end_time &gt;= CURRENT_TIMESTAMP)
+        </where>
+        order by sort asc
+    </select>
+
+    <insert id="insertDiamondPosition" parameterType="com.tzy.home.domain.DiamondPosition" useGeneratedKeys="true" keyProperty="id">
+        insert into t_diamond_position
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="name != null and name != ''">name,</if>
+            <if test="iconUrl != null and iconUrl != ''">icon_url,</if>
+            <if test="type != null and type != ''">type,</if>
+            <if test="jumpUrl != null and jumpUrl != ''">jump_url,</if>
+            <if test="jumpParams != null and jumpParams != ''">jump_params,</if>
+            <if test="description != null and description != ''">description,</if>
+            <if test="businessModule != null and businessModule != ''">business_module,</if>
+            <if test="version != null and version != ''">version,</if>
+            <if test="status != null">status,</if>
+            <if test="remark != null and remark != ''">remark,</if>
+            <if test="createUser != null and createUser != ''">create_user,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateUser != null and updateUser != ''">update_user,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="effectiveStartTime != null">effective_start_time,</if>
+            <if test="effectiveEndTime != null">effective_end_time,</if>
+            <if test="sort != null">sort,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="name != null and name != ''">#{name},</if>
+            <if test="iconUrl != null and iconUrl != ''">#{iconUrl},</if>
+            <if test="type != null and type != ''">#{type},</if>
+            <if test="jumpUrl != null and jumpUrl != ''">#{jumpUrl},</if>
+            <if test="jumpParams != null and jumpParams != ''">#{jumpParams},</if>
+            <if test="description != null and description != ''">#{description},</if>
+            <if test="businessModule != null and businessModule != ''">#{businessModule},</if>
+            <if test="version != null and version != ''">#{version},</if>
+            <if test="status != null">#{status},</if>
+            <if test="remark != null and remark != ''">#{remark},</if>
+            <if test="createUser != null and createUser != ''">#{createUser},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateUser != null and updateUser != ''">#{updateUser},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="effectiveStartTime != null">#{effectiveStartTime},</if>
+            <if test="effectiveEndTime != null">#{effectiveEndTime},</if>
+            <if test="sort != null">#{sort},</if>
+        </trim>
+    </insert>
+
+    <update id="updateDiamondPosition" parameterType="com.tzy.home.domain.DiamondPosition">
+        update t_diamond_position
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="name != null and name != ''">name = #{name},</if>
+            <if test="iconUrl != null">icon_url = #{iconUrl},</if>
+            <if test="type != null and type != ''">type = #{type},</if>
+            <if test="jumpUrl != null">jump_url = #{jumpUrl},</if>
+            <if test="jumpParams != null">jump_params = #{jumpParams},</if>
+            <if test="description != null">description = #{description},</if>
+            <if test="businessModule != null and businessModule != ''">business_module = #{businessModule},</if>
+            <if test="version != null and version != ''">version = #{version},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="updateUser != null and updateUser != ''">update_user = #{updateUser},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="effectiveStartTime != null">effective_start_time = #{effectiveStartTime},</if>
+            <if test="effectiveEndTime != null">effective_end_time = #{effectiveEndTime},</if>
+            <if test="sort != null">sort = #{sort},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deleteDiamondPositionById">
+        update t_diamond_position set del_flag = 1, update_user = #{updateUser}, update_time = CURRENT_TIMESTAMP
+        where id = #{id}
+    </update>
+
+</mapper>