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

Commit c0df20d6 authored by 胡佳晨's avatar 胡佳晨

数据迁移提交

parent 95b2dec9
...@@ -11,7 +11,7 @@ import java.time.LocalDateTime; ...@@ -11,7 +11,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "MerchantSponsorsVo", description = "主办") @ApiModel(value = "MerchantSponsorsVo", description = "主办")
@Data @Data
public class MerchantSponsorsVo implements java.io.Serializable{ public class MerchantSponsorsVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -5422950992644764083L; private static final long serialVersionUID = -5422950992644764083L;
@ApiModelProperty(position = 11, value = "主办ID") @ApiModelProperty(position = 11, value = "主办ID")
......
...@@ -10,7 +10,7 @@ import java.time.LocalDateTime; ...@@ -10,7 +10,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "MerchantStationsVo", description = "小站") @ApiModel(value = "MerchantStationsVo", description = "小站")
@Data @Data
public class MerchantStationsVo { public class MerchantStationsVo implements Cloneable {
@ApiModelProperty(position = 10, value = "类型 fieldApply-场地申请、field-场地、sponsorApply主办申请、sponsor-主办") @ApiModelProperty(position = 10, value = "类型 fieldApply-场地申请、field-场地、sponsorApply主办申请、sponsor-主办")
private String stationType; private String stationType;
......
...@@ -34,6 +34,13 @@ public class DataController { ...@@ -34,6 +34,13 @@ public class DataController {
return ResponseDto.success(); return ResponseDto.success();
} }
@PostMapping("sponsor")
@ApiOperation("主办方相关迁移")
public ResponseDto<Boolean> sponsor() {
data.sponsor();
return ResponseDto.success();
}
// @PostMapping("initScore") // @PostMapping("initScore")
// @ApiOperation("积分数据迁移") // @ApiOperation("积分数据迁移")
// public ResponseDto<Boolean> initScore(@RequestParam("page") int page, @RequestParam("size") int size) { // public ResponseDto<Boolean> initScore(@RequestParam("page") int page, @RequestParam("size") int size) {
......
package com.liquidnet.service.platform.service.impl.kylin; package com.liquidnet.service.platform.service.impl.kylin;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil; import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo; import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamUser;
import com.liquidnet.service.adam.mapper.AdamUserMapper; import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient;
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.KylinExpressModule;
import com.liquidnet.service.kylin.entity.KylinPerformanceRelations; import com.liquidnet.service.kylin.entity.KylinPerformanceRelations;
import com.liquidnet.service.kylin.mapper.*; import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.merchant.constant.MerchantRedisConst; import com.liquidnet.service.merchant.constant.MerchantRedisConst;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldAppliesVo;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo; import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo;
import com.liquidnet.service.merchant.entity.MerchantFieldApplies;
import com.liquidnet.service.merchant.entity.MerchantFields; import com.liquidnet.service.merchant.entity.MerchantFields;
import com.liquidnet.service.merchant.entity.MerchantSponsorApplies;
import com.liquidnet.service.merchant.entity.MerchantSponsors;
import com.liquidnet.service.merchant.mapper.MerchantFieldAppliesMapper;
import com.liquidnet.service.merchant.mapper.MerchantFieldsMapper; import com.liquidnet.service.merchant.mapper.MerchantFieldsMapper;
import com.liquidnet.service.merchant.mapper.MerchantSponsorAppliesMapper;
import com.liquidnet.service.merchant.mapper.MerchantSponsorsMapper;
import com.liquidnet.service.platform.utils.ObjectUtil; import com.liquidnet.service.platform.utils.ObjectUtil;
import com.liquidnet.service.stone.constant.StoneConstant;
import com.liquidnet.service.stone.entity.StoneScoreLogs;
import com.liquidnet.service.stone.entity.StoneScoreUser;
import com.liquidnet.service.stone.mapper.StoneScoreLogsMapper;
import com.liquidnet.service.stone.mapper.StoneScoreUserMapper;
import com.liquidnet.service.stone.vo.StoneUserVo;
import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.entity.SweetArtists;
import com.liquidnet.service.sweet.vo.SweetAppletUsersVo;
import com.liquidnet.service.sweet.vo.SweetWechatUsersVo;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.mysql.cj.jdbc.result.ResultSetImpl; import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.bson.Document; import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
...@@ -50,13 +39,11 @@ import org.springframework.data.mongodb.core.query.Update; ...@@ -50,13 +39,11 @@ import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
import java.math.BigDecimal;
import java.sql.Connection; import java.sql.Connection;
import java.sql.DriverManager; import java.sql.DriverManager;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -73,309 +60,24 @@ public class DataImpl { ...@@ -73,309 +60,24 @@ public class DataImpl {
private MongoConverter mongoConverter; private MongoConverter mongoConverter;
@Autowired @Autowired
private RedisDataSourceUtil redisDataSourceUtil; private RedisDataSourceUtil redisDataSourceUtil;
private static final List<String> defaultBackgroundList = Arrays.asList("https://img.zhengzai.tv/other/2021/07/27/150eeb0e20af4fc88e8a1ec57c46c362.png", "https://img.zhengzai.tv/files/2021/01/13/5ffeab3584b7d.png", "http://pic.zhengzai.tv/default/background.png", "http://img.zhengzai.tv/album/20171027/1509106243302.png");
@Autowired @Autowired
AdamUserMapper userMapper; AdamUserMapper userMapper;
@Autowired @Autowired
KylinOrderTicketsMapper orderTicketsMapper; MerchantFieldsMapper merchantFieldsMapper;
@Autowired @Autowired
StoneScoreUserMapper stoneScoreUserMapper; MerchantFieldAppliesMapper merchantFieldAppliesMapper;
@Autowired @Autowired
StoneScoreLogsMapper stoneScoreLogsMapper; MerchantSponsorsMapper merchantSponsorsMapper;
@Autowired @Autowired
FeignStoneIntegralClient stoneIntegralClient; MerchantSponsorAppliesMapper merchantSponsorAppliesMapper;
@Autowired
MerchantFieldsMapper merchantFieldsMapper;
@Autowired @Autowired
KylinPerformanceRelationsMapper kylinPerformanceRelationsMapper; KylinPerformanceRelationsMapper kylinPerformanceRelationsMapper;
public boolean initScore(int page, int size) {
try {
long adamUserListCount = userMapper.selectCount(Wrappers.lambdaQuery(AdamUser.class).eq(AdamUser::getState, 1)
.lt(AdamUser::getMid, 2753314)
.select(AdamUser::getUid).orderByAsc(AdamUser::getMid));
int number = page;
int fount = 5000;
while (adamUserListCount > 0) {
//查询全部用户
List<AdamUser> adamUserList = userMapper.selectList(Wrappers.lambdaQuery(AdamUser.class).eq(AdamUser::getState, 1)
.lt(AdamUser::getMid, 2753314)
.select(AdamUser::getUid).orderByAsc(AdamUser::getMid).last("limit " + ((number - 1) * fount) + "," + ((number) * fount)));
for (AdamUser item : adamUserList) {
//获取用户相关信息
String uid = item.getUid();
AdamUserInfoVo userInfoVo = (AdamUserInfoVo) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.INFO_USER.concat(uid));
if (userInfoVo == null) {
continue;
}
String mobile = userInfoVo.getMobile();
if (mobile == null) {
continue;
}
int score = 0;
//生成用户积分日志
int isLog = stoneScoreLogsMapper.selectCount(Wrappers.lambdaQuery(StoneScoreLogs.class).eq(StoneScoreLogs::getUid, uid).eq(StoneScoreLogs::getContent, "历史积分"));
if (isLog > 0) {
continue;
// MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
// params.add("uid", uid);
// params.add("score", (score >= 12000 ? 12000 : score) + "");
// params.add("content", "历史积分");
// HttpUtil.post(stoneUrl + "/user/logs/in2111", params);
}
//创建 用户积分数据
int isExists = stoneScoreUserMapper.selectCount(Wrappers.lambdaQuery(StoneScoreUser.class).eq(StoneScoreUser::getUid, uid));
if (isExists <= 0) {
StoneScoreUser data = StoneScoreUser.getNew();
data.setStatus(1);
data.setScoreId(IDGenerator.nextTimeId2());
data.setUid(uid);
data.setCreatedAt(LocalDateTime.now());
stoneScoreUserMapper.insert(data);
StoneUserVo userTaskVo = StoneUserVo.getNew();
userTaskVo.getTask();
userTaskVo.setUid(uid);
userTaskVo.setStatus(1);
userCreate(userTaskVo);
}
//获取演出每日任务积分
Integer performancePrice = orderTicketsMapper.getOrderScore(uid);
score += (performancePrice.intValue());
//获取商品每日任务积分
try {
String resultData = HttpUtil.get("http://mall.zhengzai.tv/admin/sumUserCost?user_id=" + uid, null);
int goodsPrice = (int) JSONObject.parseObject(resultData).get("cost");
score += (goodsPrice);
} catch (Exception e) {
}
//获取 关注摩登天空服务号
if (getUnionIdByPhone(mobile) != null) {
stoneIntegralClient.doTask(4, uid);
// MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
// params.add("uid", uid);
// params.add("taskId", 4 + "");
// HttpUtil.post(stoneUrl + "/user/inner/doTask", params);
}
//获取用户相关信息
if (null != userInfoVo.getSex()) {
//获取 完善个人信息
stoneIntegralClient.doTask(5, uid);
// MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
// params.add("uid", uid);
// params.add("taskId", 5 + "");
// HttpUtil.post(stoneUrl + "/user/inner/doTask", params);
}
if (StringUtils.isNotBlank(userInfoVo.getBackground()) && !defaultBackgroundList.contains(userInfoVo.getBackground())) {
//获取 完善个人照片
stoneIntegralClient.doTask(6, uid);
// MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
// params.add("uid", uid);
// params.add("taskId", 6 + "");
// HttpUtil.post(stoneUrl + "/user/inner/doTask", params);
}
// if (userInfoVo.getIsComplete() == 11) {
// //获取 首次体验在场
// MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
// params.add("uid", uid);
// params.add("taskId", 8 + "");
// HttpUtil.post(stoneUrl + "/user/inner/doTask", params);
// }
stoneIntegralClient.in2111(uid, score, "历史积分");
log.error("[ TASK INIT UID ] uid = " + uid);
}
log.error("[ TASK INIT NUMBER ] number = " + number);
adamUserListCount -= fount;
number += 1;
}
log.error("[ TASK INIT SCORE ] FINISH ");
} catch (Exception e) {
log.info("异常 : {} ", e);
e.printStackTrace();
return false;
}
return true;
}
public boolean initScore(String uid) {
try {
//获取用户相关信息
AdamUserInfoVo userInfoVo = (AdamUserInfoVo) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.INFO_USER.concat(uid));
String mobile = userInfoVo.getMobile();
int score = 0;
//生成用户积分日志
int isLog = stoneScoreLogsMapper.selectCount(Wrappers.lambdaQuery(StoneScoreLogs.class).eq(StoneScoreLogs::getUid, uid).eq(StoneScoreLogs::getContent, "历史积分"));
if (isLog > 0) {
return true;
// MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
// params.add("uid", uid);
// params.add("score", (score >= 12000 ? 12000 : score) + "");
// params.add("content", "历史积分");
// HttpUtil.post(stoneUrl + "/user/logs/in2111", params);
}
//创建 用户积分数据
int isExists = stoneScoreUserMapper.selectCount(Wrappers.lambdaQuery(StoneScoreUser.class).eq(StoneScoreUser::getUid, uid));
if (isExists <= 0) {
StoneScoreUser data = StoneScoreUser.getNew();
data.setStatus(1);
data.setScoreId(IDGenerator.nextTimeId2());
data.setUid(uid);
data.setCreatedAt(LocalDateTime.now());
stoneScoreUserMapper.insert(data);
StoneUserVo userTaskVo = StoneUserVo.getNew();
userTaskVo.getTask();
userTaskVo.setUid(uid);
userTaskVo.setStatus(1);
userCreate(userTaskVo);
}
//获取演出每日任务积分
Integer performancePrice = orderTicketsMapper.getOrderScore(uid);
score += (performancePrice.intValue());
//获取商品每日任务积分
try {
String resultData = HttpUtil.get("http://mall.zhengzai.tv/admin/sumUserCost?user_id=" + uid, null);
int goodsPrice = (int) JSONObject.parseObject(resultData).get("cost");
score += (goodsPrice);
} catch (Exception e) {
}
//获取 关注摩登天空服务号
if (getUnionIdByPhone(mobile) != null) {
stoneIntegralClient.doTask(4, uid);
// MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
// params.add("uid", uid);
// params.add("taskId", 4 + "");
// HttpUtil.post(stoneUrl + "/user/inner/doTask", params);
}
//获取用户相关信息
if (null != userInfoVo.getSex()) {
//获取 完善个人信息
stoneIntegralClient.doTask(5, uid);
// MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
// params.add("uid", uid);
// params.add("taskId", 5 + "");
// HttpUtil.post(stoneUrl + "/user/inner/doTask", params);
}
if (StringUtils.isNotBlank(userInfoVo.getBackground()) && !defaultBackgroundList.contains(userInfoVo.getBackground())) {
//获取 完善个人照片
stoneIntegralClient.doTask(6, uid);
// MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
// params.add("uid", uid);
// params.add("taskId", 6 + "");
// HttpUtil.post(stoneUrl + "/user/inner/doTask", params);
}
// if (userInfoVo.getIsComplete() == 11) {
// //获取 首次体验在场
// MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
// params.add("uid", uid);
// params.add("taskId", 8 + "");
// HttpUtil.post(stoneUrl + "/user/inner/doTask", params);
// }
stoneIntegralClient.in2111(uid, score, "历史积分");
log.error("[ TASK INIT UID ] uid = " + uid);
log.error("[ TASK INIT SCORE ] FINISH ");
} catch (Exception e) {
log.info("异常 : {} ", e);
e.printStackTrace();
return false;
}
return true;
}
public boolean initLogs(String uid) {
List<StoneScoreLogs> list = stoneScoreLogsMapper.selectList(Wrappers.lambdaQuery(StoneScoreLogs.class).eq(StoneScoreLogs::getUid, uid));
mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), StoneScoreLogs.class, StoneScoreLogs.class.getSimpleName());
String redisKey = StoneConstant.LOGS_LIST.concat(uid);
redisDataSourceUtil.getRedisStoneUtil().del(redisKey);
int scoreAll = 0;
int scoreUse = 0;
for (StoneScoreLogs item : list) {
//初始化 mongo
StoneScoreLogs logs = StoneScoreLogs.getNew();
logs.setLogsId(item.getLogsId());
logs.setContent(item.getContent());
logs.setReason(item.getReason());
logs.setUid(uid);
logs.setScore(item.getScore());
logs.setCreatedAt(item.getCreatedAt());
if (item.getScore().intValue() < 0) {
scoreUse += item.getScore().negate().intValue();
} else {
scoreAll += item.getScore().intValue();
}
logCreate(logs);
}
//初始化 redis
List<StoneScoreLogs> getLogsList = (List<StoneScoreLogs>) logList(uid, 1, 40).get("data");
redisDataSourceUtil.getRedisStoneUtil().set(redisKey, getLogsList);
String restKey = StoneConstant.USER.concat(uid).concat(StoneConstant.SURPLUS_SCORE);
String useKey = StoneConstant.USER.concat(uid).concat(StoneConstant.USE_SCORE);
redisDataSourceUtil.getRedisStoneUtil().set(useKey, scoreUse);
redisDataSourceUtil.getRedisStoneUtil().set(restKey, scoreAll - scoreUse);
return true;
}
/**
* 创建 用户积分
*
* @param data
* @return
*/
private Object userCreate(StoneUserVo data) {
return mongoTemplate.insert(data, StoneUserVo.class.getSimpleName());
}
private String getUnionIdByPhone(String phone) {
log.info("mobile = " + phone);
String redisKey = SweetConstant.REDIS_KEY_SWEET_APPLET_USERS_PHONE.concat(phone);
Object obj = redisDataSourceUtil.getRedisSweetUtil().get(redisKey);
if (null == obj) {
return null;
}
SweetAppletUsersVo sweetAppletUsers = (SweetAppletUsersVo) obj;
String redisKey2 = SweetConstant.REDIS_KEY_SWEET_WECHAT_USERS_UNIONID.concat(sweetAppletUsers.getUnionId())
.concat(SweetConstant.REDIS_KEY_SWEET_WECHAT_USERS_TYPE).concat(String.valueOf(2));
Object obj2 = redisDataSourceUtil.getRedisSweetUtil().get(redisKey2);
if (null == obj2) {
return null;
} else {
return "true";
}
}
public Object logCreate(StoneScoreLogs data) {
return mongoTemplate.insert(data, StoneScoreLogs.class.getSimpleName());
}
public HashMap<String, Object> logList(String uid, int page, int size) {
LocalDateTime now = LocalDateTime.now();
HashMap<String, Object> info = CollectionUtil.mapStringObject();
// 排序 分页
Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "createdAt"));
//条件
Query query = Query.query(Criteria.where("uid").is(uid));
// 查询总数
long count = mongoTemplate.count(query, StoneScoreLogs.class, StoneScoreLogs.class.getSimpleName());
query.with(pageable);
List<StoneScoreLogs> voList = mongoTemplate.find(query, StoneScoreLogs.class, StoneScoreLogs.class.getSimpleName());
info.put("total", count);
info.put("data", voList);
return info;
}
private static final String SQL_URL = "jdbc:mysql://39.107.71.112:3308/dev_ln_scene"; private static final String SQL_URL = "jdbc:mysql://39.107.71.112:3308/dev_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";
//迁移场地和场地认领关系 //迁移场地和场地认领关系
public void fieldData() { public void fieldData() {
...@@ -403,11 +105,21 @@ public class DataImpl { ...@@ -403,11 +105,21 @@ public class DataImpl {
" '' AS 'company_id',\n" + " '' AS 'company_id',\n" +
" IF(ISNULL(mf.created_at), mf.updated_at, mf.created_at) AS 'created_at',\n" + " IF(ISNULL(mf.created_at), mf.updated_at, mf.created_at) AS 'created_at',\n" +
" mf.updated_at AS 'updated_at',\n" + " mf.updated_at AS 'updated_at',\n" +
" mf.admin_id\n" + " mf.admin_id,\n" +
" mm.name,\n" +
" mm.email,\n" +
" mmd.enterprise_name,\n" +
" 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" +
"from kylin_performances as kp\n" + "from kylin_performances as kp\n" +
" inner join kylin_performance_relations as kpr on kpr.performance_id = kp.performances_id\n" + " inner join kylin_performance_relations as kpr on kpr.performance_id = kp.performances_id\n" +
" inner join testmall.fields as mf on mf.id = kpr.field_id\n" + " inner join " + PHP_DB + ".fields as mf on mf.id = kpr.field_id\n" +
" left join testmall.merchants as mm on mm.id = mf.admin_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"; "group by field_id";
Connection connection = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PWD); Connection connection = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PWD);
//查询数据 //查询数据
...@@ -458,12 +170,47 @@ public class DataImpl { ...@@ -458,12 +170,47 @@ public class DataImpl {
fields.setUpdatedAt(row.getTimestamp("updated_at").toLocalDateTime()); fields.setUpdatedAt(row.getTimestamp("updated_at").toLocalDateTime());
MerchantFieldsVo vo = MerchantFieldsVo.getNew().copy(fields); MerchantFieldsVo vo = MerchantFieldsVo.getNew().copy(fields);
MerchantFieldApplies applies = new MerchantFieldApplies();
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());
MerchantFieldAppliesVo appliesVo = MerchantFieldAppliesVo.getNew().copy(applies);
//MYSQL //MYSQL
merchantFieldsMapper.insert(fields); merchantFieldsMapper.insert(fields);
//MONGO merchantFieldAppliesMapper.insert(applies);
setFieldsVoByFieldId(fields.getFieldId(), vo); //OTHER
//REDIS judgeFields(fields.getFieldId(), fields.getUid(), appliesVo, vo);
setRdsFieldsVoByFieldId(fields.getFieldId(), vo);
} }
row.close(); row.close();
preparedStatement.close(); preparedStatement.close();
...@@ -478,7 +225,7 @@ public class DataImpl { ...@@ -478,7 +225,7 @@ public class DataImpl {
String sql = "select merchant_id, mm.mobile\n" + String sql = "select merchant_id, mm.mobile\n" +
"from kylin_performances kp\n" + "from kylin_performances kp\n" +
" inner join kylin_performance_relations kpr on kpr.performance_id = kp.performances_id\n" + " inner join kylin_performance_relations kpr on kpr.performance_id = kp.performances_id\n" +
" left join testmall.merchants mm on mm.id = kpr.merchant_id\n" + " left join " + PHP_DB + ".merchants mm on mm.id = kpr.merchant_id\n" +
"group by mm.mobile"; "group by mm.mobile";
Connection connection = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PWD); Connection connection = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PWD);
//查询数据 //查询数据
...@@ -546,20 +293,70 @@ public class DataImpl { ...@@ -546,20 +293,70 @@ public class DataImpl {
String sponsorType = row.getString("sponsor_type"); String sponsorType = row.getString("sponsor_type");
String sponsorSql = ""; String sponsorSql = "";
if (sponsorType.equals("brand")) { if (sponsorType.equals("brand")) {
sponsorSql="select b.name, m.id, m.mobile from mall.brands b inner join mall.merchants m on m.id = b.admin_id where b.id = "+sponsorId; 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")) { } else if (sponsorType.equals("field")) {
sponsorSql=" select mu.name, m.id, m.mobile from mall.musicians mu inner join mall.merchants m on m.id = mu.admin_id where m.id = "+sponsorId; 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")) { } else if (sponsorType.equals("musician")) {
sponsorSql="select f.name, m.id, m.mobile from mall.fields f inner join mall.merchants m on m.id = f.admin_id where f.id = "+sponsorId; 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("")) { if (sponsorSql.equals("")) {
continue; continue;
} }
PreparedStatement preparedStatementSponsor = connection.prepareStatement(sql); PreparedStatement preparedStatementSponsor = connection.prepareStatement(sponsorSql);
ResultSetImpl rowSponsor = (ResultSetImpl) preparedStatementSponsor.executeQuery(); ResultSetImpl rowSponsor = (ResultSetImpl) preparedStatementSponsor.executeQuery();
while (rowSponsor.next()) { while (rowSponsor.next()) {
MerchantSponsors sponsors = new MerchantSponsors();
sponsors.setSponsorId(IDGenerator.nextSnowId());
sponsors.setIsOnline(1);
String contactMobile = rowSponsor.getString("mobile");
//判断场地认领逻辑
if (null != contactMobile && !contactMobile.isEmpty()) {
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());
MerchantSponsorsVo vo = MerchantSponsorsVo.getNew().copy(sponsors);
MerchantSponsorApplies sponsorApplies = new MerchantSponsorApplies();
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());
MerchantSponsorAppliesVo sponsorAppliesVo = MerchantSponsorAppliesVo.getNew().copy(sponsorApplies);
//MYSQL
merchantSponsorsMapper.insert(sponsors);
merchantSponsorAppliesMapper.insert(sponsorApplies);
//OTHER
judgeSponsor(sponsorApplies.getSponsorId(), sponsorApplies.getUid(), sponsorAppliesVo, vo);
} }
rowSponsor.close(); rowSponsor.close();
preparedStatementSponsor.close(); preparedStatementSponsor.close();
} }
...@@ -572,15 +369,38 @@ public class DataImpl { ...@@ -572,15 +369,38 @@ public class DataImpl {
//相关权限迁移 //相关权限迁移
private void setFieldsVoByFieldId(String fieldId, MerchantFieldsVo vo) {
private void judgeSponsor(String sponsorId, String uid, MerchantSponsorAppliesVo appliesVo, MerchantSponsorsVo vo) {
//MerchantSponsorAppliesVo MONGO
mongoTemplate.insert(appliesVo, MerchantSponsorAppliesVo.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, MerchantSponsorsVo.class, MerchantSponsorsVo.class.getSimpleName());
//MerchantSponsorAppliesVo REDIS
List<MerchantSponsorAppliesVo> vos = new ArrayList();
vos.add(appliesVo);
redisDataSourceUtil.getRedisKylinUtil().set(MerchantRedisConst.INFO_SPONSOR_APPLIES.concat(uid), vos);
// MerchantSponsorsVo REDIS
redisDataSourceUtil.getRedisKylinUtil().set(MerchantRedisConst.INFO_SPONSOR.concat(vo.getSponsorId()), vo);
}
private void judgeFields(String fieldId, String uid, MerchantFieldAppliesVo appliesVo, MerchantFieldsVo vo) {
//MerchantFieldAppliesVo MONGO
mongoTemplate.insert(appliesVo, MerchantFieldAppliesVo.class.getSimpleName());
// MerchantFieldsVo MONGO
Query query = Query.query(Criteria.where("fieldId").is(fieldId)); Query query = Query.query(Criteria.where("fieldId").is(fieldId));
Document document = (Document) mongoConverter.convertToMongoType(vo); Document document = (Document) mongoConverter.convertToMongoType(vo);
Update update = Update.fromDocument(document); Update update = Update.fromDocument(document);
mongoTemplate.upsert(query, update, MerchantFieldsVo.class, MerchantFieldsVo.class.getSimpleName()); mongoTemplate.upsert(query, update, MerchantFieldsVo.class, MerchantFieldsVo.class.getSimpleName());
}
// 【场地】更新详情 //MerchantFieldAppliesVo MONGO
private void setRdsFieldsVoByFieldId(String fieldId, MerchantFieldsVo vo) { List<MerchantFieldAppliesVo> vos = new ArrayList();
vos.add(appliesVo);
redisDataSourceUtil.getRedisKylinUtil().set(MerchantRedisConst.INFO_FIELD_APPLIES.concat(uid), vos);
// MerchantFieldsVo REDIS
redisDataSourceUtil.getRedisKylinUtil().set(MerchantRedisConst.INFO_FIELD.concat(fieldId), vo); redisDataSourceUtil.getRedisKylinUtil().set(MerchantRedisConst.INFO_FIELD.concat(fieldId), vo);
} }
} }
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