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

Commit 0315caa1 authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev' into dev

parents 89147c40 a7f0e40c
...@@ -16,5 +16,5 @@ public interface IAdamUserInfoService extends IService<AdamUserInfo> { ...@@ -16,5 +16,5 @@ public interface IAdamUserInfoService extends IService<AdamUserInfo> {
void edit(AdamUserInfoVo userInfoVo); void edit(AdamUserInfoVo userInfoVo);
void editMobile(String uid, String mobile); String editMobile(String uid, String mobile);
} }
package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceOrderStatisticalVo
* @Package com.liquidnet.service.kylin.dto.vo
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/6/19 16:44
*/
@Data
public class PerformanceOrderStatisticalVo {
private String performancesId;
private String ticketsId;
@ApiModelProperty(value = "票种名称")
private String title;
@ApiModelProperty(value = "单价")
private BigDecimal price;
@ApiModelProperty(value = "票种类型")
private Integer type;
@ApiModelProperty(value = "适用时间")
private String useStart;
@ApiModelProperty(value = "总库存")
private BigDecimal totalGeneral = BigDecimal.ZERO;
@ApiModelProperty(value = "销售数量")
private BigDecimal saleGeneral = BigDecimal.ZERO;
@ApiModelProperty(value = "剩余库存")
private BigDecimal surplusGeneral = BigDecimal.ZERO;
@ApiModelProperty(value = "销售额")
private BigDecimal totalSalePrice = BigDecimal.ZERO;
@ApiModelProperty(value = "兑换数量")
private BigDecimal totalExchange = BigDecimal.ZERO;
@ApiModelProperty(value = "退款数量")
private BigDecimal totalRefundGeneral = BigDecimal.ZERO;
@ApiModelProperty(value = "退款金额")
private BigDecimal totalRefundPrice = BigDecimal.ZERO;
@ApiModelProperty(value = "会员销售数量")
private BigDecimal totalMemberNumber = BigDecimal.ZERO;
@ApiModelProperty(value = "正在支付数量")
private BigDecimal totalPayingNumber = BigDecimal.ZERO;
@ApiModelProperty(value = "购买人数")
private BigDecimal totalBuyUsers = BigDecimal.ZERO;
}
...@@ -3,12 +3,12 @@ package com.liquidnet.service.kylin.service.partner; ...@@ -3,12 +3,12 @@ package com.liquidnet.service.kylin.service.partner;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.PerformanceOrderStatisticalDao;
import com.liquidnet.service.kylin.dao.PerformancePartnerListDao; import com.liquidnet.service.kylin.dao.PerformancePartnerListDao;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerListParam; import com.liquidnet.service.kylin.dto.param.PerformancePartnerListParam;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo; import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param; import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param;
import com.liquidnet.service.kylin.dto.param.PerformanceStep2Param; import com.liquidnet.service.kylin.dto.param.PerformanceStep2Param;
import com.liquidnet.service.kylin.dto.vo.PerformanceOrderStatisticalVo;
import com.liquidnet.service.kylin.entity.KylinPerformances; import com.liquidnet.service.kylin.entity.KylinPerformances;
import java.util.List; import java.util.List;
...@@ -129,5 +129,5 @@ public interface IKylinPerformancesPartnerService extends IService<KylinPerforma ...@@ -129,5 +129,5 @@ public interface IKylinPerformancesPartnerService extends IService<KylinPerforma
*/ */
ResponseDto<String> withdraw(String performancesId); ResponseDto<String> withdraw(String performancesId);
List<PerformanceOrderStatisticalDao> getPerformanceOrderStatisticalList(String performancesId); List<PerformanceOrderStatisticalVo> getPerformanceOrderStatisticalList(String performancesId);
} }
...@@ -324,8 +324,7 @@ ...@@ -324,8 +324,7 @@
title title
FROM kylin_performances AS p FROM kylin_performances AS p
LEFT JOIN kylin_performance_relations AS pr ON pr.performance_id = p.performances_id LEFT JOIN kylin_performance_relations AS pr ON pr.performance_id = p.performances_id
WHERE performances_id = ${performancesId}; WHERE performances_id = ${performancesId}
</select> </select>
<!-- Mis根据演出id查询票种信息 --> <!-- Mis根据演出id查询票种信息 -->
<select id="misTicketMemberInfo" resultMap="ticketMemberAuditDaoResult"> <select id="misTicketMemberInfo" resultMap="ticketMemberAuditDaoResult">
......
...@@ -36,10 +36,12 @@ public class AdamRedisConst { ...@@ -36,10 +36,12 @@ public class AdamRedisConst {
public static final String INCR_MEMBER_NO = INCR.concat("member_no"); public static final String INCR_MEMBER_NO = INCR.concat("member_no");
public static final String INFO_MEMBERS = ADAM.concat(":list:members");
public static final String INFO_MEMBERS_INFO = ADAM.concat(":list:members:info:"); /* ----------------------------------------------------------------- */
public static final String INFO_MEMBERS_PRICE_INFO = ADAM.concat(":list:members:price:info:");
public static final String INFO_MEMBERS_CODE_INFO = ADAM.concat(":list:members:code:info:"); public static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member_no";
public static final String INFO_MEMBERS_REPERTORY_INFO = ADAM.concat(":list:members:repertory:"); // // // // // // // // // //
public static final String INFO_MEMBERS_ORDER_INFO = ADAM.concat(":list:members:order:"); public static final String LOCK_KEY_UREGISTER = "adam:lk:register:";
/* ----------------------------------------------------------------- */
} }
...@@ -128,12 +128,19 @@ public class AdamLoginController { ...@@ -128,12 +128,19 @@ public class AdamLoginController {
if (!this.checkSmsCode(mobile, code)) return ResponseDto.failure(ErrorMapping.get("10002")); if (!this.checkSmsCode(mobile, code)) return ResponseDto.failure(ErrorMapping.get("10002"));
String uid = adamRdmService.getUidByMobile(mobile); String uid = adamRdmService.getUidByMobile(mobile);
boolean toRegister = StringUtils.isEmpty(uid); boolean toRegister = StringUtils.isEmpty(uid);
AdamUserInfoVo userInfoVo = toRegister ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid);
AdamUserInfoVo userInfoVo;
if (toRegister) {
userInfoVo = adamUserService.register(mobile);
if (null == userInfoVo) {
return ResponseDto.failure(ErrorMapping.get("10003"));
}
} else {
userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
}
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew(); AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
// if (userInfoVo.getIsComplete() == 1) {
if (!toRegister) { if (!toRegister) {
loginInfoVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(userInfoVo.getUid())); loginInfoVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(userInfoVo.getUid()));
loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(userInfoVo.getUid())); loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(userInfoVo.getUid()));
...@@ -160,10 +167,17 @@ public class AdamLoginController { ...@@ -160,10 +167,17 @@ public class AdamLoginController {
String uid = adamRdmService.getUidByMobile(mobile); String uid = adamRdmService.getUidByMobile(mobile);
boolean toRegister = StringUtils.isEmpty(uid); boolean toRegister = StringUtils.isEmpty(uid);
AdamUserInfoVo userInfoVo = toRegister ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid); AdamUserInfoVo userInfoVo;
if (toRegister) {
userInfoVo = adamUserService.register(mobile);
if (null == userInfoVo) {
return ResponseDto.failure(ErrorMapping.get("10003"));
}
} else {
userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
}
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew(); AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
// if (loginInfoVo.getUserInfo().getIsComplete() == 1) {
if (!toRegister) { if (!toRegister) {
loginInfoVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(userInfoVo.getUid())); loginInfoVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(userInfoVo.getUid()));
loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(userInfoVo.getUid())); loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(userInfoVo.getUid()));
...@@ -197,10 +211,13 @@ public class AdamLoginController { ...@@ -197,10 +211,13 @@ public class AdamLoginController {
loginInfoVo.setUserMemberVo(adamRdmService.getUserMemberVoByUid(uid)); loginInfoVo.setUserMemberVo(adamRdmService.getUserMemberVoByUid(uid));
loginInfoVo.setMemberVo(adamRdmService.getMemberSimpleVo()); loginInfoVo.setMemberVo(adamRdmService.getMemberSimpleVo());
} else {// 新账号注册 } else {// 新账号注册
if (!this.checkSmsCode(parameter.getMobile(), parameter.getCode())) if (!this.checkSmsCode(parameter.getMobile(), parameter.getCode())) {
return ResponseDto.failure(ErrorMapping.get("10002")); return ResponseDto.failure(ErrorMapping.get("10002"));
}
AdamUserInfoVo registerUserInfo = adamUserService.register(parameter); AdamUserInfoVo registerUserInfo = adamUserService.register(parameter);
if (null == registerUserInfo) {
return ResponseDto.failure(ErrorMapping.get("10003"));
}
loginInfoVo.setUserInfo(registerUserInfo); loginInfoVo.setUserInfo(registerUserInfo);
loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(registerUserInfo.getUid())); loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(registerUserInfo.getUid()));
loginInfoVo.setMemberVo(adamRdmService.getMemberSimpleVo()); loginInfoVo.setMemberVo(adamRdmService.getMemberSimpleVo());
......
...@@ -164,7 +164,7 @@ public class AdamMemberOrderController { ...@@ -164,7 +164,7 @@ public class AdamMemberOrderController {
if (vo.getState() != 0) { if (vo.getState() != 0) {
return ResponseDto.failure(ErrorMapping.get(vo.getState() == 1 ? "10208" : "10209")); return ResponseDto.failure(ErrorMapping.get(vo.getState() == 1 ? "10208" : "10209"));
} }
return ResponseDto.success(); return ResponseDto.success(0);
} }
@ApiOperationSupport(order = 4) @ApiOperationSupport(order = 4)
......
...@@ -176,13 +176,13 @@ public class AdamUserController { ...@@ -176,13 +176,13 @@ public class AdamUserController {
} }
@ApiOperationSupport(order = 4) @ApiOperationSupport(order = 4)
@ApiOperation(value = "手机号修改") @ApiOperation(value = "手机号修改", notes = "手机号修改会刷新TOKEN,刷新后的TOKEN对应响应参数中[`data`]")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mobile", value = "新手机号"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mobile", value = "新手机号"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "code", value = "验证码"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "code", value = "验证码"),
}) })
@PostMapping(value = {"edit/mobile"}) @PostMapping(value = {"edit/mobile"})
public ResponseDto<Object> editMobile(@Pattern(regexp = "\\d{11}", message = "手机号格式有误") public ResponseDto<String> editMobile(@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@RequestParam String mobile, @RequestParam String mobile,
@Pattern(regexp = "\\d{6}", message = "验证码格式有误") @Pattern(regexp = "\\d{6}", message = "验证码格式有误")
@RequestParam String code) { @RequestParam String code) {
...@@ -190,11 +190,7 @@ public class AdamUserController { ...@@ -190,11 +190,7 @@ public class AdamUserController {
if (!this.checkSmsCode(mobile, code)) return ResponseDto.failure(ErrorMapping.get("10002")); if (!this.checkSmsCode(mobile, code)) return ResponseDto.failure(ErrorMapping.get("10002"));
String uid = CurrentUtil.getCurrentUid(); return ResponseDto.success(adamUserInfoService.editMobile(CurrentUtil.getCurrentUid(), mobile));
adamUserInfoService.editMobile(uid, mobile);
return ResponseDto.success();
} }
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.mq.constant.MQConst; import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.BsonUtil; import com.liquidnet.commons.lang.util.BsonUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo; import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
...@@ -20,8 +22,12 @@ import org.springframework.data.mongodb.core.MongoTemplate; ...@@ -20,8 +22,12 @@ import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -37,9 +43,13 @@ public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, Ada ...@@ -37,9 +43,13 @@ public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, Ada
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
@Autowired @Autowired
IAdamRdmService adamRdmService;
@Autowired
RabbitTemplate rabbitTemplate; RabbitTemplate rabbitTemplate;
@Autowired @Autowired
IAdamRdmService adamRdmService; RedisUtil redisUtil;
@Autowired
JwtValidator jwtValidator;
@Override @Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
...@@ -81,7 +91,7 @@ public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, Ada ...@@ -81,7 +91,7 @@ public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, Ada
@Override @Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void editMobile(String uid, String mobile) { public String editMobile(String uid, String mobile) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
// AdamUserInfoVo updateInfoVo = AdamUserInfoVo.getNew(); // AdamUserInfoVo updateInfoVo = AdamUserInfoVo.getNew();
// updateInfoVo.setUpdatedAt(now); // updateInfoVo.setUpdatedAt(now);
...@@ -108,5 +118,24 @@ public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, Ada ...@@ -108,5 +118,24 @@ public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, Ada
rabbitTemplate.convertAndSend(MQConst.EX_LNS_SQL_UCENTER, MQConst.RK_SQL_UCENTER, rabbitTemplate.convertAndSend(MQConst.EX_LNS_SQL_UCENTER, MQConst.RK_SQL_UCENTER,
SqlMapping.get("adam_user.edit.mobile", mobile, now, uid)); SqlMapping.get("adam_user.edit.mobile", mobile, now, uid));
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s); log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
return this.flushSsoProcess(beforeUserInfoVo);
}
private String flushSsoProcess(AdamUserInfoVo userInfoVo) {
Map<String, Object> claimsMap = new HashMap<>();
claimsMap.put("sub", userInfoVo.getUid());
claimsMap.put("mobile", userInfoVo.getMobile());
claimsMap.put("nickname", userInfoVo.getNickname());
claimsMap.put("type", "user");
String token = jwtValidator.create(claimsMap);
redisUtil.set(
jwtValidator.getSsoRedisKey().concat(userInfoVo.getUid()),
DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)),
jwtValidator.getExpireTtl() * 60
);
return token;
} }
} }
...@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service.impl; ...@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil; import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo; import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo; import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamUserMember; import com.liquidnet.service.adam.entity.AdamUserMember;
...@@ -19,6 +18,8 @@ import org.springframework.stereotype.Service; ...@@ -19,6 +18,8 @@ import org.springframework.stereotype.Service;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UMEMBER_NO;
@Slf4j @Slf4j
@Service @Service
public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper, AdamUserMember> implements IAdamUserMemberService { public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper, AdamUserMember> implements IAdamUserMemberService {
...@@ -27,14 +28,12 @@ public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper, ...@@ -27,14 +28,12 @@ public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper,
@Autowired @Autowired
IAdamRdmService adamRdmService; IAdamRdmService adamRdmService;
private static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member_no";
@Override @Override
public String getNextMemberNo(String memberId) { public String getNextMemberNo(String memberId) {
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
int memberMaxNo = adamRdmService.getMaxMemberNo(); int memberMaxNo = adamRdmService.getMaxMemberNo();
if (-1 == memberMaxNo) { if (-1 == memberMaxNo) {
if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3000)) { if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) {
memberMaxNo = adamRdmService.getMaxMemberNo(); memberMaxNo = adamRdmService.getMaxMemberNo();
if (-1 == memberMaxNo) { if (-1 == memberMaxNo) {
Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1); Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1);
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.common.exception.LiquidnetServiceException; import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.common.mq.constant.MQConst; import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.SensitizeUtil;
import com.liquidnet.service.adam.dto.AdamThirdPartParam; import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.*; import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamEnters; import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.entity.AdamRealName; import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.service.*; import com.liquidnet.service.adam.service.IAdamEntersService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.adam.service.IAdamRealNameService;
import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.mongodb.client.model.FindOneAndUpdateOptions; import com.mongodb.client.model.FindOneAndUpdateOptions;
...@@ -35,6 +42,8 @@ import java.util.LinkedList; ...@@ -35,6 +42,8 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UREGISTER;
/** /**
* <p> * <p>
* 用户 服务实现类 * 用户 服务实现类
...@@ -67,30 +76,37 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -67,30 +76,37 @@ public class AdamUserServiceImpl implements IAdamUserService {
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public AdamUserInfoVo register(String mobile) { public AdamUserInfoVo register(String mobile) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
AdamUserInfoVo userInfoVo = null;
AdamUserInfoVo userInfoVo = AdamUserInfoVo.getNew();
userInfoVo.setUid(IDGenerator.nextSnowId() + ""); if (RedisLockUtil.tryLock(LOCK_KEY_UREGISTER + mobile, 1, 3)) {
userInfoVo.setMobile(mobile); String uid = adamRdmService.getUidByMobile(mobile);
userInfoVo.setIsComplete(0); if (StringUtils.isEmpty(uid)) {
userInfoVo.setState(1); userInfoVo = AdamUserInfoVo.getNew();
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase())); userInfoVo.setUid(IDGenerator.nextSnowId() + "");
userInfoVo.setCreateAt(now); userInfoVo.setMobile(mobile);
userInfoVo.setIsComplete(0);
long s = System.currentTimeMillis(); userInfoVo.setState(1);
mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName()); userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); userInfoVo.setCreateAt(now);
s = System.currentTimeMillis(); long s = System.currentTimeMillis();
String msg = SqlMapping.get("adam_user.add", userInfoVo.getUid(), userInfoVo.getMobile(), userInfoVo.getState(), now); mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
log.debug("#SQL.GET耗时:{}ms", System.currentTimeMillis() - s); log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
rabbitTemplate.convertAndSend(MQConst.EX_LNS_SQL_UCENTER, MQConst.RK_SQL_UREGISTER,
msg s = System.currentTimeMillis();
); String msg = SqlMapping.get("adam_user.add", userInfoVo.getUid(), userInfoVo.getMobile(), userInfoVo.getState(), now);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s); log.debug("#SQL.GET耗时:{}ms", System.currentTimeMillis() - s);
rabbitTemplate.convertAndSend(MQConst.EX_LNS_SQL_UCENTER, MQConst.RK_SQL_UREGISTER,
s = System.currentTimeMillis(); msg
adamRdmService.setUidByMobile(mobile, userInfoVo.getUid()); );
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
adamRdmService.setUidByMobile(mobile, userInfoVo.getUid());
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
}
RedisLockUtil.unlock(LOCK_KEY_UREGISTER + mobile);
}
return userInfoVo; return userInfoVo;
} }
...@@ -98,59 +114,65 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -98,59 +114,65 @@ public class AdamUserServiceImpl implements IAdamUserService {
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public AdamUserInfoVo register(AdamThirdPartParam param) { public AdamUserInfoVo register(AdamThirdPartParam param) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
AdamUserInfoVo userInfoVo = null;
long s = System.currentTimeMillis();
String uid = adamRdmService.getUidByMobile(param.getMobile()); if (RedisLockUtil.tryLock(LOCK_KEY_UREGISTER + param.getOpenId() + param.getPlatform(), 1, 5)) {
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); String uid = adamRdmService.getUidByPlatformOpenId(param.getPlatform(), param.getOpenId());
LinkedList<String> toMqSqls = new LinkedList<>(); if (StringUtils.isEmpty(uid)) {
LinkedList<Object[]> initUserObjs = new LinkedList<>(), initThirdPartObjs = new LinkedList<>(); long s = System.currentTimeMillis();
AdamUserInfoVo userInfoVo; uid = adamRdmService.getUidByMobile(param.getMobile());
if (StringUtils.isEmpty(uid)) {// 手机号未注册 log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
userInfoVo = AdamUserInfoVo.getNew(); LinkedList<String> toMqSqls = new LinkedList<>();
LinkedList<Object[]> initUserObjs = new LinkedList<>(), initThirdPartObjs = new LinkedList<>();
userInfoVo.setUid(IDGenerator.nextSnowId() + ""); if (StringUtils.isEmpty(uid)) {// 手机号未注册
userInfoVo.setMobile(param.getMobile()); userInfoVo = AdamUserInfoVo.getNew();
userInfoVo.setIsComplete(0);
userInfoVo.setState(1); userInfoVo.setUid(IDGenerator.nextSnowId() + "");
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase())); userInfoVo.setMobile(param.getMobile());
userInfoVo.setCreateAt(now); userInfoVo.setIsComplete(0);
userInfoVo.setState(1);
s = System.currentTimeMillis(); userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName()); userInfoVo.setCreateAt(now);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
userInfoVo.setMobile(SensitizeUtil.custom(param.getMobile(), 3, 4)); mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_user.add"));
initUserObjs.add(new Object[]{userInfoVo.getUid(), userInfoVo.getMobile(), userInfoVo.getState(), now}); userInfoVo.setMobile(SensitizeUtil.custom(param.getMobile(), 3, 4));
} else {
s = System.currentTimeMillis(); toMqSqls.add(SqlMapping.get("adam_user.add"));
userInfoVo = adamRdmService.getUserInfoVoByUid(uid); initUserObjs.add(new Object[]{userInfoVo.getUid(), userInfoVo.getMobile(), userInfoVo.getState(), now});
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); } else {
s = System.currentTimeMillis();
userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
}
AdamThirdPartInfoVo thirdPartInfoVo = AdamThirdPartInfoVo.getNew();
BeanUtils.copyProperties(param, thirdPartInfoVo);
thirdPartInfoVo.setCreatedAt(now);
thirdPartInfoVo.setUid(userInfoVo.getUid());
thirdPartInfoVo.setState(1);// 1-绑定
s = System.currentTimeMillis();
mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_third_party.add"));
initThirdPartObjs.add(new Object[]{thirdPartInfoVo.getUid(), thirdPartInfoVo.getOpenId(), thirdPartInfoVo.getAvatar(), thirdPartInfoVo.getNickname(), thirdPartInfoVo.getPlatform(), thirdPartInfoVo.getState(), thirdPartInfoVo.getCreatedAt()});
s = System.currentTimeMillis();
adamRdmService.setUidByPlatformOpenId(param.getPlatform(), param.getOpenId(), uid);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
rabbitTemplate.convertAndSend(MQConst.EX_LNS_SQL_UCENTER, MQConst.RK_SQL_UREGISTER,
SqlMapping.gets(toMqSqls, initUserObjs, initThirdPartObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
RedisLockUtil.unlock(LOCK_KEY_UREGISTER + param.getOpenId() + param.getPlatform());
} }
AdamThirdPartInfoVo thirdPartInfoVo = AdamThirdPartInfoVo.getNew();
BeanUtils.copyProperties(param, thirdPartInfoVo);
thirdPartInfoVo.setCreatedAt(now);
thirdPartInfoVo.setUid(userInfoVo.getUid());
thirdPartInfoVo.setState(1);// 1-绑定
s = System.currentTimeMillis();
mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_third_party.add"));
initThirdPartObjs.add(new Object[]{thirdPartInfoVo.getUid(), thirdPartInfoVo.getOpenId(), thirdPartInfoVo.getAvatar(), thirdPartInfoVo.getNickname(), thirdPartInfoVo.getPlatform(), thirdPartInfoVo.getState(), thirdPartInfoVo.getCreatedAt()});
s = System.currentTimeMillis();
adamRdmService.setUidByPlatformOpenId(param.getPlatform(), param.getOpenId(), uid);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
rabbitTemplate.convertAndSend(MQConst.EX_LNS_SQL_UCENTER, MQConst.RK_SQL_UREGISTER,
SqlMapping.gets(toMqSqls, initUserObjs, initThirdPartObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
return userInfoVo; return userInfoVo;
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
10001=验证码发送失败 10001=验证码发送失败
10002=验证码无效 10002=验证码无效
10003= 10003=系统繁忙,请稍候重试
10004= 10004=
10005=手机号获取失败,请更换登录方式 10005=手机号获取失败,请更换登录方式
10006=第三方账号未注册 10006=第三方账号未注册
......
...@@ -2,12 +2,12 @@ package com.liquidnet.service.kylin.controller.partner; ...@@ -2,12 +2,12 @@ package com.liquidnet.service.kylin.controller.partner;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.PerformanceOrderStatisticalDao;
import com.liquidnet.service.kylin.dao.PerformancePartnerListDao; import com.liquidnet.service.kylin.dao.PerformancePartnerListDao;
import com.liquidnet.service.kylin.dto.param.*; import com.liquidnet.service.kylin.dto.param.PerformancePartnerListParam;
import com.liquidnet.service.kylin.dto.vo.middle.message.MessageConfigVo; import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.vo.middle.message.MessageDataVo; import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param;
import com.liquidnet.service.kylin.service.impl.partner.KylinPerformancesPartnerServiceImpl; import com.liquidnet.service.kylin.dto.param.PerformanceStep2Param;
import com.liquidnet.service.kylin.dto.vo.PerformanceOrderStatisticalVo;
import com.liquidnet.service.kylin.service.partner.IKylinPerformancesPartnerService; import com.liquidnet.service.kylin.service.partner.IKylinPerformancesPartnerService;
import com.liquidnet.service.kylin.utils.OtherUtils; import com.liquidnet.service.kylin.utils.OtherUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -118,8 +118,8 @@ public class PerformancePartnerController { ...@@ -118,8 +118,8 @@ public class PerformancePartnerController {
@GetMapping(value = "orderStatistical") @GetMapping(value = "orderStatistical")
@ApiOperation(value = "演出订单统计",position = 9) @ApiOperation(value = "演出订单统计",position = 9)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<List<PerformanceOrderStatisticalDao>> performanceOrderStatisticalList(@RequestParam("performancesId") @NotNull String performancesId) { public ResponseDto<List<PerformanceOrderStatisticalVo>> performanceOrderStatisticalList(@RequestParam("performancesId") @NotNull String performancesId) {
List<PerformanceOrderStatisticalDao> list =performancesPartnerService.getPerformanceOrderStatisticalList(performancesId); List<PerformanceOrderStatisticalVo> list =performancesPartnerService.getPerformanceOrderStatisticalList(performancesId);
return ResponseDto.success(list); return ResponseDto.success(list);
} }
} }
...@@ -13,20 +13,17 @@ import com.liquidnet.service.base.ResponseDto; ...@@ -13,20 +13,17 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.PerformanceOrderStatisticalDao; import com.liquidnet.service.kylin.dao.PerformanceOrderStatisticalDao;
import com.liquidnet.service.kylin.dao.PerformancePartnerListDao; import com.liquidnet.service.kylin.dao.PerformancePartnerListDao;
import com.liquidnet.service.kylin.dto.param.*; import com.liquidnet.service.kylin.dto.param.PerformancePartnerListParam;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo; import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo; import com.liquidnet.service.kylin.dto.param.PerformanceStep2Param;
import com.liquidnet.service.kylin.dto.vo.ignore.KylinPerformanceIgnoreVo; import com.liquidnet.service.kylin.dto.vo.PerformanceOrderStatisticalVo;
import com.liquidnet.service.kylin.dto.vo.ignore.KylinTicketIgnoreVo;
import com.liquidnet.service.kylin.dto.vo.ignore.KylinTicketTimesIgnoreVo;
import com.liquidnet.service.kylin.dto.vo.partner.*; import com.liquidnet.service.kylin.dto.vo.partner.*;
import com.liquidnet.service.kylin.entity.*; import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*; import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.partner.IKylinPerformancesPartnerService; import com.liquidnet.service.kylin.service.partner.IKylinPerformancesPartnerService;
import com.liquidnet.service.kylin.timerTask.PerformanceVoTask; import com.liquidnet.service.kylin.timerTask.PerformanceVoTask;
import com.liquidnet.service.kylin.utils.DataUtils; import com.liquidnet.service.kylin.utils.DataUtils;
import com.liquidnet.service.kylin.utils.MongoVoUtils;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -40,7 +37,6 @@ import org.springframework.data.mongodb.core.query.Criteria; ...@@ -40,7 +37,6 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -266,6 +262,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -266,6 +262,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
// 获取第一步数据 // 获取第一步数据
if (step2Param.getIsSubmit() == 1) { // 提交 if (step2Param.getIsSubmit() == 1) { // 提交
map.put("status", 1); map.put("status", 1);
map.put("isCreateSave", 0);
map.put("auditStatus", 0); map.put("auditStatus", 0);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map)); BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(PerformancePartnerVo.class.getSimpleName()).updateOne( mongoTemplate.getCollection(PerformancePartnerVo.class.getSimpleName()).updateOne(
...@@ -634,12 +631,17 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -634,12 +631,17 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
} }
@Override @Override
public List<PerformanceOrderStatisticalDao> getPerformanceOrderStatisticalList(String performancesId) { public List<PerformanceOrderStatisticalVo> getPerformanceOrderStatisticalList(String performancesId) {
PerformanceOrderStatisticalDao countBean = new PerformanceOrderStatisticalDao(); PerformanceOrderStatisticalDao countBean = new PerformanceOrderStatisticalDao();
countBean.setTitle("总计:"); countBean.setTitle("总计:");
List<PerformanceOrderStatisticalVo> voList = new ArrayList<>();
List<PerformanceOrderStatisticalDao> dtoList = performancesMapper.getPerformanceOrderStatisticalList(performancesId); List<PerformanceOrderStatisticalDao> dtoList = performancesMapper.getPerformanceOrderStatisticalList(performancesId);
dtoList.forEach(dto -> { dtoList.forEach(dto -> {
PerformanceOrderStatisticalVo vo = new PerformanceOrderStatisticalVo();
BeanUtil.copy(dto,vo);
voList.add(vo);
countBean.setTotalGeneral(countBean.getTotalGeneral().add(dto.getTotalGeneral())); countBean.setTotalGeneral(countBean.getTotalGeneral().add(dto.getTotalGeneral()));
countBean.setSaleGeneral(countBean.getSaleGeneral().add(dto.getSaleGeneral())); countBean.setSaleGeneral(countBean.getSaleGeneral().add(dto.getSaleGeneral()));
countBean.setSurplusGeneral(countBean.getSurplusGeneral().add(dto.getSurplusGeneral())); countBean.setSurplusGeneral(countBean.getSurplusGeneral().add(dto.getSurplusGeneral()));
...@@ -651,7 +653,9 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -651,7 +653,9 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
countBean.setTotalPayingNumber(countBean.getTotalPayingNumber().add(dto.getTotalPayingNumber())); countBean.setTotalPayingNumber(countBean.getTotalPayingNumber().add(dto.getTotalPayingNumber()));
countBean.setTotalBuyUsers(dto.getTotalBuyUsers()); countBean.setTotalBuyUsers(dto.getTotalBuyUsers());
}); });
dtoList.add(countBean); PerformanceOrderStatisticalVo vo = new PerformanceOrderStatisticalVo();
return dtoList; BeanUtil.copy(countBean,vo);
voList.add(vo);
return voList;
} }
} }
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