Compare commits
No commits in common. "1dc70860a610c26426aa41b45639c684355e9ce0" and "a28f47cebeb55ffdeed8b401d01969a8c7973b90" have entirely different histories.
1dc70860a6
...
a28f47cebe
@ -1,21 +0,0 @@
|
||||
package cn.iocoder.yudao.module.datacenter.dal.dataobject.checkticket;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
@Document("check_ticket_today")
|
||||
//@Document("checktickettest")
|
||||
@Data
|
||||
public class CheckTicketToday {
|
||||
private String id;
|
||||
private String dataId;
|
||||
private String checkstation;
|
||||
private String checkstationname;
|
||||
private String ticket;
|
||||
private String checkticketdate;
|
||||
private String checktickettime;
|
||||
private Integer personcount;
|
||||
private String sdshipping;
|
||||
private String salepropetyvaluename;
|
||||
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
package cn.iocoder.yudao.module.datacenter.dal.dataobject.saledata;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Document("sale_data_today")
|
||||
@Data
|
||||
public class SaleDataToday {
|
||||
private String id;
|
||||
private String dataId;
|
||||
private String sdno;
|
||||
private String transactiontypeno;
|
||||
private String sddate;
|
||||
private String sdtime;
|
||||
private BigDecimal amount;
|
||||
private Integer quantity;
|
||||
private String certificatetype;
|
||||
private String certificateno;
|
||||
private String itemtype;
|
||||
private String itemtypename;
|
||||
private String item;
|
||||
private String itemname;
|
||||
private String productbatchno;
|
||||
private String salepropetyvaluename;
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
package cn.iocoder.yudao.module.datacenter.dal.mongodb.checkticket;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.module.datacenter.dal.dataobject.checkticket.CheckTicket;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.data.mongodb.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface CheckTicketTodayRepository extends MongoRepository<CheckTicket,String> {
|
||||
@Query("{'name': {'$regex': '?0', '$options': 'i'}}")
|
||||
Page<CheckTicket> findByName(String q, PageRequest pageable);
|
||||
|
||||
@Query("{'checkticketdate':{'$gte': ?0, '$lt': ?1}}")
|
||||
List<CheckTicket> countByCheckticketdateBetween(String starTime, String endTime);
|
||||
|
||||
@Query("{'checktickettime':{'$gte': ?0, '$lt': ?1},'checkticketdate':{'$dt': ?2}}")
|
||||
List<CheckTicket> findByTimestampBetweenAndCheckticketdate(String startTime, String endTime,String day);
|
||||
|
||||
List<CheckTicket> findByCheckticketdateAndChecktickettimeBetween(String day,String startTime, String endTime);
|
||||
|
||||
@Query("{'checkticketdate':{'$gte': ?0, '$lt': ?1} , 'checktickettime':{'$gte': ?2, '$lt': ?3}}")
|
||||
List<CheckTicket> findByCheckticketdateBetweenAndChecktickettimeBetween(String startTime, String endTime,String beingTime, String resultTime);
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
package cn.iocoder.yudao.module.datacenter.dal.mongodb.saledata;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.module.datacenter.controller.app.saledata.vo.AgeVo;
|
||||
import cn.iocoder.yudao.module.datacenter.controller.app.saledata.vo.AggregationVO;
|
||||
import cn.iocoder.yudao.module.datacenter.controller.app.saledata.vo.SaleDataItemTypeVo;
|
||||
import cn.iocoder.yudao.module.datacenter.dal.dataobject.saledata.SaleData;
|
||||
import cn.iocoder.yudao.module.datacenter.dal.dataobject.saledata.SaleDataToday;
|
||||
import org.springframework.data.mongodb.repository.Aggregation;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.data.mongodb.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface SaleDataTodayRepository extends MongoRepository<SaleDataToday,String> {
|
||||
/*@Query("{'name': {'$regex': '?0', '$options': 'i'}}")
|
||||
Page<SaleData> findByName(String q, PageRequest pageable);*/
|
||||
int countBySddate(String day);
|
||||
|
||||
@Query(value = "{'sddate': { $gte: ?0, $lt: ?1 }}", fields = "{ 'sddate': 1 }")
|
||||
List<String> countBySddateToTime(String starTime, String endTime);
|
||||
|
||||
|
||||
// @Query("{ 'sddate' : { $gte: ?0, $lte: ?1 } }")
|
||||
@Query(value = "{ 'sddate': { $gte: ?0, $lte: ?1 } }", fields = "{ 'certificateno': 1, 'amount': 1}")
|
||||
List<SaleData>findBySddateBetween(String begin,String end);
|
||||
|
||||
@Aggregation(pipeline = {
|
||||
"{$project: {certLength: {$strLenCP: '$certificateno'}, secondLastChar: {$substrCP: ['$certificateno', {$subtract: [{$strLenCP: '$certificateno'}, 2]}, 1]}}}",
|
||||
"{$group: {_id: null, maleCount: {$sum: {$cond: {if: {$eq: [{$mod: [{$toInt: '$secondLastChar'}, 2]}, 1]}, then: 1, else: 0}}}, femaleCount: {$sum: {$cond: {if: {$eq: [{$mod: [{$toInt: '$secondLastChar'}, 2]}, 0]}, then: 1, else: 0}}}, totalCount: {$sum: 1}}}",
|
||||
"{$project: {_id: 0, maleCount: 1, femaleCount: 1, maleRatio: {$divide: ['$maleCount', '$totalCount']}}}"
|
||||
})
|
||||
AggregationVO findAllByCertificateno();
|
||||
|
||||
@Aggregation(pipeline = {
|
||||
"{$match: {sddate: { $gte: ?0, $lte: ?1 }}}",
|
||||
"{$project: {certLength: {$strLenCP: '$certificateno'}, secondLastChar: {$substrCP: ['$certificateno', {$subtract: [{$strLenCP: '$certificateno'}, 2]}, 1]}}}",
|
||||
"{$group: {_id: null, maleCount: {$sum: {$cond: {if: {$eq: [{$mod: [{$toInt: '$secondLastChar'}, 2]}, 1]}, then: 1, else: 0}}}, femaleCount: {$sum: {$cond: {if: {$eq: [{$mod: [{$toInt: '$secondLastChar'}, 2]}, 0]}, then: 1, else: 0}}}, totalCount: {$sum: 1}}}",
|
||||
"{$project: {_id: 0, maleCount: 1, femaleCount: 1, maleRatio: {$divide: ['$maleCount', '$totalCount']}}}"
|
||||
})
|
||||
AggregationVO findAllByCertificatenoSDTime(String starTime, String endTime);
|
||||
|
||||
@Aggregation(pipeline = {
|
||||
"{$match: {sddate: { $gte: ?0, $lte: ?1 }}}",
|
||||
"{$match: {certificateno: {$regex: '^.{18}$'}}}",
|
||||
"{$project: {birthYear: {$toInt: {$substr: ['$certificateno', 6, 4]}}, currentYear: {$year: '$$NOW'}}}",
|
||||
"{$addFields: {age: {$subtract: ['$currentYear', '$birthYear']}}}",
|
||||
"{$group: {_id: null, one: {$sum: {$cond: [{$lte: ['$age', 20]}, 1, 0]}}, " +
|
||||
"two: {$sum: {$cond: [{$and: [{$gt: ['$age', 20]}, {$lte: ['$age', 30]}]}, 1, 0]}}, " +
|
||||
"three: {$sum: {$cond: [{$and: [{$gt: ['$age', 30]}, {$lte: ['$age', 40]}]}, 1, 0]}}, " +
|
||||
"four: {$sum: {$cond: [{$and: [{$gt: ['$age', 40]}, {$lte: ['$age', 50]}]}, 1, 0]}}, " +
|
||||
"five: {$sum: {$cond: [{$and: [{$gt: ['$age', 50]}, {$lte: ['$age', 60]}]}, 1, 0]}}, " +
|
||||
"six: {$sum: {$cond: [{$gt: ['$age', 60]}, 1, 0]}}}}"
|
||||
})
|
||||
AgeVo findByAge(String starTime, String endTime);
|
||||
|
||||
@Query(value = "{}", fields = "{ 'itemtypename': 1 }")
|
||||
List<SaleDataItemTypeVo> findAllByItemtypename();
|
||||
|
||||
@Query(value = "{'sddate': { $gte: ?0, $lt: ?1 }}", fields = "{ 'itemname': 1 }")
|
||||
List<SaleDataItemTypeVo> findAllByItemtypenameTime(String starTime, String endTime);
|
||||
|
||||
@Query(value = "{'sddate': { $gte: ?0, $lt: ?1 }}", fields = "{ 'transactiontypeno': 1 }")
|
||||
List<SaleData> findAllByTransactiontypenoTime(String starTime, String endTime);
|
||||
|
||||
}
|
@ -1,8 +1,10 @@
|
||||
package cn.iocoder.yudao.module.datacenter.service.checkticket;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
|
||||
import cn.iocoder.yudao.module.datacenter.controller.app.saledata.vo.AggregationVO;
|
||||
import cn.iocoder.yudao.module.datacenter.dal.dataobject.checkticket.CheckTicket;
|
||||
import cn.iocoder.yudao.module.datacenter.dal.mongodb.checkticket.CheckTicketTodayRepository;
|
||||
import cn.iocoder.yudao.module.datacenter.dal.mongodb.checkticket.CheckTicketRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
@ -15,6 +17,7 @@ import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
|
||||
/**
|
||||
* 检票 Service 实现类
|
||||
@ -26,7 +29,7 @@ import java.util.Map;
|
||||
public class CheckTicketServiceImpl implements CheckTicketService {
|
||||
|
||||
@Resource
|
||||
private CheckTicketTodayRepository checkTicketRepository;
|
||||
private CheckTicketRepository checkTicketRepository;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.datacenter.controller.app.saledata.vo.AgeVo;
|
||||
import cn.iocoder.yudao.module.datacenter.controller.app.saledata.vo.AggregationVO;
|
||||
import cn.iocoder.yudao.module.datacenter.controller.app.saledata.vo.SaleDataItemTypeVo;
|
||||
import cn.iocoder.yudao.module.datacenter.dal.dataobject.saledata.SaleData;
|
||||
import cn.iocoder.yudao.module.datacenter.dal.mongodb.saledata.SaleDataTodayRepository;
|
||||
import cn.iocoder.yudao.module.datacenter.dal.mongodb.saledata.SaleDataRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -16,6 +16,8 @@ import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@ -30,7 +32,7 @@ import java.util.stream.Collectors;
|
||||
public class SaleDataServiceImpl implements SaleDataService {
|
||||
|
||||
@Autowired
|
||||
private SaleDataTodayRepository saleDataRepository;
|
||||
private SaleDataRepository saleDataRepository;
|
||||
|
||||
public String publicMethod(String endTime){
|
||||
// 创建 DateTimeFormatter 实例以解析指定日期的格式
|
||||
|
@ -1,21 +0,0 @@
|
||||
package cn.iocoder.yudao.module.infra.dal.dataobject.checkticket;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
@Document("checkticket")
|
||||
//@Document("checktickettest")
|
||||
@Data
|
||||
public class CheckTicketToday {
|
||||
private String id;
|
||||
private String dataId;
|
||||
private String checkstation;
|
||||
private String checkstationname;
|
||||
private String ticket;
|
||||
private String checkticketdate;
|
||||
private String checktickettime;
|
||||
private Integer personcount;
|
||||
private String sdshipping;
|
||||
private String salepropetyvaluename;
|
||||
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
package cn.iocoder.yudao.module.infra.dal.dataobject.saledata;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Document("sale_data_today")
|
||||
@Data
|
||||
public class SaleDataToday {
|
||||
private String id;
|
||||
private String dataId;
|
||||
private String sdno;
|
||||
private String transactiontypeno;
|
||||
private String sddate;
|
||||
private String sdtime;
|
||||
private BigDecimal amount;
|
||||
private Integer quantity;
|
||||
private String certificatetype;
|
||||
private String certificateno;
|
||||
private String itemtype;
|
||||
private String itemtypename;
|
||||
private String item;
|
||||
private String itemname;
|
||||
private String productbatchno;
|
||||
private String salepropetyvaluename;
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
package cn.iocoder.yudao.module.infra.dal.mongodb.checkticket;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicketToday;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
|
||||
@Repository
|
||||
public interface CheckTicketTodayRepository extends MongoRepository<CheckTicketToday,String> {
|
||||
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
package cn.iocoder.yudao.module.infra.dal.mongodb.saledata;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleData;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleDataToday;
|
||||
import org.springframework.data.mongodb.repository.Aggregation;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.data.mongodb.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface SaleDataTodayRepository extends MongoRepository<SaleDataToday,String> {
|
||||
// /*@Query("{'name': {'$regex': '?0', '$options': 'i'}}")
|
||||
// Page<SaleData> findByName(String q, PageRequest pageable);*/
|
||||
// int countBySddate(String day);
|
||||
//
|
||||
// @Query(value = "{'sddate': { $gte: ?0, $lt: ?1 }}", fields = "{ 'sddate': 1 }")
|
||||
// List<String> countBySddateToTime(String starTime, String endTime);
|
||||
//
|
||||
//
|
||||
//// @Query("{ 'sddate' : { $gte: ?0, $lte: ?1 } }")
|
||||
// @Query(value = "{ 'sddate': { $gte: ?0, $lte: ?1 } }", fields = "{ 'certificateno': 1, 'amount': 1}")
|
||||
// List<SaleData>findBySddateBetween(String begin, String end);
|
||||
//
|
||||
// @Aggregation(pipeline = {
|
||||
// "{$project: {certLength: {$strLenCP: '$certificateno'}, secondLastChar: {$substrCP: ['$certificateno', {$subtract: [{$strLenCP: '$certificateno'}, 2]}, 1]}}}",
|
||||
// "{$group: {_id: null, maleCount: {$sum: {$cond: {if: {$eq: [{$mod: [{$toInt: '$secondLastChar'}, 2]}, 1]}, then: 1, else: 0}}}, femaleCount: {$sum: {$cond: {if: {$eq: [{$mod: [{$toInt: '$secondLastChar'}, 2]}, 0]}, then: 1, else: 0}}}, totalCount: {$sum: 1}}}",
|
||||
// "{$project: {_id: 0, maleCount: 1, femaleCount: 1, maleRatio: {$divide: ['$maleCount', '$totalCount']}}}"
|
||||
// })
|
||||
// AggregationVO findAllByCertificateno();
|
||||
//
|
||||
// @Aggregation(pipeline = {
|
||||
// "{$match: {sddate: { $gte: ?0, $lte: ?1 }}}",
|
||||
// "{$project: {certLength: {$strLenCP: '$certificateno'}, secondLastChar: {$substrCP: ['$certificateno', {$subtract: [{$strLenCP: '$certificateno'}, 2]}, 1]}}}",
|
||||
// "{$group: {_id: null, maleCount: {$sum: {$cond: {if: {$eq: [{$mod: [{$toInt: '$secondLastChar'}, 2]}, 1]}, then: 1, else: 0}}}, femaleCount: {$sum: {$cond: {if: {$eq: [{$mod: [{$toInt: '$secondLastChar'}, 2]}, 0]}, then: 1, else: 0}}}, totalCount: {$sum: 1}}}",
|
||||
// "{$project: {_id: 0, maleCount: 1, femaleCount: 1, maleRatio: {$divide: ['$maleCount', '$totalCount']}}}"
|
||||
// })
|
||||
// AggregationVO findAllByCertificatenoSDTime(String starTime, String endTime);
|
||||
//
|
||||
// @Aggregation(pipeline = {
|
||||
// "{$match: {sddate: { $gte: ?0, $lte: ?1 }}}",
|
||||
// "{$match: {certificateno: {$regex: '^.{18}$'}}}",
|
||||
// "{$project: {birthYear: {$toInt: {$substr: ['$certificateno', 6, 4]}}, currentYear: {$year: '$$NOW'}}}",
|
||||
// "{$addFields: {age: {$subtract: ['$currentYear', '$birthYear']}}}",
|
||||
// "{$group: {_id: null, one: {$sum: {$cond: [{$lte: ['$age', 20]}, 1, 0]}}, " +
|
||||
// "two: {$sum: {$cond: [{$and: [{$gt: ['$age', 20]}, {$lte: ['$age', 30]}]}, 1, 0]}}, " +
|
||||
// "three: {$sum: {$cond: [{$and: [{$gt: ['$age', 30]}, {$lte: ['$age', 40]}]}, 1, 0]}}, " +
|
||||
// "four: {$sum: {$cond: [{$and: [{$gt: ['$age', 40]}, {$lte: ['$age', 50]}]}, 1, 0]}}, " +
|
||||
// "five: {$sum: {$cond: [{$and: [{$gt: ['$age', 50]}, {$lte: ['$age', 60]}]}, 1, 0]}}, " +
|
||||
// "six: {$sum: {$cond: [{$gt: ['$age', 60]}, 1, 0]}}}}"
|
||||
// })
|
||||
// AgeVo findByAge(String starTime, String endTime);
|
||||
//
|
||||
// @Query(value = "{}", fields = "{ 'itemtypename': 1 }")
|
||||
// List<SaleDataItemTypeVo> findAllByItemtypename();
|
||||
//
|
||||
// @Query(value = "{'sddate': { $gte: ?0, $lt: ?1 }}", fields = "{ 'itemname': 1 }")
|
||||
// List<SaleDataItemTypeVo> findAllByItemtypenameTime(String starTime, String endTime);
|
||||
//
|
||||
// @Query(value = "{'sddate': { $gte: ?0, $lt: ?1 }}", fields = "{ 'transactiontypeno': 1 }")
|
||||
// List<SaleData> findAllByTransactiontypenoTime(String starTime, String endTime);
|
||||
|
||||
}
|
@ -7,10 +7,8 @@ import cn.iocoder.yudao.framework.common.util.date.TickingDateUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicket;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicketDO;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicketToday;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleData;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleDataDO;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleDataToday;
|
||||
import cn.iocoder.yudao.module.infra.dal.mongodb.checkticket.CheckTicketRepository;
|
||||
import cn.iocoder.yudao.module.infra.dal.mongodb.saledata.SaleDataRepository;
|
||||
import cn.iocoder.yudao.module.infra.dal.mysql.checkticket.CheckTicketMapper;
|
||||
@ -150,7 +148,7 @@ public class TicketDataMigration {
|
||||
for (; pageNumber <= totalPages; pageNumber++) {
|
||||
ticketingSamplingRespVO = this.getUrlResponseData(SALE_DATA_SERVICE, SALE_DATA_METHOD, TickingDateUtils.getNowDayFormat(), pageNumber);
|
||||
mapList = ticketingSamplingRespVO.getDataMapList();
|
||||
List<Integer> resultNum = saleDataService.insertTodayByMongoDB(BeanUtils.toBean(mapList, SaleDataToday.class));
|
||||
List<Integer> resultNum = saleDataService.insertByMongoDB(BeanUtils.toBean(mapList, SaleData.class));
|
||||
if (resultNum == null) {
|
||||
XxlJobHelper.log("数据批量插入异常!", pageNumber);
|
||||
} else {
|
||||
@ -181,7 +179,7 @@ public class TicketDataMigration {
|
||||
for (; pageNumber <= totalPages; pageNumber++) {
|
||||
ticketingSamplingRespVO = this.getUrlResponseData(CHECK_TICKET_SERVICE, CHECK_TICKET_METHOD, date, pageNumber);
|
||||
mapList = ticketingSamplingRespVO.getDataMapList();
|
||||
List<Integer> resultNum = checkTicketService.insertTodayByMongoDB(BeanUtils.toBean(mapList, CheckTicketToday.class));
|
||||
List<Integer> resultNum = checkTicketService.insertByMongoDB(BeanUtils.toBean(mapList, CheckTicket.class));
|
||||
if (resultNum == null) {
|
||||
XxlJobHelper.log("数据批量插入异常!", pageNumber);
|
||||
} else {
|
||||
|
@ -4,7 +4,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.infra.controller.checkticket.vo.CheckTicketSaveReqVO;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicket;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicketDO;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicketToday;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
@ -38,5 +37,4 @@ public interface CheckTicketService {
|
||||
* @return java.util.List<java.lang.Integer> 插入数据和重复数据
|
||||
*/
|
||||
List<Integer> insertByMongoDB(List<CheckTicket> checkTicketList);
|
||||
List<Integer> insertTodayByMongoDB(List<CheckTicketToday> checkTicketList);
|
||||
}
|
@ -5,9 +5,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicket;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicketDO;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicketToday;
|
||||
import cn.iocoder.yudao.module.infra.dal.mongodb.checkticket.CheckTicketRepository;
|
||||
import cn.iocoder.yudao.module.infra.dal.mongodb.checkticket.CheckTicketTodayRepository;
|
||||
import cn.iocoder.yudao.module.infra.dal.mysql.checkticket.CheckTicketMapper;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.dynamic.datasource.annotation.Slave;
|
||||
@ -40,8 +38,6 @@ public class CheckTicketServiceImpl implements CheckTicketService {
|
||||
private CheckTicketMapper checkTicketMapper;
|
||||
@Resource
|
||||
private CheckTicketRepository checkTicketRepository;
|
||||
@Resource
|
||||
private CheckTicketTodayRepository checkTicketTodayRepository;
|
||||
|
||||
@Override
|
||||
public Long createCheckTicket(CheckTicketDO checkTicketDO) {
|
||||
@ -79,24 +75,4 @@ public class CheckTicketServiceImpl implements CheckTicketService {
|
||||
return resultNum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Integer> insertTodayByMongoDB(List<CheckTicketToday> checkTicketList) {
|
||||
List<Integer> resultNum = new ArrayList<>(2);
|
||||
// 把检票数据的dataId提取出来成数组
|
||||
List<String> dataIdList = checkTicketList.stream().map(CheckTicketToday::getDataId).collect(Collectors.toList());
|
||||
// 获取重复的dataId
|
||||
List<String> duplicatesDataId = this.checkDuplicatesByMongoDB(dataIdList);
|
||||
// 对checkTicketList过滤掉重复的dataId对应的数据,得到需要插入的不重复数据
|
||||
List<CheckTicketToday> insertCheckTicketList = checkTicketList.stream().filter(ticket -> !duplicatesDataId.contains(ticket.getDataId())).collect(Collectors.toList());
|
||||
try {
|
||||
// 批量插入
|
||||
checkTicketTodayRepository.insert(insertCheckTicketList);
|
||||
} catch (MongoException e){
|
||||
return null;
|
||||
}
|
||||
resultNum.add(insertCheckTicketList.size());
|
||||
resultNum.add(duplicatesDataId.size());
|
||||
return resultNum;
|
||||
}
|
||||
|
||||
}
|
@ -6,7 +6,6 @@ import cn.iocoder.yudao.module.infra.controller.saledata.vo.SaleDataSaveReqVO;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicket;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleData;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleDataDO;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleDataToday;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.math.BigDecimal;
|
||||
@ -41,5 +40,4 @@ public interface SaleDataService {
|
||||
* @return java.util.List<java.lang.Integer>
|
||||
*/
|
||||
List<Integer> insertByMongoDB(List<SaleData> saleDataList);
|
||||
List<Integer> insertTodayByMongoDB(List<SaleDataToday> saleDataList);
|
||||
}
|
@ -1,20 +1,35 @@
|
||||
package cn.iocoder.yudao.module.infra.service.saledata;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.ticket.IdCardUtil;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.infra.controller.saledata.vo.SaleDataSaveReqVO;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.checkticket.CheckTicket;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleData;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleDataDO;
|
||||
import cn.iocoder.yudao.module.infra.dal.dataobject.saledata.SaleDataToday;
|
||||
import cn.iocoder.yudao.module.infra.dal.mongodb.saledata.SaleDataRepository;
|
||||
import cn.iocoder.yudao.module.infra.dal.mongodb.saledata.SaleDataTodayRepository;
|
||||
import cn.iocoder.yudao.module.infra.dal.mysql.saledata.SaleDataMapper;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.dynamic.datasource.annotation.Slave;
|
||||
import com.mongodb.DuplicateKeyException;
|
||||
import com.mongodb.MongoException;
|
||||
import org.springframework.data.domain.Example;
|
||||
import org.springframework.data.domain.ExampleMatcher;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.exact;
|
||||
|
||||
|
||||
/**
|
||||
* 售票 Service 实现类
|
||||
@ -26,10 +41,6 @@ import java.util.stream.Collectors;
|
||||
public class SaleDataServiceImpl implements SaleDataService {
|
||||
@Resource
|
||||
private SaleDataRepository saleDataRepository;
|
||||
|
||||
@Resource
|
||||
private SaleDataTodayRepository saleDataTodayRepository;
|
||||
|
||||
@Resource
|
||||
private SaleDataMapper saleDataMapper;
|
||||
|
||||
@ -70,25 +81,5 @@ public class SaleDataServiceImpl implements SaleDataService {
|
||||
return resultNum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Integer> insertTodayByMongoDB(List<SaleDataToday> saleDataList) {
|
||||
List<Integer> resultNum = new ArrayList<>(2);
|
||||
// 把检票数据的dataId提取出来成数组
|
||||
List<String> dataIdList = saleDataList.stream().map(SaleDataToday::getDataId).collect(Collectors.toList());
|
||||
// 获取重复的dataId
|
||||
List<String> duplicatesDataId = this.checkDuplicatesByMongoDB(dataIdList);
|
||||
// 对checkTicketList过滤掉重复的dataId对应的数据,得到需要插入的不重复数据
|
||||
List<SaleDataToday> insertSaleDataList = saleDataList.stream().filter(saleData -> !duplicatesDataId.contains(saleData.getDataId())).collect(Collectors.toList());
|
||||
try {
|
||||
// 批量插入
|
||||
saleDataTodayRepository.insert(insertSaleDataList);
|
||||
} catch (MongoException e){
|
||||
return null;
|
||||
}
|
||||
resultNum.add(insertSaleDataList.size());
|
||||
resultNum.add(duplicatesDataId.size());
|
||||
return resultNum;
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user