TASK:design new;
This commit is contained in:
7
pom.xml
7
pom.xml
@@ -158,6 +158,13 @@
|
|||||||
<version>1.4</version>
|
<version>1.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.microsoft.sqlserver</groupId>
|
||||||
|
<artifactId>mssql-jdbc</artifactId>
|
||||||
|
<version>9.2.1.jre8</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<!-- RabbitMQ -->
|
<!-- RabbitMQ -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|||||||
393
src/main/java/com/ai/da/common/config/CRMReportInterface.java
Normal file
393
src/main/java/com/ai/da/common/config/CRMReportInterface.java
Normal file
@@ -0,0 +1,393 @@
|
|||||||
|
package com.ai.da.common.config;
|
||||||
|
|
||||||
|
import com.ai.da.mapper.primary.entity.CustomerData;
|
||||||
|
import com.ai.da.mapper.primary.entity.TransactionData;
|
||||||
|
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
public class CRMReportInterface {
|
||||||
|
|
||||||
|
// JDBC 驱动器名称以及数据库 URL
|
||||||
|
static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
|
||||||
|
static final String DB_URL = "jdbc:sqlserver://118.142.0.178:1550;databaseName=Hayman_prod";
|
||||||
|
|
||||||
|
// 数据库凭据
|
||||||
|
static final String USER = "user01";
|
||||||
|
static final String PASS = "haySIS-2302";
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Connection conn = null;
|
||||||
|
Statement stmt = null;
|
||||||
|
try {
|
||||||
|
// 注册 JDBC 驱动器
|
||||||
|
Class.forName(JDBC_DRIVER);
|
||||||
|
|
||||||
|
// 打开一个连接
|
||||||
|
System.out.println("连接数据库...");
|
||||||
|
conn = DriverManager.getConnection(DB_URL, USER, PASS);
|
||||||
|
|
||||||
|
// 执行查询步骤1: 生成 RW0095 报告以获取客户完整数据
|
||||||
|
System.out.println("执行步骤1:生成 RW0095 报告...");
|
||||||
|
// 执行相应的查询并获取数据
|
||||||
|
// List<CustomerData> customerData = retrieveCustomerData();
|
||||||
|
// 执行查询步骤2: 使用 MZG013 报告检查客户的销售历史
|
||||||
|
System.out.println("执行步骤2:使用 MZG013 报告检查客户的销售历史...");
|
||||||
|
// 执行相应的查询并获取数据
|
||||||
|
List<TransactionData> transactionData = retrieveTransactionData();
|
||||||
|
List<String> collect = transactionData.stream().map(TransactionData::getUserMember).collect(Collectors.toList());
|
||||||
|
List<CustomerData> customerData = retrieveCustomerData(collect);
|
||||||
|
for (TransactionData transactionDatum : transactionData) {
|
||||||
|
for (CustomerData customerDatum : customerData) {
|
||||||
|
if (customerDatum.getMbrCode().equals(transactionDatum.getUserMember())) {
|
||||||
|
customerDatum.setLastMonth(transactionDatum.getSumAmt());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 执行步骤3: 合并(vlookup)RW0095中的客户购买金额
|
||||||
|
System.out.println("执行步骤3:合并客户购买金额...");
|
||||||
|
// 执行相应的操作,如vlookup
|
||||||
|
|
||||||
|
// 执行步骤4: 按“发行店”筛选以分离不同文件并逐个发送给店铺
|
||||||
|
System.out.println("执行步骤4:按发行店筛选并发送文件给店铺...");
|
||||||
|
// 执行相应的操作,如过滤和导出
|
||||||
|
String filePath = "C:\\Users\\10233\\Desktop\\CRM.csv";
|
||||||
|
exportToCSV(customerData, filePath);
|
||||||
|
// 关闭连接
|
||||||
|
conn.close();
|
||||||
|
} catch (SQLException se) {
|
||||||
|
// 处理 JDBC 错误
|
||||||
|
se.printStackTrace();
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 处理 Class.forName 错误
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
// 关闭资源
|
||||||
|
try {
|
||||||
|
if (stmt != null) stmt.close();
|
||||||
|
} catch (SQLException se2) {
|
||||||
|
} // 什么都不做
|
||||||
|
try {
|
||||||
|
if (conn != null) conn.close();
|
||||||
|
} catch (SQLException se) {
|
||||||
|
se.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("接口执行完成!");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void exportToCSV(List<CustomerData> customerDataList, String filePath) throws IOException {
|
||||||
|
FileWriter writer = new FileWriter(filePath);
|
||||||
|
|
||||||
|
// // 写入 CSV 文件的第一行,即字段名
|
||||||
|
// writer.append("User Member,Mbr Name,Sh Code,Sum Amt\n");
|
||||||
|
//
|
||||||
|
// // 遍历数据列表,并将每一行数据写入 CSV 文件
|
||||||
|
// for (TransactionData transaction : transactionDataList) {
|
||||||
|
// writer.append(transaction.getUserMember()).append(",");
|
||||||
|
// writer.append(transaction.getMbrName()).append(",");
|
||||||
|
// writer.append(transaction.getShCode()).append(",");
|
||||||
|
// writer.append(String.valueOf(transaction.getSumAmt())).append("\n");
|
||||||
|
// }
|
||||||
|
writer.append("mbrCode,mbrName,mbrMobile,mbrGroup,mbrStatus,joinDate,mbrIssue,birthMonth,mbrSex,offBonus,effBonus,sumBonus,lastMonth\n");
|
||||||
|
|
||||||
|
// 遍历 customerDataList,并将数据写入 CSV 文件
|
||||||
|
for (CustomerData customer : customerDataList) {
|
||||||
|
writer.append(customer.getMbrCode()).append(",");
|
||||||
|
writer.append(customer.getMbrName()).append(",");
|
||||||
|
writer.append(customer.getMbrMobile()).append(",");
|
||||||
|
writer.append(customer.getMbrGroup()).append(",");
|
||||||
|
writer.append(customer.getMbrStatus()).append(",");
|
||||||
|
writer.append(customer.getJoinDate().toString()).append(","); // 日期需要根据实际情况格式化
|
||||||
|
writer.append(customer.getMbrIssue()).append(",");
|
||||||
|
writer.append(Integer.toString(customer.getBirthMonth())).append(",");
|
||||||
|
writer.append(customer.getMbrSex()).append(",");
|
||||||
|
writer.append(Double.toString(customer.getOffBonus())).append(",");
|
||||||
|
writer.append(Double.toString(customer.getEffBonus())).append(",");
|
||||||
|
writer.append(Double.toString(customer.getSumBonus())).append(",");
|
||||||
|
writer.append(Double.toString(customer.getLastMonth())).append("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<CustomerData> retrieveCustomerData(List<String> collect) {
|
||||||
|
List<CustomerData> customerDataList = new ArrayList<>();
|
||||||
|
Connection conn = null;
|
||||||
|
Statement stmt = null;
|
||||||
|
try {
|
||||||
|
// 注册 JDBC 驱动器
|
||||||
|
Class.forName(JDBC_DRIVER);
|
||||||
|
|
||||||
|
// 打开一个连接
|
||||||
|
System.out.println("连接数据库...");
|
||||||
|
conn = DriverManager.getConnection(DB_URL, USER, PASS);
|
||||||
|
|
||||||
|
// 执行查询
|
||||||
|
System.out.println("创建声明...");
|
||||||
|
stmt = conn.createStatement();
|
||||||
|
String sql;
|
||||||
|
// 构建 IN 子句的字符串,用于添加到 SQL 查询中
|
||||||
|
StringBuilder inClause = new StringBuilder("(");
|
||||||
|
for (String code : collect) {
|
||||||
|
inClause.append("'").append(code).append("',");
|
||||||
|
}
|
||||||
|
inClause.deleteCharAt(inClause.length() - 1); // 删除最后一个逗号
|
||||||
|
inClause.append(")");
|
||||||
|
|
||||||
|
// 构建完整的 SQL 查询语句
|
||||||
|
sql = "SELECT * FROM V_RW0095B WHERE mbr_code IN " + inClause.toString();
|
||||||
|
ResultSet rs = stmt.executeQuery(sql);
|
||||||
|
|
||||||
|
|
||||||
|
// 处理结果集
|
||||||
|
while (rs.next()) {
|
||||||
|
// 将每行数据转换为 CustomerData 对象并添加到列表中
|
||||||
|
CustomerData customer = new CustomerData();
|
||||||
|
customer.setMbrCode(rs.getString("mbr_code"));
|
||||||
|
customer.setMbrName(rs.getString("mbr_name"));
|
||||||
|
customer.setMbrMobile(rs.getString("mbr_mobile"));
|
||||||
|
customer.setMbrGroup(rs.getString("mbr_group"));
|
||||||
|
customer.setMbrStatus(rs.getString("mbr_status"));
|
||||||
|
customer.setJoinDate(rs.getDate("join_date"));
|
||||||
|
customer.setMbrIssue(rs.getString("mbr_issue"));
|
||||||
|
customer.setBirthMonth(rs.getInt("birth_m"));
|
||||||
|
customer.setMbrSex(rs.getString("mbr_sex"));
|
||||||
|
customer.setOffBonus(rs.getDouble("off_bonus"));
|
||||||
|
customer.setEffBonus(rs.getDouble("eff_bonus"));
|
||||||
|
customer.setSumBonus(rs.getDouble("sum_bonus"));
|
||||||
|
customerDataList.add(customer);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清理环境
|
||||||
|
rs.close();
|
||||||
|
stmt.close();
|
||||||
|
conn.close();
|
||||||
|
} catch (SQLException se) {
|
||||||
|
// 处理 JDBC 错误
|
||||||
|
se.printStackTrace();
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 处理 Class.forName 错误
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
// 关闭资源
|
||||||
|
try {
|
||||||
|
if (stmt != null) stmt.close();
|
||||||
|
} catch (SQLException se2) {
|
||||||
|
} // 什么都不做
|
||||||
|
try {
|
||||||
|
if (conn != null) conn.close();
|
||||||
|
} catch (SQLException se) {
|
||||||
|
se.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("查询执行完成!");
|
||||||
|
return customerDataList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<TransactionData> retrieveTransactionData() {
|
||||||
|
List<TransactionData> transactionDataList = new ArrayList<>();
|
||||||
|
Connection conn = null;
|
||||||
|
Statement stmt = null;
|
||||||
|
try {
|
||||||
|
// 注册 JDBC 驱动器
|
||||||
|
Class.forName(JDBC_DRIVER);
|
||||||
|
|
||||||
|
// 打开一个连接
|
||||||
|
System.out.println("连接数据库...");
|
||||||
|
conn = DriverManager.getConnection(DB_URL, USER, PASS);
|
||||||
|
|
||||||
|
// 执行查询
|
||||||
|
System.out.println("创建声明...");
|
||||||
|
stmt = conn.createStatement();
|
||||||
|
String sql;
|
||||||
|
sql = "SELECT user_member,mbr_name,sum(trx_bas_amt) sumAmtByMebBySh FROM V_MZG013\n" +
|
||||||
|
"WHERE trx_date >= DATEADD(day, -7, GETDATE())\n" +
|
||||||
|
"and user_member is not NULL\n" +
|
||||||
|
"GROUP BY user_member,mbr_name";
|
||||||
|
ResultSet rs = stmt.executeQuery(sql);
|
||||||
|
|
||||||
|
// 处理结果集
|
||||||
|
while (rs.next()) {
|
||||||
|
// 将每行数据转换为 TransactionData 对象并添加到列表中
|
||||||
|
TransactionData transaction = new TransactionData();
|
||||||
|
transaction.setUserMember(rs.getString("user_member"));
|
||||||
|
transaction.setMbrName(rs.getString("mbr_name"));
|
||||||
|
// transaction.setShCode(rs.getString("sh_code"));
|
||||||
|
transaction.setSumAmt(rs.getDouble("sumAmtByMebBySh"));
|
||||||
|
// transaction.setTrxNo(rs.getString("trx_no"));
|
||||||
|
// transaction.setTrxDate(rs.getTimestamp("trx_date"));
|
||||||
|
// transaction.setTrxType(rs.getString("trx_type"));
|
||||||
|
// transaction.setTrxStatus(rs.getString("trx_status"));
|
||||||
|
// transaction.setTrxTotQty(rs.getDouble("trx_tot_qty"));
|
||||||
|
// transaction.setCurrCode(rs.getString("curr_code"));
|
||||||
|
// transaction.setExchRate(rs.getDouble("exch_rate"));
|
||||||
|
// transaction.setDiscountPerc(rs.getDouble("discount_perc"));
|
||||||
|
// transaction.setTrxAccAmt(rs.getDouble("trx_acc_amt"));
|
||||||
|
// transaction.setTrxBasAmt(rs.getDouble("trx_bas_amt"));
|
||||||
|
// transaction.setOutstandAmt(rs.getDouble("outstand_amt"));
|
||||||
|
// transaction.setReceiveAmt(rs.getDouble("receive_amt"));
|
||||||
|
// transaction.setChangeAmt(rs.getDouble("change_amt"));
|
||||||
|
// transaction.setTrxTotBonus(rs.getDouble("trx_tot_bonus"));
|
||||||
|
// transaction.setDepositNo(rs.getString("deposit_no"));
|
||||||
|
// transaction.setDepositAmt(rs.getDouble("deposit_amt"));
|
||||||
|
// transaction.setDepositStatus(rs.getString("deposit_status"));
|
||||||
|
// transaction.setTrxAmtDesc(rs.getString("trx_amt_desc"));
|
||||||
|
// transaction.setRemark(rs.getString("remark"));
|
||||||
|
// transaction.setShCode(rs.getString("sh_code"));
|
||||||
|
// transaction.setWhCodeFrom(rs.getString("wh_code_from"));
|
||||||
|
// transaction.setWhCodeTo(rs.getString("wh_code_to"));
|
||||||
|
// transaction.setIssuedBy(rs.getString("issued_by"));
|
||||||
|
// transaction.setClientCode(rs.getString("client_code"));
|
||||||
|
// transaction.setClientName(rs.getString("client_name"));
|
||||||
|
// transaction.setSalesmanCode(rs.getString("salesman_code"));
|
||||||
|
// transaction.setCtypeCode(rs.getString("ctype_code"));
|
||||||
|
// transaction.setUpdatedOn(rs.getTimestamp("updated_on"));
|
||||||
|
// transaction.setDocType(rs.getString("doc_type"));
|
||||||
|
// transaction.setRefNo(rs.getString("ref_no"));
|
||||||
|
// transaction.setAdjType(rs.getString("adj_type"));
|
||||||
|
// transaction.setRefType(rs.getString("ref_type"));
|
||||||
|
// transaction.setOrderNo(rs.getString("order_no"));
|
||||||
|
// transaction.setRecoverF(rs.getString("recover_f"));
|
||||||
|
// transaction.setRecoverT(rs.getString("recover_t"));
|
||||||
|
// transaction.setRequestBy(rs.getString("request_by"));
|
||||||
|
// transaction.setError(rs.getString("error"));
|
||||||
|
// transaction.setAuthorizedDate(rs.getTimestamp("authorized_date"));
|
||||||
|
// transaction.setAuthorizedBy(rs.getString("authorized_by"));
|
||||||
|
// transaction.setChangeCurrCode(rs.getString("change_curr_code"));
|
||||||
|
// transaction.setChgRate(rs.getDouble("chg_rate"));
|
||||||
|
// transaction.setCashier(rs.getString("cashier"));
|
||||||
|
// transaction.setCashiNo(rs.getString("cashi_no"));
|
||||||
|
// transaction.setSalesmanCode2(rs.getString("salesman_code2"));
|
||||||
|
// transaction.setClassId(rs.getString("class_id"));
|
||||||
|
// transaction.setDisAmt(rs.getDouble("dis_amt"));
|
||||||
|
// transaction.setAcStatus(rs.getString("ac_status"));
|
||||||
|
// transaction.setReprint(rs.getString("reprint"));
|
||||||
|
// transaction.setAlt1(rs.getString("alt_1"));
|
||||||
|
// transaction.setAlt2(rs.getString("alt_2"));
|
||||||
|
// transaction.setAlt3(rs.getString("alt_3"));
|
||||||
|
// transaction.setAlt4(rs.getString("alt_4"));
|
||||||
|
// transaction.setAlt5(rs.getString("alt_5"));
|
||||||
|
// transaction.setAltD1(rs.getDate("alt_d1"));
|
||||||
|
// transaction.setAltD2(rs.getDate("alt_d2"));
|
||||||
|
// transaction.setAltD3(rs.getDate("alt_d3"));
|
||||||
|
// transaction.setAltD4(rs.getDate("alt_d4"));
|
||||||
|
// transaction.setAltD5(rs.getDate("alt_d5"));
|
||||||
|
// transaction.setSalesmanCode3(rs.getString("salesman_code3"));
|
||||||
|
// transaction.setContractNo(rs.getString("contract_no"));
|
||||||
|
// transaction.setExpireDate(rs.getTimestamp("expire_date"));
|
||||||
|
// transaction.setDepositNetAmt(rs.getDouble("deposit_netamt"));
|
||||||
|
// transaction.setClientRestriction(rs.getString("client_restriction"));
|
||||||
|
// transaction.setRefStatus(rs.getString("ref_status"));
|
||||||
|
// transaction.setMbrDis(rs.getDouble("mbr_dis"));
|
||||||
|
// transaction.setPmtDiscount(rs.getDouble("pmt_discount"));
|
||||||
|
// transaction.setPmtAmount(rs.getDouble("pmt_amount"));
|
||||||
|
// transaction.setPmtNo(rs.getString("pmt_no"));
|
||||||
|
// transaction.setRefCode(rs.getString("ref_code"));
|
||||||
|
// transaction.setDocApproved(rs.getString("doc_approved"));
|
||||||
|
// transaction.setRefractionNo(rs.getString("refraction_no"));
|
||||||
|
// transaction.setCcpTot(rs.getDouble("ccp_tot"));
|
||||||
|
// transaction.setCcpRed(rs.getDouble("ccp_red"));
|
||||||
|
// transaction.setCcpExpired(rs.getDouble("ccp_expired"));
|
||||||
|
// transaction.setPrintedTimes(rs.getInt("printed_times"));
|
||||||
|
// transaction.setPickupShop(rs.getString("pickup_shop"));
|
||||||
|
// transaction.setDeliveryDate(rs.getDate("delivery_date"));
|
||||||
|
// transaction.setDeliveryTime(rs.getString("delivery_time"));
|
||||||
|
// transaction.setWsCode(rs.getString("ws_code"));
|
||||||
|
// transaction.setClCode(rs.getString("cl_code"));
|
||||||
|
// transaction.setClDesc(rs.getString("cl_desc"));
|
||||||
|
// transaction.setRatio(rs.getString("ratio"));
|
||||||
|
// transaction.setUserMember(rs.getString("user_member"));
|
||||||
|
// transaction.setHflag(rs.getString("hflag"));
|
||||||
|
// transaction.setIssueShop(rs.getString("issue_shop"));
|
||||||
|
// transaction.setHoUpdBy(rs.getString("ho_upd_by"));
|
||||||
|
// transaction.setHoUpdOn(rs.getTimestamp("ho_upd_on"));
|
||||||
|
// transaction.setBonusExpired(rs.getDouble("bonus_expired"));
|
||||||
|
// transaction.setBonusRed(rs.getDouble("bonus_red"));
|
||||||
|
// transaction.setConfirmedOn(rs.getTimestamp("confirmed_on"));
|
||||||
|
// transaction.setConfirmedBy(rs.getString("confirmed_by"));
|
||||||
|
// transaction.setDocConfirmed(rs.getString("doc_confirmed"));
|
||||||
|
// transaction.setBrNo(rs.getString("br_no"));
|
||||||
|
// transaction.setChangeAmt2(rs.getDouble("change_amt2"));
|
||||||
|
// transaction.setSalesDate(rs.getDate("sales_date"));
|
||||||
|
// transaction.setMbrName(rs.getString("mbr_name"));
|
||||||
|
// transaction.setCanEntryDis(rs.getString("can_entry_dis"));
|
||||||
|
// transaction.setReactiveClient(rs.getString("reactive_client"));
|
||||||
|
// transaction.setReactiveMbr(rs.getString("reactive_mbr"));
|
||||||
|
// transaction.setShUpdBy(rs.getString("sh_upd_by"));
|
||||||
|
// transaction.setShUpdOn(rs.getTimestamp("sh_upd_on"));
|
||||||
|
// transaction.setTax1(rs.getDouble("tax1"));
|
||||||
|
// transaction.setTax2(rs.getDouble("tax2"));
|
||||||
|
// transaction.setTax3(rs.getDouble("tax3"));
|
||||||
|
// transaction.setTax4(rs.getDouble("tax4"));
|
||||||
|
// transaction.setTax5(rs.getDouble("tax5"));
|
||||||
|
// transaction.setAltChar1(rs.getString("alt_char1"));
|
||||||
|
// transaction.setAltChar2(rs.getString("alt_char2"));
|
||||||
|
// transaction.setAltChar3(rs.getString("alt_char3"));
|
||||||
|
// transaction.setAltChar4(rs.getString("alt_char4"));
|
||||||
|
// transaction.setAltChar5(rs.getString("alt_char5"));
|
||||||
|
// transaction.setAltNum1(rs.getDouble("alt_num1"));
|
||||||
|
// transaction.setAltNum2(rs.getDouble("alt_num2"));
|
||||||
|
// transaction.setAltNum3(rs.getDouble("alt_num3"));
|
||||||
|
// transaction.setAltNum4(rs.getDouble("alt_num4"));
|
||||||
|
// transaction.setAltNum5(rs.getDouble("alt_num5"));
|
||||||
|
// transaction.setNewClient(rs.getString("new_client"));
|
||||||
|
// transaction.setNewMbr(rs.getString("new_mbr"));
|
||||||
|
// transaction.setPmtExtraDiscount(rs.getDouble("pmt_extra_discount"));
|
||||||
|
// transaction.setPmtExtraAmount(rs.getDouble("pmt_extra_amount"));
|
||||||
|
// transaction.setManualDiscount(rs.getDouble("manual_discount"));
|
||||||
|
// transaction.setManualAmount(rs.getDouble("manual_amount"));
|
||||||
|
// transaction.setUsermbrDiscount(rs.getDouble("usermbr_discount"));
|
||||||
|
// transaction.setClientDiscount(rs.getDouble("client_discount"));
|
||||||
|
// transaction.setHoldVoid(rs.getString("hold_void"));
|
||||||
|
// transaction.setPayBasAmt(rs.getDouble("pay_bas_amt"));
|
||||||
|
// transaction.setPayDesc(rs.getString("pay_desc"));
|
||||||
|
// transaction.setPayCode(rs.getString("pay_code"));
|
||||||
|
// transaction.setCardNo(rs.getString("card_no"));
|
||||||
|
// transaction.setPayCurr(rs.getString("pay_curr"));
|
||||||
|
// transaction.setPayCurrAmt(rs.getDouble("pay_curr_amt"));
|
||||||
|
// transaction.setOnbehalfPaid(rs.getString("onbehalf_paid"));
|
||||||
|
// transaction.setOnbehalfLoc(rs.getString("onbehalf_loc"));
|
||||||
|
// transaction.setOldCardNo(rs.getString("old_card_no"));
|
||||||
|
// transaction.setTrxYear(rs.getInt("TRX_YEAR"));
|
||||||
|
// transaction.setTrxMonth(rs.getInt("TRX_MONTH"));
|
||||||
|
|
||||||
|
transactionDataList.add(transaction);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 清理环境
|
||||||
|
rs.close();
|
||||||
|
stmt.close();
|
||||||
|
conn.close();
|
||||||
|
} catch (SQLException | ClassNotFoundException e) {
|
||||||
|
// 处理异常
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
System.out.println("查询执行完成!");
|
||||||
|
return transactionDataList;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 示例:导出数据到CSV文件
|
||||||
|
private static void exportToCSV(ResultSet resultSet, String filePath) throws SQLException, IOException {
|
||||||
|
FileWriter writer = new FileWriter(filePath);
|
||||||
|
|
||||||
|
while (resultSet.next()) {
|
||||||
|
// 将结果写入CSV文件
|
||||||
|
// 这里需要根据实际情况将数据写入CSV文件
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -20,15 +20,15 @@ public enum CurrentDesignPictureTypeEnum {
|
|||||||
/**
|
/**
|
||||||
* USER_LIBRARY
|
* USER_LIBRARY
|
||||||
*/
|
*/
|
||||||
USER_LIBRARY(2, "userLibrary"),
|
// USER_LIBRARY(2, "userLibrary"),
|
||||||
/**
|
/**
|
||||||
* SYS_FILE
|
* SYS_FILE
|
||||||
*/
|
*/
|
||||||
SYS_FILE(3, "sysFile"),
|
SYS_FILE(2, "sysFile"),
|
||||||
/**
|
/**
|
||||||
* noPIN
|
* noPIN
|
||||||
*/
|
*/
|
||||||
NO_PIN(4, "noPIN");
|
NO_PIN(3, "noPIN");
|
||||||
|
|
||||||
private Integer code;
|
private Integer code;
|
||||||
private String desc;
|
private String desc;
|
||||||
|
|||||||
@@ -48,5 +48,9 @@ public class RandomsUtil {
|
|||||||
return RandomUtil.randomLong(randomStart, randomEnd);
|
return RandomUtil.randomLong(randomStart, randomEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Integer randomSysFile(Integer randomEnd) {
|
||||||
|
return RandomUtil.randomInt(randomEnd);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,10 @@ package com.ai.da.controller;
|
|||||||
|
|
||||||
import com.ai.da.common.response.PageBaseResponse;
|
import com.ai.da.common.response.PageBaseResponse;
|
||||||
import com.ai.da.common.response.Response;
|
import com.ai.da.common.response.Response;
|
||||||
import com.ai.da.common.security.jwt.JWTTokenHelper;
|
import com.ai.da.mapper.primary.entity.TrialOrder;
|
||||||
import com.ai.da.mapper.entity.TrialOrder;
|
|
||||||
import com.ai.da.model.dto.*;
|
import com.ai.da.model.dto.*;
|
||||||
import com.ai.da.model.enums.Language;
|
|
||||||
import com.ai.da.model.vo.AccountLoginVO;
|
import com.ai.da.model.vo.AccountLoginVO;
|
||||||
import com.ai.da.model.vo.AccountPreLoginVO;
|
import com.ai.da.model.vo.AccountPreLoginVO;
|
||||||
import com.ai.da.model.vo.QueryLibraryPageVO;
|
|
||||||
import com.ai.da.service.AccountService;
|
import com.ai.da.service.AccountService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ public class DesignController {
|
|||||||
|
|
||||||
@ApiOperation(value = "设计 Conllection")
|
@ApiOperation(value = "设计 Conllection")
|
||||||
@PostMapping("/designCollection")
|
@PostMapping("/designCollection")
|
||||||
|
@CrossOrigin
|
||||||
public Response<DesignCollectionVO> designCollection(@Valid @RequestBody DesignCollectionDTO designDTO) {
|
public Response<DesignCollectionVO> designCollection(@Valid @RequestBody DesignCollectionDTO designDTO) {
|
||||||
return Response.success(designService.designCollection(designDTO));
|
return Response.success(designService.designCollection(designDTO));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.ai.da.mapper.primary;
|
||||||
|
|
||||||
|
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
||||||
|
import com.ai.da.mapper.primary.entity.Collection;
|
||||||
|
import com.ai.da.mapper.primary.entity.Collocation;
|
||||||
|
import com.ai.da.python.vo.DesignPythonItem;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface CollocationMapper extends CommonMapper<Collocation> {
|
||||||
|
|
||||||
|
List<Collocation> getCollocationListBySketch(String apparel, String styleCategory);
|
||||||
|
}
|
||||||
11
src/main/java/com/ai/da/mapper/primary/DressingMapper.java
Normal file
11
src/main/java/com/ai/da/mapper/primary/DressingMapper.java
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package com.ai.da.mapper.primary;
|
||||||
|
|
||||||
|
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
||||||
|
import com.ai.da.mapper.primary.entity.Dressing;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface DressingMapper extends CommonMapper<Dressing> {
|
||||||
|
|
||||||
|
List<String> getOtherSketchCategoryNameList(Long id, String styleCategory);
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.ai.da.mapper;
|
package com.ai.da.mapper.primary;
|
||||||
|
|
||||||
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
||||||
import com.ai.da.mapper.entity.GenerateCancel;
|
import com.ai.da.mapper.primary.entity.GenerateCancel;
|
||||||
|
|
||||||
public interface GenerateCancelMapper extends CommonMapper<GenerateCancel> {
|
public interface GenerateCancelMapper extends CommonMapper<GenerateCancel> {
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
package com.ai.da.mapper;
|
package com.ai.da.mapper.primary;
|
||||||
|
|
||||||
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
||||||
import com.ai.da.mapper.entity.Library;
|
import com.ai.da.mapper.primary.entity.LibraryCopy;
|
||||||
import com.ai.da.mapper.entity.LibraryCopy;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mapper 接口
|
* Mapper 接口
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
package com.ai.da.mapper;
|
package com.ai.da.mapper.primary;
|
||||||
|
|
||||||
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
||||||
import com.ai.da.mapper.entity.LibraryModelPoint;
|
import com.ai.da.mapper.primary.entity.LibraryModelPointCopy;
|
||||||
import com.ai.da.mapper.entity.LibraryModelPointCopy;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mapper 接口
|
* Mapper 接口
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class BaseEntity implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private Date createDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private Date updateDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否已删除
|
||||||
|
*/
|
||||||
|
private Integer isDeleted;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
// private Long userId;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("collocation")
|
||||||
|
public class Collocation implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* mood模板id
|
||||||
|
*/
|
||||||
|
private Integer isSystem;
|
||||||
|
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private Date createDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private Date updateDate;
|
||||||
|
|
||||||
|
private Integer isDeleted;
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CustomerData {
|
||||||
|
private String mbrCode;
|
||||||
|
private String mbrName;
|
||||||
|
private String mbrMobile;
|
||||||
|
private String mbrGroup;
|
||||||
|
private String mbrStatus;
|
||||||
|
private Date joinDate;
|
||||||
|
private String mbrIssue;
|
||||||
|
private int birthMonth;
|
||||||
|
private String mbrSex;
|
||||||
|
private double offBonus;
|
||||||
|
private double effBonus;
|
||||||
|
private double sumBonus;
|
||||||
|
|
||||||
|
private double lastMonth;
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.ai.da.mapper.secondary.entity;
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
@@ -8,18 +8,23 @@ import lombok.EqualsAndHashCode;
|
|||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@TableName("female_dress")
|
@TableName("dressing")
|
||||||
public class FemaleDress implements Serializable {
|
public class Dressing implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
* ID
|
|
||||||
*/
|
|
||||||
@TableId(value = "ID", type = IdType.AUTO)
|
|
||||||
private Long id;
|
private Long id;
|
||||||
private String imgName;
|
|
||||||
}
|
private String apparel;
|
||||||
|
private String styleCategory;
|
||||||
|
private String ageGroup;
|
||||||
|
private String position;
|
||||||
|
private Integer priority;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.ai.da.mapper.entity;
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
|||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attendance
|
||||||
|
*
|
||||||
|
* @author easy-generator
|
||||||
|
* @since 2022-06-13
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("t_library_copy")
|
||||||
|
public class LibraryCopy implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
private Long accountId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 一级类型
|
||||||
|
*/
|
||||||
|
private String level1Type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 二级类型
|
||||||
|
*/
|
||||||
|
private String level2Type;
|
||||||
|
|
||||||
|
private String level3Type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 元素名
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 元素存放地址
|
||||||
|
*/
|
||||||
|
private String url;
|
||||||
|
/**
|
||||||
|
* md5值
|
||||||
|
*/
|
||||||
|
private String md5;
|
||||||
|
/**
|
||||||
|
* 图片高度,目前只争对 models类型
|
||||||
|
*/
|
||||||
|
private Integer high;
|
||||||
|
/**
|
||||||
|
* 图片宽度,目前只争对 models类型
|
||||||
|
*/
|
||||||
|
private Integer width;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private Date createDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private Date updateDate;
|
||||||
|
|
||||||
|
// private Integer isCopy;
|
||||||
|
}
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attendance
|
||||||
|
*
|
||||||
|
* @author easy-generator
|
||||||
|
* @since 2022-11-13
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("t_library_model_point_copy")
|
||||||
|
public class LibraryModelPointCopy implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* modelType
|
||||||
|
*/
|
||||||
|
private String modelType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的 library或sys Id
|
||||||
|
*/
|
||||||
|
private Long libraryId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 左肩
|
||||||
|
*/
|
||||||
|
private String shoulderLeft;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 右肩
|
||||||
|
*/
|
||||||
|
private String shoulderRight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 左腰
|
||||||
|
*/
|
||||||
|
private String waistbandLeft;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 右腰
|
||||||
|
*/
|
||||||
|
private String waistbandRight;
|
||||||
|
/**
|
||||||
|
* 左手
|
||||||
|
*/
|
||||||
|
private String handLeft;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 右手
|
||||||
|
*/
|
||||||
|
private String handRight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private Date createDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private Date updateDate;
|
||||||
|
}
|
||||||
@@ -0,0 +1,149 @@
|
|||||||
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.sql.Date;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class TransactionData {
|
||||||
|
private String trxNo;
|
||||||
|
private Timestamp trxDate;
|
||||||
|
private String trxType;
|
||||||
|
private String trxStatus;
|
||||||
|
private double trxTotQty;
|
||||||
|
private String currCode;
|
||||||
|
private double exchRate;
|
||||||
|
private double discountPerc;
|
||||||
|
private double trxAccAmt;
|
||||||
|
private double trxBasAmt;
|
||||||
|
private double outstandAmt;
|
||||||
|
private double receiveAmt;
|
||||||
|
private double changeAmt;
|
||||||
|
private double trxTotBonus;
|
||||||
|
private String depositNo;
|
||||||
|
private double depositAmt;
|
||||||
|
private String depositStatus;
|
||||||
|
private String trxAmtDesc;
|
||||||
|
private String remark;
|
||||||
|
private String shCode;
|
||||||
|
private String whCodeFrom;
|
||||||
|
private String whCodeTo;
|
||||||
|
private String issuedBy;
|
||||||
|
private String clientCode;
|
||||||
|
private String clientName;
|
||||||
|
private String salesmanCode;
|
||||||
|
private String ctypeCode;
|
||||||
|
private Timestamp updatedOn;
|
||||||
|
private String docType;
|
||||||
|
private String refNo;
|
||||||
|
private String adjType;
|
||||||
|
private String refType;
|
||||||
|
private String orderNo;
|
||||||
|
private String recoverF;
|
||||||
|
private String recoverT;
|
||||||
|
private String requestBy;
|
||||||
|
private String error;
|
||||||
|
private Timestamp authorizedDate;
|
||||||
|
private String authorizedBy;
|
||||||
|
private String changeCurrCode;
|
||||||
|
private double chgRate;
|
||||||
|
private String cashier;
|
||||||
|
private String cashiNo;
|
||||||
|
private String salesmanCode2;
|
||||||
|
private String classId;
|
||||||
|
private double disAmt;
|
||||||
|
private String acStatus;
|
||||||
|
private String reprint;
|
||||||
|
private String alt1;
|
||||||
|
private String alt2;
|
||||||
|
private String alt3;
|
||||||
|
private String alt4;
|
||||||
|
private String alt5;
|
||||||
|
private Date altD1;
|
||||||
|
private Date altD2;
|
||||||
|
private Date altD3;
|
||||||
|
private Date altD4;
|
||||||
|
private Date altD5;
|
||||||
|
private String salesmanCode3;
|
||||||
|
private String contractNo;
|
||||||
|
private Timestamp expireDate;
|
||||||
|
private double depositNetAmt;
|
||||||
|
private String clientRestriction;
|
||||||
|
private String refStatus;
|
||||||
|
private double mbrDis;
|
||||||
|
private double pmtDiscount;
|
||||||
|
private double pmtAmount;
|
||||||
|
private String pmtNo;
|
||||||
|
private String refCode;
|
||||||
|
private String docApproved;
|
||||||
|
private String refractionNo;
|
||||||
|
private double ccpTot;
|
||||||
|
private double ccpRed;
|
||||||
|
private double ccpExpired;
|
||||||
|
private int printedTimes;
|
||||||
|
private String pickupShop;
|
||||||
|
private Date deliveryDate;
|
||||||
|
private String deliveryTime;
|
||||||
|
private String wsCode;
|
||||||
|
private String clCode;
|
||||||
|
private String clDesc;
|
||||||
|
private String ratio;
|
||||||
|
private String userMember;
|
||||||
|
private String hflag;
|
||||||
|
private String issueShop;
|
||||||
|
private String hoUpdBy;
|
||||||
|
private Timestamp hoUpdOn;
|
||||||
|
private double bonusExpired;
|
||||||
|
private double bonusRed;
|
||||||
|
private Timestamp confirmedOn;
|
||||||
|
private String confirmedBy;
|
||||||
|
private String docConfirmed;
|
||||||
|
private String brNo;
|
||||||
|
private double changeAmt2;
|
||||||
|
private Date salesDate;
|
||||||
|
private String mbrName;
|
||||||
|
private String canEntryDis;
|
||||||
|
private String reactiveClient;
|
||||||
|
private String reactiveMbr;
|
||||||
|
private String shUpdBy;
|
||||||
|
private Timestamp shUpdOn;
|
||||||
|
private double tax1;
|
||||||
|
private double tax2;
|
||||||
|
private double tax3;
|
||||||
|
private double tax4;
|
||||||
|
private double tax5;
|
||||||
|
private String altChar1;
|
||||||
|
private String altChar2;
|
||||||
|
private String altChar3;
|
||||||
|
private String altChar4;
|
||||||
|
private String altChar5;
|
||||||
|
private double altNum1;
|
||||||
|
private double altNum2;
|
||||||
|
private double altNum3;
|
||||||
|
private double altNum4;
|
||||||
|
private double altNum5;
|
||||||
|
private String newClient;
|
||||||
|
private String newMbr;
|
||||||
|
private double pmtExtraDiscount;
|
||||||
|
private double pmtExtraAmount;
|
||||||
|
private double manualDiscount;
|
||||||
|
private double manualAmount;
|
||||||
|
private double usermbrDiscount;
|
||||||
|
private double clientDiscount;
|
||||||
|
private String holdVoid;
|
||||||
|
private double payBasAmt;
|
||||||
|
private String payDesc;
|
||||||
|
private String payCode;
|
||||||
|
private String cardNo;
|
||||||
|
private String payCurr;
|
||||||
|
private double payCurrAmt;
|
||||||
|
private String onbehalfPaid;
|
||||||
|
private String onbehalfLoc;
|
||||||
|
private String oldCardNo;
|
||||||
|
private int trxYear;
|
||||||
|
private int trxMonth;
|
||||||
|
|
||||||
|
private double sumAmt;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.ai.da.mapper.secondary;
|
||||||
|
|
||||||
|
import com.ai.da.mapper.secondary.entity.AttributeRetrieval;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mapper 接口
|
||||||
|
*
|
||||||
|
* @author easy-generator
|
||||||
|
* @since 2022-06-13
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface AttributeRetrievalMapper {
|
||||||
|
|
||||||
|
|
||||||
|
List<AttributeRetrieval> getSystemSketchPool(@Param("attributeRetrievalAttrDict") AttributeRetrieval attributeRetrievalAttrDict, @Param("tableName") String tableName, @Param("poolNum") int poolNum);
|
||||||
|
|
||||||
|
AttributeRetrieval getSystemRandom(String tableName);
|
||||||
|
|
||||||
|
List<AttributeRetrieval> getSystemSketchPoolBySameCategory(AttributeRetrieval attributeRetrievalAttrDict, String tableName);
|
||||||
|
}
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
package com.ai.da.mapper.secondary;
|
|
||||||
|
|
||||||
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
|
||||||
import com.ai.da.mapper.secondary.entity.FemaleDress;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mapper 接口
|
|
||||||
*
|
|
||||||
* @author easy-generator
|
|
||||||
* @since 2022-06-13
|
|
||||||
*/
|
|
||||||
public interface FemaleDressMapper extends CommonMapper<FemaleDress> {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.ai.da.mapper.secondary.entity;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AttributeRecognitionJSON {
|
||||||
|
private Long id;
|
||||||
|
private List<String> imgName;
|
||||||
|
private List<String> length;
|
||||||
|
private List<String> sleeveLength;
|
||||||
|
private List<String> sleeveShape;
|
||||||
|
private List<String> sleeveShoulder;
|
||||||
|
private List<String> neckline;
|
||||||
|
private List<String> collar;
|
||||||
|
private List<String> design;
|
||||||
|
private List<String> silhouette;
|
||||||
|
private List<String> type;
|
||||||
|
private List<String> openingType;
|
||||||
|
private List<String> subtype;
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.ai.da.mapper.secondary.entity;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AttributeRetrieval {
|
||||||
|
private Long id;
|
||||||
|
private String imgName;
|
||||||
|
private String length;
|
||||||
|
private String sleeveLength;
|
||||||
|
private String sleeveShape;
|
||||||
|
private String sleeveShoulder;
|
||||||
|
private String neckline;
|
||||||
|
private String collar;
|
||||||
|
private String design;
|
||||||
|
private String silhouette;
|
||||||
|
private String type;
|
||||||
|
private String openingType;
|
||||||
|
private String subtype;
|
||||||
|
|
||||||
|
private String sleeve;
|
||||||
|
private String sleeve1;
|
||||||
|
private String sleeve2;
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,6 @@ package com.ai.da.service;
|
|||||||
|
|
||||||
import com.ai.da.mapper.primary.entity.Account;
|
import com.ai.da.mapper.primary.entity.Account;
|
||||||
import com.ai.da.mapper.primary.entity.TrialOrder;
|
import com.ai.da.mapper.primary.entity.TrialOrder;
|
||||||
import com.ai.da.mapper.secondary.entity.FemaleDress;
|
|
||||||
import com.ai.da.model.dto.*;
|
import com.ai.da.model.dto.*;
|
||||||
import com.ai.da.model.vo.AccountLoginVO;
|
import com.ai.da.model.vo.AccountLoginVO;
|
||||||
import com.ai.da.model.vo.AccountPreLoginVO;
|
import com.ai.da.model.vo.AccountPreLoginVO;
|
||||||
|
|||||||
@@ -13,8 +13,6 @@ import com.ai.da.mapper.primary.TrialOrderMapper;
|
|||||||
import com.ai.da.mapper.primary.entity.Account;
|
import com.ai.da.mapper.primary.entity.Account;
|
||||||
import com.ai.da.mapper.primary.entity.AccountLoginLog;
|
import com.ai.da.mapper.primary.entity.AccountLoginLog;
|
||||||
import com.ai.da.mapper.primary.entity.TrialOrder;
|
import com.ai.da.mapper.primary.entity.TrialOrder;
|
||||||
import com.ai.da.mapper.secondary.FemaleDressMapper;
|
|
||||||
import com.ai.da.mapper.secondary.entity.FemaleDress;
|
|
||||||
import com.ai.da.model.dto.*;
|
import com.ai.da.model.dto.*;
|
||||||
import com.ai.da.model.enums.AutoApproved;
|
import com.ai.da.model.enums.AutoApproved;
|
||||||
import com.ai.da.model.enums.Language;
|
import com.ai.da.model.enums.Language;
|
||||||
@@ -32,7 +30,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ import com.ai.da.common.context.UserContext;
|
|||||||
import com.ai.da.common.enums.GenerateModeEnum;
|
import com.ai.da.common.enums.GenerateModeEnum;
|
||||||
import com.ai.da.common.enums.ModelNameEnum;
|
import com.ai.da.common.enums.ModelNameEnum;
|
||||||
import com.ai.da.common.utils.*;
|
import com.ai.da.common.utils.*;
|
||||||
import com.ai.da.mapper.CollectionElementMapper;
|
import com.ai.da.mapper.primary.CollectionElementMapper;
|
||||||
import com.ai.da.mapper.GenerateCancelMapper;
|
import com.ai.da.mapper.primary.GenerateCancelMapper;
|
||||||
import com.ai.da.mapper.GenerateDetailMapper;
|
import com.ai.da.mapper.primary.GenerateDetailMapper;
|
||||||
import com.ai.da.mapper.GenerateMapper;
|
import com.ai.da.mapper.primary.GenerateMapper;
|
||||||
import com.ai.da.mapper.entity.*;
|
import com.ai.da.mapper.primary.entity.*;
|
||||||
import com.ai.da.model.dto.GenerateLikeDTO;
|
import com.ai.da.model.dto.GenerateLikeDTO;
|
||||||
import com.ai.da.model.dto.GenerateThroughImageTextDTO;
|
import com.ai.da.model.dto.GenerateThroughImageTextDTO;
|
||||||
import com.ai.da.model.dto.GenerateToPythonDTO;
|
import com.ai.da.model.dto.GenerateToPythonDTO;
|
||||||
|
|||||||
@@ -12,8 +12,7 @@ import com.ai.da.common.utils.CopyUtil;
|
|||||||
import com.ai.da.common.utils.DateUtil;
|
import com.ai.da.common.utils.DateUtil;
|
||||||
import com.ai.da.common.utils.FileUtil;
|
import com.ai.da.common.utils.FileUtil;
|
||||||
import com.ai.da.common.utils.MinioUtil;
|
import com.ai.da.common.utils.MinioUtil;
|
||||||
import com.ai.da.mapper.primary.LibraryMapper;
|
import com.ai.da.mapper.primary.*;
|
||||||
import com.ai.da.mapper.primary.SysFileMapper;
|
|
||||||
import com.ai.da.mapper.primary.entity.*;
|
import com.ai.da.mapper.primary.entity.*;
|
||||||
import com.ai.da.model.dto.*;
|
import com.ai.da.model.dto.*;
|
||||||
import com.ai.da.model.enums.*;
|
import com.ai.da.model.enums.*;
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
server.port=5567
|
server.port=17088
|
||||||
|
|
||||||
|
spring.datasource.primary.driver-class-name=com.mysql.cj.jdbc.Driver
|
||||||
|
spring.datasource.primary.jdbcUrl=jdbc:mysql://18.167.251.121:33008/aida?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||||
|
spring.datasource.primary.username=aida_con
|
||||||
|
spring.datasource.primary.password=123456
|
||||||
|
|
||||||
|
spring.datasource.secondary.driver-class-name=com.mysql.cj.jdbc.Driver
|
||||||
|
spring.datasource.secondary.jdbcUrl=jdbc:mysql://18.167.251.121:33008/attribute_retrieval?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||||
|
spring.datasource.secondary.username=aida_con
|
||||||
|
spring.datasource.secondary.password=123456
|
||||||
|
|
||||||
|
|
||||||
#datasource
|
|
||||||
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
|
||||||
spring.datasource.url=jdbc:mysql://18.167.251.121:33008/aida?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
|
||||||
spring.datasource.username=aida_con
|
|
||||||
spring.datasource.password=123456
|
|
||||||
#spring.datasource.password=QWa998345
|
|
||||||
|
|
||||||
#security
|
#security
|
||||||
spring.security.jwtSecret=JWTSECRET
|
spring.security.jwtSecret=JWTSECRET
|
||||||
@@ -23,8 +28,7 @@ rsa.private_key=MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8
|
|||||||
|
|
||||||
#mybatis
|
#mybatis
|
||||||
mybatis-plus.global-config.banner=false
|
mybatis-plus.global-config.banner=false
|
||||||
mybatis-plus.mapper-locations=classpath:mapper/*Mapper.xml
|
mybatis-plus.mapper-locations=classpath:mapper/*/*.xml
|
||||||
#mybatis-plus.configuration.log-impl= org.apache.ibatis.logging.stdout.StdOutImpl
|
|
||||||
mybatis-plus.global-config.db-config.logic-delete-field=isDeleted
|
mybatis-plus.global-config.db-config.logic-delete-field=isDeleted
|
||||||
mybatis-plus.global-config.db-config.logic-delete-value=1
|
mybatis-plus.global-config.db-config.logic-delete-value=1
|
||||||
mybatis-plus.global-config.db-config.logic-not-delete-value=0
|
mybatis-plus.global-config.db-config.logic-not-delete-value=0
|
||||||
@@ -39,10 +43,8 @@ file.windows.path=D:\\upload\\
|
|||||||
spring.servlet.multipart.max-file-size = 10MB
|
spring.servlet.multipart.max-file-size = 10MB
|
||||||
spring.servlet.multipart.max-request-size= 10MB
|
spring.servlet.multipart.max-request-size= 10MB
|
||||||
#访问python服务的ip(对应环境)
|
#访问python服务的ip(对应环境)
|
||||||
#access.python.ip=http://43.198.80.117
|
|
||||||
access.python.ip=http://18.167.251.121
|
access.python.ip=http://18.167.251.121
|
||||||
#access.python.ip=http://18.167.251.121:9991/
|
access.python.port=9992
|
||||||
access.python.port=9990
|
|
||||||
|
|
||||||
minio.endpoint=https://www.minio.aida.com.hk:9000
|
minio.endpoint=https://www.minio.aida.com.hk:9000
|
||||||
minio.accessKey=admin
|
minio.accessKey=admin
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ spring.servlet.multipart.max-request-size= 10MB
|
|||||||
#access.python.ip=http://43.198.80.117
|
#access.python.ip=http://43.198.80.117
|
||||||
access.python.ip=http://18.167.251.121
|
access.python.ip=http://18.167.251.121
|
||||||
#access.python.ip=http://18.167.251.121:9991/
|
#access.python.ip=http://18.167.251.121:9991/
|
||||||
access.python.port=9990
|
access.python.port=9992
|
||||||
|
|
||||||
minio.endpoint=https://www.minio.aida.com.hk:9000
|
minio.endpoint=https://www.minio.aida.com.hk:9000
|
||||||
minio.accessKey=admin
|
minio.accessKey=admin
|
||||||
|
|||||||
30
src/main/resources/mapper/primary/CollocationMapper.xml
Normal file
30
src/main/resources/mapper/primary/CollocationMapper.xml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?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.ai.da.mapper.primary.CollocationMapper">
|
||||||
|
|
||||||
|
<!-- 通用查询映射结果 -->
|
||||||
|
<resultMap id="BaseResultMap" type="com.ai.da.mapper.primary.entity.Collocation">
|
||||||
|
<id column="id" property="id" />
|
||||||
|
<result column="name" property="name" />
|
||||||
|
<result column="is_system" property="isSystem" />
|
||||||
|
<result column="user_id" property="userId" />
|
||||||
|
<result column="create_date" property="createDate" />
|
||||||
|
<result column="update_date" property="updateDate" />
|
||||||
|
<result column="is_deleted" property="isDeleted" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="getCollocationListBySketch" resultMap="BaseResultMap">
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
collocation
|
||||||
|
WHERE
|
||||||
|
id IN (
|
||||||
|
SELECT
|
||||||
|
collocation_id
|
||||||
|
FROM
|
||||||
|
collocation_rel_dressing
|
||||||
|
WHERE
|
||||||
|
dressing_id = ( SELECT id FROM dressing WHERE apparel = #{apparel} AND style_category = #{styleCategory} ))
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
26
src/main/resources/mapper/primary/DressingMapper.xml
Normal file
26
src/main/resources/mapper/primary/DressingMapper.xml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?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.ai.da.mapper.primary.DressingMapper">
|
||||||
|
|
||||||
|
<!-- 通用查询映射结果 -->
|
||||||
|
<resultMap id="BaseResultMap" type="com.ai.da.mapper.primary.entity.Dressing">
|
||||||
|
<id column="id" property="id" />
|
||||||
|
<result column="apparel" property="apparel" />
|
||||||
|
<result column="style_category" property="styleCategory" />
|
||||||
|
<result column="age_group" property="ageGroup" />
|
||||||
|
<result column="position" property="position" />
|
||||||
|
<result column="priority" property="priority" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="getOtherSketchCategoryNameList" resultType="java.lang.String">
|
||||||
|
SELECT
|
||||||
|
style_category
|
||||||
|
FROM
|
||||||
|
dressing
|
||||||
|
WHERE
|
||||||
|
id IN ( SELECT dressing_id FROM collocation_rel_dressing WHERE collocation_id = #{id} )
|
||||||
|
AND style_category != #{styleCategory}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
<?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.ai.da.mapper.secondary.AttributeRetrievalMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.ai.da.mapper.secondary.entity.AttributeRetrieval">
|
||||||
|
<id column="ID" property="id" />
|
||||||
|
<result column="img_name" property="imgName" />
|
||||||
|
<result column="length" property="length" />
|
||||||
|
<result column="sleeve_length" property="sleeveLength" />
|
||||||
|
<result column="sleeve_shape" property="sleeveShape" />
|
||||||
|
<result column="sleeve_shoulder" property="sleeveShoulder" />
|
||||||
|
<result column="neckline" property="neckline" />
|
||||||
|
<result column="collar" property="collar" />
|
||||||
|
<result column="design" property="design" />
|
||||||
|
<result column="silhouette" property="silhouette" />
|
||||||
|
<result column="type" property="type" />
|
||||||
|
<result column="opening_type" property="openingType" />
|
||||||
|
<result column="subtype" property="subtype" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="getSystemSketchPool" resultMap="BaseResultMap">
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
${tableName}
|
||||||
|
<trim prefix="WHERE" prefixOverrides="AND">
|
||||||
|
<if test="attributeRetrievalAttrDict.design != null">
|
||||||
|
AND design = #{attributeRetrievalAttrDict.design}
|
||||||
|
</if>
|
||||||
|
<if test="attributeRetrievalAttrDict.silhouette != null">
|
||||||
|
AND silhouette = #{attributeRetrievalAttrDict.silhouette}
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
ORDER BY
|
||||||
|
RAND()
|
||||||
|
LIMIT #{poolNum}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getSystemRandom" resultMap="BaseResultMap">
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
${tableName}
|
||||||
|
ORDER BY
|
||||||
|
RAND()
|
||||||
|
LIMIT 1
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getSystemSketchPoolBySameCategory" resultMap="BaseResultMap">
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
${tableName}
|
||||||
|
<trim prefix="WHERE" prefixOverrides="AND">
|
||||||
|
<if test="attributeRetrievalAttrDict.type != null">
|
||||||
|
AND type = #{attributeRetrievalAttrDict.type}
|
||||||
|
</if>
|
||||||
|
<if test="attributeRetrievalAttrDict.openingType != null">
|
||||||
|
AND opening_type = #{attributeRetrievalAttrDict.openingType}
|
||||||
|
</if>
|
||||||
|
<if test="attributeRetrievalAttrDict.subtype != null">
|
||||||
|
AND subtype = #{attributeRetrievalAttrDict.subtype}
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
ORDER BY
|
||||||
|
RAND()
|
||||||
|
LIMIT 20
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
<?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.ai.da.mapper.secondary.FemaleDressMapper">
|
|
||||||
<resultMap id="BaseResultMap" type="com.ai.da.mapper.secondary.entity.FemaleDress">
|
|
||||||
<id column="ID" property="id" />
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
</mapper>
|
|
||||||
Reference in New Issue
Block a user