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

Commit 27002eed authored by 张国柄's avatar 张国柄

fix:提供kylin调用API;

parent fe010df3
......@@ -141,12 +141,12 @@ global-auth:
- /webjars/**
- /swagger-resources/**
- /v2/api-docs*
# - /login/sms
# - /login/mobile
# - /login/tpa
- /login/*
- /send
- /member/info
- /enters/query/depth
- /addr/query/depth
- /member/check/depth
# -----------------------------------------------------------
......
......@@ -7,8 +7,6 @@ import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Component
......@@ -17,13 +15,13 @@ import org.springframework.web.bind.annotation.RequestParam;
fallback = FallbackFactory.Default.class)
public interface FeignAdamBaseClient {
@PostMapping("enters/query/{id}")
ResponseDto<AdamEntersVo> queryEnters(@PathVariable(value = "id") String entersId,
@RequestParam(value = "uid", required = false) String uid);
@GetMapping("enters/query/depth")
ResponseDto<AdamEntersVo> queryEnters(@RequestParam("entersId") String entersId,
@RequestParam("uid") String uid);
@PostMapping("addr/query/{id}")
ResponseDto<AdamAddressesVo> queryAddresses(@PathVariable(value = "id") String addrId,
@RequestParam(value = "uid", required = false) String uid);
@GetMapping("addr/query/depth")
ResponseDto<AdamAddressesVo> queryAddresses(@RequestParam(value = "addrId") String addrId,
@RequestParam(value = "uid") String uid);
/**
* 判断是否会员
......@@ -31,6 +29,6 @@ public interface FeignAdamBaseClient {
* @param uid 用户ID
* @return 是否会员:true-是
*/
@GetMapping("member/check")
@GetMapping("member/check/depth")
ResponseDto<Boolean> isMember(@RequestParam("uid") String uid);
}
......@@ -102,9 +102,8 @@ public class AdamAddressesController {
@ApiOperationSupport(order = 6)
@ApiOperation(value = "收货地址详情")
@PostMapping("query/{id}")
public ResponseDto<AdamAddressesVo> query(@NotBlank @PathVariable(name = "id") String addrId,
@RequestParam(required = false) String uid) {
AdamAddressesVo vo = adamRdmService.getAddressesVoByUidAddressesId(StringUtils.isBlank(uid) ? CurrentUtil.getCurrentUid() : uid, addrId);
public ResponseDto<AdamAddressesVo> query(@NotBlank @PathVariable(name = "id") String addrId) {
AdamAddressesVo vo = adamRdmService.getAddressesVoByUidAddressesId(CurrentUtil.getCurrentUid(), addrId);
return null == vo ? ResponseDto.failure(ErrorMapping.get("10106")) : ResponseDto.success(vo);
}
......@@ -114,4 +113,11 @@ public class AdamAddressesController {
public ResponseDto<AdamAddressesVo> queryDef() {
return ResponseDto.success(adamAddressesService.queryDefault(CurrentUtil.getCurrentUid()));
}
@GetMapping("query/depth")
public ResponseDto<AdamAddressesVo> queryForDepth(@NotBlank @RequestParam String addrId,
@NotBlank @RequestParam String uid) {
AdamAddressesVo vo = adamRdmService.getAddressesVoByUidAddressesId(uid, addrId);
return null == vo ? ResponseDto.failure(ErrorMapping.get("10106")) : ResponseDto.success(vo);
}
}
......@@ -108,9 +108,8 @@ public class AdamEntersController {
@ApiOperationSupport(order = 6)
@ApiOperation(value = "入场人详情")
@PostMapping("query/{entersId}")
public ResponseDto<AdamEntersVo> query(@NotBlank @PathVariable String entersId,
@RequestParam(required = false) String uid) {
AdamEntersVo vo = adamRdmService.getEntersVoByUidEntersId(StringUtils.isBlank(uid) ? CurrentUtil.getCurrentUid() : uid, entersId);
public ResponseDto<AdamEntersVo> query(@NotBlank @PathVariable String entersId) {
AdamEntersVo vo = adamRdmService.getEntersVoByUidEntersId(CurrentUtil.getCurrentUid(), entersId);
return null == vo ? ResponseDto.failure(ErrorMapping.get("10105")) : ResponseDto.success(vo);
}
......@@ -120,4 +119,11 @@ public class AdamEntersController {
public ResponseDto<AdamEntersVo> queryDef() {
return ResponseDto.success(adamEntersService.queryDefault(CurrentUtil.getCurrentUid()));
}
@GetMapping("query/depth")
public ResponseDto<AdamEntersVo> queryForDepth(@NotBlank @PathVariable String entersId,
@NotBlank @RequestParam(required = false) String uid) {
AdamEntersVo vo = adamRdmService.getEntersVoByUidEntersId(uid, entersId);
return null == vo ? ResponseDto.failure(ErrorMapping.get("10105")) : ResponseDto.success(vo);
}
}
......@@ -124,9 +124,7 @@ public class AdamLoginController {
log.debug("mobile:{},code:{}", mobile, code);
if (!this.checkSmsCode(mobile, code)) return ResponseDto.failure(ErrorMapping.get("10002"));
long startTime = System.currentTimeMillis();
String uid = adamRdmService.getUidByMobile(mobile);
log.info("redis getUidByMobile calltime: {}",System.currentTimeMillis() - startTime);
boolean toRegister = StringUtils.isEmpty(uid);
AdamUserInfoVo userInfoVo = toRegister ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid);
......@@ -221,10 +219,10 @@ public class AdamLoginController {
public ResponseDto<Object> close() {
log.info("###close:uid:{}", CurrentUtil.getCurrentUid());
adamUserService.close(CurrentUtil.getCurrentUid());
this.logout();
adamUserService.close(CurrentUtil.getCurrentUid());
return ResponseDto.success();
}
......
......@@ -65,11 +65,6 @@ public class AdamMemberController {
return ResponseDto.success(adamRdmService.getMemberAgreement());
}
@ApiOperationSupport(order = 2)
@ApiOperation(value = "是否会员")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "用户ID[64]", example = "1"),
})
@GetMapping("check")
public ResponseDto<Boolean> isMember(@NotBlank @RequestParam String uid) {
AdamUserMemberVo userMemberInfo = adamRdmService.getUserMemberVoByUid(uid);
......
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.entity.AdamUser;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.adam.service.*;
import com.liquidnet.service.base.SqlMapping;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
......@@ -31,9 +33,11 @@ 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 org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
/**
......@@ -91,44 +95,48 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
String nowStr = DateUtil.format(now, DateUtil.Formatter.yyyyMMddHHmmss);
AdamUserInfoVo userInfoVo = AdamUserInfoVo.getNew();
userInfoVo.setMobile(mobile);
userInfoVo.setUid(IDGenerator.nextSnowId() + "");
userInfoVo.setMobile(mobile);
userInfoVo.setIsComplete(0);
userInfoVo.setState(1);
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
userInfoVo.setCreateAt(nowStr);
long startTime = System.currentTimeMillis();
AdamUserInfoVo insert = mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
log.info("mongodb register insert calltime: {}",System.currentTimeMillis() - startTime);
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()));
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.get("adam_user.add", userInfoVo.getUid(), userInfoVo.getMobile(), userInfoVo.getState(), now)
);
adamRdmService.setUidByMobile(mobile, userInfoVo.getUid());
return userInfoVo;
}
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public AdamUserInfoVo register(AdamThirdPartParam param) {
LocalDateTime now = LocalDateTime.now();
String nowStr = DateUtil.format(now, DateUtil.Formatter.yyyyMMddHHmmss);
String uid = adamRdmService.getUidByMobile(param.getMobile());
LinkedList<String> toMqSqls = new LinkedList<>();
LinkedList<Object[]> initUserObjs = new LinkedList<>(), initThirdPartObjs = new LinkedList<>();
AdamUserInfoVo userInfoVo;
if (StringUtils.isEmpty(uid)) {// 手机号未注册
userInfoVo = AdamUserInfoVo.getNew();
userInfoVo.setMobile(param.getMobile());
userInfoVo.setUid(IDGenerator.nextSnowId() + "");
userInfoVo.setMobile(param.getMobile());
userInfoVo.setIsComplete(0);
userInfoVo.setState(1);
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
userInfoVo.setCreateAt(nowStr);
AdamUserInfoVo insert = mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_user.add"));
initUserObjs.add(new Object[]{userInfoVo.getUid(), userInfoVo.getMobile(), userInfoVo.getState(), now});
} else {
userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
}
......@@ -139,19 +147,14 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
thirdPartInfoVo.setUid(userInfoVo.getUid());
thirdPartInfoVo.setState(1);// 1-绑定
AdamThirdPartInfoVo insert = mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_third_party.add"));
initThirdPartObjs.add(new Object[]{thirdPartInfoVo.getUid(), thirdPartInfoVo.getOpenId(), thirdPartInfoVo.getAvatar(), thirdPartInfoVo.getNickname(), thirdPartInfoVo.getPlatform(), thirdPartInfoVo.getState(), thirdPartInfoVo.getCreatedAt()});
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.gets(toMqSqls, initUserObjs, initThirdPartObjs)
);
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_third_party.add", paramList.toArray()));
adamRdmService.setUidByPlatformOpenId(param.getPlatform(), param.getOpenId(), uid);
......@@ -242,69 +245,60 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
public void close(String uid) {
LocalDateTime now = LocalDateTime.now();
String nowStr = DateUtil.format(now, DateUtil.Formatter.yyyyMMddHHmmss);
AdamUserInfoVo closeUserInfoVo = AdamUserInfoVo.getNew();
closeUserInfoVo.setState(2);
closeUserInfoVo.setUpdatedAt(nowStr);
closeUserInfoVo.setClosedAt(closeUserInfoVo.getUpdatedAt());
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(closeUserInfoVo));
Document doc = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(closeUserInfoVo.getUid())).getQueryObject(),
object, new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
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()));
LinkedList<String> toMqSqls = new LinkedList<>();
LinkedList<Object[]> objsUser = new LinkedList<>(),
objsThirdPart = new LinkedList<>(),
objsAddresses = new LinkedList<>();
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
adamRdmService.delUidByMobile(userInfoVo.getMobile());
List<AdamThirdPartInfoVo> thirdPartInfoVos = adamRdmService.getThirdPartVoListByUid(uid);
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) {
thirdPartInfoVos.forEach(r -> {
adamRdmService.delUidByPlatformOpenId(r.getPlatform(), r.getOpenId());
});
adamRdmService.delThirdPartVoListByUid(uid);
}
adamRdmService.delUserInfoVoByUid(uid);
adamRdmService.delUidByMobile(closeUserInfoVo.getMobile());
/* ---------------------- 第三方账号信息 */
adamRdmService.delUserMemberVoByUid(uid);
adamRdmService.delAddressesVoByUid(uid);
adamRdmService.delEntersVoByUid(uid);
List<AdamThirdPartInfoVo> thirdPartVoList = adamRdmService.getThirdPartVoListByUid(uid);
DeleteResult deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserInfoVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_user.close"));
objsUser.add(new Object[]{now, now, uid});
for (AdamThirdPartInfoVo r : thirdPartVoList) {
adamRdmService.delUidByPlatformOpenId(r.getPlatform(), r.getOpenId());
/* ---------------------- 三方账号信息 */
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) {
mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamThirdPartInfoVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_third_party.close"));
objsThirdPart.add(new Object[]{now, uid});
}
adamRdmService.delThirdPartVoListByUid(uid);
AdamThirdPartInfoVo closeThirdPartVo = AdamThirdPartInfoVo.getNew();
closeThirdPartVo.setUpdatedAt(nowStr);
closeThirdPartVo.setState(2);
UpdateResult updateResult = mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName())
.updateMany(Query.query(Criteria.where("uid").is(uid).and("state").is(1)).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(closeThirdPartVo)));
// TODO: 2021/5/14 Execute sql to mq
/* ---------------------- 用户会员信息 */
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class.getSimpleName());
if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_user_member.close"));
objsThirdPart.add(new Object[]{now, uid});
}
/* ---------------------- 收货地址信息 */
adamRdmService.delAddressesVoByUid(uid);
AdamAddresses closeAddresses = new AdamAddresses();
closeAddresses.setUpdatedAt(now);
closeAddresses.setState(2);
updateResult = mongoTemplate.getCollection(AdamAddresses.class.getSimpleName())
.updateMany(Query.query(Criteria.where("uid").is(uid).and("state").is(1)).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(closeAddresses)));
// TODO: 2021/5/30 mdb + mq to sql
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid).and("state").is(1)), AdamAddressesVo.class.getSimpleName());
if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_addresses.close"));
objsAddresses.add(new Object[]{now, now, uid});
}
/* ---------------------- 入场人信息 */
adamRdmService.delEntersVoByUid(uid);
AdamEnters closeEnters = new AdamEnters();
closeEnters.setUpdatedAt(LocalDateTime.now());
closeEnters.setDeletedAt(closeEnters.getUpdatedAt());
closeEnters.setState(2);
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)).getQueryObject(), AdamEnters.class.getSimpleName());
if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_enters.close"));
objsAddresses.add(new Object[]{now, now, uid});
}
updateResult = mongoTemplate.getCollection(AdamEnters.class.getSimpleName())
.updateOne(Query.query(Criteria.where("uid").is(uid)).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(closeEnters)));
// TODO: 2021/5/14 Execute sql to mq
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.gets(toMqSqls, objsUser));
}
@Override
......
......@@ -10,19 +10,22 @@ adam_real_name.add=INSERT INTO adam_real_name (real_name_id, `uid`, `type`, `nam
# ----------------------------------------------------
adam_third_party.add=INSERT INTO adam_third_party (`uid`, open_id, avatar, nickname, platform, `state`, created_at) values (?,?,?,?,?,?,?)
adam_third_party.unbind=UPDATE adam_third_party SET `state`=2, updated_at=? WHERE `uid`=? AND platform=? AND `state`=1
adam_third_party.unbind=UPDATE adam_third_party SET `state`=2, updated_at=? WHERE `uid`=? AND platform=?
adam_third_party.close=UPDATE adam_third_party SET `state`=2, updated_at=?, comment='close' WHERE `uid`=?
# ----------------------------------------------------
adam_addresses.add=INSERT INTO adam_addresses (addresses_id, `uid`, `name`, phone, province, city, county, address, is_default, `state`, created_at) VALUES (?,?,?,?,?,?,?,?,?,?,?)
adam_addresses.edit=UPDATE adam_addresses SET `name`=?, phone=?, province=?, city=?, county=?, address=?, updated_at=? WHERE addresses_id=?
adam_addresses.update.is_default=UPDATE adam_addresses SET is_default=?, updated_at=? where addresses_id=?
adam_addresses.remove=UPDATE adam_addresses SET is_default=0, `state`=2, updated_at=?, deleted_at=? where addresses_id=?
adam_addresses.update.is_default=UPDATE adam_addresses SET is_default=?, updated_at=? WHERE addresses_id=?
adam_addresses.remove=UPDATE adam_addresses SET is_default=0, `state`=2, updated_at=?, deleted_at=? WHERE addresses_id=?
adam_addresses.close=UPDATE adam_addresses SET `state`=2, updated_at=?, deleted_at=? WHERE uid=?
# ----------------------------------------------------
adam_enters.add=INSERT INTO adam_enters (enters_id, `uid`, `type`,`name`, mobile, id_card, is_default, `state`, created_at) VALUES (?,?,?,?,?,?,?,?,?)
adam_enters.edit=UPDATE adam_enters SET `type`=?, `name`=?, mobile=?, id_card=?, is_default=?, `state`=?, updated_at=? where enters_id=?
adam_enters.update.is_default=UPDATE adam_enters set is_default=?, updated_at=? where enters_id=?
adam_enters.remove=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=?
adam_enters.remove=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=?
adam_enters.close=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=?, comment='close' where uid=?
# ----------------------------------------------------
adam_member.add=INSERT INTO adam_member ( `name`, `title`, `sub_title`, `icon`, `avatar`, `start_no`, `type`, `interests_detail`, `notes`, `is_notice`, `notice_info`, `notice_title`, `need_question`, `display_agreement`, `agreement`, `member_id`, `limitation`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
......@@ -38,6 +41,7 @@ adam_member_order.update=UPDATE adam_member_order SET `state`=?, member_no=?, pa
# ----------------------------------------------------
adam_user_member.add=INSERT INTO adam_user_member (`uid`, member_id, member_no, `state`, expiry_at, created_at) VALUES (?,?,?,?,?,?)
adam_user_member.update=UPDATE adam_user_member SET `state`=?, expiry_at=?, updated_at=? WHERE `uid`=?
adam_user_member.close=UPDATE adam_user_member SET `state`=2, updated_at=?, comment='close' WHERE `uid`=?
# ----------------------------------------------------
......
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