ImportNumberMapper.java 7.5 KB
package com.uccc.number.mapper;

import com.uccc.number.domain.Number;
import com.uccc.number.domain.NumberImportTask;
import com.uccc.number.domain.Prefix;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * Created by bert on 2021-09-22 12:43
 */
public interface ImportNumberMapper {
    static final String PREFIX = "prefix";
    static final String COLUMN_NAMES = "id,number_prefix,mobile,city,province,type";
    static final String NUMBER_IMPORT_TASK = "number_import_task";
    static final String NUMBERS = "numbers";

    @Select({
            "<script>",
            "select " + COLUMN_NAMES,
            "from " + PREFIX,
            "where number_prefix = #{numberPrefix}",
            "</script>",
    })
    Prefix getPrefixByNumber(@Param("numberPrefix") String numberPrefix);

    @Insert({
            "<script>",
            "insert into " + NUMBER_IMPORT_TASK + " (",
            "cts,uts,pushed_count,total_count,fail_count,filename,status",
            ")",
            "values" + " (",
            "#{numberImportTask.cts},#{numberImportTask.uts},#{numberImportTask.pushedCount},#{numberImportTask.totalCount},#{numberImportTask.failCount},#{numberImportTask.filename},#{numberImportTask.status}",
            ")",
            "</script>"
    })
    int insertImportTask(@Param("numberImportTask") NumberImportTask numberImportTask);


    @Update({
            "<script>",
            "UPDATE " + NUMBER_IMPORT_TASK + " SET uts = now()",
            "<when test='numberImportTask.pushedCount!=null'>",
            ",pushed_count = #{numberImportTask.pushedCount}" ,
            "</when>",
            "<when test='numberImportTask.totalCount!=null'>",
            ",total_count = #{numberImportTask.totalCount}" ,
            "</when>",
            "<when test='numberImportTask.failCount!=null'>",
            ",fail_count = #{numberImportTask.failCount}" ,
            "</when>",
            "<when test='numberImportTask.filename!=null'>",
            ",filename = #{numberImportTask.filename}" ,
            "</when>",
            "<when test='numberImportTask.status!=null'>",
            ",status = #{numberImportTask.status}" ,
            "</when>",
            "<when test='numberImportTask.failFile!=null'>",
            ",fail_file = #{numberImportTask.failFile}" ,
            "</when>",
            "where id = #{id}",
            "</script>"
    })
    void updateImportTask(@Param("numberImportTask") NumberImportTask numberImportTask, @Param("id")Long id);

    @Insert({
            "<script>",
            "insert into " + NUMBERS + " (",
            "number",
            "<when test='number.cts!=null'>",
            ",cts",
            "</when>",
            "<when test='number.uts!=null'>",
            ",uts",
            "</when>",
            "<when test='number.seller!=null'>",
            ",seller",
            "</when>",
            "<when test='number.introduce!=null'>",
            ",introduce",
            "</when>",
            "<when test='number.price!=null'>",
            ",price",
            "</when>",
            "<when test='number.basePrice!=null'>",
            ",base_price",
            "</when>",
            "<when test='number.cardBalance!=null'>",
            ",card_balance",
            "</when>",
            "<when test='number.cardProvider!=null'>",
            ",card_provider",
            "</when>",
            "<when test='number.city!=null'>",
            ",city",
            "</when>",
            "<when test='number.province!=null'>",
            ",province",
            "</when>",
            "<when test='number.status!=null'>",
            ",status",
            "</when>",
            "<when test='number.service!=null'>",
            ",service",
            "</when>",
            "<when test='number.agentPrice!=null'>",
            ",agent_price",
            "</when>",
            "<when test='number.tags!=null'>",
            ",tags",
            "</when>",
            "<when test='number.virtualService!=null'>",
            ",virtual_service",
            "</when>",
            "<when test='number.isDelete!=null'>",
            ",is_delete",
            "</when>",
            "<when test='number.batch!=null'>",
            ",batch",
            "</when>",
            ")",
            "values" + " (",
            "#{number.number}",
            "<when test='number.cts!=null'>",
            ",#{number.cts}",
            "</when>",
            "<when test='number.uts!=null'>",
            ",#{number.uts}",
            "</when>",
            "<when test='number.seller!=null'>",
            ",#{number.seller}",
            "</when>",
            "<when test='number.introduce!=null'>",
            ",#{number.introduce}",
            "</when>",
            "<when test='number.price!=null'>",
            ",#{number.price}",
            "</when>",
            "<when test='number.basePrice!=null'>",
            ",#{number.basePrice}",
            "</when>",
            "<when test='number.cardBalance!=null'>",
            ",#{number.cardBalance}",
            "</when>",
            "<when test='number.cardProvider!=null'>",
            ",#{number.cardProvider}",
            "</when>",
            "<when test='number.city!=null'>",
            ",#{number.city}",
            "</when>",
            "<when test='number.province!=null'>",
            ",#{number.province}",
            "</when>",
            "<when test='number.status!=null'>",
            ",#{number.status}",
            "</when>",
            "<when test='number.service!=null'>",
            ",#{number.service}",
            "</when>",
            "<when test='number.agentPrice!=null'>",
            ",#{number.agentPrice}",
            "</when>",
            "<when test='number.tags!=null'>",
            ",#{number.tags}",
            "</when>",
            "<when test='number.virtualService!=null'>",
            ",#{number.virtualService}",
            "</when>",
            "<when test='number.isDelete!=null'>",
            ",#{number.isDelete}",
            "</when>",
            "<when test='number.batch!=null'>",
            ",#{number.batch}",
            "</when>",
            ")",
            "</script>"
    })
    int insertNumber(@Param("number") Number number);

    @Select({
            "<script>",
            "select count(number) from " + NUMBERS,
            "WHERE number = #{number.number}",
            "</script>",
    })
    int checkNumRepeat(@Param("number")Number number);

    @Select({
            "<script>",
            "select * from " + NUMBER_IMPORT_TASK,
            "where filename = #{filename}",
            "</script>",
    })
    NumberImportTask getNumTaskByFileName(@Param("filename") String filename);

    @Select({
            "<script>",
            "select * from " + NUMBER_IMPORT_TASK,
            "<when test='status!=null'>",
            "where status = #{status}",
            "</when>",
            "order by cts desc",
            "limit #{limit}",
            "offset #{page}-1",
            "</script>"
    })
    List<NumberImportTask> selectNumberImportTasks(@Param("limit") Integer limit,@Param("page") Integer page, @Param("status") Integer status);

    @Select({
            "<script>",
            "select count(id) from " + NUMBER_IMPORT_TASK,
            "<when test='status!=null'>",
            "where status = #{status}",
            "</when>",
            "</script>"
    })
    int selectNumberImportTaskCount(@Param("status")Integer status);
}