记得上下班打卡 | git大法好,push需谨慎

Commit 9f354343 authored by 胡佳晨's avatar 胡佳晨

提交 php 2022年商品订单迁移

parent 1db3ca92
...@@ -19,10 +19,10 @@ public class DataController { ...@@ -19,10 +19,10 @@ public class DataController {
private DataImpl data; private DataImpl data;
@PostMapping("refreshScore") @PostMapping("phpGoodsOrder")
@ApiOperation("过期历史积分") @ApiOperation("php今年订单迁移")
public ResponseDto<Boolean> fieldData() { public ResponseDto<Boolean> fieldData() {
data.refreshScore(); data.fieldData();
return ResponseDto.success(); return ResponseDto.success();
} }
......
...@@ -7,6 +7,13 @@ import com.liquidnet.commons.lang.util.*; ...@@ -7,6 +7,13 @@ import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo; import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient; import com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.vo.GoblinOrderAttrVo;
import com.liquidnet.service.goblin.dto.vo.GoblinOrderSkuVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreOrderVo;
import com.liquidnet.service.goblin.entity.GoblinOrderAttr;
import com.liquidnet.service.goblin.entity.GoblinStoreOrder;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo; import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.entity.KylinPerformanceRelations; import com.liquidnet.service.kylin.entity.KylinPerformanceRelations;
...@@ -48,40 +55,14 @@ import java.util.List; ...@@ -48,40 +55,14 @@ import java.util.List;
@Slf4j @Slf4j
public class DataImpl { public class DataImpl {
@Value("${liquidnet.service.adam.url}")
private String adamUrl;
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private RedisDataSourceUtil redisDataSourceUtil;
@Autowired
SlimeFieldsMapper slimeFieldsMapper;
@Autowired
SlimeFieldAppliesMapper slimeFieldAppliesMapper;
@Autowired
SlimeSponsorsMapper slimeSponsorsMapper;
@Autowired
SlimeSponsorAppliesMapper slimeSponsorAppliesMapper;
@Autowired
KylinPerformanceRelationsMapper kylinPerformanceRelationsMapper;
@Autowired
DMTAuthorizationPermissionService dmtAuthorizationPermissionService;
@Autowired
DMTAuthorizationRecordsService dmtAuthorizationRecordsService;
@Autowired
StoneScoreLogsMapper stoneScoreLogsMapper;
@Autowired @Autowired
FeignStoneIntegralClient feignStoneIntegralClient; RedisDataSourceUtil redisDataSourceUtil;
// private static final String SQL_URL = "jdbc:mysql://39.107.71.112:3308/test_ln_scene"; // private static final String SQL_URL = "jdbc:mysql://39.107.71.112:3308/test_ln_scene";
// private static final String SQL_USER = "testmall"; // private static final String SQL_USER = "testmall";
// private static final String SQL_PWD = "zhengzai!mYT"; // private static final String SQL_PWD = "zhengzai!mYT";
// private static final String PHP_DB = "testmall"; // private static final String PHP_DB = "testmall";
private static final String SQL_URL = "jdbc:mysql://zhengzairead.rwlb.rds.aliyuncs.com:3306/prod_ln_scene"; private static final String SQL_URL = "jdbc:mysql://zhengzairead.rwlb.rds.aliyuncs.com:3306/mall";
private static final String SQL_USER = "readonly"; private static final String SQL_USER = "readonly";
private static final String SQL_PWD = "ZWDsf8Fy"; private static final String SQL_PWD = "ZWDsf8Fy";
private static final String PHP_DB = "mall"; private static final String PHP_DB = "mall";
...@@ -89,149 +70,120 @@ public class DataImpl { ...@@ -89,149 +70,120 @@ public class DataImpl {
//迁移场地和场地认领关系 //迁移场地和场地认领关系
public void fieldData() { public void fieldData() {
try { try {
String sql = "select mf.id AS 'field_id',\n" + String sql = "select m.id as 'order_id',\n" +
" 1 AS 'is_online',\n" + " m.matter_num as 'master_order_code',\n" +
" 0 AS 'is_check',\n" + " m.matter_num as 'order_code',\n" +
" mf.`name` AS 'name',\n" + " m.out_trade_no as 'pay_code',\n" +
" '' AS 'logo',\n" + " ifnull(user_id, user_id_new) as 'user_id',\n" +
" IF(LEFT(mf.cover_img, 4) = 'http', mf.cover_img, '') AS 'background',\n" + " m.matter_amount as 'price_total',\n" +
" IF(ISNULL(mf.description), '', mf.description) AS 'description',\n" + " (m.matter_amount - m.coupon_type2_price) as 'price_actual',\n" +
" NULL AS 'built_date',\n" + " m.price_send as 'price_express',\n" +
" mf.province_id AS 'province_id',\n" + " m.coupon_type2_price as 'price_coupon',\n" +
" mf.province_name AS 'province_name',\n" + " m.coupon_type2_price as 'price_voucher',\n" +
" mf.city_id AS 'city_id',\n" + " m.status as 'status',\n" +
" mf.city_name AS 'city_name',\n" + " m.pay_type as 'pay_type',\n" +
" IF(mf.ad_code > 7000, mf.ad_code, '') AS 'district_id',\n" + " m.source as 'device_from',\n" +
" mf.district_name AS 'district_name',\n" + " m.payment_type as 'payment_type',\n" +
" mf.address AS 'address',\n" + " m.trade_no as 'payment_id',\n" +
" mf.longitude AS 'longitude',\n" + " m.source as 'source',\n" +
" mf.latitude AS 'latitude',\n" + " m.version as 'version',\n" +
" mm.`name` AS 'contact_name',\n" + " m.pay_time as 'pay_time',\n" +
" mm.mobile AS 'contact_mobile',\n" + " m.coupon_type2_id as 'ucoupon_id',\n" +
" mm.email AS 'contact_email',\n" + " m.post_name as 'express_contacts',\n" +
" '' AS 'company_id',\n" + " m.post_phone as 'express_phone',\n" +
" IF(ISNULL(mf.created_at), mf.updated_at, mf.created_at) AS 'created_at',\n" + " m.post_address as 'express_address',\n" +
" mf.updated_at AS 'updated_at',\n" + " m.post_address as 'express_address_detail',\n" +
" mf.admin_id,\n" + " m.created_at as 'created_at'\n" +
" mm.name,\n" + "from matters as m\n" +
" mm.email,\n" + "where m.status = 1\n" +
" mmd.enterprise_name,\n" + " and m.created_at >= '2022-01-01 00:00:00'";
" mmd.business_license,\n" +
" mmd.business_license_img,\n" +
" mmd.legal_person,\n" +
" mmd.identity_card,\n" +
" mmd.identity_card_img_front,\n" +
" mmd.identity_card_img_back,\n" +
" kpr.performance_id\n" +
"from kylin_performances as kp\n" +
" inner join kylin_performance_relations as kpr on kpr.performance_id = kp.performances_id\n" +
" inner join " + PHP_DB + ".fields as mf on mf.id = kpr.field_id\n" +
" left join " + PHP_DB + ".merchants as mm on mm.id = mf.admin_id\n" +
" left join " + PHP_DB + ".merchant_details as mmd on mmd.merchant_id = mf.admin_id\n" +
"group by field_id";
Connection connection = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PWD); Connection connection = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PWD);
//查询数据 //查询数据
PreparedStatement preparedStatement = connection.prepareStatement(sql); PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSetImpl row = (ResultSetImpl) preparedStatement.executeQuery(); ResultSetImpl row = (ResultSetImpl) preparedStatement.executeQuery();
//数据迁移 //数据迁移
while (row.next()) { while (row.next()) {
SlimeFields fields = new SlimeFields(); GoblinStoreOrderVo orderVo = GoblinStoreOrderVo.getNew();
fields.setFieldId(row.getString("field_id")); orderVo.setStoreId("dab4742921ba3555700896c4fafbee5b");
fields.setIsOnline(row.getInt("is_online")); orderVo.setStoreName("摩登天空自营店");
String contactMobile = row.getString("contact_mobile"); orderVo.setPayCountdownMinute(5);
//判断场地认领逻辑 orderVo.setStatus(GoblinStatusConst.Status.ORDER_STATUS_4.getValue());
if (null != contactMobile && !contactMobile.isEmpty()) { orderVo.setOrderId(row.getString("order_id"));
if (contactMobile.equals("15810312145")) { orderVo.setMasterOrderCode(row.getString("master_order_code"));
contactMobile = "15810579150"; orderVo.setOrderCode(row.getString("order_code"));
} orderVo.setPayCode(row.getString("pay_code"));
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString(); orderVo.setUserId(row.getString("user_id"));
params.add("mobile", contactMobile); // orderVo.setUserId("938039519718440965850184");
MultiValueMap<String, String> headers = CollectionUtil.linkedMultiValueMapStringString(); orderVo.setPriceTotal(row.getBigDecimal("price_total"));
headers.add("Accept", "application/json;charset=UTF-8"); orderVo.setPriceActual(row.getBigDecimal("price_actual"));
String returnData = HttpUtil.post(adamUrl.concat("/adam/rsc/reg/mobile"), params, headers); orderVo.setPriceExpress(row.getBigDecimal("price_express"));
AdamUserInfoVo adamUserInfoVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<AdamUserInfoVo>>() { orderVo.setPriceCoupon(row.getBigDecimal("price_coupon"));
}).getData(); orderVo.setPriceVoucher(row.getBigDecimal("price_voucher"));
String uid = adamUserInfoVo.getUid(); orderVo.setPayType(row.getString("pay_type"));
fields.setClaimStatus(1); orderVo.setDeviceFrom(row.getString("device_from"));
fields.setUid(uid); orderVo.setPaymentType(row.getString("payment_type"));
} else { orderVo.setPaymentId(row.getString("payment_id"));
fields.setClaimStatus(0); orderVo.setSource(row.getString("source"));
fields.setUid(""); orderVo.setVersion(row.getString("version"));
orderVo.setPayTime(row.getString("pay_time"));
orderVo.setUcouponId(row.getString("ucoupon_id"));
orderVo.setCreatedAt(row.getString("created_at"));
GoblinOrderAttrVo orderAttrVo = GoblinOrderAttrVo.getNew();
orderAttrVo.setOrderId(orderVo.getOrderId());
orderAttrVo.setExpressContacts(row.getString("express_contacts"));
orderAttrVo.setExpressPhone(row.getString("express_phone"));
orderAttrVo.setExpressAddress(row.getString("express_address"));
orderAttrVo.setExpressAddressDetail(row.getString("express_address_detail"));
orderAttrVo.setCreatedAt(orderVo.getCreatedAt());
orderVo.setOrderAttrVo(orderAttrVo);
String sqlSku = "select mi.id as 'order_sku_id',\n" +
" mi.good_id as 'spu_id',\n" +
" mi.product_id as 'sku_id',\n" +
" mi.buy_number as 'num',\n" +
" mi.price as 'sku_price',\n" +
" (mi.price * mi.buy_number) as 'sku_price_actual',\n" +
" gic.name as 'sku_name',\n" +
" p.cover as 'sku_image',\n" +
" gic.value as 'sku_specs',\n" +
" g.title as 'spu_name',\n" +
" g.cover as 'spu_pic',\n" +
" mi.created_at as 'created_at'\n" +
"from matter_items as mi\n" +
" inner join goods as g on g.id = mi.good_id\n" +
" inner join products as p on p.id = mi.product_id\n" +
" inner join good_item_contents as gic on gic.goods_item_id = mi.product_id\n" +
"where matter_id = " + orderVo.getOrderId() + "\n" +
" and gic.goods_kinds = 1;";
//查询数据
PreparedStatement preparedStatementSku = connection.prepareStatement(sqlSku);
ResultSetImpl rowSku = (ResultSetImpl) preparedStatementSku.executeQuery();
//数据迁移
List<String> orderSkuIds = CollectionUtil.linkedListString();
while (rowSku.next()) {
GoblinOrderSkuVo skuVo = GoblinOrderSkuVo.getNew();
skuVo.setOrderId(orderVo.getOrderId());
skuVo.setStatus(GoblinStatusConst.Status.ORDER_STATUS_4.getValue());
skuVo.setOrderSkuId(rowSku.getString("order_sku_id"));
skuVo.setSpuId(rowSku.getString("spu_id"));
skuVo.setSkuId(rowSku.getString("sku_id"));
skuVo.setNum(rowSku.getInt("num"));
skuVo.setSkuPrice(rowSku.getBigDecimal("sku_price"));
skuVo.setSkuPriceActual(rowSku.getBigDecimal("sku_price_actual"));
skuVo.setSkuName(rowSku.getString("sku_specs"));
skuVo.setSkuImage(rowSku.getString("sku_image"));
skuVo.setSkuSpecs("[{\"specName\":\""+rowSku.getString("sku_name")+"\",\"specVname\":\""+rowSku.getString("sku_specs")+"\"}]");//
skuVo.setSpuName(rowSku.getString("spu_name"));
skuVo.setCreatedAt(orderVo.getCreatedAt());
setGoblinOrderSku(skuVo.getOrderSkuId(), skuVo);
orderSkuIds.add(skuVo.getOrderSkuId());
} }
//完成 orderVo.setOrderSkuVoIds(orderSkuIds);
fields.setIsCheck(row.getInt("is_check")); setGoblinOrder(orderVo.getOrderId(),orderVo);
fields.setName(row.getString("name")); addOrderList(orderVo.getUserId(),orderVo.getOrderId());
fields.setLogo(row.getString("logo"));
fields.setBackground(row.getString("background").contains(".") ? row.getString("background") : "");
fields.setDescription("空".equals(row.getString("description")) ? "" : row.getString("description"));
fields.setBuiltDate(null != row.getDate("built_date") ? row.getDate("built_date").toLocalDate() : null);
fields.setProvinceId(row.getString("province_id"));
fields.setProvinceName(row.getString("province_name"));
fields.setCityId(row.getString("city_id"));
fields.setCityName(row.getString("city_name"));
fields.setDistrictId(row.getString("district_id"));
fields.setDistrictName(row.getString("district_name"));
fields.setAddress(null != row.getString("address") ? row.getString("address") : "");
fields.setLongitude(row.getString("longitude").contains(".") ? row.getString("longitude") : "");
fields.setLatitude(row.getString("latitude").contains(".") ? row.getString("latitude") : "");
fields.setContactName(null != row.getString("contact_name") ? row.getString("contact_name") : "");
fields.setContactEmail(null != row.getString("contact_email") ? row.getString("contact_email") : "");
fields.setCompanyId(row.getString("company_id"));
fields.setCreatedAt(row.getTimestamp("created_at").toLocalDateTime());
fields.setUpdatedAt(row.getTimestamp("updated_at").toLocalDateTime());
SlimeFieldsVo vo = SlimeFieldsVo.getNew().copy(fields);
SlimeFieldApplies applies = new SlimeFieldApplies(); rowSku.close();
SlimeFieldAppliesVo appliesVo = null; preparedStatementSku.close();
if (fields.getClaimStatus() != 0) {
applies.setFieldApplyId(IDGenerator.nextSnowId());
applies.setApplyStatus(1);
applies.setUid(fields.getUid());
applies.setFieldId(fields.getFieldId());
applies.setName(fields.getName());
applies.setLogo(fields.getLogo());
applies.setBackground(fields.getBackground());
applies.setDescription(fields.getDescription());
applies.setBuiltDate(fields.getBuiltDate());
applies.setProvinceId(fields.getProvinceId());
applies.setProvinceName(fields.getProvinceName());
applies.setCityId(fields.getCityId());
applies.setCityName(fields.getCityName());
applies.setDistrictId(fields.getDistrictId());
applies.setDistrictName(fields.getDistrictName());
applies.setAddress(fields.getAddress());
applies.setLongitude(fields.getLongitude());
applies.setLatitude(fields.getLatitude());
if (row.getInt("admin_id") == 0) {
applies.setApplyType("create");
} else {
applies.setApplyType("claim");
applies.setContactName(row.getString("name"));
applies.setContactEmail(row.getString("email"));
applies.setCompanyName(row.getString("enterprise_name"));
applies.setLicenseCode(row.getString("business_license"));
applies.setLicenseImg(row.getString("business_license_img"));
applies.setLegalName(row.getString("legal_person"));
applies.setLegalIdentity(row.getString("identity_card"));
applies.setLegalIdentityObverse(row.getString("identity_card_img_front"));
applies.setLegalIdentityReverse(row.getString("identity_card_img_back"));
}
applies.setCreatedAt(LocalDateTime.now());
appliesVo = SlimeFieldAppliesVo.getNew().copy(applies);
}
//MYSQL
slimeFieldsMapper.delete(Wrappers.lambdaQuery(SlimeFields.class).eq(SlimeFields::getFieldId, fields.getFieldId()));
slimeFieldsMapper.insert(fields);
if (fields.getClaimStatus() != 0) {
slimeFieldAppliesMapper.delete(Wrappers.lambdaQuery(SlimeFieldApplies.class).eq(SlimeFieldApplies::getFieldId, applies.getFieldId()));
slimeFieldAppliesMapper.insert(applies);
}
//OTHER
judgeFields(fields.getFieldId(), fields.getUid(), appliesVo, vo);
//场地权限
if (!fields.getUid().equals("")) {
initPermission("field", null, row.getString("performance_id"), fields.getUid(), null, null, null);
}
} }
row.close(); row.close();
preparedStatement.close(); preparedStatement.close();
...@@ -240,405 +192,39 @@ public class DataImpl { ...@@ -240,405 +192,39 @@ public class DataImpl {
} }
} }
//演出所属账号修改 // 赋值 订单相关vo
public void account() { public void setGoblinOrder(String orderId, GoblinStoreOrderVo vo) {
try { String redisKey = GoblinRedisConst.REDIS_GOBLIN_ORDER.concat(orderId);
String sql = "select merchant_id, mm.mobile, kp.performances_id ,kps.audit_status\n" + redisDataSourceUtil.getRedisKylinUtil().set(redisKey, vo);
"from kylin_performances kp\n" +
" inner join kylin_performance_relations kpr on kpr.performance_id = kp.performances_id\n" +
" inner join kylin_performance_status kps on kps.performance_id = kp.performances_id\n" +
" left join " + PHP_DB + ".merchants mm on mm.id = kpr.merchant_id";
Connection connection = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PWD);
//查询数据
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSetImpl row = (ResultSetImpl) preparedStatement.executeQuery();
//数据迁移
while (row.next()) {
String mobile = row.getString("mobile");
String merchantId = row.getString("merchant_id");
String performancesId = row.getString("performances_id");
String auditStatus = row.getString("audit_status");
if (mobile == null) {
continue;
} else {
if (mobile.equals("15810312145")) {
mobile = "15810579150";
}
}
//获取java用户id
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("mobile", mobile);
MultiValueMap<String, String> headers = CollectionUtil.linkedMultiValueMapStringString();
headers.add("Accept", "application/json;charset=UTF-8");
String returnData = HttpUtil.post(adamUrl.concat("/adam/rsc/reg/mobile"), params, headers);
AdamUserInfoVo adamUserInfoVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<AdamUserInfoVo>>() {
}).getData();
String uid = adamUserInfoVo.getUid();
KylinPerformanceRelations kylinPerformanceRelations = KylinPerformanceRelations.getNew();
kylinPerformanceRelations.setMerchantId(uid);
kylinPerformanceRelationsMapper.update(kylinPerformanceRelations,
Wrappers.lambdaUpdate(KylinPerformanceRelations.class).eq(KylinPerformanceRelations::getMerchantId, merchantId).eq(KylinPerformanceRelations::getPerformanceId, performancesId));
HashMap<String, Object> map = CollectionUtil.mapStringObject();
map.put("merchantId", uid);
map.put("auditStatus", auditStatus);
//修改vo
Query voQuery = Query.query(Criteria.where("performancesId").is(performancesId));
BasicDBObject objectVo = ObjectUtil.cloneBasicDBObject().append("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(KylinPerformanceVo.class.getSimpleName()).updateOne(
voQuery.getQueryObject(),
objectVo
);
//修改partnerVo
// Query partnerVoQuery = Query.query(Criteria.where("merchantId").is(merchantId).and("performancesId").is(performancesId));
// BasicDBObject objectPartnerVo = ObjectUtil.cloneBasicDBObject().append("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(PerformancePartnerVo.class.getSimpleName()).updateOne(
voQuery.getQueryObject(),
objectVo
);
initPermission("sponsor", uid, row.getString("performances_id"), null, null, null, null);
}
row.close();
preparedStatement.close();
} catch (Exception e) {
e.printStackTrace();
}
} }
//演出主办 // 赋值 订单相关Skuvo
public void sponsor() { public void setGoblinOrderSku(String orderSkuId, GoblinOrderSkuVo vo) {
try { String redisKey = GoblinRedisConst.REDIS_GOBLIN_ORDER_SKU.concat(orderSkuId);
String sql = "select sponsor_id,sponsor_type from kylin_performances kp\n" + redisDataSourceUtil.getRedisKylinUtil().set(redisKey, vo);
"inner join kylin_performance_status kps on kps.performance_id = kp.performances_id\n" +
"where status >=3 and sponsor_id != ''\n" +
"group by sponsor_id,sponsor_type;";
Connection connection = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PWD);
//查询数据
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSetImpl row = (ResultSetImpl) preparedStatement.executeQuery();
//数据迁移
while (row.next()) {
String sponsorId = row.getString("sponsor_id");
String sponsorType = row.getString("sponsor_type");
String sponsorSql = "";
if (sponsorType.equals("brand")) {
sponsorSql = "select b.name,m.id,m.email,m.mobile,m.name as 'merchant_name',md.enterprise_name,md.business_license,md.business_license_img,md.enterprise_name,md.legal_person,md.identity_card,md.identity_card_img_front,md.identity_card_img_back\n" +
"from testmall.brands b inner join testmall.merchants m on m.id=b.admin_id inner join testmall.merchant_details md on md.merchant_id = m.id where b.id =" + sponsorId;
} else if (sponsorType.equals("field")) {
sponsorSql = "select mu.name,m.id,m.mobile,m.name as 'merchant_name',md.enterprise_name,md.business_license,md.business_license_img,md.enterprise_name,md.legal_person,md.identity_card,md.identity_card_img_front,md.identity_card_img_back\n" +
"from testmall.brands b inner join testmall.merchants m on m.id=b.admin_id inner join testmall.merchant_details md on md.merchant_id = m.id where b.id =" + sponsorId;
} else if (sponsorType.equals("musician")) {
sponsorSql = "select f.name,m.id,m.mobile,m.name as 'merchant_name',md.enterprise_name,md.business_license,md.business_license_img,md.enterprise_name,md.legal_person,md.identity_card,md.identity_card_img_front,md.identity_card_img_back\n" +
"from testmall.brands b inner join testmall.merchants m on m.id=b.admin_id inner join testmall.merchant_details md on md.merchant_id = m.id where b.id =" + sponsorId;
}
if (sponsorSql.equals("")) {
continue;
}
PreparedStatement preparedStatementSponsor = connection.prepareStatement(sponsorSql);
ResultSetImpl rowSponsor = (ResultSetImpl) preparedStatementSponsor.executeQuery();
while (rowSponsor.next()) {
SlimeSponsors sponsors = new SlimeSponsors();
sponsors.setSponsorId(IDGenerator.nextSnowId());
sponsors.setIsOnline(1);
String contactMobile = rowSponsor.getString("mobile");
//判断场地认领逻辑
if (null != contactMobile && !contactMobile.isEmpty()) {
if (contactMobile.equals("15810312145")) {
contactMobile = "15810579150";
}
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("mobile", contactMobile);
MultiValueMap<String, String> headers = CollectionUtil.linkedMultiValueMapStringString();
headers.add("Accept", "application/json;charset=UTF-8");
String returnData = HttpUtil.post(adamUrl.concat("/adam/rsc/reg/mobile"), params, headers);
AdamUserInfoVo adamUserInfoVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<AdamUserInfoVo>>() {
}).getData();
String uid = adamUserInfoVo.getUid();
sponsors.setUid(uid);
} else {
sponsors.setUid("");
}
sponsors.setName(rowSponsor.getString("name"));
sponsors.setContactName(rowSponsor.getString("merchant_name"));
sponsors.setContactEmail(rowSponsor.getString("email"));
sponsors.setCreatedAt(LocalDateTime.now());
SlimeSponsorsVo vo = SlimeSponsorsVo.getNew().copy(sponsors);
SlimeSponsorApplies sponsorApplies = new SlimeSponsorApplies();
sponsorApplies.setSponsorApplyId(IDGenerator.nextSnowId());
sponsorApplies.setSponsorId(sponsors.getSponsorId());
sponsorApplies.setApplyStatus(1);
sponsorApplies.setApplyType("create");
sponsorApplies.setUid(sponsors.getUid());
sponsorApplies.setName(rowSponsor.getString("merchant_name"));
sponsorApplies.setContactEmail(sponsors.getContactEmail());
sponsorApplies.setLicenseCode(rowSponsor.getString("business_license"));
sponsorApplies.setLicenseImg(rowSponsor.getString("business_license_img"));
sponsorApplies.setCompanyName(rowSponsor.getString("enterprise_name"));
sponsorApplies.setLegalName(rowSponsor.getString("legal_person"));
sponsorApplies.setLegalIdentity(rowSponsor.getString("identity_card"));
sponsorApplies.setLegalIdentityObverse(rowSponsor.getString("identity_card_img_front"));
sponsorApplies.setLegalIdentityReverse(rowSponsor.getString("identity_card_img_back"));
sponsorApplies.setCreatedAt(sponsors.getCreatedAt());
SlimeSponsorAppliesVo sponsorAppliesVo = SlimeSponsorAppliesVo.getNew().copy(sponsorApplies);
//MYSQL
slimeSponsorsMapper.delete(Wrappers.lambdaQuery(SlimeSponsors.class).eq(SlimeSponsors::getSponsorId, sponsors.getSponsorId()));
slimeSponsorsMapper.insert(sponsors);
slimeSponsorAppliesMapper.delete(Wrappers.lambdaQuery(SlimeSponsorApplies.class).eq(SlimeSponsorApplies::getSponsorId, sponsorApplies.getSponsorId()));
slimeSponsorAppliesMapper.insert(sponsorApplies);
//OTHER
judgeSponsor(sponsorApplies.getSponsorId(), sponsorApplies.getUid(), sponsorAppliesVo, vo);
}
rowSponsor.close();
preparedStatementSponsor.close();
}
row.close();
preparedStatement.close();
} catch (Exception e) {
e.printStackTrace();
}
} }
//相关权限迁移-验票 // 添加 订单id列表
public void checkTicket() { public void addOrderList(String uid, String orderId) {
try { String redisKey = GoblinRedisConst.REDIS_GOBLIN_ORDER_LIST.concat(uid);
String sql = "select kcup.performance_id,kcu.mobile,kpr.merchant_id\n" + List<String> list = getOrderList(uid);
"from kylin_check_user_performances kcup\n" + if (list.size() >= 40) {
" inner join kylin_check_user kcu on kcu.check_user_id = kcup.check_user_id\n" + list.remove(0);
" inner join kylin_performance_relations kpr on kpr.performance_id = kcup.performance_id\n" + list.add(orderId);
"order by kcup.performance_id"; } else {
Connection connection = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PWD); list.add(orderId);
//查询数据
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSetImpl row = (ResultSetImpl) preparedStatement.executeQuery();
while (row.next()) {
String mobile = row.getString("mobile");
String merchantId = row.getString("merchant_id");
String performanceId = row.getString("performance_id");
if (mobile == null) {
continue;
} else {
if (mobile.equals("15810312145")) {
mobile = "15810579150";
}
}
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("mobile", mobile);
MultiValueMap<String, String> headers = CollectionUtil.linkedMultiValueMapStringString();
headers.add("Accept", "application/json;charset=UTF-8");
String returnData = HttpUtil.post(adamUrl.concat("/adam/rsc/reg/mobile"), params, headers);
AdamUserInfoVo adamUserInfoVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<AdamUserInfoVo>>() {
}).getData();
initPermission("check", merchantId, performanceId, null, adamUserInfoVo.getNickname(), adamUserInfoVo.getUid(), adamUserInfoVo.getMobile());
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void judgeSponsor(String sponsorId, String uid, SlimeSponsorAppliesVo appliesVo, SlimeSponsorsVo vo) {
//MerchantSponsorAppliesVo MONGO
mongoTemplate.remove(Query.query(Criteria.where("sponsorId").is(appliesVo.getSponsorId())), SlimeSponsorAppliesVo.class, SlimeSponsorAppliesVo.class.getSimpleName());
mongoTemplate.insert(appliesVo, SlimeSponsorAppliesVo.class.getSimpleName());
// MerchantSponsorsVo MONGO
Query query = Query.query(Criteria.where("sponsorId").is(sponsorId));
Document document = (Document) mongoConverter.convertToMongoType(vo);
Update update = Update.fromDocument(document);
mongoTemplate.upsert(query, update, SlimeSponsorsVo.class, SlimeSponsorsVo.class.getSimpleName());
//MerchantSponsorAppliesVo REDIS
List<SlimeSponsorAppliesVo> vos = new ArrayList();
vos.add(appliesVo);
redisDataSourceUtil.getRedisKylinUtil().set(SlimeRedisConst.INFO_SPONSOR_APPLIES.concat(uid), vos);
// MerchantSponsorsVo REDIS
redisDataSourceUtil.getRedisKylinUtil().set(SlimeRedisConst.INFO_SPONSOR.concat(vo.getSponsorId()), vo);
}
private void judgeFields(String fieldId, String uid, SlimeFieldAppliesVo appliesVo, SlimeFieldsVo vo) {
if (appliesVo != null) {
//MerchantFieldAppliesVo MONGO
mongoTemplate.remove(Query.query(Criteria.where("fieldId").is(appliesVo.getFieldId())), SlimeFieldAppliesVo.class, SlimeFieldAppliesVo.class.getSimpleName());
mongoTemplate.insert(appliesVo, SlimeFieldAppliesVo.class.getSimpleName());
//MerchantFieldAppliesVo REDIS
Object obj = redisDataSourceUtil.getRedisKylinUtil().get(SlimeRedisConst.INFO_FIELD_APPLIES.concat(uid));
List<SlimeFieldAppliesVo> vos;
if (obj == null) {
vos = new ArrayList<>();
} else {
vos = (List<SlimeFieldAppliesVo>) obj;
}
vos.add(appliesVo);
redisDataSourceUtil.getRedisKylinUtil().set(SlimeRedisConst.INFO_FIELD_APPLIES.concat(uid), vos);
}
// MerchantFieldsVo MONGO
Query query = Query.query(Criteria.where("fieldId").is(fieldId));
Document document = (Document) mongoConverter.convertToMongoType(vo);
Update update = Update.fromDocument(document);
mongoTemplate.remove(Query.query(Criteria.where("fieldId").is(fieldId)), SlimeFieldsVo.class, SlimeFieldsVo.class.getSimpleName());
mongoTemplate.upsert(query, update, SlimeFieldsVo.class, SlimeFieldsVo.class.getSimpleName());
// MerchantFieldsVo REDIS
redisDataSourceUtil.getRedisKylinUtil().set(SlimeRedisConst.INFO_FIELD.concat(fieldId), vo);
}
private void initPermission(String type, String cuid, String performanceId, String fieldOwnId, String checkName, String checkId, String checkMobile) {
LocalDateTime now = LocalDateTime.now();
SlimeAuthorizationRecords records = new SlimeAuthorizationRecords();
switch (type) {
case "sponsor":
records.setAuthorizationRecordId(IDGenerator.nextSnowId());
records.setPerformanceId(performanceId);
records.setUidRole(SlimeAuthorizationConst.PerformanceRole.CREATOR.getRole());
records.setUid(cuid);
records.setMobile("");
records.setName("");
records.setCuid("");
records.setCuidRole("");
records.setCreatedAt(now);
break;
case "field":
records.setAuthorizationRecordId(IDGenerator.nextSnowId());
records.setPerformanceId(performanceId);
records.setUidRole(SlimeAuthorizationConst.PerformanceRole.FIELDER.getRole());
records.setUid(fieldOwnId);
records.setMobile("");
records.setName("");
records.setCuid("");
records.setCuidRole("");
records.setCreatedAt(now);
break;
case "check":
records.setAuthorizationRecordId(IDGenerator.nextSnowId());
records.setPerformanceId(performanceId);
records.setUidRole(SlimeAuthorizationConst.PerformanceRole.CHECKER.getRole());
records.setUid(checkId);
records.setMobile(checkMobile);
records.setName(checkName);
records.setCuid(cuid);
records.setCuidRole(SlimeAuthorizationConst.PerformanceRole.CREATOR.getRole());
records.setCreatedAt(now);
break;
}
List<SlimeAuthorizationPermissionParam> checkPermissionParam = new ArrayList();
SlimeAuthorizationPermissionParam paramCheck = SlimeAuthorizationPermissionParam.getNew();
paramCheck.setPermissionId(SlimeAuthorizationConst.PerformancePermission.CHECK.getId());
SlimeAuthorizationPermissionParam paramSales = SlimeAuthorizationPermissionParam.getNew();
paramSales.setPermissionId(SlimeAuthorizationConst.PerformancePermission.SALES.getId());
SlimeAuthorizationPermissionParam paramGrant = SlimeAuthorizationPermissionParam.getNew();
paramGrant.setPermissionId(SlimeAuthorizationConst.PerformancePermission.GRANT.getId());
SlimeAuthorizationPermissionParam paramRead = SlimeAuthorizationPermissionParam.getNew();
paramRead.setPermissionId(SlimeAuthorizationConst.PerformancePermission.READ.getId());
SlimeAuthorizationPermissionParam paramEdit = SlimeAuthorizationPermissionParam.getNew();
paramEdit.setPermissionId(SlimeAuthorizationConst.PerformancePermission.EDIT.getId());
SlimeAuthorizationPermissionParam paramLine = SlimeAuthorizationPermissionParam.getNew();
paramLine.setPermissionId(SlimeAuthorizationConst.PerformancePermission.LINE.getId());
SlimeAuthorizationPermissionParam paramAudit = SlimeAuthorizationPermissionParam.getNew();
paramAudit.setPermissionId(SlimeAuthorizationConst.PerformancePermission.AUDIT.getId());
switch (type) {
case "sponsor":
checkPermissionParam.add(paramCheck);
checkPermissionParam.add(paramGrant);
checkPermissionParam.add(paramRead);
checkPermissionParam.add(paramEdit);
checkPermissionParam.add(paramLine);
// checkPermissionParam.add(paramAudit);
checkPermissionParam.add(paramSales);
break;
case "field":
checkPermissionParam.add(paramCheck);
checkPermissionParam.add(paramGrant);
checkPermissionParam.add(paramRead);
break;
case "check":
checkPermissionParam.add(paramCheck);
checkPermissionParam.add(paramSales);
break;
}
List<SlimeAuthorizationPermissions> authorizationPermissionsArrayList = new ArrayList<>();
List<SlimeAuthorizationPermissionsVo> sponsorAuthorizationPermissionsVos = new ArrayList<>();
for (SlimeAuthorizationPermissionParam item : checkPermissionParam) {
SlimeAuthorizationPermissions sponsorAuthorizationPermissions = new SlimeAuthorizationPermissions();
sponsorAuthorizationPermissions.setAuthorizationPermissionId(IDGenerator.nextSnowId());
sponsorAuthorizationPermissions.setAuthorizationRecordId(records.getAuthorizationRecordId());
sponsorAuthorizationPermissions.setPermissionId(item.getPermissionId());
sponsorAuthorizationPermissions.setStartTime(now);
sponsorAuthorizationPermissions.setEndTime(now.plusYears(10));
sponsorAuthorizationPermissions.setCreatedAt(now);
authorizationPermissionsArrayList.add(sponsorAuthorizationPermissions);
SlimeAuthorizationPermissionsVo sponsorAuthorizationPermissionsVo = SlimeAuthorizationPermissionsVo.getNew();
sponsorAuthorizationPermissionsVo.copy(sponsorAuthorizationPermissions);
sponsorAuthorizationPermissionsVos.add(sponsorAuthorizationPermissionsVo);
}
// 授权记录 vo
SlimeAuthorizationRecordsVo authorizationRecordsVo = SlimeAuthorizationRecordsVo.getNew();
authorizationRecordsVo.copy(records);
authorizationRecordsVo.setPermissionsVos(sponsorAuthorizationPermissionsVos);
// mysql
dmtAuthorizationRecordsService.save(records);
dmtAuthorizationPermissionService.saveBatch(authorizationPermissionsArrayList);
// mongo
mongoTemplate.insert(authorizationRecordsVo, SlimeAuthorizationRecordsVo.class.getSimpleName());
// updated uid
getAndSyncAuthorizationPerformanceVo(performanceId, authorizationRecordsVo.getUid());
}
private SlimeAuthorizationPerformanceVo getAndSyncAuthorizationPerformanceVo(String performanceId, String uid) {
// 聚合角色及权限
Query recordsQuery = Query.query(Criteria.where("performanceId").is(performanceId).and("uid").is(uid).and("deletedAt").is(null));
List<SlimeAuthorizationRecordsVo> authorizationRecordsVos = mongoTemplate.find(recordsQuery, SlimeAuthorizationRecordsVo.class, SlimeAuthorizationRecordsVo.class.getSimpleName());
List<String> uidRoles = new ArrayList<>();
List<String> permissionIds = new ArrayList<>();
for (SlimeAuthorizationRecordsVo authorizationRecordsVo : authorizationRecordsVos) {
if (!uidRoles.contains(authorizationRecordsVo.getUidRole())) {
uidRoles.add(authorizationRecordsVo.getUidRole());
}
for (SlimeAuthorizationPermissionsVo authorizationPermissionsVo : authorizationRecordsVo.getPermissionsVos()) {
if (!permissionIds.contains(authorizationPermissionsVo.getPermissionId())) {
permissionIds.add(authorizationPermissionsVo.getPermissionId());
}
}
}
SlimeAuthorizationPerformanceVo vo = SlimeAuthorizationPerformanceVo.getNew();
vo.setUid(uid);
vo.setPerformanceId(performanceId);
vo.setUidRoles(uidRoles);
vo.setPermissionIds(permissionIds);
Query query = Query.query(Criteria.where("performanceId").is(performanceId).and("uid").is(uid));
Document document = (Document) mongoConverter.convertToMongoType(vo);
Update update = Update.fromDocument(document);
mongoTemplate.upsert(query, update, SlimeAuthorizationPerformanceVo.class, SlimeAuthorizationPerformanceVo.class.getSimpleName());
return vo;
}
public boolean refreshScore() {
//获取需要跑积分的用户
List<StoneScoreLogs> logsList = stoneScoreLogsMapper.selectList(Wrappers.lambdaQuery(StoneScoreLogs.class)
.eq(StoneScoreLogs::getContent, "历史积分").eq(StoneScoreLogs::getUid,"544327").orderByDesc(StoneScoreLogs::getUid));
for (StoneScoreLogs logs : logsList) {
int restScore = getUserScoreRest(logs.getUid());
if(logs.getScore().compareTo(new BigDecimal(restScore))>0){
feignStoneIntegralClient.de2111(logs.getUid(), new BigDecimal(logs.getScore() + "").intValue(), "积分到期");
}
} }
return true; redisDataSourceUtil.getRedisKylinUtil().set(redisKey, list);
} }
public Integer getUserScoreRest(String uid) { // 获取 订单id列表
String redisKey = StoneConstant.USER.concat(uid).concat(StoneConstant.SURPLUS_SCORE); public List<String> getOrderList(String uid) {
Object obj = redisDataSourceUtil.getRedisStoneUtil().get(redisKey); String redisKey = GoblinRedisConst.REDIS_GOBLIN_ORDER_LIST.concat(uid);
Object obj = redisDataSourceUtil.getRedisKylinUtil().get(redisKey);
if (obj == null) { if (obj == null) {
return 0; return CollectionUtil.arrayListString();
} else { } else {
return (Integer) obj; return (List<String>) obj;
} }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment