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

Commit 676161a4 authored by Administrator's avatar Administrator 🎨

Merge branch 'pre' into 'master'

Pre

See merge request !187
parents ec825c0f c8bf5823
...@@ -91,6 +91,13 @@ public class GoblinBackOrderVo implements Serializable, Cloneable { ...@@ -91,6 +91,13 @@ public class GoblinBackOrderVo implements Serializable, Cloneable {
this.expireAt = LocalDateTime.parse(createdAt, DTF_YMD_HMS).plusDays(7).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.expireAt = LocalDateTime.parse(createdAt, DTF_YMD_HMS).plusDays(7).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
} }
public Integer getRefuseSize() {
if(refuseSize==null){
return 0;
}
return refuseSize;
}
public GoblinBackOrderVo copy(GoblinBackOrder source) { public GoblinBackOrderVo copy(GoblinBackOrder source) {
this.setBackOrderId(source.getBackOrderId()); this.setBackOrderId(source.getBackOrderId());
this.setBackCode(source.getBackCode()); this.setBackCode(source.getBackCode());
......
package com.liquidnet.service.consumer.kylin.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerGoblinOrderCloseRdsReceiver;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription;
@Configuration
public class ConsumerGoblinOrderCRedisStreamConfig extends RedisStreamConfig {
@Autowired
ConsumerGoblinOrderCloseRdsReceiver consumerGoblinOrderCloseRdsReceiver;
/**
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveGoblinOrderCOrder(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_ORDER_CLOSE.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_ORDER_CLOSE.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.GOBLIN_ORDER_CLOSE.getKey(), ReadOffset.lastConsumed()), consumerGoblinOrderCloseRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionGoblinOrderC0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveGoblinOrderCOrder(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionGoblinOrderC1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveGoblinOrderCOrder(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionGoblinOrderC2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveGoblinOrderCOrder(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
/* -------------------------------------------------------- | */
}
...@@ -506,7 +506,7 @@ public class GoblinFrontServiceImpl implements GoblinFrontService { ...@@ -506,7 +506,7 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
} }
// //
Query query = new Query(); Query query = new Query();
query.addCriteria(Criteria.where("storeId").is(storeId).and("spuAppear").is("0").and("delFlg").is("0").and("shelvesStatus").is("3")); query.addCriteria(Criteria.where("storeId").is(storeId).and("spuAppear").is("0").and("delFlg").is("0").and("shelvesStatus").is("3").and("marketId").is(null));
if(StringUtil.isNotBlank(categoryId)){ if(StringUtil.isNotBlank(categoryId)){
query.addCriteria(new Criteria().orOperator( query.addCriteria(new Criteria().orOperator(
Criteria.where("storeCateFid").is(categoryId), Criteria.where("storeCateFid").is(categoryId),
......
...@@ -112,6 +112,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService { ...@@ -112,6 +112,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
return ResponseDto.failure(ErrorMapping.get("20003")); return ResponseDto.failure(ErrorMapping.get("20003"));
} }
GoblinAppOrderDetailsVo vo = GoblinAppOrderDetailsVo.getNew(); GoblinAppOrderDetailsVo vo = GoblinAppOrderDetailsVo.getNew();
vo.setStoreOrderVo(orderVo);
List<GoblinOrderSkuVo> skuVos = ObjectUtil.getGoblinOrderSkuVoArrayList(); List<GoblinOrderSkuVo> skuVos = ObjectUtil.getGoblinOrderSkuVoArrayList();
for (String orderSkuId : orderVo.getOrderSkuVoIds()) { for (String orderSkuId : orderVo.getOrderSkuVoIds()) {
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderSkuId); GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderSkuId);
...@@ -131,7 +132,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService { ...@@ -131,7 +132,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
if (orderRefundIds.size() > 0) { if (orderRefundIds.size() > 0) {
GoblinBackOrderVo backOrderVo = redisUtils.getBackOrderVo(orderRefundIds.get(orderRefundIds.size() - 1)); GoblinBackOrderVo backOrderVo = redisUtils.getBackOrderVo(orderRefundIds.get(orderRefundIds.size() - 1));
vo.setRefundStatus(backOrderVo.getStatus()); vo.setRefundStatus(backOrderVo.getStatus());
if (vo.getCanRefund() == 1 && if (vo.getCanRefund() == 1 && backOrderVo.getRefuseSize() < 1 &&
(backOrderVo.getStatus() == 2 || backOrderVo.getStatus() == 3 || backOrderVo.getStatus() == 5) && (backOrderVo.getStatus() == 2 || backOrderVo.getStatus() == 3 || backOrderVo.getStatus() == 5) &&
(vo.getStoreOrderVo().getStatus() == GoblinStatusConst.Status.ORDER_STATUS_2.getValue() || vo.getStoreOrderVo().getStatus() == GoblinStatusConst.Status.ORDER_STATUS_4.getValue())) { (vo.getStoreOrderVo().getStatus() == GoblinStatusConst.Status.ORDER_STATUS_2.getValue() || vo.getStoreOrderVo().getStatus() == GoblinStatusConst.Status.ORDER_STATUS_4.getValue())) {
......
...@@ -82,6 +82,12 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService { ...@@ -82,6 +82,12 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService {
vo.setStatus(item.getStatus()); vo.setStatus(item.getStatus());
vo.setMarketType(item.getMarketType()); vo.setMarketType(item.getMarketType());
vo.setPriceExpress(item.getPriceExpress()); vo.setPriceExpress(item.getPriceExpress());
if (item.getMarketId() == null || item.getMarketId().equals("")) {
vo.setMarketName("");
} else {
GoblinSelfMarketingVo marketingVo = redisUtils.getSelfMarket(item.getMarketId().split("ZZ")[1]);
vo.setMarketName(marketingVo.getName());
}
List<GoblinStoreOrderListSkuVo> orderListSkuVos = ObjectUtil.getGoblinStoreOrderListSkuVoArrayList(); List<GoblinStoreOrderListSkuVo> orderListSkuVos = ObjectUtil.getGoblinStoreOrderListSkuVoArrayList();
for (String skuId : item.getOrderSkuVoIds()) { for (String skuId : item.getOrderSkuVoIds()) {
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(skuId); GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(skuId);
......
...@@ -985,7 +985,7 @@ public class GoblinMongoUtils { ...@@ -985,7 +985,7 @@ public class GoblinMongoUtils {
Query query = Query.query(criteria); Query query = Query.query(criteria);
query.with(Sort.by(Sort.Order.desc("createdAt"))); query.with(Sort.by(Sort.Order.desc("createdAt")));
query.skip(skipCount).limit(size); query.skip(skipCount).limit(size);
query.fields().include("orderCode").include("createdAt").include("payType").include("status").include("orderSkuVoIds").include("orderId").include("priceActual").include("priceExpress") query.fields().include("orderCode").include("createdAt").include("payType").include("status").include("orderSkuVoIds").include("orderId").include("priceActual").include("priceExpress").include("marketId")
.include("orderAttrVo.expressContacts").include("orderAttrVo.expressAddressDetail").include("orderAttrVo.expressAddress").include("orderAttrVo.expressPhone"); .include("orderAttrVo.expressContacts").include("orderAttrVo.expressAddressDetail").include("orderAttrVo.expressAddress").include("orderAttrVo.expressPhone");
List<GoblinStoreOrderVo> dataList = mongoTemplate.find(query, GoblinStoreOrderVo.class, GoblinStoreOrderVo.class.getSimpleName()); List<GoblinStoreOrderVo> dataList = mongoTemplate.find(query, GoblinStoreOrderVo.class, GoblinStoreOrderVo.class.getSimpleName());
//查询总数量 //查询总数量
......
...@@ -508,12 +508,21 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -508,12 +508,21 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
List<GoblinOrderSkuVo> skuVoList = ObjectUtil.getGoblinOrderSkuVoArrayList(); List<GoblinOrderSkuVo> skuVoList = ObjectUtil.getGoblinOrderSkuVoArrayList();
for (GoblinOrderSqlParam item : sqlParams) { for (GoblinOrderSqlParam item : sqlParams) {
List<String> goblinOrderSkuIdList = CollectionUtil.linkedListString(); List<String> goblinOrderSkuIdList = CollectionUtil.linkedListString();
BigDecimal restVoucherPrice = item.getStoreOrder().getPriceVoucher();
for (int i = 0; i < item.getOrderSkuList().size(); i++) { for (int i = 0; i < item.getOrderSkuList().size(); i++) {
GoblinOrderSku orderSku = item.getOrderSkuList().get(i); GoblinOrderSku orderSku = item.getOrderSkuList().get(i);
if (item.getStoreOrder().getPriceVoucher().compareTo(BigDecimal.ZERO) > 0 && i == 0) { if (item.getStoreOrder().getPriceVoucher().compareTo(BigDecimal.ZERO) > 0) {
orderSku.setPriceVoucher(item.getStoreOrder().getPriceVoucher()); restVoucherPrice = restVoucherPrice.subtract(orderSku.getSkuPrice());
BigDecimal skuPriceActual = orderSku.getSkuPrice().subtract(item.getStoreOrder().getPriceVoucher()); if (restVoucherPrice.compareTo(BigDecimal.ZERO) > 0) {
orderSku.setSkuPriceActual(skuPriceActual.compareTo(BigDecimal.ZERO) > 0 ? skuPriceActual : BigDecimal.ZERO); orderSku.setPriceVoucher(orderSku.getSkuPrice());
BigDecimal skuPriceActual = orderSku.getSkuPrice().subtract(orderSku.getSkuPrice());
orderSku.setSkuPriceActual(skuPriceActual.compareTo(BigDecimal.ZERO) > 0 ? skuPriceActual : BigDecimal.ZERO);
} else {
orderSku.setPriceVoucher(restVoucherPrice.add(orderSku.getSkuPrice()));
BigDecimal skuPriceActual = orderSku.getSkuPrice().subtract(orderSku.getPriceVoucher());
orderSku.setSkuPriceActual(skuPriceActual.compareTo(BigDecimal.ZERO) > 0 ? skuPriceActual : BigDecimal.ZERO);
}
} }
sqlDataSku.add(new Object[]{ sqlDataSku.add(new Object[]{
orderSku.getOrderSkuId(), orderSku.getOrderId(), orderSku.getSpuId(), orderSku.getSpuName(), orderSku.getSpuPic(), orderSku.getSkuId(), orderSku.getNum(), orderSku.getSkuPrice(), orderSku.getSkuPriceActual(), orderSku.getSkuName(), orderSku.getOrderSkuId(), orderSku.getOrderId(), orderSku.getSpuId(), orderSku.getSpuName(), orderSku.getSpuPic(), orderSku.getSkuId(), orderSku.getNum(), orderSku.getSkuPrice(), orderSku.getSkuPriceActual(), orderSku.getSkuName(),
...@@ -724,7 +733,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -724,7 +733,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
if (orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_5.getValue() && syncOrderParam.getStatus().equals(1)) { if (orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_5.getValue() && syncOrderParam.getStatus().equals(1)) {
log.error("订单号为 {} 的订单超时支付", syncOrderParam.getOrderCode()); log.error("订单号为 {} 的订单超时支付", syncOrderParam.getOrderCode());
// 商铺退款逻辑 // 商铺退款逻辑
orderUtils.refundOrderSku(orderId,syncOrderParam.getPaymentId(),syncOrderParam.getPaymentType()); orderUtils.refundOrderSku(orderId, syncOrderParam.getPaymentId(), syncOrderParam.getPaymentType());
// orderVo.setStatus(GoblinStatusConst.OrderStatus.ORDER_STATUS_61.getValue()); // orderVo.setStatus(GoblinStatusConst.OrderStatus.ORDER_STATUS_61.getValue());
// redisUtils.setGoblinOrder(orderVo.getOrderId(),orderVo); // redisUtils.setGoblinOrder(orderVo.getOrderId(),orderVo);
} else if ((orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_6.getValue() || orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_7.getValue()) && syncOrderParam.getStatus().equals(1)) { } else if ((orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_6.getValue() || orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_7.getValue()) && syncOrderParam.getStatus().equals(1)) {
...@@ -766,7 +775,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -766,7 +775,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
logVo.setOrderCode(orderVo.getOrderCode()); logVo.setOrderCode(orderVo.getOrderCode());
logVo.setPayCode(orderVo.getPayCode()); logVo.setPayCode(orderVo.getPayCode());
logVo.setStoreId(orderVo.getStoreId()); logVo.setStoreId(orderVo.getStoreId());
if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()) > 0) { if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue()) > 0) {
logVo.setOrderType("zhengzai"); logVo.setOrderType("zhengzai");
} else { } else {
logVo.setOrderType("order"); logVo.setOrderType("order");
...@@ -903,7 +912,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -903,7 +912,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
String orderId = backOrderVo.getOrderId(); String orderId = backOrderVo.getOrderId();
List<GoblinBackOrderSkuVo> backOrderSkuVos = backOrderVo.getBackOrderSkuVos(); List<GoblinBackOrderSkuVo> backOrderSkuVos = backOrderVo.getBackOrderSkuVos();
GoblinStoreOrderVo orderVo = redisUtils.getGoblinOrder(orderId); GoblinStoreOrderVo orderVo = redisUtils.getGoblinOrder(orderId);
orderVo.setPriceRefund(orderVo.getPriceRefund()==null?BigDecimal.ZERO:orderVo.getPriceRefund().add(refundCallbackParam.getRefundPrice())); orderVo.setPriceRefund(orderVo.getPriceRefund() == null ? BigDecimal.ZERO : orderVo.getPriceRefund().add(refundCallbackParam.getRefundPrice()));
if (orderVo.getPriceRefund().compareTo(orderVo.getPriceActual()) >= 0) { if (orderVo.getPriceRefund().compareTo(orderVo.getPriceActual()) >= 0) {
//整单退款 退券 //整单退款 退券
orderVo.setStatus(GoblinStatusConst.Status.ORDER_STATUS_6.getValue()); orderVo.setStatus(GoblinStatusConst.Status.ORDER_STATUS_6.getValue());
...@@ -943,7 +952,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -943,7 +952,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
logVo.setOrderId(orderVo.getOrderId()); logVo.setOrderId(orderVo.getOrderId());
logVo.setOrderCode(orderVo.getOrderCode()); logVo.setOrderCode(orderVo.getOrderCode());
logVo.setPayCode(orderVo.getPayCode()); logVo.setPayCode(orderVo.getPayCode());
if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()) > 0) { if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue()) > 0) {
logVo.setOrderType("zhengzai"); logVo.setOrderType("zhengzai");
} else { } else {
logVo.setOrderType("order"); logVo.setOrderType("order");
...@@ -952,9 +961,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -952,9 +961,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
logVo.setSpuId(orderSkuVo.getSpuId()); logVo.setSpuId(orderSkuVo.getSpuId());
logVo.setSpuName(backOrderSkuVo.getSpuName()); logVo.setSpuName(backOrderSkuVo.getSpuName());
logVo.setSkuId(backOrderSkuVo.getSkuId()); logVo.setSkuId(backOrderSkuVo.getSkuId());
if (orderVo.getStatus().equals(GoblinStatusConst.Status.ORDER_STATUS_6.getValue())) { // if (orderVo.getStatus().equals(GoblinStatusConst.Status.ORDER_STATUS_6.getValue())) {
refundSkuPrice = refundSkuPrice.subtract(orderVo.getPriceExpress()); // refundSkuPrice = refundSkuPrice.add(orderVo.getPriceExpress());
} // }
logVo.setSkuPriceActual(refundSkuPrice.multiply(BigDecimal.valueOf(100)).negate().longValue()); logVo.setSkuPriceActual(refundSkuPrice.multiply(BigDecimal.valueOf(100)).negate().longValue());
logVo.setStatus(GoblinStatusConst.Status.ORDER_LOG_STATUS_22.getValue()); logVo.setStatus(GoblinStatusConst.Status.ORDER_LOG_STATUS_22.getValue());
logVo.setRemark("订单退款"); logVo.setRemark("订单退款");
......
...@@ -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