无品牌校区导入

This commit is contained in:
DB 2024-01-29 21:51:46 +08:00
parent a9a83afdd6
commit 40efe42369
2 changed files with 40 additions and 24 deletions

View File

@ -1,6 +1,5 @@
package com.cpop.oam.web;
import com.alibaba.fastjson.JSONArray;
import com.cpop.common.utils.StringUtils;
import com.cpop.core.utils.SpringUtils;
import com.cpop.jambox.business.entity.BrandExtend;
@ -14,31 +13,26 @@ import com.cpop.jambox.business.service.StoreExtendService;
import com.cpop.system.business.entity.Store;
import com.cpop.system.business.entity.StoreSign;
import com.cpop.system.business.entity.WxPayScore;
import com.cpop.system.business.mapper.StoreMapper;
import com.cpop.system.business.mapper.StoreSignMapper;
import com.cpop.system.business.service.StoreService;
import com.cpop.system.business.service.StoreSignService;
import com.cpop.system.business.service.WxPayScoreService;
import com.mybatisflex.core.datasource.DataSourceKey;
import com.mybatisflex.core.row.Db;
import com.mybatisflex.core.row.DbChain;
import com.mybatisflex.core.row.Row;
import com.mybatisflex.core.row.RowUtil;
import com.mybatisflex.core.update.UpdateChain;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.cpop.core.base.table.table.SysUserTableDef.SYS_USER;
import static com.cpop.jambox.business.entity.table.StoreExtendTableDef.STORE_EXTEND;
import static com.cpop.oam.business.entity.table.StaffTableDef.STAFF;
import static com.cpop.system.business.entity.table.StoreSignTableDef.STORE_SIGN;
import static com.cpop.system.business.entity.table.StoreTableDef.STORE;
import static com.mybatisflex.core.query.QueryMethods.count;
@ -219,19 +213,53 @@ public class CpopDataSyncTests {
try {
DataSourceKey.use("jambox");
rowList = DbChain.table("OAM_data_sign")
.select("sign_status","store_id","brand_id","sign_status","sign_time","end_time","sign_name","cre_time")
.from("OAM_data_sign")
.select("ods.sign_status", "tmi.mechanism as storeName", "ods.store_id as storeCloudId", "tbi.brand_id as brandCloudId", "ods.sign_time as signCreateTime", "ods.end_time as expireDate", "ods.activation_time as renewDate",
"ods.sign_name as signStaffId", "ods.cre_time as createDate", "ods.address as storeAddr", "ods.charge_name as personCharge","tmi.charge_phone as phone", "tmi.X as longitude", "tmi.Y as latitude", "tmi.test as isTest",
"tmi.reg_addr as licenseAddr", "str_to_date(tmi.reg_date,'%Y年%m月%d') as licenseDate", "tmi.reg_Name as licenseName",
"tmi.ness_license_id as licenseCode", "tmi.corp_name as licenseUserName", "tmi.reg_pic as licensePicUrl")
.from("OAM_data_sign").as("ods")
.leftJoin("t_mechanism_info").as("tmi").on("tmi.mechanism_id = ods.mechanism_id")
.leftJoin("t_brand_info").as("tbi").on("tbi.id = ods.brand_id")
.and("ods.store_id is not null")
.list();
} finally {
DataSourceKey.clear();
}
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//无品牌校区
List<Row> notBrandStore = rowList.stream().filter(item -> StringUtils.isBlank(item.getString("brandCloudId"))).collect(Collectors.toList());
notBrandStore.forEach(item->{
if (StringUtils.isNotBlank(item.getString("signStaffId"))){
item.put("haveCounselor",true);
}
if (item.getString("createDate").length() < 11) {
item.put("createTime", LocalDateTime.parse(item.getString("createDate") + " 00:00:00", dateTimeFormatter));
} else {
item.put("createTime", LocalDateTime.parse(item.getString("createDate"), dateTimeFormatter));
}
if (StringUtils.isNotBlank(item.getString("renewDate"))){
item.put("haveActive",true);
}
item.put("sourceType","JAMBOX");
});
//先同步校区数据
List<Store> stores = RowUtil.toEntityList(notBrandStore, Store.class);
SpringUtils.getBean(StoreService.class).saveBatch(stores);
List<StoreExtend> storeExtends = new ArrayList<>();
for (int i = 0; i < stores.size(); i++) {
StoreExtend storeExtend = new StoreExtend();
storeExtend.setStoreId(stores.get(i).getId());
storeExtend.setCreateTime(LocalDateTime.now());
storeExtend.setStoreCloudId(notBrandStore.get(i).getString("storeCloudId"));
storeExtends.add(storeExtend);
}
SpringUtils.getBean(StoreExtendService.class).saveBatch(storeExtends);
//过滤出已签约的数据
List<Row> waitSignStore = rowList.stream().filter(item -> StringUtils.equals(item.getString("signStatus"), "待签约")).collect(Collectors.toList());
//List<Row> waitSignStore = rowList.stream().filter(item -> StringUtils.equals(item.getString("signStatus"), "待签约")).collect(Collectors.toList());
System.out.println(JSONArray.toJSONString(rowList));
/*Map<String, String> phoneToId = DbChain.table(STAFF.getTableName())
.select(STAFF.ID)
.select(SYS_USER.PHONE_NUMBER.as("phone"))

View File

@ -1,9 +1,5 @@
package com.cpop.oam.web;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.cpop.common.utils.StringUtils;
import com.cpop.core.base.enums.OrderSource;
import com.cpop.core.utils.SpringUtils;
@ -20,19 +16,14 @@ import com.github.binarywang.wxpay.bean.payscore.PartnerUserSignPlanEntity;
import com.github.binarywang.wxpay.bean.payscore.PayScorePlanDetailResult;
import com.github.binarywang.wxpay.bean.payscore.WxPartnerPayScoreSignPlanResult;
import com.github.binarywang.wxpay.bean.profitsharing.result.ProfitSharingV3Result;
import com.github.binarywang.wxpay.bean.request.WxPayOrderQueryRequest;
import com.github.binarywang.wxpay.bean.request.WxPayOrderQueryV3Request;
import com.github.binarywang.wxpay.bean.request.WxPayPartnerOrderQueryV3Request;
import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult;
import com.github.binarywang.wxpay.bean.result.WxPayPartnerOrderQueryV3Result;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.PartnerPayScoreSignPlanService;
import com.github.binarywang.wxpay.service.WxPayService;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.core.datasource.DataSourceKey;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.row.*;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@ -44,12 +35,10 @@ import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.cpop.jambox.business.entity.table.EasyLearnOrderDetailTableDef.EASY_LEARN_ORDER_DETAIL;
import static com.cpop.jambox.business.entity.table.EasyLearnOrderExtendTableDef.EASY_LEARN_ORDER_EXTEND;
import static com.cpop.jambox.business.entity.table.EasyLearnOrderTableDef.EASY_LEARN_ORDER;
import static com.cpop.jambox.business.entity.table.StoreExtendTableDef.STORE_EXTEND;
@ -99,7 +88,6 @@ public class CpopOldDataSyncTests {
rowList.forEach(item->{
item.set("id",storeMap.get(item.getString("storeCloudId")));
});
List<Row> filterList = rowList.stream().filter(item -> StringUtils.isNotBlank(item.getString("id"))).collect(Collectors.toList());
SpringUtils.getBean(StoreService.class).updateBatch(RowUtil.toEntityList(filterList, Store.class));
}