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

Commit e811ae0b authored by jiangxiulong's avatar jiangxiulong

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

parents 85090515 878b8e0a
...@@ -48,12 +48,12 @@ public class AdamRedisConst { ...@@ -48,12 +48,12 @@ public class AdamRedisConst {
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
public static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member:no"; // public static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member:no";
// // // // // // // // // // // // // // // // // // // //
public static final String LOCK_KEY_SMS_CODE_MOBILE = "adam:lk:sms:code:mobile:"; // public static final String LOCK_KEY_SMS_CODE_MOBILE = "adam:lk:sms:code:mobile:";
public static final String LOCK_KEY_UREGISTER = "adam:lk:register:"; // public static final String LOCK_KEY_UREGISTER = "adam:lk:register:";
public static final String LOCK_KEY_UIDENTITY = "adam:lk:identity:"; // public static final String LOCK_KEY_UIDENTITY = "adam:lk:identity:";
public static final String LOCK_KEY_UMEMBER_CODE = "adam:lk:member:code:"; // public static final String LOCK_KEY_UMEMBER_CODE = "adam:lk:member:code:";
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
} }
...@@ -11,21 +11,12 @@ import java.util.Random; ...@@ -11,21 +11,12 @@ import java.util.Random;
*/ */
public class MemberUtil { public class MemberUtil {
/**
* 获取
*
* @return
*/
public static boolean getOneFromRepertory() {
return false;
}
public static String buyCode() { public static String buyCode() {
return genMemberCode(0); return genMemberCode(1);
} }
public static String freeCode() { public static String freeCode() {
return genMemberCode(1); return genMemberCode(2);
} }
public static String genMemberCode(Integer type) { public static String genMemberCode(Integer type) {
...@@ -55,7 +46,7 @@ public class MemberUtil { ...@@ -55,7 +46,7 @@ public class MemberUtil {
g += sc; g += sc;
} }
String randomPre = String.valueOf(sChar[rand.nextInt(s.length())]); String randomPre = String.valueOf(sChar[rand.nextInt(s.length())]);
if (1 == type) { // 赠送 if (2 == type) { // 赠送
g = "G".concat(randomPre).concat(g); g = "G".concat(randomPre).concat(g);
} else { // 购买 } else { // 购买
g = "B".concat(randomPre).concat(g); g = "B".concat(randomPre).concat(g);
......
...@@ -3,36 +3,28 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl; ...@@ -3,36 +3,28 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService; import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil; import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamMemberCodeParam; import com.liquidnet.service.adam.dto.AdamMemberCodeParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo; import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamMemberCode; import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper; import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper;
import com.liquidnet.service.adam.util.MemberUtil; import com.liquidnet.service.adam.util.MemberUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
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 AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> implements IAdamMemberCodeAdminService { public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> implements IAdamMemberCodeAdminService {
@Autowired @Autowired
AdamMemberCodeMapper memberCodeMapper; AdamMemberCodeMapper memberCodeMapper;
@Autowired // @Autowired
MongoTemplate mongoTemplate; // MongoTemplate mongoTemplate;
@Autowired @Autowired
RedisUtil redisUtil; RedisUtil redisUtil;
...@@ -42,9 +34,10 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa ...@@ -42,9 +34,10 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
boolean exists; boolean exists;
do { do {
mCode = MemberUtil.freeCode(); mCode = MemberUtil.freeCode();
exists = mongoTemplate.exists( // exists = mongoTemplate.exists(
Query.query(Criteria.where("code").is(mCode)), AdamMemberCodeVo.class.getSimpleName() // Query.query(Criteria.where("code").is(mCode)), AdamMemberCodeVo.class.getSimpleName()
); // );
exists = redisUtil.hasKey(mCode);
} while (exists); } while (exists);
// 需要主动生成会员编号 // 需要主动生成会员编号
...@@ -64,7 +57,7 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa ...@@ -64,7 +57,7 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
memberCodeMapper.insert(initMemberCode); memberCodeMapper.insert(initMemberCode);
AdamMemberCodeVo vo = AdamMemberCodeVo.getNew().copy(initMemberCode); AdamMemberCodeVo vo = AdamMemberCodeVo.getNew().copy(initMemberCode);
mongoTemplate.insert(vo, AdamMemberCodeVo.class.getSimpleName()); // mongoTemplate.insert(vo, AdamMemberCodeVo.class.getSimpleName());
setMemberCodeVoByCode(mCode, vo); setMemberCodeVoByCode(mCode, vo);
...@@ -75,25 +68,27 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa ...@@ -75,25 +68,27 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
int memberMaxNo = getMaxMemberNo(); int memberMaxNo = getMaxMemberNo();
if (-1 == memberMaxNo) { if (-1 == memberMaxNo) {
if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) { // TODO: 2021/7/29 降级DB
memberMaxNo = getMaxMemberNo(); throw new LiquidnetServiceException();
if (-1 == memberMaxNo) { // if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) {
Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1); // memberMaxNo = getMaxMemberNo();
// if (-1 == memberMaxNo) {
AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName()); // Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1);
//
if (null == latestMaxMemberNoVo) { // AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
AdamMemberVo memberVo = getMemberVoByMemberId(memberId); //
// if (null == latestMaxMemberNoVo) {
setMaxMemberNo(memberVo.getStartNo()); // AdamMemberVo memberVo = getMemberVoByMemberId(memberId);
} else { //
setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo())); // setMaxMemberNo(memberVo.getStartNo());
} // } else {
} // setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo()));
RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO); // }
} else { // }
return null; // RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO);
} // } else {
// return null;
// }
} }
String nextMemberNoStr = String.valueOf(incrMemberNo()); String nextMemberNoStr = String.valueOf(incrMemberNo());
if (Pattern.matches("([\\d])\\1{" + (nextMemberNoStr.length() - 1) + "}", nextMemberNoStr)) { if (Pattern.matches("([\\d])\\1{" + (nextMemberNoStr.length() - 1) + "}", nextMemberNoStr)) {
...@@ -109,22 +104,22 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa ...@@ -109,22 +104,22 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
return null == o ? -1 : (int) o; return null == o ? -1 : (int) o;
} }
public AdamMemberVo getMemberVoByMemberId(String memberId) { // public AdamMemberVo getMemberVoByMemberId(String memberId) {
String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId); // String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId);
long s = System.currentTimeMillis(); // long s = System.currentTimeMillis();
AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key); // AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key);
if (null == vo) { // if (null == vo) {
s = System.currentTimeMillis(); // s = System.currentTimeMillis();
vo = mongoTemplate.findOne( // vo = mongoTemplate.findOne(
Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)), // Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
AdamMemberVo.class, AdamMemberVo.class.getSimpleName() // AdamMemberVo.class, AdamMemberVo.class.getSimpleName()
); // );
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(key, vo); // if (null != vo) redisUtil.set(key, vo);
} // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo; // return vo;
} // }
public boolean setMaxMemberNo(int val) { public boolean setMaxMemberNo(int val) {
return redisUtil.set(AdamRedisConst.INCR_MEMBER_NO, val); return redisUtil.set(AdamRedisConst.INCR_MEMBER_NO, val);
......
...@@ -259,8 +259,8 @@ ...@@ -259,8 +259,8 @@
number, number,
user_id user_id
FROM kylin_order_tickets AS ot FROM kylin_order_tickets AS ot
LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id inner JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id
LEFT JOIN kylin_order_ticket_relations AS otr ON otr.order_id = ot.order_tickets_id inner JOIN kylin_order_ticket_relations AS otr ON otr.order_id = ot.order_tickets_id
WHERE status = 0 AND NOW() > DATE_SUB(ot.created_at,INTERVAL -(pay_countdown_minute+1) MINUTE) WHERE status = 0 AND NOW() > DATE_SUB(ot.created_at,INTERVAL -(pay_countdown_minute+1) MINUTE)
<if test="userId!=''"> <if test="userId!=''">
AND user_id = #{userId} AND user_id = #{userId}
......
...@@ -28,11 +28,11 @@ ...@@ -28,11 +28,11 @@
<artifactId>liquidnet-common-cache-redis</artifactId> <artifactId>liquidnet-common-cache-redis</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>com.liquidnet</groupId> <!-- <groupId>com.liquidnet</groupId>-->
<artifactId>liquidnet-common-cache-redisson</artifactId> <!-- <artifactId>liquidnet-common-cache-redisson</artifactId>-->
<version>1.0-SNAPSHOT</version> <!-- <version>1.0-SNAPSHOT</version>-->
</dependency> <!-- </dependency>-->
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>--> <!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-data-mongodb</artifactId>--> <!-- <artifactId>spring-boot-starter-data-mongodb</artifactId>-->
......
...@@ -9,7 +9,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode; ...@@ -9,7 +9,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.common.sms.constant.SmsEnum; import com.liquidnet.common.sms.constant.SmsEnum;
import com.liquidnet.common.sms.processor.SmsProcessor; import com.liquidnet.common.sms.processor.SmsProcessor;
import com.liquidnet.commons.lang.constant.LnsEnum; import com.liquidnet.commons.lang.constant.LnsEnum;
...@@ -49,8 +48,6 @@ import java.util.Arrays; ...@@ -49,8 +48,6 @@ import java.util.Arrays;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_SMS_CODE_MOBILE;
@ApiSupport(order = 10010) @ApiSupport(order = 10010)
@Api(tags = "用户登录") @Api(tags = "用户登录")
@Slf4j @Slf4j
...@@ -132,7 +129,6 @@ public class AdamLoginController { ...@@ -132,7 +129,6 @@ public class AdamLoginController {
@GetMapping(value = {"send"}) @GetMapping(value = {"send"})
public ResponseDto<Object> sendSms(@Pattern(regexp = "\\d{11}", message = "手机号格式有误") @RequestParam String mobile) { public ResponseDto<Object> sendSms(@Pattern(regexp = "\\d{11}", message = "手机号格式有误") @RequestParam String mobile) {
log.debug("send to mobile:{}", mobile); log.debug("send to mobile:{}", mobile);
if (RedisLockUtil.tryLock(LOCK_KEY_SMS_CODE_MOBILE + mobile, 1, 5)) {
// Map<String, Object> respMap = null; // Map<String, Object> respMap = null;
// String respStr = null; // String respStr = null;
// try { // try {
...@@ -163,6 +159,12 @@ public class AdamLoginController { ...@@ -163,6 +159,12 @@ public class AdamLoginController {
// return ResponseDto.failure(ErrorMapping.get("10003")); // return ResponseDto.failure(ErrorMapping.get("10003"));
// } // }
String smsCodeByMobile = adamRdmService.getSmsCodeByMobile(mobile);
if (StringUtils.isNotEmpty(smsCodeByMobile)) {
return ResponseDto.failure(ErrorMapping.get("10003"));
}
String smsCode = RandomStringUtils.randomNumeric(6); String smsCode = RandomStringUtils.randomNumeric(6);
// SmsMessage smsMessage = SmsMessage.builder().setPhone(mobile).setSignName(SmsEnum.ADSignName.正在现场.name()) // SmsMessage smsMessage = SmsMessage.builder().setPhone(mobile).setSignName(SmsEnum.ADSignName.正在现场.name())
// .setTemplateCode(SmsEnum.ADTemplate.SMS_109535335.name()) // .setTemplateCode(SmsEnum.ADTemplate.SMS_109535335.name())
...@@ -177,9 +179,6 @@ public class AdamLoginController { ...@@ -177,9 +179,6 @@ public class AdamLoginController {
return ResponseDto.success(); return ResponseDto.success();
} }
return ResponseDto.failure(ErrorMapping.get("10002")); return ResponseDto.failure(ErrorMapping.get("10002"));
} else {
return ResponseDto.failure(ErrorMapping.get("10000"));
}
} }
@ApiOperationSupport(order = 3) @ApiOperationSupport(order = 3)
......
package com.liquidnet.service.adam.controller; package com.liquidnet.service.adam.controller;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.commons.lang.constant.LnsEnum; import com.liquidnet.commons.lang.constant.LnsEnum;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.HttpUtil; import com.liquidnet.commons.lang.util.HttpUtil;
...@@ -16,8 +14,8 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam; ...@@ -16,8 +14,8 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam; import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderResult; import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
import com.liquidnet.service.adam.dto.vo.*; import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.AdamRdmService; import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.IAdamUserService; import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.PagedResult; import com.liquidnet.service.base.PagedResult;
...@@ -36,11 +34,8 @@ import org.springframework.web.bind.annotation.*; ...@@ -36,11 +34,8 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.List; import java.util.List;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UMEMBER_CODE;
@ApiSupport(order = 10031) @ApiSupport(order = 10031)
@Api(tags = "购买会员") @Api(tags = "购买会员")
@Slf4j @Slf4j
...@@ -225,16 +220,16 @@ public class AdamMemberOrderController { ...@@ -225,16 +220,16 @@ public class AdamMemberOrderController {
return ResponseDto.failure(ErrorMapping.get("10000")); return ResponseDto.failure(ErrorMapping.get("10000"));
} }
} }
if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_CODE + param.getMemberCode(), 1, 5)) { // if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_CODE + param.getMemberCode(), 1, 5)) {
ResponseDto<AdamMemberOrderResult> responseDto = adamMemberOrderService.exchangeMemberCode(param); ResponseDto<AdamMemberOrderResult> responseDto = adamMemberOrderService.exchangeMemberCode(param);
if (!responseDto.isSuccess()) { // if (!responseDto.isSuccess()) {
RedisLockUtil.unlock(LOCK_KEY_UMEMBER_CODE + param.getMemberCode()); // RedisLockUtil.unlock(LOCK_KEY_UMEMBER_CODE + param.getMemberCode());
} // }
return responseDto; return responseDto;
} else { // } else {
return ResponseDto.failure(ErrorMapping.get("10000")); // return ResponseDto.failure(ErrorMapping.get("10000"));
} // }
} }
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
......
...@@ -50,7 +50,8 @@ public class AdamRdmService { ...@@ -50,7 +50,8 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <Mobile, SMS CODE> */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <Mobile, SMS CODE> */
public boolean setSmsCodeByMobile(String mobile, String smsCode) { public boolean setSmsCodeByMobile(String mobile, String smsCode) {
return redisUtil.set(AdamRedisConst.VALID_SMS_CODE_MOBILE + mobile, smsCode, 15 * 60); // TODO: 2021/7/29 改为1分钟
return redisUtil.set(AdamRedisConst.VALID_SMS_CODE_MOBILE + mobile, smsCode, 1 * 60);
} }
public String getSmsCodeByMobile(String mobile) { public String getSmsCodeByMobile(String mobile) {
...@@ -524,6 +525,16 @@ public class AdamRdmService { ...@@ -524,6 +525,16 @@ public class AdamRdmService {
redisUtil.del(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode)); redisUtil.del(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode));
} }
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <AdamMemberCodeVo::buyOrderNo, MEMBER_CODE + STATE> */
public boolean setMemberCodeByBuyOrderNo(String buyOrderNo, String memberCode) {
return redisUtil.set(buyOrderNo, memberCode);
}
public String getMemberCodeByBuyOrderNo(String buyOrderNo) {
return (String) redisUtil.get(buyOrderNo);
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
/** /**
...@@ -538,8 +549,7 @@ public class AdamRdmService { ...@@ -538,8 +549,7 @@ public class AdamRdmService {
// ); // );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// return vo; // return vo;
// TODO: 2021/7/29 降级查取,此处只用于用户购买会员码时使用 return this.getMemberCodeVoByCode(this.getMemberCodeByBuyOrderNo(buyOrderNo));
return AdamMemberCodeVo.getNew();
} }
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | TAGS:List<AdamTagVo> */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | TAGS:List<AdamTagVo> */
......
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.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.service.AdamRdmService; import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService; import com.liquidnet.service.adam.service.IAdamUserMemberService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -10,8 +9,6 @@ import org.springframework.stereotype.Service; ...@@ -10,8 +9,6 @@ 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 implements IAdamUserMemberService { public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
...@@ -25,25 +22,27 @@ public class AdamUserMemberServiceImpl implements IAdamUserMemberService { ...@@ -25,25 +22,27 @@ public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
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, 3)) { // TODO: 2021/7/29 降级DB
memberMaxNo = adamRdmService.getMaxMemberNo(); throw new LiquidnetServiceException();
if (-1 == memberMaxNo) { // if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) {
// Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1); // memberMaxNo = adamRdmService.getMaxMemberNo();
// // if (-1 == memberMaxNo) {
// AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName()); //// Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1);
////
//// AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
////
//// if (null == latestMaxMemberNoVo) {
// AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberId);
// //
// if (null == latestMaxMemberNoVo) { // adamRdmService.setMaxMemberNo(memberVo.getStartNo());
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberId); //// } else {
//// adamRdmService.setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo()));
adamRdmService.setMaxMemberNo(memberVo.getStartNo()); //// }
// } else { // }
// adamRdmService.setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo())); // RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO);
// } // } else {
} // return null;
RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO); // }
} else {
return null;
}
} }
String nextMemberNoStr = String.valueOf(adamRdmService.incrMemberNo()); String nextMemberNoStr = String.valueOf(adamRdmService.incrMemberNo());
if (Pattern.matches("([\\d])\\1{" + (nextMemberNoStr.length() - 1) + "}", nextMemberNoStr)) { if (Pattern.matches("([\\d])\\1{" + (nextMemberNoStr.length() - 1) + "}", nextMemberNoStr)) {
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.common.exception.LiquidnetServiceException; import com.liquidnet.common.exception.LiquidnetServiceException;
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.AdamThirdPartParam; import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo; import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo; import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
...@@ -34,8 +32,6 @@ import java.time.LocalDateTime; ...@@ -34,8 +32,6 @@ import java.time.LocalDateTime;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UREGISTER;
/** /**
* <p> * <p>
* 用户 服务实现类 * 用户 服务实现类
...@@ -70,7 +66,7 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -70,7 +66,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
AdamUserInfoVo userInfoVo = null; AdamUserInfoVo userInfoVo = null;
if (RedisLockUtil.tryLock(LOCK_KEY_UREGISTER + mobile, 1, 5)) { // if (RedisLockUtil.tryLock(LOCK_KEY_UREGISTER + mobile, 1, 5)) {
String uid = adamRdmService.getUidByMobile(mobile); String uid = adamRdmService.getUidByMobile(mobile);
if (StringUtils.isEmpty(uid)) { if (StringUtils.isEmpty(uid)) {
userInfoVo = AdamUserInfoVo.getNew(); userInfoVo = AdamUserInfoVo.getNew();
...@@ -89,6 +85,7 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -89,6 +85,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
adamRdmService.setUidByMobile(mobile, userInfoVo.getUid()); adamRdmService.setUidByMobile(mobile, userInfoVo.getUid());
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
...@@ -109,8 +106,8 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -109,8 +106,8 @@ public class AdamUserServiceImpl implements IAdamUserService {
} else { } else {
userInfoVo = adamRdmService.getUserInfoVoByUid(uid); userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
} }
RedisLockUtil.unlock(LOCK_KEY_UREGISTER + mobile); // RedisLockUtil.unlock(LOCK_KEY_UREGISTER + mobile);
} // }
return userInfoVo; return userInfoVo;
} }
...@@ -120,7 +117,7 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -120,7 +117,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
AdamUserInfoVo userInfoVo = null; AdamUserInfoVo userInfoVo = null;
if (RedisLockUtil.tryLock(LOCK_KEY_UREGISTER + param.getOpenId() + param.getPlatform(), 1, 5)) { // if (RedisLockUtil.tryLock(LOCK_KEY_UREGISTER + param.getOpenId() + param.getPlatform(), 1, 5)) {
String uid = adamRdmService.getUidByPlatformOpenId(param.getPlatform(), param.getOpenId()); String uid = adamRdmService.getUidByPlatformOpenId(param.getPlatform(), param.getOpenId());
if (StringUtils.isEmpty(uid)) { if (StringUtils.isEmpty(uid)) {
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
...@@ -148,6 +145,8 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -148,6 +145,8 @@ public class AdamUserServiceImpl implements IAdamUserService {
userInfoVo.setMobile(SensitizeUtil.custom(param.getMobile(), 3, 4)); userInfoVo.setMobile(SensitizeUtil.custom(param.getMobile(), 3, 4));
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
toMqSqls.add(SqlMapping.get("adam_user.add")); toMqSqls.add(SqlMapping.get("adam_user.add"));
initUserObjs.add(new Object[]{userInfoVo.getUid(), userInfoVo.getMobile(), userInfoVo.getState(), now}); initUserObjs.add(new Object[]{userInfoVo.getUid(), userInfoVo.getMobile(), userInfoVo.getState(), now});
toMqSqls.add(SqlMapping.get("adam_user_info.add")); toMqSqls.add(SqlMapping.get("adam_user_info.add"));
...@@ -185,8 +184,8 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -185,8 +184,8 @@ public class AdamUserServiceImpl implements IAdamUserService {
} else { } else {
userInfoVo = adamRdmService.getUserInfoVoByUid(uid); userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
} }
RedisLockUtil.unlock(LOCK_KEY_UREGISTER + param.getOpenId() + param.getPlatform()); // RedisLockUtil.unlock(LOCK_KEY_UREGISTER + param.getOpenId() + param.getPlatform());
} // }
return userInfoVo; return userInfoVo;
} }
...@@ -374,9 +373,9 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -374,9 +373,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public AdamRealInfoVo identity(String uid, String name, String idCard) { public AdamRealInfoVo identity(String uid, String name, String idCard) {
AdamRealInfoVo vo = null; AdamRealInfoVo vo = null;
if (RedisLockUtil.tryLock(AdamRedisConst.LOCK_KEY_UIDENTITY + uid, 1, 3)) { // if (RedisLockUtil.tryLock(AdamRedisConst.LOCK_KEY_UIDENTITY + uid, 1, 3)) {
vo = adamRdmService.getRealInfoVoByUid(uid); // vo = adamRdmService.getRealInfoVoByUid(uid);
if (null == vo) { // if (null == vo) {
if (!adamRdmService.isCertification(1, idCard, name)) { if (!adamRdmService.isCertification(1, idCard, name)) {
// String respStr = null; // String respStr = null;
// try { // try {
...@@ -428,9 +427,9 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -428,9 +427,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
adamRdmService.setRealInfoVoByUid(uid, vo); adamRdmService.setRealInfoVoByUid(uid, vo);
adamRdmService.setCertification(1, idCard, name); adamRdmService.setCertification(1, idCard, name);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
} // }
RedisLockUtil.unlock(AdamRedisConst.LOCK_KEY_UIDENTITY + uid); // RedisLockUtil.unlock(AdamRedisConst.LOCK_KEY_UIDENTITY + uid);
} // }
return vo; return vo;
} }
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
10000=请求频繁,稍后再试 10000=请求频繁,稍后再试
10001= 10001=
10002=验证码发送失败 10002=验证码发送失败
10003=已超时,请重新获取验证码 10003=发送过于频繁,请稍后再试
10004=验证码错误,请重新输入 10004=验证码错误,请重新输入
10005=手机号获取失败,请更换登录方式 10005=手机号获取失败,请更换登录方式
10006=第三方账号未注册 10006=第三方账号未注册
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
10211=订单不存在 10211=订单不存在
10212=订单状态查询失败 10212=订单状态查询失败
10213=感谢您选择登登登。距您上一次离开不足一年,登登登还没准备好再次邀您加入。不如我们给彼此多一些时间,有缘再相见。 10213=感谢您选择登登登。距您上一次离开不足一年,登登登还没准备好再次邀您加入。不如我们给彼此多一些时间,有缘再相见。
10214= 10214=兑换失败
10215=本次摩登天空会员购买名额已满 10215=本次摩登天空会员购买名额已满
10216= 10216=
......
...@@ -725,10 +725,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -725,10 +725,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
//支付时间 //支付时间
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
String lock = "order_lock:" + syncOrderParam.getOrderCode(); String lock = "order_lock:" + syncOrderParam.getOrderCode();
if (!redisLockUtil.tryLock(lock, 1, 5)) { // if (!redisLockUtil.tryLock(lock, 1, 5)) {
log.error("参数错误"); // log.error("参数错误");
return "fail";//参数错误 // return "fail";//参数错误
} // }
String timePay = syncOrderParam.getPaymentAt(); String timePay = syncOrderParam.getPaymentAt();
KylinOrderTicketVo orderTicketData = mongoTemplate.findOne(Query.query(Criteria.where("orderCode").is(syncOrderParam.getOrderCode())), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName()); KylinOrderTicketVo orderTicketData = mongoTemplate.findOne(Query.query(Criteria.where("orderCode").is(syncOrderParam.getOrderCode())), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
......
...@@ -162,17 +162,18 @@ CREATE TABLE `sweet_manual_notify` ...@@ -162,17 +162,18 @@ CREATE TABLE `sweet_manual_notify`
drop TABLE if exists `sweet_manual_shop`; drop TABLE if exists `sweet_manual_shop`;
CREATE TABLE `sweet_manual_shop` CREATE TABLE `sweet_manual_shop`
( (
`mid` bigint unsigned NOT NULL AUTO_INCREMENT, `mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`manual_shop_id` varchar(200) NOT NULL DEFAULT '0' COMMENT 'manual_shop_id', `manual_shop_id` varchar(200) NOT NULL DEFAULT '0' COMMENT 'manual_shop_id',
`manual_id` varchar(200) NOT NULL DEFAULT '' COMMENT '电子宣传手册id', `manual_id` varchar(200) NOT NULL DEFAULT '' COMMENT '电子宣传手册id',
`title` varchar(200) NOT NULL DEFAULT '' COMMENT '商家名称', `title` varchar(200) NOT NULL DEFAULT '' COMMENT '商家名称',
`pic_url` varchar(200) NOT NULL DEFAULT '' COMMENT '商家图片', `pic_url` varchar(200) NOT NULL DEFAULT '' COMMENT '商家图片',
`describe` longtext NULL COMMENT '商家介绍', `describe` longtext NULL COMMENT '商家介绍',
`is_recommend` tinyint NOT NULL DEFAULT 1 COMMENT '0不推荐 1推荐', `type` tinyint NOT NULL DEFAULT 1 COMMENT '1吃喝 2玩乐',
`sort` tinyint NOT NULL DEFAULT 1 COMMENT '排序字段 数字越大越靠前', `is_recommend` tinyint NOT NULL DEFAULT 1 COMMENT '0不推荐 1推荐',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '0关闭 1开启', `sort` tinyint NOT NULL DEFAULT 0 COMMENT '排序字段 数字越大越靠前',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `status` tinyint NOT NULL DEFAULT 1 COMMENT '0关闭 1开启',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`), PRIMARY KEY (`mid`),
KEY `manual_shop_index` (`manual_shop_id`), KEY `manual_shop_index` (`manual_shop_id`),
KEY `manual_id_index` (`manual_id`), KEY `manual_id_index` (`manual_id`),
......
...@@ -95,7 +95,7 @@ public class MybatisPlusCodeGenerator { ...@@ -95,7 +95,7 @@ public class MybatisPlusCodeGenerator {
String resourcePath = "/Users/hujiachen/Downloads/tmp"; String resourcePath = "/Users/hujiachen/Downloads/tmp";
String directory = "com.liquidnet.service.sweet"; String directory = "com.liquidnet.service.sweet";
String[] dbTableArray = new String[]{"sweet_artists", "sweet_manual", "sweet_manual_artists","sweet_manual_notify", "sweet_richtext","sweet_stage","sweet_manual_sort"}; String[] dbTableArray = new String[]{"sweet_manual_shop"};
doGenerator(resourcePath, dsc, directory, dbTableArray); doGenerator(resourcePath, dsc, directory, dbTableArray);
} }
......
...@@ -153,7 +153,7 @@ public class SweetAppletController { ...@@ -153,7 +153,7 @@ public class SweetAppletController {
return ResponseDto.success(redisDataUtils.getRichTextRedisData(manualId, type)); return ResponseDto.success(redisDataUtils.getRichTextRedisData(manualId, type));
} }
@DeleteMapping("artistsWatch") @GetMapping("artistsWatch")
@ApiOperation("艺人-想看") @ApiOperation("艺人-想看")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "uid", value = "用户id", required = true), @ApiImplicitParam(type = "query", dataType = "String", name = "uid", value = "用户id", required = true),
...@@ -165,7 +165,7 @@ public class SweetAppletController { ...@@ -165,7 +165,7 @@ public class SweetAppletController {
return ResponseDto.success(); return ResponseDto.success();
} }
@DeleteMapping("artistsSign") @GetMapping("artistsSign")
@ApiOperation("艺人-签售") @ApiOperation("艺人-签售")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "uid", value = "用户id", required = true), @ApiImplicitParam(type = "query", dataType = "String", name = "uid", value = "用户id", required = true),
......
...@@ -3,11 +3,8 @@ package com.liquidnet.service.sweet.controller; ...@@ -3,11 +3,8 @@ package com.liquidnet.service.sweet.controller;
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.sweet.entity.SweetArtists;
import com.liquidnet.service.sweet.entity.SweetManualNotify; import com.liquidnet.service.sweet.entity.SweetManualNotify;
import com.liquidnet.service.sweet.service.ISweetArtistsService;
import com.liquidnet.service.sweet.service.ISweetManualNotifyService; import com.liquidnet.service.sweet.service.ISweetManualNotifyService;
import com.sun.org.apache.xpath.internal.operations.Bool;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
......
package com.liquidnet.service.sweet.controller;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualNotify;
import com.liquidnet.service.sweet.entity.SweetManualShop;
import com.liquidnet.service.sweet.service.ISweetManualNotifyService;
import com.liquidnet.service.sweet.service.ISweetManualShopService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 电子宣传手册商铺表 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-07-29
*/
@RestController
@Api(tags = "电子手册吃喝玩乐")
@RequestMapping("/sweet-manual-shop")
public class SweetManualShopController {
@Autowired
ISweetManualShopService sweetManualShopService;
@GetMapping("list")
@ApiOperation("列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "手册id", required = true),
})
public ResponseDto<List<SweetManualShop>> getList(@RequestParam() String manualId) {
return sweetManualShopService.getList(manualId);
}
@PostMapping("add")
@ApiOperation("添加列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "手册iid", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "title", value = "标题", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "picUrl", value = "图片地址", required = false),
@ApiImplicitParam(type = "query", dataType = "String", name = "describe", value = "描述", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "type", value = "类型 1吃喝 2玩乐", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isRecommend", value = "是否推荐", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "sort", value = "排序", required = true),
})
public ResponseDto<Boolean> add(@RequestParam String manualId,
@RequestParam String title,
@RequestParam String picUrl,
@RequestParam String describe,
@RequestParam Integer type,
@RequestParam Integer isRecommend,
@RequestParam Integer sort) {
return sweetManualShopService.add(manualId, title, picUrl, describe, type, isRecommend, sort);
}
@PostMapping("change")
@ApiOperation("通知列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualShopId", value = "商铺id", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "title", value = "标题", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "picUrl", value = "图片地址", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "describe", value = "描述", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "type", value = "类型 1吃喝 2玩乐", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isRecommend", value = "是否推荐", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "sort", value = "排序", required = true),
})
public ResponseDto<Boolean> change(@RequestParam String manualShopId,
@RequestParam String title,
@RequestParam String picUrl,
@RequestParam String describe,
@RequestParam Integer type,
@RequestParam Integer isRecommend,
@RequestParam Integer sort) {
return sweetManualShopService.change(manualShopId, title, picUrl, describe, type, isRecommend, sort);
}
@DeleteMapping("delete")
@ApiOperation("删除")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualShopId", value = "商铺id", required = true),
})
public ResponseDto<Boolean> delete(@RequestParam() String manualShopId) {
return sweetManualShopService.delete(manualShopId);
}
}
...@@ -23,19 +23,19 @@ public class SweetTemplateController { ...@@ -23,19 +23,19 @@ public class SweetTemplateController {
return sweetTemplateService.sendMsg(); return sweetTemplateService.sendMsg();
} }
@PostMapping("remind") // @PostMapping("remind")
@ApiOperation("提醒记录") // @ApiOperation("提醒记录")
@ApiImplicitParams({ // @ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "openId", value = "微信openId", required = true), // @ApiImplicitParam(type = "form", dataType = "String", name = "openId", value = "微信openId", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "unionId", value = "微信unionId", required = true), // @ApiImplicitParam(type = "form", dataType = "String", name = "unionId", value = "微信unionId", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "performancesId", value = "演出ID", required = true), // @ApiImplicitParam(type = "form", dataType = "String", name = "performancesId", value = "演出ID", required = true),
}) // })
public ResponseDto remind( // public ResponseDto remind(
@RequestParam() String openId, // @RequestParam() String openId,
@RequestParam() String unionId, // @RequestParam() String unionId,
@RequestParam() String performancesId // @RequestParam() String performancesId
) { // ) {
return sweetTemplateService.remind(openId, unionId, performancesId); // return sweetTemplateService.remind(openId, unionId, performancesId);
} // }
} }
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 电子宣传手册商铺表
* </p>
*
* @author liquidnet
* @since 2021-07-29
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetManualShop implements Serializable,Cloneable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* manual_shop_id
*/
private String manualShopId;
/**
* 电子宣传手册id
*/
private String manualId;
/**
* 商家名称
*/
private String title;
/**
* 商家图片
*/
private String picUrl;
/**
* 商家介绍
*/
private String describe;
/**
* 1吃喝 2玩乐
*/
private Integer type;
/**
* 0不推荐 1推荐
*/
private Integer isRecommend;
/**
* 排序字段 数字越大越靠前
*/
private Integer sort;
/**
* 0关闭 1开启
*/
private Integer status;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetManualShop obj = new SweetManualShop();
public static SweetManualShop getNew() {
try {
return (SweetManualShop) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetManualShop();
}
}
}
package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.entity.SweetManualShop;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 电子宣传手册商铺表 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-07-29
*/
public interface SweetManualShopMapper extends BaseMapper<SweetManualShop> {
}
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetManualShop;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 电子宣传手册商铺表 服务类
* </p>
*
* @author liquidnet
* @since 2021-07-29
*/
public interface ISweetManualShopService extends IService<SweetManualShop> {
ResponseDto<List<SweetManualShop>> getList(String manualId);
ResponseDto<Boolean> add(String manualId,String title,String picUrl,String describe,Integer type,Integer isRecommend,Integer sort);
ResponseDto<Boolean> change(String manualShopId,String title,String picUrl,String describe,Integer type,Integer isRecommend,Integer sort);
ResponseDto<Boolean> delete(String manualShopId);
}
package com.liquidnet.service.sweet.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetArtists;
import com.liquidnet.service.sweet.entity.SweetManualShop;
import com.liquidnet.service.sweet.mapper.SweetManualShopMapper;
import com.liquidnet.service.sweet.service.ISweetManualShopService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* 电子宣传手册商铺表 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-07-29
*/
@Service
public class SweetManualShopServiceImpl extends ServiceImpl<SweetManualShopMapper, SweetManualShop> implements ISweetManualShopService {
@Autowired
private SweetManualShopMapper sweetManualShopMapper;
@Override
public ResponseDto<List<SweetManualShop>> getList(String manualId) {
try {
List<SweetManualShop> data = sweetManualShopMapper.selectList(Wrappers.lambdaQuery(SweetManualShop.class).eq(SweetManualShop::getManualId, manualId).eq(SweetManualShop::getStatus, 1));
return ResponseDto.success(data);
} catch (Exception e) {
return ResponseDto.failure();
}
}
@Override
public ResponseDto<Boolean> add(String manualId, String title, String picUrl, String describe, Integer type, Integer isRecommend, Integer sort) {
try {
SweetManualShop sweetManualShop = SweetManualShop.getNew();
sweetManualShop.setManualShopId(IDGenerator.nextSnowId());
sweetManualShop.setManualId(manualId);
sweetManualShop.setTitle(title);
sweetManualShop.setPicUrl(picUrl);
sweetManualShop.setDescribe(describe);
sweetManualShop.setType(type);
sweetManualShop.setIsRecommend(isRecommend);
sweetManualShop.setSort(sort);
sweetManualShop.setStatus(1);
sweetManualShopMapper.insert(sweetManualShop);
return ResponseDto.success();
} catch (Exception e) {
return ResponseDto.failure();
}
}
@Override
public ResponseDto<Boolean> change(String manualShopId, String title, String picUrl, String describe, Integer type, Integer isRecommend, Integer sort) {
try {
SweetManualShop sweetManualShop = SweetManualShop.getNew();
sweetManualShop.setTitle(title);
sweetManualShop.setPicUrl(picUrl);
sweetManualShop.setDescribe(describe);
sweetManualShop.setType(type);
sweetManualShop.setIsRecommend(isRecommend);
sweetManualShop.setSort(sort);
sweetManualShopMapper.update(sweetManualShop,Wrappers.lambdaUpdate(SweetManualShop.class).eq(SweetManualShop::getManualShopId, manualShopId));
return ResponseDto.success();
} catch (Exception e) {
return ResponseDto.failure();
}
}
@Override
public ResponseDto<Boolean> delete(String manualShopId) {
try {
SweetManualShop sweetManualShop = SweetManualShop.getNew();
sweetManualShop.setStatus(0);
sweetManualShopMapper.update(sweetManualShop,Wrappers.lambdaUpdate(SweetManualShop.class).eq(SweetManualShop::getManualShopId, manualShopId));
return ResponseDto.success();
} catch (Exception e) {
return ResponseDto.failure();
}
}
}
package com.liquidnet.service.sweet.service.impl; package com.liquidnet.service.sweet.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient; import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; //import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.sweet.constant.SweetConstant; import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.utils.RedisDataUtils; import com.liquidnet.service.sweet.utils.RedisDataUtils;
import com.liquidnet.service.sweet.vo.SweetRemindVo; import com.liquidnet.service.sweet.vo.SweetRemindVo;
...@@ -104,10 +103,10 @@ public class SweetTemplateServiceImpl { ...@@ -104,10 +103,10 @@ public class SweetTemplateServiceImpl {
return service; return service;
} }
public ResponseDto remind(String openId, String unionId, String performancesId) { // public ResponseDto remind(String openId, String unionId, String performancesId) {
ResponseDto<KylinPerformanceVo> performanceVo = feignKylinPerformanceClient.detail(performancesId); // ResponseDto<KylinPerformanceVo> performanceVo = feignKylinPerformanceClient.detail(performancesId);
KylinPerformanceVo performanceInfo = performanceVo.getData(); // KylinPerformanceVo performanceInfo = performanceVo.getData();
redisDataUtils.setSweetRemind(openId, unionId, performancesId, performanceInfo); // redisDataUtils.setSweetRemind(openId, unionId, performancesId, performanceInfo);
return ResponseDto.success(); // return ResponseDto.success();
} // }
} }
...@@ -4,20 +4,18 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; ...@@ -4,20 +4,18 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; //import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.sweet.constant.SweetConstant; import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.dto.SweetManualAppletDto; import com.liquidnet.service.sweet.dto.SweetManualAppletDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistList2Dto; import com.liquidnet.service.sweet.dto.SweetManualArtistList2Dto;
import com.liquidnet.service.sweet.dto.SweetManualArtistListDto; import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto; import com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto;
import com.liquidnet.service.sweet.vo.SweetRemindVo;
import com.liquidnet.service.sweet.entity.SweetManualNotify; import com.liquidnet.service.sweet.entity.SweetManualNotify;
import com.liquidnet.service.sweet.entity.SweetManualSort; import com.liquidnet.service.sweet.entity.SweetManualSort;
import com.liquidnet.service.sweet.entity.SweetRichtext; import com.liquidnet.service.sweet.entity.SweetRichtext;
import com.liquidnet.service.sweet.mapper.*; import com.liquidnet.service.sweet.mapper.*;
import com.liquidnet.service.sweet.vo.SweetArtistsRelationVo; import com.liquidnet.service.sweet.vo.SweetArtistsRelationVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.*; import java.util.*;
...@@ -227,22 +225,22 @@ public class RedisDataUtils { ...@@ -227,22 +225,22 @@ public class RedisDataUtils {
} }
} }
// 小程序演出提醒 // // 小程序演出提醒
public void setSweetRemind(String openId, String unionId, String performancesId, KylinPerformanceVo performanceInfo) { // public void setSweetRemind(String openId, String unionId, String performancesId, KylinPerformanceVo performanceInfo) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_REMIND.concat(unionId); // String redisKey = SweetConstant.REDIS_KEY_SWEET_REMIND.concat(unionId);
SweetRemindVo sweetRemindVo = SweetRemindVo.getNew(); // SweetRemindVo sweetRemindVo = SweetRemindVo.getNew();
sweetRemindVo.setCreatedAt(DateUtil.getNowTime()); // sweetRemindVo.setCreatedAt(DateUtil.getNowTime());
sweetRemindVo.setPerformancesId(performancesId); // sweetRemindVo.setPerformancesId(performancesId);
sweetRemindVo.setUnionId(unionId); // sweetRemindVo.setUnionId(unionId);
sweetRemindVo.setOpenId(openId); // sweetRemindVo.setOpenId(openId);
//
if (null != performanceInfo) { // if (null != performanceInfo) {
sweetRemindVo.setFieldName(performanceInfo.getFieldName()); // sweetRemindVo.setFieldName(performanceInfo.getFieldName());
sweetRemindVo.setTitle(performanceInfo.getTitle()); // sweetRemindVo.setTitle(performanceInfo.getTitle());
sweetRemindVo.setTimeStart(performanceInfo.getTimeStart()); // sweetRemindVo.setTimeStart(performanceInfo.getTimeStart());
sweetRemindVo.setSellTime(performanceInfo.getSellTime()); // sweetRemindVo.setSellTime(performanceInfo.getSellTime());
} // }
redisUtil.set(redisKey, sweetRemindVo); // redisUtil.set(redisKey, sweetRemindVo);
} // }
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.sweet.mapper.SweetManualShopMapper">
</mapper>
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