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

Commit 07dd3495 authored by 洪全海's avatar 洪全海
parents ce1cd576 db20e679
......@@ -38,6 +38,7 @@ public class AdamAddressesVo implements java.io.Serializable, Cloneable {
}
public AdamAddressesVo copy(AdamAddresses source) {
if (null == source) return this;
this.setAddressesId(source.getAddressesId());
this.setName(source.getName());
this.setPhone(source.getPhone());
......
......@@ -34,6 +34,7 @@ public class AdamEntersVo implements java.io.Serializable, Cloneable {
}
public AdamEntersVo copy(AdamEnters source) {
if (null == source) return this;
this.setEntersId(source.getEntersId());
this.setName(source.getName());
this.setIdCard(source.getIdCard());
......
package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import java.util.List;
......@@ -19,7 +18,7 @@ public interface IAdamAddressesService extends IService<AdamAddresses> {
void add(AdamAddresses adamAddresses);
List<AdamAddresses> list(String uid);
List<AdamAddresses> queryByUid(String uid);
AdamAddresses query(String uid, String addressesId);
......@@ -28,4 +27,6 @@ public interface IAdamAddressesService extends IService<AdamAddresses> {
void edit(AdamAddresses info);
void remove(String uid, String addressesId);
AdamAddressesVo queryDefault(String uid);
}
......@@ -20,7 +20,7 @@ public interface IAdamCollectionService extends IService<AdamCollection> {
AdamCollectBaseVo query(String uid, String type, String contentId);
void del(String uid, String type, String contentId);
void del(String uid, String type, String... contentIds);
boolean queryState(String uid, String type, String contentId);
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import java.util.List;
......@@ -25,4 +26,6 @@ public interface IAdamEntersService extends IService<AdamEnters> {
void edit(AdamEnters info);
void remove(String uid, String entersId);
AdamEntersVo queryDefault(String uid);
}
......@@ -18,5 +18,5 @@ public interface IAdamThirdPartyService extends IService<AdamThirdParty> {
List<AdamThirdPartInfoVo> queryByUid(String uid);
AdamThirdPartInfoVo queryByOpenId(String openId, String platform);
AdamThirdPartInfoVo queryByUidAndPlatform(String uid, String platform);
}
......@@ -9,9 +9,10 @@ public class AdamRedisConst {
public static final String INFO_IDENTITY = ADAM.concat(":identity");
public static final String INFO_IDENTITY_MOBILE = INFO_IDENTITY.concat(":mobile");
public static final String INFO_IDENTITY_THIRD_PARTY = INFO_IDENTITY.concat(":third_party");
public static final String INFO_USER = ADAM.concat(":list:users");
public static final String INFO_USER = ADAM.concat(":list:user");
public static final String INFO_REAL_NAME = ADAM.concat(":list:real_name");
public static final String INFO_THIRD_PARTY = ADAM.concat(":list:third_party");
public static final String INFO_ENTERS = ADAM.concat(":list:enters:");
public static final String INFO_ADDRESSES = ADAM.concat(":list:addresses:");
......
......@@ -4,9 +4,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.service.IAdamAddressesService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
......@@ -66,7 +64,7 @@ public class AdamAddressesController {
String currentUid = CurrentUtil.getCurrentUid();
List<AdamAddressesVo> voList = new ArrayList<>();
adamAddressesService.list(currentUid).forEach(i -> {
adamAddressesService.queryByUid(currentUid).forEach(i -> {
voList.add(AdamAddressesVo.getNew().copy(i));
});
......@@ -78,12 +76,12 @@ public class AdamAddressesController {
@PostMapping("def/{addrId}")
public ResponseDto<Object> def(@PathVariable String addrId) {
String currentUid = CurrentUtil.getCurrentUid();
AdamAddresses addresses = adamAddressesService.query(currentUid, addrId);
if (null == addresses) return ResponseDto.failure(ErrorMapping.get("10106"));
if (!addresses.getIsDefault()) {
adamAddressesService.def(currentUid, addrId);
}
if (!addresses.getIsDefault()) adamAddressesService.def(currentUid, addrId);
return ResponseDto.success();
}
......@@ -129,4 +127,11 @@ public class AdamAddressesController {
return null == addresses ? ResponseDto.failure(ErrorMapping.get(10105)) : ResponseDto.success(AdamAddressesVo.getNew().copy(addresses));
}
@ApiOperationSupport(order = 7)
@ApiOperation(value = "获取默认收获地址")
@PostMapping("query/def")
public ResponseDto<AdamAddressesVo> queryDef() {
return ResponseDto.success(adamAddressesService.queryDefault(CurrentUtil.getCurrentUid()));
}
}
......@@ -56,13 +56,13 @@ public class AdamCollectionController {
@ApiOperation(value = "删除收藏")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "VIDEO,TICKET,SITE,ARTIST,BAND,BRAND,STYLE,GOODS,MUSIC,SONG"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[64]"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentIds", value = "内容ID[多个ID用','分隔]"),
})
@PostMapping("del")
public ResponseDto<Object> del(@RequestParam String type, @RequestParam String contentId) {
public ResponseDto<Object> del(@RequestParam String type, @RequestParam String contentIds) {
// TODO: 2021/4/28 数据校验
adamCollectionService.del(CurrentUtil.getCurrentUid(), type, contentId);
adamCollectionService.del(CurrentUtil.getCurrentUid(), type, contentIds.split(","));
return ResponseDto.success();
}
......
......@@ -4,12 +4,12 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.service.IAdamEntersService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -130,4 +130,11 @@ public class AdamEntersController {
return null == info ? ResponseDto.failure(ErrorMapping.get(10105)) : ResponseDto.success(AdamEntersVo.getNew().copy(info));
}
@ApiOperationSupport(order = 7)
@ApiOperation(value = "获取默认入场人")
@PostMapping("query/def")
public ResponseDto<AdamEntersVo> queryDef() {
return ResponseDto.success(adamEntersService.queryDefault(CurrentUtil.getCurrentUid()));
}
}
......@@ -121,11 +121,11 @@ public class AdamLoginController {
AdamUserInfoVo userInfoVo =
StringUtils.isEmpty(uid) ? adamUserService.register(mobile) : adamUserService.queryByUid(uid);
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
if (userInfoVo.getIsComplete() == 1) {
// if (userInfoVo.getIsComplete() == 1) {
loginInfoVo.setRealNameInfo(adamRealNameService.queryByUid(userInfoVo.getUid()));
loginInfoVo.setThirdPartInfo(adamThirdPartyService.queryByUid(userInfoVo.getUid()));
loginInfoVo.setMemberInfo(adamUserMemberService.getUserMemberInfo(userInfoVo.getUid()));
}
// }
loginInfoVo.setUserInfo(userInfoVo);
Map<String, Object> claimsMap = new HashMap<>();
......@@ -151,11 +151,11 @@ public class AdamLoginController {
AdamUserInfoVo userInfoVo =
StringUtils.isEmpty(uid) ? adamUserService.register(mobile) : adamUserService.queryByUid(uid);
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
if (loginInfoVo.getUserInfo().getIsComplete() == 1) {
// if (loginInfoVo.getUserInfo().getIsComplete() == 1) {
loginInfoVo.setRealNameInfo(adamRealNameService.queryByUid(userInfoVo.getUid()));
loginInfoVo.setThirdPartInfo(adamThirdPartyService.queryByUid(userInfoVo.getUid()));
loginInfoVo.setMemberInfo(adamUserMemberService.getUserMemberInfo(userInfoVo.getUid()));
}
// }
loginInfoVo.setUserInfo(userInfoVo);
Map<String, Object> claimsMap = new HashMap<>();
......@@ -262,11 +262,15 @@ public class AdamLoginController {
}
private String ssoProcess(Map<String, Object> claimsMap) {
redisUtil.delKeysByPrefix(jwtValidator.getSsoRedisKey());
String uid = (String) claimsMap.get("uid");
String uidSso = jwtValidator.getSsoRedisKey().concat(uid);
redisUtil.delKeysByPrefix(uidSso);
String token = jwtValidator.create(claimsMap);
String ssoKey = jwtValidator.getSsoRedisKey().concat(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)));
String ssoKey = uidSso.concat(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)));
redisUtil.set(ssoKey, true, jwtValidator.getExpireTtl() * 60);
......
......@@ -13,6 +13,7 @@ import com.liquidnet.service.adam.service.IAdamRealNameService;
import com.liquidnet.service.adam.service.IAdamThirdPartyService;
import com.liquidnet.service.adam.service.IAdamUserInfoService;
import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
......@@ -25,7 +26,6 @@ import org.springframework.core.env.Environment;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.*;
@ApiSupport(order = 10020)
......@@ -107,19 +107,6 @@ public class AdamUserController {
tagSexVoList.add(AdamTagVo.getNew().setVal("MS09").setDesc("不确定性别"));
tagSexVoList.add(AdamTagVo.getNew().setVal("MS10").setDesc("不在乎性别"));
return ResponseDto.success(tagSexVoList);
// Map<String, String> tagSexVos = new HashMap<>();
// tagSexVos.put("MS00", "其他性别");
// tagSexVos.put("MS01", "男性");
// tagSexVos.put("MS02", "女性");
// tagSexVos.put("MS03", "跨性别女性");
// tagSexVos.put("MS04", "跨性别男性");
// tagSexVos.put("MS05", "双性别者");
// tagSexVos.put("MS06", "性别模糊");
// tagSexVos.put("MS07", "性别流动");
// tagSexVos.put("MS08", "无性别者");
// tagSexVos.put("MS09", "不确定性别");
// tagSexVos.put("MS10", "不在乎性别");
// return ResponseDto.success(tagSexVos);
}
@ApiOperationSupport(order = 4)
......@@ -133,7 +120,7 @@ public class AdamUserController {
// TODO: 2021/5/10
log.info("mobile:{},code:{}", mobile, code);
if (!this.checkSmsCode(mobile, code)) return ResponseDto.failure("验证码无效");
if (!this.checkSmsCode(mobile, code)) return ResponseDto.failure(ErrorMapping.get("10002"));
String uid = CurrentUtil.getCurrentUid();
......@@ -192,8 +179,13 @@ public class AdamUserController {
if (null != force && force) {// 强制解绑,并重新绑定当前账号
return ResponseDto.success(adamUserService.bindTpaForce(currentUid, existUid, parameter));
}
return ResponseDto.failure("第三方账号已绑定其它手机号");
return ResponseDto.failure(ErrorMapping.get("10007"));
}
// 判断该用户是否已绑定同类型第三方账号
AdamThirdPartInfoVo bindThirdPartVo = adamThirdPartyService.queryByUidAndPlatform(currentUid, parameter.getPlatform());
if (null != bindThirdPartVo) return ResponseDto.failure(ErrorMapping.get("10008"));
adamUserService.bindTpa(currentUid, parameter);
return ResponseDto.success(adamThirdPartyService.queryByUid(currentUid));
}
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BsonUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.mapper.AdamAddressesMapper;
import com.liquidnet.service.adam.service.IAdamAddressesService;
......@@ -50,7 +51,7 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamAddresses adamAddresses) {
adamAddresses.setIsDefault(CollectionUtils.isEmpty(this.list(adamAddresses.getUid())));
adamAddresses.setIsDefault(CollectionUtils.isEmpty(this.queryByUid(adamAddresses.getUid())));
mongoTemplate.insert(Collections.singletonList(adamAddresses), AdamAddresses.class.getSimpleName());
......@@ -63,7 +64,7 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
}
@Override
public List<AdamAddresses> list(String uid) {
public List<AdamAddresses> queryByUid(String uid) {
List<AdamAddresses> infoList = new ArrayList<>();
Map<Object, Object> objectMap = redisUtil.hmget(AdamRedisConst.INFO_ADDRESSES.concat(uid));
......@@ -95,7 +96,8 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
public void def(String uid, String addressesId) {
LocalDateTime now = LocalDateTime.now();
LinkedList<Object[]> linkedList = new LinkedList<>();
{// 取消原默认
List<AdamAddresses> addressesList = this.queryByUid(uid);
if (addressesList.size() > 1) {// 取消原默认
AdamAddresses unDeaultAddresses = new AdamAddresses();
unDeaultAddresses.setIsDefault(false);
unDeaultAddresses.setUpdatedAt(now);
......@@ -104,15 +106,17 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
Query.query(Criteria.where("uid").is(uid).and("isDefault").is(true)).getQueryObject(),
object, new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
AdamAddresses addresses = BsonUtil.toBean(doc, AdamAddresses.class);
if (null != doc) {
AdamAddresses unDefaultAfterAddresses = BsonUtil.toBean(doc, AdamAddresses.class);
List<Object> paramList = new ArrayList<>();
paramList.add(unDeaultAddresses.getIsDefault());
paramList.add(unDeaultAddresses.getUpdatedAt());
paramList.add(addresses.getAddressesId());
linkedList.add(paramList.toArray());
List<Object> paramList = new ArrayList<>();
paramList.add(unDeaultAddresses.getIsDefault());
paramList.add(unDeaultAddresses.getUpdatedAt());
paramList.add(unDefaultAfterAddresses.getAddressesId());
linkedList.add(paramList.toArray());
redisUtil.hset(AdamRedisConst.INFO_ADDRESSES.concat(addresses.getUid()), addresses.getAddressesId(), addresses);
redisUtil.hset(AdamRedisConst.INFO_ADDRESSES.concat(unDefaultAfterAddresses.getUid()), unDefaultAfterAddresses.getAddressesId(), unDefaultAfterAddresses);
}
}
{// 设置新默认
AdamAddresses defaultAddresses = new AdamAddresses();
......@@ -150,7 +154,7 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
);
// TODO: 2021/5/14
List<Object> paramList = Arrays.asList(null);
List<Object> paramList = Arrays.asList();
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_addresses.edit", paramList.toArray()));
......@@ -175,4 +179,22 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
redisUtil.hdel(AdamRedisConst.INFO_ADDRESSES.concat(uid), addressesId);
}
@Override
public AdamAddressesVo queryDefault(String uid) {
List<AdamAddresses> addressesList = this.queryByUid(uid);
if (!CollectionUtils.isEmpty(addressesList)) {
AdamAddresses defaultAddr = null;
for (AdamAddresses addresses : addressesList) {
if (addresses.getIsDefault()) {
return AdamAddressesVo.getNew().copy(addresses);
}
defaultAddr = null == defaultAddr ? addresses :
addresses.getCreatedAt().isAfter(defaultAddr.getCreatedAt()) ? addresses : defaultAddr;
}
return AdamAddressesVo.getNew().copy(defaultAddr);
}
return null;
}
}
......@@ -91,13 +91,13 @@ public class AdamCollectionServiceImpl extends ServiceImpl<AdamCollectionMapper,
}
@Override
public void del(String uid, String type, String contentId) {
public void del(String uid, String type, String... contentIds) {
AdamCollectBaseVo delVo = AdamCollectBaseVo.getNew();
delVo.setState(2);
delVo.setUpdatedAt(DateUtil.getNowTime());
mongoTemplate.getCollection(AdamCollectBaseVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(uid).and("type").is(type)
.and("contentId").is(contentId).and("state").is(1)).getQueryObject(),
.and("contentId").in(contentIds).and("state").is(1)).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(delVo)));
}
......
......@@ -2,13 +2,12 @@ package com.liquidnet.service.adam.service.impl;
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.commons.lang.util.BsonUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.mapper.AdamEntersMapper;
import com.liquidnet.service.adam.service.IAdamEntersService;
import com.liquidnet.service.base.SqlMapping;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
......@@ -113,26 +112,29 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
public void def(String uid, String entersId) {
LocalDateTime now = LocalDateTime.now();
LinkedList<Object[]> linkedList = new LinkedList<>();
{// 取消原默认
List<AdamEnters> adamEnters = this.queryByUid(uid);
if (adamEnters.size() > 1) {// 取消原默认
AdamEnters unDeaultEnters = new AdamEnters();
unDeaultEnters.setIsDefault(false);
unDeaultEnters.setUpdatedAt(now);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(unDeaultEnters));
Document doc = mongoTemplate.getCollection(AdamEnters.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("isDefault").is(true)).getQueryObject(),
Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
object, new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
AdamEnters enters = BsonUtil.toBean(doc, AdamEnters.class);
if (null != doc) {
AdamEnters enters = BsonUtil.toBean(doc, AdamEnters.class);
List<Object> paramList = new ArrayList<>();
paramList.add(unDeaultEnters.getIsDefault());
paramList.add(unDeaultEnters.getUpdatedAt());
paramList.add(enters.getEntersId());
List<Object> paramList = new ArrayList<>();
paramList.add(unDeaultEnters.getIsDefault());
paramList.add(unDeaultEnters.getUpdatedAt());
paramList.add(enters.getEntersId());
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_enters.update.is_default", paramList.toArray()));
linkedList.add(paramList.toArray());
linkedList.add(paramList.toArray());
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(enters.getUid()), enters.getEntersId(), enters);
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(enters.getUid()), enters.getEntersId(), enters);
}
}
{// 设置新默认
AdamEnters defaultEnters = new AdamEnters();
......@@ -204,4 +206,22 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
redisUtil.hdel(AdamRedisConst.INFO_ENTERS.concat(uid), entersId);
}
@Override
public AdamEntersVo queryDefault(String uid) {
List<AdamEnters> list = this.queryByUid(uid);
if (!CollectionUtils.isEmpty(list)) {
AdamEnters defaultVo = null;
for (AdamEnters l : list) {
if (l.getIsDefault()) {
return AdamEntersVo.getNew().copy(l);
}
defaultVo = null == defaultVo ? l :
l.getCreatedAt().isAfter(defaultVo.getCreatedAt()) ? l : defaultVo;
}
return AdamEntersVo.getNew().copy(defaultVo);
}
return null;
}
}
......@@ -7,14 +7,19 @@ import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.mapper.AdamRealNameMapper;
import com.liquidnet.service.adam.service.IAdamRealNameService;
import com.liquidnet.service.base.SqlMapping;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
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.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* <p>
......@@ -30,6 +35,8 @@ public class AdamRealNameServiceImpl extends ServiceImpl<AdamRealNameMapper, Ada
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
RabbitTemplate rabbitTemplate;
@Override
public AdamRealInfoVo queryByUid(String uid) {
......@@ -44,10 +51,20 @@ public class AdamRealNameServiceImpl extends ServiceImpl<AdamRealNameMapper, Ada
}
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamRealName realName) {
mongoTemplate.insert(Collections.singletonList(realName), AdamRealInfoVo.class.getSimpleName());
// TODO: 2021/5/18 sql to mq
List<Object> paramList = Arrays.asList(
realName.getRealNameId(),
realName.getUid(),
realName.getType(),
realName.getName(),
realName.getIdCard(),
realName.getState(),
realName.getCreatedAt()
);
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_real_name.add", paramList.toArray()));
}
}
......@@ -38,15 +38,20 @@ public class AdamThirdPartyServiceImpl extends ServiceImpl<AdamThirdPartyMapper,
thirdPartInfoVos = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamThirdPartInfoVo.class);
redisUtil.hset(AdamRedisConst.INFO_THIRD_PARTY, uid, thirdPartInfoVos);
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.hset(AdamRedisConst.INFO_THIRD_PARTY, uid, thirdPartInfoVos);
}
return thirdPartInfoVos;
}
@Override
public AdamThirdPartInfoVo queryByOpenId(String openId, String platform) {
return mongoTemplate.findOne(Query.query(Criteria.where("openId").is(openId)
.and("platform").is(platform).and("state").is(1)),
AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
public AdamThirdPartInfoVo queryByUidAndPlatform(String uid, String platform) {
List<AdamThirdPartInfoVo> voList = this.queryByUid(uid);
if (!CollectionUtils.isEmpty(voList)) {
for (AdamThirdPartInfoVo vo : voList) {
if (platform.equals(vo.getPlatform())) {
return vo;
}
}
}
return null;
}
}
......@@ -68,8 +68,8 @@ public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, Ada
userInfoVo.getTagMe(),
userInfoVo.getUid()
);
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.get(userInfoVo.getIsComplete() == 0 ? "adam_user_info.add" : "adam_user_info.edit", paramList.toArray()));
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get(userInfoVo.getIsComplete() == 0 ? "adam_user_info.add" : "adam_user_info.edit", paramList.toArray()));
redisUtil.hset(AdamRedisConst.INFO_USER, userInfoVo.getUid(), userInfoVo);
}
......
......@@ -40,7 +40,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
......@@ -84,15 +83,6 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
@Override
public String queryUidByRedis(String mobile) {
return (String) redisUtil.hget(AdamRedisConst.INFO_IDENTITY_MOBILE, mobile);
// AdamUserInfoVo userInfoVo;
// if (null == (userInfoVo = (AdamUserInfoVo) redisUtil.hget(AdamRedisConst.INFO_MOBILES, mobile))) {
// userInfoVo = mongoTemplate.findOne(Query.query(Criteria.where("mobile").is(mobile).and("state").is(1)),
// AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
//
// redisUtil.hset(AdamRedisConst.INFO_MOBILES, mobile, userInfoVo);
// }
// return userInfoVo;
}
@Override
......@@ -101,16 +91,24 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
}
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public AdamUserInfoVo register(String mobile) {
LocalDateTime now = LocalDateTime.now();
String nowStr = DateUtil.format(now, DateUtil.Formatter.yyyyMMddHHmmss);
AdamUserInfoVo userInfoVo = AdamUserInfoVo.getNew();
userInfoVo.setMobile(mobile);
userInfoVo.setUid(IDGenerator.nextSnowId() + "");
userInfoVo.setIsComplete(0);
userInfoVo.setState(1);
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
userInfoVo.setCreateAt(DateUtil.getNowTime());
userInfoVo.setCreateAt(nowStr);
Collection<AdamUserInfoVo> vos = mongoTemplate.insert(Collections.singletonList(userInfoVo), AdamUserInfoVo.class.getSimpleName());
AdamUserInfoVo insert = mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
List<Object> paramList = Arrays.asList(userInfoVo.getUid(), userInfoVo.getMobile(), userInfoVo.getState(), now);
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_user.add", paramList.toArray()));
redisUtil.hset(AdamRedisConst.INFO_IDENTITY_MOBILE, mobile, userInfoVo.getUid());
......@@ -133,7 +131,7 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
userInfoVo.setCreateAt(nowStr);
Collection<AdamUserInfoVo> userInfoVos = mongoTemplate.insert(Collections.singletonList(userInfoVo), AdamUserInfoVo.class);
AdamUserInfoVo insert = mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
} else {
userInfoVo = this.queryByUid(uid);
}
......@@ -144,17 +142,22 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
thirdPartInfoVo.setUid(userInfoVo.getUid());
thirdPartInfoVo.setState(1);// 1-绑定
// boolean userInfoSetRst = redisUtil.hset(AdamRedisConst.INFO_MOBILES, thirdPartParam.getMobile(), userInfoVo);
// boolean thirdPartSetRst = redisUtil.hset(AdamRedisConst.INFO_THIRD_PARTY.concat(thirdPartInfoVo.getPlatform()), thirdPartInfoVo.getOpenId(), thirdPartInfoVo);
AdamThirdPartInfoVo insert = mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
Collection<AdamThirdPartInfoVo> thirdPartInfoVos = mongoTemplate.insert(Collections.singletonList(thirdPartInfoVo), AdamThirdPartInfoVo.class);
// TODO: 2021/5/14 Execute sql to mq
List<Object> paramList = Arrays.asList(
thirdPartInfoVo.getUid(),
thirdPartInfoVo.getOpenId(),
thirdPartInfoVo.getAvatar(),
thirdPartInfoVo.getNickname(),
thirdPartInfoVo.getPlatform(),
thirdPartInfoVo.getState(),
thirdPartInfoVo.getCreatedAt()
);
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_third_party.add", paramList.toArray()));
redisUtil.hset(AdamRedisConst.INFO_IDENTITY_THIRD_PARTY, param.getPlatform().concat(param.getOpenId()), userInfoVo.getUid());
// List<Object> paramList = Arrays.asList();
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_user.add", paramList.toArray()));
return userInfoVo;
}
......@@ -204,6 +207,12 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
return thirdPartInfoVos;
}
/**
* 解绑第三方账号操作
*
* @param uid
* @param platform
*/
private void unBindTpaProcess(String uid, String platform) {
LocalDateTime now = LocalDateTime.now();
String nowStr = DateUtil.format(now, DateUtil.Formatter.yyyyMMddHHmmss);
......@@ -211,12 +220,14 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
AdamThirdPartInfoVo unBindThirdPartInfoVo = AdamThirdPartInfoVo.getNew();
unBindThirdPartInfoVo.setUpdatedAt(nowStr);
unBindThirdPartInfoVo.setState(2);// 2-解绑
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(unBindThirdPartInfoVo));
mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName()).findOneAndUpdate(
mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(uid).and("platform").is(platform).and("state").is(1)).getQueryObject(),
object
new BasicDBObject("$set", mongoConverter.convertToMongoType(unBindThirdPartInfoVo))
);
// TODO: 2021/5/14 Execute sql to mq
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_third_party.unbind", now, uid, platform));
}
@Override
......@@ -251,7 +262,6 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
List<Object> paramList = Arrays.asList(closeUserInfoVo.getState(), now, now, uid);
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_user.close", paramList.toArray()));
// TODO: 2021/5/14 Execute sql to mq
redisUtil.hdel(AdamRedisConst.INFO_USER, uid);
......@@ -306,9 +316,6 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
redisUtil.hset(AdamRedisConst.INFO_REAL_NAME, uid, realInfoVo);
// TODO: 2021/5/18 修改UserInfoVo,同步redis
return realInfoVo;
}
}
......@@ -4,7 +4,8 @@
10004=
10005=手机号获取失败,请更换登录方式
10006=第三方账号未注册
10007=
10007=第三方账号已绑定其它账号
10008=已绑定同类型第三方账号
10101=
......
adam_real_name.add=INSERT INTO ln_adam.adam_real_name (real_name_id, `uid`, `type`, `name`, id_card, `state`, created_at) VALUES (?,?,?,?,?,?,?)
\ No newline at end of file
adam_third_party.add=insert into ln_adam.adam_third_party (`uid`, open_id, avatar, nickname, platform, `state`, created_at, updated_at, `comment`) values (?,?,?,?,?,?,?,?,?)
\ No newline at end of file
adam_third_party.add=INSERT INTO ln_adam.adam_third_party (`uid`, open_id, avatar, nickname, platform, `state`, created_at) values (?,?,?,?,?,?,?)
adam_third_party.unbind=UPDATE ln_adam.adam_third_party SET `state`=2, updated_at=? WHERE `uid`=? AND platform=? AND `state`=1
\ No newline at end of file
adam_user.add=INSERT INTO ln_adam.adam_user (`uid`, mobile, passwd, pay_code, `state`, created_at, updated_at, closed_at, `comment`) VALUES (?,?,?,?,?,?,?,?,?)
adam_user.add=INSERT INTO ln_adam.adam_user (`uid`, mobile, `state`, created_at) VALUES (?,?,?,?)
adam_user.close=UPDATE ln_adam.adam_user SET `state`=2, updated_at=?, closed_at=? WHERE `uid`=?
\ No newline at end of file
......@@ -34,14 +34,14 @@ public class BannersParam implements Serializable {
private String coverImg;
@ApiModelProperty(value = "跳转类型 具体类型有接口提供", required = true, example = "6")
@Min(value = 1, message = "请选择跳转类型")
@Min(value = 0, message = "请选择跳转类型")
private Integer targetType;
@ApiModelProperty(value = "跳转目标id或者url 不跳转则为空", example = "https://img.zhengzai.tv/partner/2019/05/14/5cda2d0520177.png")
private String targetObj;
@ApiModelProperty(value = "是否上线展示 0下线 1上线", required = true, example = "1", allowableValues = "0,1")
@Min(value = 1, message = "请选择是否上线")
@Min(value = 0, message = "请选择是否上线")
private Integer isOnline;
@ApiModelProperty(value = "上线开始时间", example = "2021-05-01 11:22:33")
......@@ -60,14 +60,14 @@ public class BannersParam implements Serializable {
@ApiModelProperty(value = "备注", example = "这是一个演出推广的banner")
private String remarks;
@ApiModelProperty(value = "展示的位置 多选 数组", example = "[\"1\", \"4\", \"3\", \"5\", \"6\", \"8\"]")
@ApiModelProperty(value = "展示的位置 多选 数组", example = "[\"1\", \"3\", \"5\", \"6\", \"8\"]")
@NotEmpty(message = "请选择展示位置")
private List positionList;
@ApiModelProperty(value = "推广省份 多选 数组", example = "[\"1\", \"2\", \"5\"]")
@ApiModelProperty(value = "推广省份 多选 数组", example = "[\"110000\", \"120000\", \"210100\"]")
private List provincesList;
@ApiModelProperty(value = "推广省份 多选 数组", example = "[\"北京\", \"天津\", \"上海\"]")
@ApiModelProperty(value = "推广省份 多选 数组", example = "[\"北京市\", \"天津市\", \"沈阳市\"]")
private List provincesNameList;
@JsonIgnore
......
......@@ -9,6 +9,8 @@ import java.time.format.DateTimeFormatter;
@Data
public class PerformancePartnerListParam {
@ApiModelProperty(value = "第三方用户id", example = "1")
private String merchantId;
@ApiModelProperty(value = "演出名称", example = "")
private String title;
@ApiModelProperty(value = "-2全部(不包括未提交)0未发布演出列表;3审核通过;6上线;7下架;8已结束;", example = "0")
......@@ -45,18 +47,22 @@ public class PerformancePartnerListParam {
case 1: {
orderItem = "created_at";
orderSc = "desc";
break;
}
case 2: {
orderItem = "created_at";
orderSc = "asc";
break;
}
case 3: {
orderItem = "time_start";
orderSc = "desc";
break;
}
case 4: {
orderItem = "time_start";
orderSc = "asc";
break;
}
}
......
......@@ -9,7 +9,7 @@ import java.math.BigDecimal;
@ApiModel
@Data
public class TicketMemberAuditParam {
@ApiModelProperty(value = "演出id")
@ApiModelProperty(value = "id")
private String ticketsId;
@ApiModelProperty(value = "演出名称")
private String title;
......
......@@ -100,6 +100,7 @@
kylin_ticket_status AS ts
LEFT JOIN kylin_ticket_relations AS tr ON tr.ticket_id = ts.ticket_id
LEFT JOIN kylin_ticket_time_relation AS ttr ON tr.times_id = ttr.times_id
GROUP BY ttr.performance_id
) AS t ON p.performances_id = t.performance_id
LEFT JOIN(
SELECT
......@@ -113,6 +114,7 @@
WHERE
ots.`status` = 0
OR ots.`status` = 1
GROUP BY ote.performance_id
) AS ot ON ot.performance_id = p.performances_id
<where>
<if test="title!=''">
......@@ -135,6 +137,7 @@
<if test="status=='0'">
AND ps.STATUS = #{status}
</if>
AND pr.merchant_id = #{merchantId}
</where>
ORDER BY #{orderItem} #{orderSc}
</select>
......@@ -175,6 +178,7 @@
kylin_ticket_status AS ts
LEFT JOIN kylin_ticket_relations AS tr ON tr.ticket_id = ts.ticket_id
LEFT JOIN kylin_ticket_time_relation AS ttr ON tr.times_id = ttr.times_id
GROUP BY ttr.performance_id
) AS t ON p.performances_id = t.performance_id
LEFT JOIN(
SELECT
......@@ -188,6 +192,7 @@
WHERE
ots.`status` = 0
OR ots.`status` = 1
GROUP BY ote.performance_id
) AS ot ON ot.performance_id = p.performances_id
<where>
<if test="title!=''">
......
......@@ -540,4 +540,17 @@ CREATE TABLE `kylin_buy_notice`
KEY `kylin_order_tickets_refund_uid_index` (`buy_notice_id`),
PRIMARY KEY (`mid`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT '购票须知表';
\ No newline at end of file
DEFAULT CHARSET = utf8mb4 COMMENT '购票须知表';
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '1', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c45722882a13.png', '门票为有价证券,并非商品,一经售出不予退换。因“不可抗力”导致的演出取消或延期除外。', '1', '0', '2019-01-29 13:51:42', '2019-01-29 13:51:42', '门票不退不换');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '2', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456e93db0b9.png', '本场演出不设座位,均为站席观演。', '1', '0', '2019-01-29 13:51:42', '2019-01-29 13:51:42', '仅设站席');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '3', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456e5c27644.png', '为防止不法分子利用票务转让诈骗钱款,建议广大乐迷不要进行个人间票务买卖,不要轻易相信来源不明的转票,以免自身利益受到侵害。', '1', '0', '2019-01-29 13:51:42', '2019-01-29 13:51:42', '禁止个人票务买卖');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '4', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456d9482fb9.png', '本场演出凭纸质票验票入场,不支持选座,根据支付顺序择优安排。', '1', '0', '2019-01-29 13:51:42', '2019-01-29 13:51:42', '凭票入场');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '5', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456e163f0e5.png', '本场演出请按照票面标注对号入座。', '1', '0', '2019-01-29 13:51:42', '2019-01-29 13:51:42', '对号入座');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '6', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456d9482fb9.png', '凭订单二维码或手机号兑票入场,二维码或手机号请勿泄露,以免影响入场。个人原因导致的信息泄露,主办方/平台方不承担任何责任。', '1', '0', '2019-01-29 13:51:42', '2019-01-29 13:51:42', '电子票');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '7', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456d9482fb9.png', '电子票购票人须持本人身份证原件兑换实体票后验票入场。请不要将身份证信息提供给他人,因此导致的损失,主办方/平台方不承担任何责任。', '1', '0', '2019-01-29 13:51:42', '2019-01-29 13:51:42', '凭身份证原件兑票');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '8', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/06/17/5d0763c262a30.png', '凭实体票验票入场的演出,门票请妥善保管,忘带、丢失、损坏等情况,主办方/平台方无法办理补票。', '1', '0', '2019-06-17 18:06:06', '2019-06-17 18:06:06', '门票丢失不补');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '9', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/06/17/5d0764a613742.png', '请通过官方平台【正在现场】购买门票。通过个人转让购买的门票,若遇到假票、一票多卖等情况,导致的损失,主办方/平台方不承担任何责任。', '1', '0', '2019-06-17 18:06:06', '2019-06-17 18:06:06', '购买官方门票');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '10', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/06/17/5d0764c565d9e.png', '学生票仅适用于年龄在25周岁以下的在校生。学生票购票人须持本人学生证或校园卡等有效学生证件兑换实体票后验票入场,无法提供有效学生证件则需补全差价。', '1', '0', '2019-06-17 18:06:06', '2019-06-17 18:06:06', '学生票');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '11', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/06/17/5d07647eaa55f.png', '每场现场票数量由场地方决定,具体请到现场询问。', '1', '0', '2019-06-17 18:06:06', '2019-06-17 18:06:06', '现场票');
insert into `ln_kylin`.`kylin_buy_notice` ( `buy_notice_id`, `img_url`, `message`, `status`, `sort`, `created_at`, `updated_at`, `title`) values ( '12', 'http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456d9482fb9.png', '电子票购票人须持本人身份证原件和订单二维码验票入场。请不要将身份证信息和订单二维码提供给他人,因此导致的损失,主办方/平台方不承担任何责任。', '1', '0', '2019-01-29 13:51:42', '2019-01-29 13:51:42', '凭身份证原件兑票');
\ No newline at end of file
......@@ -36,7 +36,14 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
......@@ -34,7 +34,7 @@ public class KylinBannersController {
@GetMapping("")
@ApiOperation("banner列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "position", value = "展示位置 1首页 3周边 4演出 5积分商城 6YB 8视频", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "position", value = "展示位置 1首页 3周边 5积分商城 6YB 8视频", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "provinceName", value = "城市名称"),
})
public ResponseDto<List<BannersVo>> blist(
......
......@@ -38,7 +38,8 @@ public class KylinPerformancesController {
@ApiImplicitParam(type = "query", dataType = "int", name = "days", value = "时间范围 几天 今天1 三天3。。。"),
@ApiImplicitParam(type = "query", dataType = "String", name = "title", value = "演出名称"),
@ApiImplicitParam(type = "query", dataType = "String", name = "cityName", value = "城市名称"),
@ApiImplicitParam(type = "query", dataType = "int", name = "type", value = "演出类型 1音乐节 2演唱会 3小型演出 4展览 6舞台剧"),
@ApiImplicitParam(type = "query", dataType = "int", name = "type", value = "演出类型 101音乐节 102小型演出(livehouse演出) 103巡演 演出类型只有这几个了"),
// @ApiImplicitParam(type = "query", dataType = "int", name = "type", value = "演出类型 1音乐节 2演唱会 3小型演出 4展览 6舞台剧"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isDiscount", value = "是否会员优惠 0 1"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isAdvance", value = "是否优先 0 1"),
......@@ -108,7 +109,7 @@ public class KylinPerformancesController {
@RequestParam("longitudeFrom") Double longitudeFrom
) {
HashMap<String, Object> result = kylinPerformancesService.detail(performancesId, latitudeFrom, longitudeFrom);
if (result.size() > 0) {
if (result != null) {
return ResponseDto.success(result);
} else {
return ResponseDto.failure("获取演出详情失败");
......
......@@ -5,8 +5,8 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.dto.vo.BannersVo;
import com.liquidnet.service.kylin.dto.vo.PagerVo;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.service.impl.admin.KylinBannersServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -57,8 +57,8 @@ public class KylinBannersAdminController {
@GetMapping("{bannersId}")
@ApiOperation("banner详情")
public ResponseDto<KylinBanners> detail(@PathVariable("bannersId") String bannersId) {
KylinBanners result = null;
public ResponseDto<BannersVo> detail(@PathVariable("bannersId") String bannersId) {
BannersVo result = null;
result = kylinBannersServiceImpl.detail(bannersId);
if (null != result) {
return ResponseDto.success(result);
......
......@@ -163,7 +163,7 @@ public class KylinPerformancesAdminController {
@GetMapping(value = "member/list")
@ApiOperation(value = "待审核会员演出列表", position = 11)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<PerformanceTitleDao>> performanceMemberList(@RequestParam("title") @NotNull String title,
public ResponseDto<PageInfo<PerformanceTitleDao>> performanceMemberList(@RequestParam(value = "title" , required=false) String title,
@RequestParam("page") @NotNull int page,
@RequestParam("size") @NotNull int size) {
PageInfo<PerformanceTitleDao> result = performancesAdminService.performanceMemberList(title, page, size);
......
......@@ -53,7 +53,7 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
HashMap<String, Object> info = new HashMap<>();
// 排序 分页
Sort sortName = null; // 默认开票越早的在上面
Sort sortName = Sort.by(Sort.Direction.ASC, "timeStart"); // 默认开票越早的在上面
if (sort.equals("DESC")) {
if (!orderBy.isEmpty()) {
sortName = Sort.by(Sort.Direction.DESC, orderBy);
......@@ -62,8 +62,6 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
if (!orderBy.isEmpty()) {
sortName = Sort.by(Sort.Direction.ASC, orderBy);
}
} else {
sortName = Sort.by(Sort.Direction.ASC, "timeStart");
}
Pageable pageable = PageRequest.of(page - 1, size, sortName);
......@@ -185,15 +183,19 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
PerformanceVo.class,
PerformanceVo.class.getSimpleName()
);
roadShowId = performancesInfo.getRoadShowId();
if (performancesInfo == null) {
return null;
} else {
roadShowId = performancesInfo.getRoadShowId();
redisUtil.hset(KylinRedisConst.PERFORMANCES, performancesId, performancesInfo);
redisUtil.hset(KylinRedisConst.PERFORMANCES, performancesId, performancesInfo);
}
} else {
roadShowId = performancesInfo.getRoadShowId();
}
List<PerformanceVo> roadList = new ArrayList();
if (Integer.parseInt(roadShowId) > 0) {
if (!roadShowId.isEmpty()) {
roadList = mongoTemplate.find(
Query.query(Criteria.where("roadShowId").is(roadShowId)),
PerformanceVo.class,
......
......@@ -68,6 +68,12 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
String bannersId = IDGenerator.nextSnowId().toString();
LocalDateTime createdAt = LocalDateTime.now();
String createdAtString = createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineStartTime())) {
bannersParam.setOnlineStartTime(null);
}
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineEndTime())) {
bannersParam.setOnlineEndTime(null);
}
// 入数据库
bannersMapper.insert(bannersParam.getFields(bannersId, createdAtString));
......@@ -101,7 +107,7 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
bannersVo.setTargetObj("");
}
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineStartTime())) {
bannersVo.setOnlineEndTime("");
bannersVo.setOnlineStartTime("");
}
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineEndTime())) {
bannersVo.setOnlineEndTime("");
......@@ -132,6 +138,12 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
KylinBanners params = bannersParam.getFields(null, null);
params.setUpdatedAt(updatedAtString);
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineStartTime())) {
params.setOnlineStartTime(null);
}
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineEndTime())) {
params.setOnlineEndTime(null);
}
// 入数据库
bannersMapper.update(params, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
......@@ -181,15 +193,23 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
}
}
public KylinBanners detail(String bannersId) {
public BannersVo detail(String bannersId) {
KylinBanners data = bannersMapper.selectOne(new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId).eq("is_deleted", 1));
List<String> positionList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 1);
List<String> provincesList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 2);
data.setPositionList(positionList);
data.setProvincesList(provincesList);
BannersVo bannersVo = new BannersVo();
if (null != data) {
List<String> positionList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 1);
List<String> provincesList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 2);
data.setPositionList(positionList);
data.setProvincesList(provincesList);
bannersVo = new BannersVo();
BeanUtils.copyProperties(data, bannersVo);
}else {
return null;
}
return data;
return bannersVo;
}
public List<BannerDetailsListDao> bannerList(BannersSearchParam bannersSearchParam) {
......
......@@ -35,6 +35,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
......@@ -164,7 +165,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
performanceVoTask.performanceVoStatus(performancesId);
}
}
redisUtil.hdel(KylinRedisConst.PERFORMANCES,performancesId);
redisUtil.hdel(KylinRedisConst.PERFORMANCES, performancesId);
} else if (status == 4) {
log.info(" PERFORMANCE 演出审核 拒绝");
auditStatus = 2;
......@@ -252,7 +253,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
Query.query(Criteria.where("performancesId").is(performancesId)).getQueryObject(),
object
);
redisUtil.hdel(KylinRedisConst.PERFORMANCES,performancesId);
redisUtil.hdel(KylinRedisConst.PERFORMANCES, performancesId);
return true;
} catch (Exception e) {
return false;
......@@ -381,6 +382,11 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
@Override
public PerformanceMemberAuditDao performanceMemberAuditInfo(String performanceId, int status) {
PerformanceMemberAuditParam memberAuditVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId).and("status").is(status)), PerformanceMemberAuditParam.class, PerformanceMemberAuditParam.class.getSimpleName());
if (memberAuditVo == null) {
return null;
}
PerformanceMemberAuditDao performanceMemberAuditDao = new PerformanceMemberAuditDao();
PerformanceTitleDao data = performancesMapper.misPerformanceMemberInfo(performanceId);
List<TicketMemberAuditDao> ticketData = performancesMapper.misTicketMemberInfo(performanceId);
......@@ -389,20 +395,21 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
performanceMemberAuditDao.setIsExclusive(0);
performanceMemberAuditDao.setIsMember(0);
for (TicketMemberAuditDao item : ticketData) {
if (item.getIsMember() == 1) {
if (memberAuditVo.getIsMember() == 1) {
performanceMemberAuditDao.setIsMember(1);
}
if (item.getIsExclusive() == 1) {
if (memberAuditVo.getIsExclusive() == 1) {
performanceMemberAuditDao.setIsExclusive(1);
}
}
PerformanceMemberAuditParam memberAuditVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId).and("status").is(status)), PerformanceMemberAuditParam.class, PerformanceMemberAuditParam.class.getSimpleName());
for (TicketMemberAuditParam item : memberAuditVo.getTicketMemberAudit()) {
for (TicketMemberAuditDao item2 : ticketData) {
if (item.getTicketsId().equals(item2.getTicketsId())) {
item2.setAdvanceMinuteMember(item.getAdvanceMinuteMember());
item2.setPriceDiscountMember(item.getPriceDiscountMember());
item2.setMemberLimitCount(item.getMemberLimitCount());
item2.setIsMember(performanceMemberAuditDao.getIsMember());
item2.setIsExclusive(performanceMemberAuditDao.getIsExclusive());
break;
}
}
......@@ -418,7 +425,17 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
LocalDateTime updatedAt = LocalDateTime.now();
if (status == 3) {
PerformanceMemberAuditParam memberAuditVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId).and("status").is(1)), PerformanceMemberAuditParam.class, PerformanceMemberAuditParam.class.getSimpleName());
int isAdvance = 0;
int isDiscount = 0;
for (TicketMemberAuditParam item : memberAuditVo.getTicketMemberAudit()) {
if (item.getPriceDiscountMember().compareTo(new BigDecimal("0")) == 1) {
isDiscount = 1;
}
if (item.getAdvanceMinuteMember() > 0) {
isAdvance = 1;
}
//修改数据库
KylinTicketStatus ticketStatus = new KylinTicketStatus();
ticketStatus.setMemberLimitCount(item.getMemberLimitCount());
......@@ -432,11 +449,16 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
tickets.setUpdatedAt(updatedAt);
ticketsMapper.update(tickets, new UpdateWrapper<KylinTickets>().eq("tickets_id", item.getTicketsId()));
KylinTickets ticketsTime = ticketsMapper.selectOne(new UpdateWrapper<KylinTickets>().eq("tickets_id", item.getTicketsId()));
//修改mongo
HashMap<String, Object> map = new HashMap<>();
map.put("isMember", memberAuditVo.getIsMember());
map.put("isExclusive", memberAuditVo.getIsExclusive());
map.put("updatedAt", updatedAt);
map.put("memberPrice", item.getAdvanceMinuteMember());
map.put("memberTimeStart", item.getPriceDiscountMember());
map.put("memberPrice", ticketsTime.getPrice().subtract(item.getPriceDiscountMember()));
map.put("memberTimeStart", ticketsTime.getTimeStart().plusMinutes(-ticketsTime.getAdvanceMinuteMember()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
map.put("limitCountMember", item.getMemberLimitCount());
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(TicketVo.class.getSimpleName()).updateOne(
......@@ -444,8 +466,17 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
object);
}
performanceVoTask.performanceVoStatus(performanceId);
redisUtil.hdel(KylinRedisConst.PERFORMANCES ,performanceId);
//修改 演出vo
HashMap<String, Object> mapPerformanceVo = new HashMap<>();
mapPerformanceVo.put("isMember", memberAuditVo.getIsMember());
mapPerformanceVo.put("isExclusive", memberAuditVo.getIsExclusive());
mapPerformanceVo.put("isAdvance", isAdvance);
mapPerformanceVo.put("isDiscount", isDiscount);
BasicDBObject objectPerformanceVo = new BasicDBObject("$set", mongoConverter.convertToMongoType(mapPerformanceVo));
mongoTemplate.getCollection(PerformanceVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("performancesId").is(performanceId)).getQueryObject(),
objectPerformanceVo);
HashMap<String, Object> map2 = new HashMap<>();
map2.put("status", 3);
map2.put("updatedAt", updatedAt);
......@@ -454,6 +485,9 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
mongoTemplate.getCollection(PerformanceMemberAuditParam.class.getSimpleName()).updateOne(
Query.query(Criteria.where("performancesId").is(performanceId)).getQueryObject(),
object);
performanceVoTask.performanceVoStatus(performanceId);
redisUtil.hdel(KylinRedisConst.PERFORMANCES, performanceId);
} else {
HashMap<String, Object> map2 = new HashMap<>();
map2.put("status", 2);
......@@ -520,7 +554,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
Query.query(Criteria.where("ticketsId").is(ticketId)).getQueryObject(),
object);
redisUtil.hdel(KylinRedisConst.TICKET , ticketId);
redisUtil.hdel(KylinRedisConst.TICKET, ticketId);
return true;
} catch (Exception e) {
return false;
......
......@@ -399,6 +399,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
ticketStatusMapper.update(inventory, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketItem.getTicketsId()));
}
}
performanceVoTask.performanceVoStatus(performanceId);
}
return ResponseDto.success("操作完成");
} else { //保存
......
......@@ -126,6 +126,10 @@ public class PerformanceVoTask {
int isAdvance = 0;
//优惠
int isDiscount = 0;
//价格
BigDecimal price = new BigDecimal("0.00");
LocalDateTime stopSellTime = null;
LocalDateTime sellTime = null;
//演出数据
HashMap<String, Object> mapPerformance = new HashMap<>();
......@@ -138,6 +142,10 @@ public class PerformanceVoTask {
);
ticketCount += ticketVoList.size();
for (TicketVo ticketVoItem : ticketVoList) {
KylinTickets tickets = ticketsMapper.selectOne(
new UpdateWrapper<KylinTickets>().eq("tickets_id", ticketVoItem.getTicketsId()
)
);
//时间判断
LocalDateTime timeStart = LocalDateTime.parse(ticketVoItem.getMemberTimeStart(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime timeEnd = LocalDateTime.parse(ticketVoItem.getTimeEnd(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
......@@ -161,6 +169,7 @@ public class PerformanceVoTask {
status8Count += 1;
}
}
//修改票状态
HashMap<String, Object> mapTicket = new HashMap<>();
mapTicket.put("status", status);
......@@ -203,6 +212,16 @@ public class PerformanceVoTask {
isLackRegister = 1;
}
if (price.subtract(ticketVoItem.getMemberPrice()).compareTo(new BigDecimal("0.00")) < 0) {
price = ticketVoItem.getMemberPrice();
}
if (stopSellTime == null || stopSellTime.isBefore(tickets.getTimeEnd())) {
stopSellTime = tickets.getTimeEnd();
}
if (sellTime == null || sellTime.isAfter(tickets.getTimeStart().plusMinutes(-tickets.getAdvanceMinuteMember()))) {
sellTime = tickets.getTimeStart().plusMinutes(-tickets.getAdvanceMinuteMember());
}
}
}
//修改演出状态
......@@ -212,6 +231,9 @@ public class PerformanceVoTask {
mapPerformance.put("isMember", isMember);
mapPerformance.put("isAdvance", isAdvance);
mapPerformance.put("isDiscount", isDiscount);
mapPerformance.put("sellTime", sellTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
mapPerformance.put("stopSellTime", stopSellTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
mapPerformance.put("price", price+"起");
BasicDBObject objectPerformance = new BasicDBObject("$set", mongoConverter.convertToMongoType(mapPerformance));
mongoTemplate.getCollection(PerformanceVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("performancesId").is(performancesId)).getQueryObject(),
......
......@@ -80,13 +80,15 @@ public class GlobalAuthFilter extends ZuulFilter {
} else {
String token = authorization.substring(7);
String ssoKey = jwtValidator.getSsoRedisKey().concat(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)));
// 解析没有异常则表示token验证通过,如有必要可根据自身需求增加验证逻辑
Claims claims = jwtValidator.parse(token);
String uid = (String) claims.get("uid");
String ssoKey = jwtValidator.getSsoRedisKey().concat(uid).concat(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)));
if (redisUtil.hasKey(ssoKey)) {
if ((boolean) redisUtil.get(ssoKey)) {
// 解析没有异常则表示token验证通过,如有必要可根据自身需求增加验证逻辑
Claims claims = jwtValidator.parse(token);
requestContext.setSendZuulResponse(true);
// requestContext.addZuulRequestHeader("uid", claims.get("uid").toString());
......
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