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

Commit 02822498 authored by jiangxiulong's avatar jiangxiulong

Merge branch 'dev-sweet' into test

parents 6c4a3346 b25d2c45
......@@ -22,22 +22,22 @@ public class AdamWechatConst {
/* =============================================================== | */
@Value("${liquidnet.wechat.zhengzai.applet.appid}")
@Value("${liquidnet.wechat.applet.zhengzai.appid}")
public void setZhengzaiAppletAppid(String zhengzaiAppletAppid) {
AdamWechatConst.zhengzaiAppletAppid = zhengzaiAppletAppid;
}
@Value("${liquidnet.wechat.zhengzai.applet.secret}")
@Value("${liquidnet.wechat.applet.zhengzai.secret}")
public void setZhengzaiAppletSecret(String zhengzaiAppletSecret) {
AdamWechatConst.zhengzaiAppletSecret = zhengzaiAppletSecret;
}
@Value("${liquidnet.wechat.zhengzai.service.appid}")
@Value("${liquidnet.wechat.service.zhengzai.appid}")
public void setZhengzaiServiceAppid(String zhengzaiServiceAppid) {
AdamWechatConst.zhengzaiServiceAppid = zhengzaiServiceAppid;
}
@Value("${liquidnet.wechat.zhengzai.service.secret}")
@Value("${liquidnet.wechat.service.zhengzai.secret}")
public void setZhengzaiServiceSecret(String zhengzaiServiceSecret) {
AdamWechatConst.zhengzaiServiceSecret = zhengzaiServiceSecret;
}
......
......@@ -24,6 +24,11 @@ public class AdamLoginInfoVo implements Serializable, Cloneable {
@ApiModelProperty(position = 16, value = "用户会员信息")
private AdamUserMemberVo userMemberVo;
@ApiModelProperty(position = 17, value = "微信用户openid(微信小程序登录返回,用于给小程序用户推送信息)")
private String wechatOpenid;
@ApiModelProperty(position = 18, value = "微信用户unionid(微信小程序登录返回,用于给小程序用户推送信息)")
private String wechatUnionid;
private static final AdamLoginInfoVo obj = new AdamLoginInfoVo();
public static AdamLoginInfoVo getNew() {
......
......@@ -123,6 +123,7 @@ public class KylinOrderRefundsVo implements Serializable,Cloneable {
private List<KylinOrderRefundEntitiesVo> orderRefundEntitiesVoList;
private List<KylinOrderRefundPicVo> orderRefundPicVos;
private List<String> picList;
private String payType;
public void setStatus(Integer status){
try {
......
......@@ -47,7 +47,7 @@ var table = {
paginationLoop: false,
pageSize: 10,
pageNumber: 1,
pageList: [10, 25, 50],
pageList: [10, 25, 50, 200],
toolbar: "toolbar",
loadingFontSize: 13,
striped: false,
......
......@@ -11,6 +11,8 @@
<div class="form-control-static" th:text="${KylinOrderRefundsVo.orderRefundsId}"></div>
<label class="col-sm-2 control-label">票务订单id:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.orderTicketsId}"></div>
<label class="col-sm-2 control-label">实际支付方式:</label>
<div class="form-control-static" th:text="*{@dict.getLabel('zhengzai_pay_type',KylinOrderRefundsVo.payType)}"/>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">退款编号:</label>
......
......@@ -250,6 +250,13 @@
{
field: 'refundError',
title: '退款结果备注',
formatter: function (value, row, index) {
if (row.status == 6) {
return row.refundError;
} else {
return '';
}
},
cellStyle: function(value, row, index) {
return {css : {"color": "red","font-weight": "bold"} };
}
......
......@@ -3,6 +3,7 @@ package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.github.pagehelper.PageHelper;
......@@ -288,7 +289,8 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, type, reject, "");
break;
case "unfilled":
res = kylinRefundsStatusServiceImpl.orderTicketRefundUnfilled(refundList, refuse);
kylinRefundsStatusServiceImpl.orderTicketRefundUnfilled(refundList, refuse);
res = true;
break;
case "refuse":
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, type, "", refuse);
......@@ -383,6 +385,11 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
kylinOrderRefundsVo.setPicList(strList);
}
KylinOrderTickets kylinOrderTickets = kylinOrderTicketsMapper.selectOne(
Wrappers.lambdaQuery(KylinOrderTickets.class).eq(KylinOrderTickets::getOrderTicketsId, data.getOrderTicketsId())
);
kylinOrderRefundsVo.setPayType(kylinOrderTickets.getPayType());
return kylinOrderRefundsVo;
}
......
......@@ -75,13 +75,13 @@ public class KylinRefundPerformancesAdminServiceImpl {
if (null != orderStatisAlipay || null != orderStatisWepay) {
if (null != orderStatisAlipay) {
totalPriceRefundAlipay = (BigDecimal) orderStatisAlipay.get("total_price_refund");
BigDecimal totalRefundNumberAlipayBigDecimal = (BigDecimal) orderStatisAlipay.get("total_refund_number");
Long totalRefundNumberAlipayBigDecimal = (Long) orderStatisAlipay.get("total_refund_number");
totalRefundNumberAlipay = totalRefundNumberAlipayBigDecimal.intValue();
}
if (null != orderStatisWepay) {
totalPriceRefundWepay = (BigDecimal) orderStatisWepay.get("total_price_refund");
BigDecimal totalRefundNumberWepayBigDecimal = (BigDecimal) orderStatisWepay.get("total_refund_number");
Long totalRefundNumberWepayBigDecimal = (Long) orderStatisWepay.get("total_refund_number");
totalRefundNumberWepay = totalRefundNumberWepayBigDecimal.intValue();
}
......
......@@ -31,6 +31,7 @@ import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
......@@ -400,7 +401,8 @@ public class KylinRefundsStatusServiceImpl {
return true;
}
public boolean orderTicketRefundUnfilled(List<KylinOrderRefunds> refundList, String refuse) {
@Async
public void orderTicketRefundUnfilled(List<KylinOrderRefunds> refundList, String refuse) {
String authId = ShiroUtils.getUserId().toString();
String authName = ShiroUtils.getLoginName();
......@@ -499,8 +501,6 @@ public class KylinRefundsStatusServiceImpl {
);
dataUtils.delOrderRefundVo(orderRefundIds);
dataUtils.delOrderRefundVoByOrderId(orderIds);
return true;
}
public boolean orderTicketRefunded(RefundCallbackParam refundCallbackParam, KylinOrderRefunds refundInfo) {
......
......@@ -71,8 +71,7 @@ public class MQConst {
public enum SweetQueue {
artists_watch("sweet:stream:rk.artists.watch", "group.artists.watch", "艺人-想看"),
artists_signature("sweet:stream:rk.artists.signature", "group.artists.signature", "艺人-签售通知"),
ARTISTS_RELATION("sweet:stream:rk.artists.relation", "group.artists.relation", "用户-关系"),
;
private final String key;
......
......@@ -39,7 +39,7 @@ liquidnet:
mongodb:
host: 39.106.122.201:27017
port: 27017
user: root
user: admin
pwd: S&y$6d*JwJ
service:
adam:
......@@ -92,16 +92,16 @@ liquidnet:
accessKeyId: LTAI4FxrURzMvvu9reFgwY5o
accessKeySecret: Ym5tfAxOf2zX20MgjikLI3Wz3tlwVV
wechat:
zhengzai:
applet:
appid: wx4732efeaa2b08086
secret: 94562c1f92da1b6cb3f1327c8842c6d3
service:
service:
zhengzai:
appid: wx3498304dda39c5a1
secret: a1307fab0a5f2380086a7c636f7339ea
token: tftipg1427706847
aeskey: LwVpmpuOcl7Mi3mtfQgBol11MsmMCATIqbPgHrEpDzx
applet:
zhengzai:
appid: wx4732efeaa2b08086
secret: 94562c1f92da1b6cb3f1327c8842c6d3
strawberry:
appid: wx08b852ade69f8019
secret: 0aac285fd1fbc6aa4e562b7ad81de392
......
......@@ -39,7 +39,7 @@ liquidnet:
mongodb:
host: 39.106.122.201:27017
port: 27017
user: root
user: admin
pwd: S&y$6d*JwJ
service:
adam:
......@@ -93,16 +93,16 @@ liquidnet:
accessKeyId: LTAI4FxrURzMvvu9reFgwY5o
accessKeySecret: Ym5tfAxOf2zX20MgjikLI3Wz3tlwVV
wechat:
zhengzai:
applet:
appid: wx4732efeaa2b08086
secret: 94562c1f92da1b6cb3f1327c8842c6d3
service:
service:
zhengzai:
appid: wx3498304dda39c5a1
secret: a1307fab0a5f2380086a7c636f7339ea
token: tftipg1427706847
aeskey: LwVpmpuOcl7Mi3mtfQgBol11MsmMCATIqbPgHrEpDzx
applet:
zhengzai:
appid: wx4732efeaa2b08086
secret: 94562c1f92da1b6cb3f1327c8842c6d3
strawberry:
appid: wx08b852ade69f8019
secret: 0aac285fd1fbc6aa4e562b7ad81de392
......
......@@ -14,7 +14,7 @@ liquidnet:
pattern-file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level: debug
level: info
mysql:
database-name: dev_ln_scene
mongodb:
......
......@@ -56,7 +56,7 @@
<select id="getPerformanceRefundOrderStatis" resultType="java.util.HashMap">
SELECT
SUM(o.price_actual - o.price_refund) as total_price_refund, SUM(o.number - o.refund_number) as
SUM(o.price_actual - o.price_refund) as total_price_refund, COUNT(*) as
total_refund_number
FROM kylin_order_tickets AS o
JOIN kylin_order_ticket_relations AS r ON r.order_id = o.order_tickets_id
......
package com.liquidnet.service.adam.config;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
@Configuration
public class WechatMaConfigure {
private static String appletAppidZhengzai;
private static String appletSecretZhengzai;
private static String appletAppidStrawberry;
private static String appletSecretStrawberry;
private static String appletAppidFive;
private static String appletSecretFive;
private static String appletAppidMdsk;
private static String appletSecretMdsk;
@Value("${liquidnet.wechat.applet.strawberry.appid}")
public void setAppletAppidZhengzai(String appletAppidZhengzai) {
WechatMaConfigure.appletAppidZhengzai = appletAppidZhengzai;
}
@Value("${liquidnet.wechat.applet.strawberry.secret}")
public void setAppletSecretZhengzai(String appletSecretZhengzai) {
WechatMaConfigure.appletSecretZhengzai = appletSecretZhengzai;
}
@Value("${liquidnet.wechat.applet.strawberry.appid}")
public void setAppletAppidStrawberry(String appletAppidStrawberry) {
WechatMaConfigure.appletAppidStrawberry = appletAppidStrawberry;
}
@Value("${liquidnet.wechat.applet.strawberry.secret}")
public void setAppletSecretStrawberry(String appletSecretStrawberry) {
WechatMaConfigure.appletSecretStrawberry = appletSecretStrawberry;
}
@Value("${liquidnet.wechat.applet.five.appid}")
public void setAppletAppidFive(String appletAppidFive) {
WechatMaConfigure.appletAppidFive = appletAppidFive;
}
@Value("${liquidnet.wechat.applet.five.secret}")
public void setAppletSecretFive(String appletSecretFive) {
WechatMaConfigure.appletSecretFive = appletSecretFive;
}
@Value("${liquidnet.wechat.applet.mdsk.appid}")
public void setAppletAppidMdsk(String appletAppidMdsk) {
WechatMaConfigure.appletAppidMdsk = appletAppidMdsk;
}
@Value("${liquidnet.wechat.applet.mdsk.secret}")
public void setAppletSecretMdsk(String appletSecretMdsk) {
WechatMaConfigure.appletSecretMdsk = appletSecretMdsk;
}
private WxMaService wxMaAppletZhengzaiService;
private WxMaService wxMaAppletStrawberryService;
private WxMaService wxMaAppletFiveService;
private WxMaService wxMaAppletMdskService;
@PostConstruct
public void init() {
wxMaAppletZhengzaiService = new WxMaServiceImpl() {
{
WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
wxMaDefaultConfig.setAppid(appletAppidZhengzai);
wxMaDefaultConfig.setSecret(appletSecretZhengzai);
wxMaDefaultConfig.setMsgDataFormat("JSON");
this.setWxMaConfig(wxMaDefaultConfig);
}
};
wxMaAppletStrawberryService = new WxMaServiceImpl() {
{
WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
wxMaDefaultConfig.setAppid(appletAppidStrawberry);
wxMaDefaultConfig.setSecret(appletSecretStrawberry);
wxMaDefaultConfig.setMsgDataFormat("JSON");
this.setWxMaConfig(wxMaDefaultConfig);
}
};
wxMaAppletFiveService = new WxMaServiceImpl() {
{
WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
wxMaDefaultConfig.setAppid(appletAppidFive);
wxMaDefaultConfig.setSecret(appletSecretFive);
wxMaDefaultConfig.setMsgDataFormat("JSON");
this.setWxMaConfig(wxMaDefaultConfig);
}
};
wxMaAppletMdskService = new WxMaServiceImpl() {
{
WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
wxMaDefaultConfig.setAppid(appletAppidMdsk);
wxMaDefaultConfig.setSecret(appletSecretMdsk);
wxMaDefaultConfig.setMsgDataFormat("JSON");
this.setWxMaConfig(wxMaDefaultConfig);
}
};
}
public WxMaService getWxMaService(Integer anum) {
switch (anum) {
case 1:
return wxMaAppletZhengzaiService;
case 2:
return wxMaAppletStrawberryService;
case 3:
return wxMaAppletFiveService;
case 4:
return wxMaAppletMdskService;
}
return null;
}
}
package com.liquidnet.service.adam.controller;
import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectVo;
import com.liquidnet.service.adam.service.IAdamCollectionService;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.List;
/**
* <p>
* 收藏 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-10
*/
@ApiSupport(order = 10060)
@Api(tags = "收藏")
@Slf4j
@RestController
@RequestMapping("collect")
public class AdamCollectionController {
@Autowired
IAdamCollectionService adamCollectionService;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "添加收藏")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型[TICKET,VIDEO]", allowableValues = "TICKET,VIDEO"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[1,64]"),
})
@PostMapping("add")
public ResponseDto<Object> add(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "收藏类型无效")
@RequestParam String type,
@Size(min = 1, max = 64, message = "收藏内容ID长度限制1-64位")
@RequestParam String contentId) {
String currentUid = CurrentUtil.getCurrentUid();
if (adamCollectionService.exists(currentUid, type, contentId)) {
return ResponseDto.success();
}
AdamCollectBaseVo collectVo = AdamCollectBaseVo.getNew();
collectVo.setType(type);
collectVo.setContentId(contentId);
collectVo.setUid(currentUid);
adamCollectionService.add(collectVo);
return ResponseDto.success();
}
@ApiOperationSupport(order = 2)
@ApiOperation(value = "删除收藏")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentIds", value = "内容ID[多个ID用','分隔]"),
})
@PostMapping("del")
public ResponseDto<Object> del(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "收藏类型无效")
@RequestParam String type,
@NotBlank(message = "内容ID不能为空") @RequestParam String contentIds) {
adamCollectionService.del(CurrentUtil.getCurrentUid(), type, contentIds.split(","));
return ResponseDto.success();
}
@ApiOperationSupport(order = 3)
@ApiOperation(value = "收藏列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageNo", value = "页码", example = "1"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageSize", value = "页展示条数", example = "5"),
})
@PostMapping("list")
public ResponseDto<PagedResult<AdamCollectVo>> list(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "收藏类型无效")
@RequestParam String type,
@RequestParam(defaultValue = "1", required = false) int pageNo,
@RequestParam(defaultValue = "5", required = false) int pageSize) {
pageNo = pageNo > 0 ? pageNo : 1;
pageSize = pageSize <= 0 || pageSize > 10 ? 5 : pageSize;
return ResponseDto.success(adamCollectionService.queryPage(CurrentUtil.getCurrentUid(), type, pageNo, pageSize));
}
// @ApiOperationSupport(order = 4)
// @ApiOperation(value = "获取特定内容的收藏用户列表 -> 返回结构待定")
//package com.liquidnet.service.adam.controller;
//
//import com.github.pagehelper.PageInfo;
//import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
//import com.github.xiaoymin.knife4j.annotations.ApiSupport;
//import com.liquidnet.commons.lang.util.CurrentUtil;
//import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
//import com.liquidnet.service.adam.dto.vo.AdamCollectVo;
//import com.liquidnet.service.adam.service.IAdamCollectionService;
//import com.liquidnet.service.base.PagedResult;
//import com.liquidnet.service.base.ResponseDto;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiImplicitParam;
//import io.swagger.annotations.ApiImplicitParams;
//import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//import javax.validation.constraints.NotBlank;
//import javax.validation.constraints.Pattern;
//import javax.validation.constraints.Size;
//import java.util.List;
//
///**
// * <p>
// * 收藏 前端控制器
// * </p>
// *
// * @author liquidnet
// * @since 2021-05-10
// */
//@ApiSupport(order = 10060)
//@Api(tags = "收藏")
//@Slf4j
//@RestController
//@RequestMapping("collect")
//public class AdamCollectionController {
// @Autowired
// IAdamCollectionService adamCollectionService;
//
// @ApiOperationSupport(order = 1)
// @ApiOperation(value = "添加收藏")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[64]"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型[TICKET,VIDEO]", allowableValues = "TICKET,VIDEO"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[1,64]"),
// })
// @PostMapping("list/user")
// public ResponseDto<Object> listUser(@RequestParam String type, @RequestParam String contentId) {
// String uid = "1";
// @PostMapping("add")
// public ResponseDto<Object> add(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "收藏类型无效")
// @RequestParam String type,
// @Size(min = 1, max = 64, message = "收藏内容ID长度限制1-64位")
// @RequestParam String contentId) {
// String currentUid = CurrentUtil.getCurrentUid();
//
// if (adamCollectionService.exists(currentUid, type, contentId)) {
// return ResponseDto.success();
// }
//
// AdamCollectBaseVo collectVo = AdamCollectBaseVo.getNew();
// collectVo.setType(type);
// collectVo.setContentId(contentId);
// collectVo.setUid(currentUid);
// adamCollectionService.add(collectVo);
//
// return ResponseDto.success();
// }
//
// @ApiOperationSupport(order = 2)
// @ApiOperation(value = "删除收藏")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentIds", value = "内容ID[多个ID用','分隔]"),
// })
// @PostMapping("del")
// public ResponseDto<Object> del(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "收藏类型无效")
// @RequestParam String type,
// @NotBlank(message = "内容ID不能为空") @RequestParam String contentIds) {
// adamCollectionService.del(CurrentUtil.getCurrentUid(), type, contentIds.split(","));
//
// return ResponseDto.success();
// }
@ApiOperationSupport(order = 5)
@ApiOperation(value = "获取收藏状态")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[64]"),
})
@GetMapping("state")
public ResponseDto<Boolean> state(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "收藏类型无效")
@RequestParam String type,
@Size(min = 1, max = 64, message = "收藏内容ID长度限制1-64位")
@RequestParam String contentId) {
return ResponseDto.success(adamCollectionService.queryState(CurrentUtil.getCurrentUid(), type, contentId));
}
}
//
// @ApiOperationSupport(order = 3)
// @ApiOperation(value = "收藏列表")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
// @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageNo", value = "页码", example = "1"),
// @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageSize", value = "页展示条数", example = "5"),
// })
// @PostMapping("list")
// public ResponseDto<PagedResult<AdamCollectVo>> list(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "收藏类型无效")
// @RequestParam String type,
// @RequestParam(defaultValue = "1", required = false) int pageNo,
// @RequestParam(defaultValue = "5", required = false) int pageSize) {
// pageNo = pageNo > 0 ? pageNo : 1;
// pageSize = pageSize <= 0 || pageSize > 10 ? 5 : pageSize;
//
// return ResponseDto.success(adamCollectionService.queryPage(CurrentUtil.getCurrentUid(), type, pageNo, pageSize));
// }
//
//// @ApiOperationSupport(order = 4)
//// @ApiOperation(value = "获取特定内容的收藏用户列表 -> 返回结构待定")
//// @ApiImplicitParams({
//// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
//// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[64]"),
//// })
//// @PostMapping("list/user")
//// public ResponseDto<Object> listUser(@RequestParam String type, @RequestParam String contentId) {
//// String uid = "1";
////
////
////
//// return ResponseDto.success();
//// }
//
// @ApiOperationSupport(order = 5)
// @ApiOperation(value = "获取收藏状态")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[64]"),
// })
// @GetMapping("state")
// public ResponseDto<Boolean> state(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "收藏类型无效")
// @RequestParam String type,
// @Size(min = 1, max = 64, message = "收藏内容ID长度限制1-64位")
// @RequestParam String contentId) {
// return ResponseDto.success(adamCollectionService.queryState(CurrentUtil.getCurrentUid(), type, contentId));
// }
//}
package com.liquidnet.service.adam.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.adam.dto.vo.AdamDisposedBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedUserVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedVo;
import com.liquidnet.service.adam.service.IAdamDisposedService;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
/**
* <p>
* 收藏 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-10
*/
@ApiSupport(order = 10070)
@Api(tags = "想去")
@Slf4j
@RestController
@RequestMapping("disposed")
public class AdamDisposedController {
@Autowired
IAdamDisposedService adamDisposedService;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "添加想去")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "想去类型[TICKET,VIDEO]", allowableValues = "TICKET,VIDEO"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[1,64]"),
})
@PostMapping("add")
public ResponseDto<Object> add(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
@RequestParam String type,
@Size(min = 1, max = 64, message = "内容ID长度限制1-64位")
@RequestParam String contentId) {
String currentUid = CurrentUtil.getCurrentUid();
if (adamDisposedService.exists(currentUid, type, contentId)) {
return ResponseDto.success();
}
AdamDisposedBaseVo disposedBaseVo = AdamDisposedBaseVo.getNew();
disposedBaseVo.setType(type);
disposedBaseVo.setContentId(contentId);
disposedBaseVo.setUid(currentUid);
adamDisposedService.add(disposedBaseVo);
return ResponseDto.success();
}
@ApiOperationSupport(order = 2)
@ApiOperation(value = "删除想去")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentIds", value = "内容ID[多个ID用','分隔]"),
})
@PostMapping("del")
public ResponseDto<Object> del(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
@RequestParam String type,
@NotBlank(message = "内容ID不能为空") @RequestParam String contentIds) {
adamDisposedService.del(CurrentUtil.getCurrentUid(), type, contentIds.split(","));
return ResponseDto.success();
}
@ApiOperationSupport(order = 3)
@ApiOperation(value = "想去列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageNo", value = "页码", example = "1"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageSize", value = "页展示条数", example = "5"),
})
@PostMapping("list")
public ResponseDto<PagedResult<AdamDisposedVo>> list(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
@RequestParam String type,
@RequestParam(defaultValue = "1", required = false) int pageNo,
@RequestParam(defaultValue = "5", required = false) int pageSize) {
pageNo = pageNo > 0 ? pageNo : 1;
pageSize = pageSize <= 0 || pageSize > 10 ? 10 : pageSize;
return ResponseDto.success(adamDisposedService.queryPage(CurrentUtil.getCurrentUid(), type, pageNo, pageSize));
}
@ApiOperationSupport(order = 4)
@ApiOperation(value = "想去用户列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[1,64]"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageNo", value = "页码", example = "1"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageSize", value = "页展示条数", example = "10"),
})
@PostMapping("list/user")
public ResponseDto<PagedResult<AdamDisposedUserVo>> listUser(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
@RequestParam String type,
@Size(min = 1, max = 64, message = "内容ID长度限制1-64位")
@RequestParam String contentId,
@RequestParam(defaultValue = "1", required = false) int pageNo,
@RequestParam(defaultValue = "10", required = false) int pageSize) {
pageNo = pageNo > 0 ? pageNo : 1;
pageSize = pageSize <= 0 || pageSize > 20 ? 20 : pageSize;
return ResponseDto.success(adamDisposedService.queryDisposedUsers(type, contentId, pageNo, pageSize));
}
@ApiOperationSupport(order = 5)
@ApiOperation(value = "获取想去状态")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[64]"),
})
@GetMapping("state")
public ResponseDto<Boolean> state(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
@RequestParam String type,
@Size(min = 1, max = 64, message = "内容ID长度限制1-64位")
@RequestParam String contentId) {
return ResponseDto.success(adamDisposedService.queryState(CurrentUtil.getCurrentUid(), type, contentId));
}
}
//package com.liquidnet.service.adam.controller;
//
//import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
//import com.github.xiaoymin.knife4j.annotations.ApiSupport;
//import com.liquidnet.commons.lang.util.CurrentUtil;
//import com.liquidnet.service.adam.dto.vo.AdamDisposedBaseVo;
//import com.liquidnet.service.adam.dto.vo.AdamDisposedUserVo;
//import com.liquidnet.service.adam.dto.vo.AdamDisposedVo;
//import com.liquidnet.service.adam.service.IAdamDisposedService;
//import com.liquidnet.service.base.PagedResult;
//import com.liquidnet.service.base.ResponseDto;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiImplicitParam;
//import io.swagger.annotations.ApiImplicitParams;
//import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//import javax.validation.constraints.NotBlank;
//import javax.validation.constraints.Pattern;
//import javax.validation.constraints.Size;
//
///**
// * <p>
// * 收藏 前端控制器
// * </p>
// *
// * @author liquidnet
// * @since 2021-05-10
// */
//@ApiSupport(order = 10070)
//@Api(tags = "想去")
//@Slf4j
//@RestController
//@RequestMapping("disposed")
//public class AdamDisposedController {
// @Autowired
// IAdamDisposedService adamDisposedService;
//
// @ApiOperationSupport(order = 1)
// @ApiOperation(value = "添加想去")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "想去类型[TICKET,VIDEO]", allowableValues = "TICKET,VIDEO"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[1,64]"),
// })
// @PostMapping("add")
// public ResponseDto<Object> add(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
// @RequestParam String type,
// @Size(min = 1, max = 64, message = "内容ID长度限制1-64位")
// @RequestParam String contentId) {
// String currentUid = CurrentUtil.getCurrentUid();
//
// if (adamDisposedService.exists(currentUid, type, contentId)) {
// return ResponseDto.success();
// }
//
// AdamDisposedBaseVo disposedBaseVo = AdamDisposedBaseVo.getNew();
// disposedBaseVo.setType(type);
// disposedBaseVo.setContentId(contentId);
// disposedBaseVo.setUid(currentUid);
//
// adamDisposedService.add(disposedBaseVo);
//
// return ResponseDto.success();
// }
//
// @ApiOperationSupport(order = 2)
// @ApiOperation(value = "删除想去")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentIds", value = "内容ID[多个ID用','分隔]"),
// })
// @PostMapping("del")
// public ResponseDto<Object> del(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
// @RequestParam String type,
// @NotBlank(message = "内容ID不能为空") @RequestParam String contentIds) {
// adamDisposedService.del(CurrentUtil.getCurrentUid(), type, contentIds.split(","));
//
// return ResponseDto.success();
// }
//
// @ApiOperationSupport(order = 3)
// @ApiOperation(value = "想去列表")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
// @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageNo", value = "页码", example = "1"),
// @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageSize", value = "页展示条数", example = "5"),
// })
// @PostMapping("list")
// public ResponseDto<PagedResult<AdamDisposedVo>> list(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
// @RequestParam String type,
// @RequestParam(defaultValue = "1", required = false) int pageNo,
// @RequestParam(defaultValue = "5", required = false) int pageSize) {
// pageNo = pageNo > 0 ? pageNo : 1;
// pageSize = pageSize <= 0 || pageSize > 10 ? 10 : pageSize;
//
// return ResponseDto.success(adamDisposedService.queryPage(CurrentUtil.getCurrentUid(), type, pageNo, pageSize));
// }
//
// @ApiOperationSupport(order = 4)
// @ApiOperation(value = "想去用户列表")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET,VIDEO"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[1,64]"),
// @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageNo", value = "页码", example = "1"),
// @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageSize", value = "页展示条数", example = "10"),
// })
// @PostMapping("list/user")
// public ResponseDto<PagedResult<AdamDisposedUserVo>> listUser(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
// @RequestParam String type,
// @Size(min = 1, max = 64, message = "内容ID长度限制1-64位")
// @RequestParam String contentId,
// @RequestParam(defaultValue = "1", required = false) int pageNo,
// @RequestParam(defaultValue = "10", required = false) int pageSize) {
// pageNo = pageNo > 0 ? pageNo : 1;
// pageSize = pageSize <= 0 || pageSize > 20 ? 20 : pageSize;
//
// return ResponseDto.success(adamDisposedService.queryDisposedUsers(type, contentId, pageNo, pageSize));
// }
//
// @ApiOperationSupport(order = 5)
// @ApiOperation(value = "获取想去状态")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[64]"),
// })
// @GetMapping("state")
// public ResponseDto<Boolean> state(@Pattern(regexp = "\\b(TICKET|VIDEO)\\b", message = "想去类型无效")
// @RequestParam String type,
// @Size(min = 1, max = 64, message = "内容ID长度限制1-64位")
// @RequestParam String contentId) {
// return ResponseDto.success(adamDisposedService.queryState(CurrentUtil.getCurrentUid(), type, contentId));
// }
//}
package com.liquidnet.service.adam.controller;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.dypnsapi.model.v20170525.GetMobileRequest;
import com.aliyuncs.dypnsapi.model.v20170525.GetMobileResponse;
......@@ -19,6 +21,7 @@ import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.AdamLoginInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.AdamWechatService;
import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
......@@ -28,6 +31,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -68,57 +72,11 @@ public class AdamLoginController {
IAdamUserService adamUserService;
@Autowired
SmsProcessor smsProcessor;
@Autowired
AdamWechatService adamWechatService;
@Value("${liquidnet.reviewer.app-login.mobile}")
private String reviewMobile;
private static final String PHP_API_SMS_CODE_SEND = "/smsCode";
private static final String PHP_API_SMS_CODE_VALID = "/smsValidation";
// @GetMapping(value = {"gen"})
// public void genID() {
// log.debug("-nextSnowId:{}", IDGenerator.nextSnowId());
// log.debug("nextMilliId:{}", IDGenerator.nextMilliId());
// log.debug("nextMilliId:{}", IDGenerator.nextTimeId());
// log.debug("nextMilliId:{}", IDGenerator.get32UUID());
//
//
// ObjectNode smsNode = JsonUtils.OM().createObjectNode();
// smsNode.put("code", "123456");
// smsProcessor.aliyunDysmsSend("13753596360",
// SmsEnum.ADSignName.正在现场.name(), SmsEnum.ADTemplate.SMS_109535335.name(),
// smsNode.toString());
//
//
//
// ArrayNode smsBatchPhones = JsonUtils.OM().createArrayNode(),
// smsBatchSignNames = JsonUtils.OM().createArrayNode(),
// smsBatchTemplateParams = JsonUtils.OM().createArrayNode();
// ObjectNode smsBatchTemplateParam = JsonUtils.OM().createObjectNode();
//
// smsBatchPhones.add("13753596360");
// smsBatchPhones.add("17701223310");
//
// smsBatchSignNames.add(SmsEnum.ADSignName.正在现场.name());
// smsBatchSignNames.add(SmsEnum.ADSignName.正在现场.name());
//
// smsBatchTemplateParam.put("userName", "张某人");
// smsBatchTemplateParam.put("aName", "大美");
// smsBatchTemplateParam.put("time", "2021-07-10");
// smsBatchTemplateParam.put("siteName", "北京");
// smsBatchTemplateParam.put("url", "show");
//
// smsBatchTemplateParams.add(smsBatchTemplateParam.deepCopy());
//
// smsBatchTemplateParam.put("userName", "张某人");
// smsBatchTemplateParam.put("aName", "大美2");
// smsBatchTemplateParam.put("time", "2021-07-11");
// smsBatchTemplateParam.put("siteName", "天津");
// smsBatchTemplateParam.put("url", "show2");
// smsBatchTemplateParams.add(smsBatchTemplateParam);
//
// smsProcessor.aliyunDysmsSendBatch(smsBatchPhones.toPrettyString(), smsBatchSignNames.toString(), SmsEnum.ADTemplate.SMS_109535335.name(), smsBatchTemplateParams.toString());
// }
@ApiOperationSupport(order = 2)
@ApiOperation(value = "发送验证码")
......@@ -128,35 +86,6 @@ public class AdamLoginController {
@GetMapping(value = {"send"})
public ResponseDto<Object> sendSms(@Pattern(regexp = "\\d{11}", message = "手机号格式有误") @RequestParam String mobile) {
log.debug("send to mobile:{}", mobile);
// Map<String, Object> respMap = null;
// String respStr = null;
// try {
// LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
// paramsMap.add("mobile", mobile);
//
// long s = System.currentTimeMillis();
// respStr = HttpUtil.postToPhpApi(env.getProperty("liquidnet.url-service.url") + PHP_API_SMS_CODE_SEND, paramsMap);
// log.debug("###PHP.API[{}].RESP[{}]", PHP_API_SMS_CODE_SEND, respStr);
// log.debug("#PHP.API耗时:{}ms", System.currentTimeMillis() - s);
// respMap = JsonUtils.fromJson(respStr, Map.class);
// } catch (Exception e) {
// RedisLockUtil.unlock(LOCK_KEY_USMS_MOBILE + mobile);
// if (e instanceof HttpClientErrorException) {
// log.error("PHP.API验证码发送异常[mobile:{},respStr:{},ex:{}]", mobile, respStr, e.getLocalizedMessage());
// HttpClientErrorException ex = (HttpClientErrorException) e;
// JsonNode exBody = JsonUtils.fromJson(ex.getResponseBodyAsString(), JsonNode.class);
// return ResponseDto.failure("10003", exBody.get("message").asText());
// }
// log.error("PHP.API验证码发送异常[mobile:{},respStr:{}]", mobile, respStr, e);
// return ResponseDto.failure(ErrorMapping.get("10003"));
// }
// if (!CollectionUtils.isEmpty(respMap) && StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"))) {
// return ResponseDto.success();
// } else {
// RedisLockUtil.unlock(LOCK_KEY_USMS_MOBILE + mobile);
// log.warn("PHP.API验证码发送失败[mobile:{},respStr:{}]", mobile, respStr);
// return ResponseDto.failure(ErrorMapping.get("10003"));
// }
String smsCodeByMobile = adamRdmService.getSmsCodeByMobile(mobile);
......@@ -165,10 +94,6 @@ public class AdamLoginController {
}
String smsCode = RandomStringUtils.randomNumeric(6);
// SmsMessage smsMessage = SmsMessage.builder().setPhone(mobile).setSignName(SmsEnum.ADSignName.正在现场.name())
// .setTemplateCode(SmsEnum.ADTemplate.SMS_109535335.name())
// .setTemplateParam("code", smsCode);
// rabbitTemplate.convertAndSend(MQConst.EX_LNS_SMS_SENDER, MQConst.RK_SMS_CODE, smsMessage.toJson());
ObjectNode msgNode = JsonUtils.OM().createObjectNode();
msgNode.put("code", smsCode);
boolean sendRst = smsProcessor.send(mobile, SmsEnum.ADSignName.M02.getVal(), SmsEnum.ADTemplate.SMS_221055862.name(), msgNode.toString());
......@@ -185,7 +110,7 @@ public class AdamLoginController {
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mobile", value = "手机号"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "code", value = "验证码"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "skip", value = "是否跳过完善资料[1-跳过]"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "skip", value = "是否跳过完善资料[1-跳过]"),
})
@PostMapping(value = {"login/sms"})
public ResponseDto<AdamLoginInfoVo> loginBySms(@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
......@@ -267,9 +192,71 @@ public class AdamLoginController {
}
@ApiOperationSupport(order = 5)
@ApiOperation(value = "微信小程序登录")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "anum", value = "应用标识[1-正在|2-草莓音乐节|3-五百里|4-MDSK]", allowableValues = "1,2,3,4"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "code", value = "临时票据"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "encryptedData", value = "访问令牌"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "iv", value = "访问令牌"),
})
@PostMapping(value = {"login/wca"})
public ResponseDto<AdamLoginInfoVo> loginByWechatApplet(@RequestParam Integer anum,
@RequestParam String code,
@RequestParam String encryptedData,
@RequestParam String iv) {
log.debug("login by wechat applet:[anum:{},code:{},encryptedData:{},iv:{}]", anum, code, encryptedData, iv);
String wechatMobile, wechatOpenid, wechatUnionid;
try {
WxMaJscode2SessionResult wxMaJscode2SessionResult = adamWechatService.sessionInfo(code, anum);
WxMaPhoneNumberInfo wxMaPhoneNumberInfo = adamWechatService.phoneNumberInfo(wxMaJscode2SessionResult.getSessionKey(), encryptedData, iv, anum);
wechatMobile = wxMaPhoneNumberInfo.getPurePhoneNumber();
wechatOpenid = wxMaJscode2SessionResult.getOpenid();
wechatUnionid = wxMaJscode2SessionResult.getUnionid();
} catch (WxErrorException e) {
log.error("login by wechat applet exception:[anum:{},code:{},encryptedData:{},iv:{}], errmsg:{}", anum, code, encryptedData, iv, e.getMessage());
return ResponseDto.failure("微信小程序解码信息失败");
}
if (StringUtils.isEmpty(wechatMobile)) return ResponseDto.failure(ErrorMapping.get("10005"));
String uid = adamRdmService.getUidByMobile(wechatMobile);
boolean toRegister = StringUtils.isEmpty(uid);
AdamUserInfoVo userInfoVo;
if (toRegister) {
userInfoVo = adamUserService.register(wechatMobile);
if (null == userInfoVo) {
return ResponseDto.failure(ErrorMapping.get("10000"));
}
} else {
userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
}
// 根据skip值,设置IsComplete(考虑到已存在用户未完善信息的情况,这里只对返回数据单独设置IsComplete)
userInfoVo.setIsComplete(1);
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
if (!toRegister) {
// loginInfoVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(userInfoVo.getUid()));
// loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(userInfoVo.getUid()));
loginInfoVo.setUserMemberVo(adamRdmService.getUserMemberVoByUid(userInfoVo.getUid()));
}
// loginInfoVo.setMemberVo(adamRdmService.getMemberSimpleVo());
loginInfoVo.setUserInfo(userInfoVo);
loginInfoVo.setToken(this.ssoProcess(userInfoVo));
loginInfoVo.getUserInfo().setMobile(SensitizeUtil.custom(userInfoVo.getMobile(), 3, 4));
loginInfoVo.setWechatOpenid(wechatOpenid);
loginInfoVo.setWechatUnionid(wechatUnionid);
log.info(UserPathDto.setData(toRegister ? "注册" : "登录", ServletUtils.getRequest().getParameterMap(), loginInfoVo));
return ResponseDto.success(loginInfoVo);
}
@ApiOperationSupport(order = 6)
@ApiOperation(value = "第三方账号登录")
@PostMapping(value = {"login/tpa"})
public ResponseDto<AdamLoginInfoVo> loginByTpa(@Valid @RequestBody AdamThirdPartParam parameter) {
public ResponseDto<AdamLoginInfoVo> loginByThirdPartApp(@Valid @RequestBody AdamThirdPartParam parameter) {
log.debug("login by tpa:{}", JsonUtils.toJson(parameter));
boolean toRegister = false;
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
......@@ -304,7 +291,7 @@ public class AdamLoginController {
return ResponseDto.success(loginInfoVo);
}
@ApiOperationSupport(order = 6)
@ApiOperationSupport(order = 7)
@ApiOperation(value = "登出")
@PostMapping(value = {"out"})
public void logout() {
......@@ -313,7 +300,7 @@ public class AdamLoginController {
redisUtil.del(jwtValidator.getSsoRedisKey().concat(CurrentUtil.getCurrentUid()));
}
@ApiOperationSupport(order = 7)
@ApiOperationSupport(order = 8)
@ApiOperation(value = "注销")
@PostMapping(value = {"close"})
public ResponseDto<Object> close() {
......@@ -326,14 +313,14 @@ public class AdamLoginController {
return ResponseDto.success();
}
@ApiOperationSupport(order = 8)
@ApiOperationSupport(order = 9)
@ApiOperation(value = "时间戳")
@GetMapping(value = {"ts"})
public ResponseDto<Long> timestamp() {
return ResponseDto.success(LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli());
}
@ApiOperationSupport(order = 9)
@ApiOperationSupport(order = 10)
@ApiOperation(value = "微信小程序登录凭证校验", notes = "这里仅用于获取OPENID使用。登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。更多使用方法详见 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html")
@GetMapping(value = {"wxa/code2session"})
public ResponseDto<String> wxaCode2Session(@RequestParam String jsCode) {
......@@ -356,7 +343,7 @@ public class AdamLoginController {
return ResponseDto.success(openId);
}
@ApiOperationSupport(order = 10)
@ApiOperationSupport(order = 11)
@ApiOperation(value = "微信网站应用登录", notes = "这里仅用于获取OPENID使用。方法详见 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html")
@GetMapping(value = {"wx/oauth2/access_token"})
public ResponseDto<String> wxOauth2AccessToken(@RequestParam String code) {
......@@ -391,26 +378,6 @@ public class AdamLoginController {
}
}
// LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
// paramsMap.add("mobile", mobile);
// paramsMap.add("code", code);
//
// String respStr = null;
// try {
// respStr = HttpUtil.postToPhpApi(env.getProperty("liquidnet.url-service.url") + PHP_API_SMS_CODE_VALID, paramsMap);
// log.debug("###PHP.API[{}].RESP:{}", PHP_API_SMS_CODE_VALID, respStr);
// Map respMap = JsonUtils.fromJson(respStr, Map.class);
// if (!CollectionUtils.isEmpty(respMap) && StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"))) {
// return true;
// } else {
// log.warn("PHP.API验证码验证失败[mobile:{},code:{},respStr:{}]", mobile, code, respStr);
// return false;
// }
// } catch (Exception e) {
// log.error("PHP.API验证码验证异常[mobile:{},code:{},respStr:{}]", mobile, code, respStr, e);
// return false;
// }
String smsCodeByMobile = adamRdmService.getSmsCodeByMobile(mobile);
if (null == smsCodeByMobile) {
return ResponseDto.failure(ErrorMapping.get("10004"));
......
......@@ -220,16 +220,8 @@ public class AdamMemberOrderController {
return ResponseDto.failure(ErrorMapping.get("10000"));
}
}
// if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_CODE + param.getMemberCode(), 1, 5)) {
ResponseDto<AdamMemberOrderResult> responseDto = adamMemberOrderService.exchangeMemberCode(param);
// if (!responseDto.isSuccess()) {
// RedisLockUtil.unlock(LOCK_KEY_UMEMBER_CODE + param.getMemberCode());
// }
return responseDto;
// } else {
// return ResponseDto.failure(ErrorMapping.get("10000"));
// }
return adamMemberOrderService.exchangeMemberCode(param);
}
@ApiOperationSupport(order = 5)
......
......@@ -329,22 +329,6 @@ public class AdamUserController {
return ResponseDto.success();
}
// LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
// paramsMap.add("mobile", mobile);
// paramsMap.add("code", code);
// LinkedMultiValueMap<String, String> headersMap = new LinkedMultiValueMap<>();
// headersMap.add("token", null);
// try {
// String respStr = HttpUtil.get(env.getProperty("liquidnet.url-service.url") + PHP_API_SMS_CODE_VALID, paramsMap, headersMap);
// log.debug("###PHP.API.RESP:{}", respStr);
//
// Map respMap = JsonUtils.fromJson(respStr, Map.class);
//
// return StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"));
// } catch (Exception e) {
// log.error("验证码验证异常[mobile:{},code:{}]", mobile, code, e);
// return false;
// }
String smsCodeByMobile = adamRdmService.getSmsCodeByMobile(mobile);
if (null == smsCodeByMobile) {
return ResponseDto.failure(ErrorMapping.get("10004"));
......
package com.liquidnet.service.adam.service;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
import com.liquidnet.service.adam.config.WechatMaConfigure;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class AdamWechatService {
@Autowired
WechatMaConfigure wechatMaConfigure;
public WxMaJscode2SessionResult sessionInfo(String code, Integer anum) throws WxErrorException {
WxMaService wxMaService = wechatMaConfigure.getWxMaService(anum);
return wxMaService.getUserService().getSessionInfo(code);
}
public WxMaUserInfo userInfo(String sessionKey, String encryptedData, String iv, Integer anum) {
WxMaService wxMaService = wechatMaConfigure.getWxMaService(anum);
return wxMaService.getUserService().getUserInfo(sessionKey, encryptedData, iv);
}
public WxMaPhoneNumberInfo phoneNumberInfo(String sessionKey, String encryptedData, String iv, Integer anum) {
WxMaService wxMaService = wechatMaConfigure.getWxMaService(anum);
return wxMaService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv);
}
}
......@@ -34,8 +34,6 @@ import java.util.stream.IntStream;
@Slf4j
@Service
public class AdamAddressesServiceImpl implements IAdamAddressesService {
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -57,10 +55,6 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
vo.setState(1);
vo.setCreatedAt(now);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(vo, AdamAddressesVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
// adamRdmService.delAddressesVoByUid(currentUid);
adamRdmService.addAddressesVoByUid(currentUid, vos, vo);
......@@ -84,48 +78,22 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
LinkedList<Object[]> toMqObjs = CollectionUtil.linkedListObjectArr();
List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(uid);
if (vos.size() > 1) {// 取消原默认
// AdamAddressesVo unDeaultVo = AdamAddressesVo.getNew();
// unDeaultVo.setIsDefault(false);
// unDeaultVo.setUpdatedAt(now);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
// new Document("$set", new Document("isDefault", false).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// AdamAddressesVo unDefaultVoAfter = BsonUtil.toBean(doc, AdamAddressesVo.class);
AdamAddressesVo defaultVo = queryDefault(vos, uid, false);
defaultVo.setIsDefault(false);
defaultVo.setUpdatedAt(now);
AdamAddressesVo defaultVo = queryDefault(vos, uid, false);
defaultVo.setIsDefault(false);
defaultVo.setUpdatedAt(now);
toMqObjs.add(new Object[]{false, now, defaultVo.getAddressesId()});
toMqObjs.add(new Object[]{false, now, defaultVo.getAddressesId()});
this.collectionProcess(vos, defaultVo.getAddressesId(), defaultVo);
// }
this.collectionProcess(vos, defaultVo.getAddressesId(), defaultVo);
}
{// 设置新默认
// AdamAddressesVo defaultVo = AdamAddressesVo.getNew();
// defaultVo.setIsDefault(true);
// defaultVo.setUpdatedAt(now);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("addressesId").is(addressesId)).getQueryObject(),
// new Document("$set", new Document("isDefault", true).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// AdamAddressesVo defaultVoAfter = BsonUtil.toBean(doc, AdamAddressesVo.class);
AdamAddressesVo defaultVoAfter = adamRdmService.getAddressesVoByUidAddressesId(vos, addressesId);
defaultVoAfter.setIsDefault(true);
defaultVoAfter.setUpdatedAt(now);
AdamAddressesVo defaultVoAfter = adamRdmService.getAddressesVoByUidAddressesId(vos, addressesId);
defaultVoAfter.setIsDefault(true);
defaultVoAfter.setUpdatedAt(now);
toMqObjs.add(new Object[]{true, now, addressesId});
toMqObjs.add(new Object[]{true, now, addressesId});
this.collectionProcess(vos, defaultVoAfter.getAddressesId(), defaultVoAfter);
// }
this.collectionProcess(vos, defaultVoAfter.getAddressesId(), defaultVoAfter);
}
if (!CollectionUtils.isEmpty(toMqObjs)) {
long s = System.currentTimeMillis();
......@@ -155,56 +123,25 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
updateVo.setCounty(parameter.getCounty());
updateVo.setAddress(parameter.getAddress());
updateVo.setUpdatedAt(now);
// AdamAddressesVo updateVo = AdamAddressesVo.getNew();
// BeanUtils.copyProperties(parameter, updateVo);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(parameter.getAddressesId())).getQueryObject(),
// new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// updateVo = BsonUtil.toBean(doc, AdamAddressesVo.class);
//
// List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(currentUid);
long s = System.currentTimeMillis();
adamRdmService.setAddressesVoByUid(updateVo.getUid(), this.collectionProcess(vos, parameter.getAddressesId(), updateVo));
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
adamRdmService.setAddressesVoByUid(updateVo.getUid(), this.collectionProcess(vos, parameter.getAddressesId(), updateVo));
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_addresses.edit",
updateVo.getName(), updateVo.getPhone(), updateVo.getProvince(), updateVo.getCity(), updateVo.getCounty(), updateVo.getAddress(), now, updateVo.getAddressesId()
)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
// }
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_addresses.edit",
updateVo.getName(), updateVo.getPhone(), updateVo.getProvince(), updateVo.getCity(), updateVo.getCounty(), updateVo.getAddress(), now, updateVo.getAddressesId()
)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void remove(String uid, String addressesId) {
// String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
// AdamAddressesVo removeVo = AdamAddressesVo.getNew();
// removeVo.setState(2);
// removeVo.setIsDefault(false);
// removeVo.setUpdatedAt(now);
// removeVo.setDeletedAt(now);
// long s = System.currentTimeMillis();
// DeleteResult deleteResult = mongoTemplate.remove(
// Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(addressesId)), AdamAddressesVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(uid);
// vos.removeIf(r -> r.getAddressesId().equals(addressesId));
// s = System.currentTimeMillis();
// adamRdmService.setAddressesVoByUid(uid, vos);
// log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
adamRdmService.rmvAddressesVoByUid(uid, adamRdmService.getAddressesVoByUid(uid), addressesId);
long s = System.currentTimeMillis();
......@@ -244,18 +181,8 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
.filter(i -> vos.get(i).getAddressesId().equals(replaceId))
.findFirst().orElse(-1);
if (idx == -1) {
// adamRdmService.delAddressesVoByUid(updateVo.getUid());
//
// List<AdamAddressesVo> addressesVos = adamRdmService.getAddressesVoByUid(updateVo.getUid());
//
// idx = IntStream.range(0, vos.size())
// .filter(i -> addressesVos.get(i).getAddressesId().equals(replaceId))
// .findFirst().orElse(-1);
//
// if (idx == -1) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10018");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10018");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
vos.set(idx, updateVo);
log.debug("#collect.process耗时:{}ms", System.currentTimeMillis() - s);
......
......@@ -36,16 +36,11 @@ import java.util.stream.IntStream;
public class AdamEntersServiceImpl implements IAdamEntersService {
@Autowired
Environment env;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
AdamRdmService adamRdmService;
private static final String PHP_API_REAL_NAME = "/IdCardCheckVerification";
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public String add(AdamEntersParam parameter) {
......@@ -72,10 +67,6 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
vo.setState(1);
vo.setCreatedAt(now);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(vo, AdamEntersVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
// adamRdmService.delEntersVoByUid(currentUid);
adamRdmService.addEntersVoByUid(currentUid, vos, vo);
......@@ -104,47 +95,22 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
LinkedList<Object[]> toMqObjs = CollectionUtil.linkedListObjectArr();
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(uid);
if (vos.size() > 1) {// 取消原默认
// AdamEntersVo unDeaultVo = AdamEntersVo.getNew();
// unDeaultVo.setIsDefault(false);
// unDeaultVo.setUpdatedAt(now);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
// new Document("$set", new Document("isDefault", false).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// AdamEntersVo defaultVo = BsonUtil.toBean(doc, AdamEntersVo.class);
AdamEntersVo defaultVo = queryDefault(vos, uid, false);
defaultVo.setIsDefault(false);
defaultVo.setUpdatedAt(now);
AdamEntersVo defaultVo = queryDefault(vos, uid, false);
defaultVo.setIsDefault(false);
defaultVo.setUpdatedAt(now);
toMqObjs.add(new Object[]{false, now, defaultVo.getEntersId()});
toMqObjs.add(new Object[]{false, now, defaultVo.getEntersId()});
vos = this.collectionProcess(vos, defaultVo.getEntersId(), defaultVo);
// }
vos = this.collectionProcess(vos, defaultVo.getEntersId(), defaultVo);
}
{// 设置新默认
// AdamEntersVo defaultVo = AdamEntersVo.getNew();
// defaultVo.setIsDefault(true);
// defaultVo.setUpdatedAt(now);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("entersId").is(entersId)).getQueryObject(),
// new Document("$set", new Document("isDefault", true).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
AdamEntersVo defaultVoAfter = adamRdmService.getEntersVoByUidEntersId(vos, entersId);
defaultVoAfter.setIsDefault(true);
defaultVoAfter.setUpdatedAt(now);
AdamEntersVo defaultVoAfter = adamRdmService.getEntersVoByUidEntersId(vos, entersId);
defaultVoAfter.setIsDefault(true);
defaultVoAfter.setUpdatedAt(now);
toMqObjs.add(new Object[]{true, now, entersId});
toMqObjs.add(new Object[]{true, now, entersId});
vos = this.collectionProcess(vos, defaultVoAfter.getEntersId(), defaultVoAfter);
// }
vos = this.collectionProcess(vos, defaultVoAfter.getEntersId(), defaultVoAfter);
}
if (!CollectionUtils.isEmpty(toMqObjs)) {
long s = System.currentTimeMillis();
......@@ -178,52 +144,27 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
updateVo.setMobile(parameter.getMobile());
updateVo.setIdCard(parameter.getIdCard());
updateVo.setUpdatedAt(now);
// AdamEntersVo updateVo = AdamEntersVo.getNew();
// BeanUtils.copyProperties(parameter, updateVo);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(parameter.getEntersId())).getQueryObject(),
// new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// updateVo = BsonUtil.toBean(doc, AdamEntersVo.class);
//
// List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(currentUid);
long s = System.currentTimeMillis();
adamRdmService.setEntersVoByUid(currentUid, this.collectionProcess(vos, parameter.getEntersId(), updateVo));
if (1 == parameter.getType()) {
adamRdmService.setCertification(1, parameter.getIdCard(), parameter.getName());
}
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
adamRdmService.setEntersVoByUid(currentUid, this.collectionProcess(vos, parameter.getEntersId(), updateVo));
if (1 == parameter.getType()) {
adamRdmService.setCertification(1, parameter.getIdCard(), parameter.getName());
}
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_enters.edit",
updateVo.getType(), updateVo.getName(), updateVo.getMobile(), updateVo.getIdCard(), updateVo.getIsDefault(), updateVo.getState(), now, updateVo.getEntersId()
)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
// }
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_enters.edit",
updateVo.getType(), updateVo.getName(), updateVo.getMobile(), updateVo.getIdCard(), updateVo.getIsDefault(), updateVo.getState(), now, updateVo.getEntersId()
)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void remove(String uid, String entersId) {
// String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
// long s = System.currentTimeMillis();
// DeleteResult deleteResult = mongoTemplate.remove(
// Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(entersId)), AdamEntersVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(uid);
// vos.removeIf(r -> r.getEntersId().equals(entersId));
// s = System.currentTimeMillis();
// adamRdmService.setEntersVoByUid(uid, vos);
// log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
adamRdmService.rmvEntersVoByUid(uid, adamRdmService.getEntersVoByUid(uid), entersId);
long s = System.currentTimeMillis();
......@@ -264,18 +205,8 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
.filter(i -> vos.get(i).getEntersId().equals(replaceId))
.findFirst().orElse(-1);
if (idx == -1) {
// adamRdmService.delEntersVoByUid(updateVo.getUid());
//
// List<AdamEntersVo> entersVos = adamRdmService.getEntersVoByUid(updateVo.getUid());
//
// idx = IntStream.range(0, vos.size())
// .filter(i -> entersVos.get(i).getEntersId().equals(replaceId))
// .findFirst().orElse(-1);
//
// if (idx == -1) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10017");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10017");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
vos.set(idx, updateVo);
log.debug("#collect.process耗时:{}ms", System.currentTimeMillis() - s);
......@@ -283,27 +214,6 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
}
private void identityHandler(String currentUid, String name, String idCard) {
// String respStr = null;
// try {
// LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
// paramsMap.add("realName", name);
// paramsMap.add("cardNo", idCard);
//
// long s = System.currentTimeMillis();
// respStr = HttpUtil.postToPhpApi(env.getProperty("liquidnet.url-service.url") + PHP_API_REAL_NAME, paramsMap);
// log.debug("#PHP.API耗时:{}ms", System.currentTimeMillis() - s);
// log.debug("###PHP.API[{}].RESP:{}", PHP_API_REAL_NAME, respStr);
// Map respMap = JsonUtils.fromJson(respStr, Map.class);
// if (CollectionUtils.isEmpty(respMap) || !StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"))) {
// log.warn("PHP.API实名认证失败[uid:{},name:{},idCard:{},respStr:{}]", currentUid, name, idCard, respStr);
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10102");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
// } catch (Exception e) {
// log.error("PHP.API实名认证异常[uid:{},name:{},idCard:{},respStr:{}]", currentUid, name, idCard, respStr, e);
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10102");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
String respStr = IdentityUtils.aliThird(name, idCard);
JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
if (null == respJNode || !"0".equals(respJNode.get("error_code").asText())) {
......
......@@ -39,8 +39,6 @@ import java.util.List;
public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
@Autowired
Environment env;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -218,9 +216,6 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initUserMemberVo.setExpiryAt(now.plusDays(memberPriceVo.getDays()).with(LocalTime.MAX));
initUserMemberVo.setCreatedAt(now);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), initUserMemberVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -238,12 +233,6 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
LocalDateTime currentExpiryAt = existUserMemberVo.getExpiryAt();
LocalDateTime expiryAt = (currentExpiryAt.isBefore(now) ? now : currentExpiryAt).plusDays(memberPriceVo.getDays()).with(LocalTime.MAX);
// long s = System.currentTimeMillis();
// mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("uid").is(updateExistUserMemberVo.getUid())).getQueryObject(),
// new Document("$set", new Document("expiryAt", expiryAt).append("state", 1))
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
updateExistUserMemberVo.setState(1);
updateExistUserMemberVo.setExpiryAt(expiryAt);
long s = System.currentTimeMillis();
......@@ -273,9 +262,6 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberCodeVo.setBuyAt(handleMemberOrderVo.getCreatedAt());
initMemberCodeVo.setCreatedAt(now);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(initMemberCodeVo, AdamMemberCodeVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
adamRdmService.setMemberCodeByBuyOrderNo(initMemberCodeVo.getBuyOrderNo(), initMemberCodeVo.getCode());
adamRdmService.setMemberCodeVoByCode(initMemberCodeVo.getCode(), initMemberCodeVo);
......@@ -292,10 +278,6 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
handleMemberOrderVo.setUpdatedAt(now);
handleMemberOrderVo.setState(1);// 1-已支付
// long s = System.currentTimeMillis();
// mongoTemplate.insert(handleMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
// adamRdmService.setShotMemberOrderVoByOrderNo(handleMemberOrderVo.getOrderNo(), handleMemberOrderVo);
adamRdmService.addMemberOrderVoByUid(
......@@ -406,12 +388,6 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
updateExistUserMemberVo.setExpiryAt(
(expiryAt.isBefore(now) ? now : expiryAt).plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX)
);
// long s = System.currentTimeMillis();
// mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("uid").is(updateExistUserMemberVo.getUid())).getQueryObject(),
// new Document("$set", new Document("expiryAt", updateExistUserMemberVo.getExpiryAt()).append("state", 1))
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_user_member.update"));
upsertUserMemberObjs.add(new Object[]{
updateExistUserMemberVo.getState(), updateExistUserMemberVo.getExpiryAt(), now, updateExistUserMemberVo.getUid()
......@@ -426,9 +402,6 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initUserMemberVo.setExpiryAt(now.plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX));
initUserMemberVo.setCreatedAt(now);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_user_member.add"));
upsertUserMemberObjs.add(new Object[]{
initUserMemberVo.getUid(), initUserMemberVo.getMemberId(), initUserMemberVo.getMemberNo(),
......@@ -442,25 +415,11 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
// adamRdmService.delMemberCodeVoByCode(memberCodeVo.getCode());
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// Document updateMemberCodeVo = new Document("state", 1)
// .append("updatedAt", now)
// .append("useOrderNo", initMemberOrderVo.getOrderNo())
// .append("useUid", initMemberOrderVo.getUid())
// .append("useAt", now);
// s = System.currentTimeMillis();
// mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(),
// new Document("$set", updateMemberCodeVo)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_code.exchange"));
updateMemberCodeObjs.add(new Object[]{
1, now, initMemberOrderVo.getOrderNo(), initMemberOrderVo.getUid(), now, memberCodeVo.getCode()
});
// s = System.currentTimeMillis();
// mongoTemplate.insert(initMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_order.add"));
initMemberOrderObjs.add(new Object[]{
initMemberOrderVo.getOrderNo(), initMemberOrderVo.getUid(), initMemberOrderVo.getMode(), initMemberOrderVo.getPrice(),
......@@ -498,21 +457,6 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
@Override
public PagedResult<AdamMemberOrderSimpleVo> queryPage(String uid, int pageNo, int pageSize) {
// Query query = Query.query(Criteria.where("uid").is(uid).and("state").in(1,5));
//
// long count = mongoTemplate.count(query, AdamMemberOrderVo.class.getSimpleName());
//
// PagedResult<AdamMemberOrderSimpleVo> pagedResult = ObjectUtil.getAdamMemberOrderSimpleVoPagedResult();
// if (count > 0) {
// query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
//
// List<AdamMemberOrderSimpleVo> voList = mongoTemplate.find(
// query, AdamMemberOrderSimpleVo.class, AdamMemberOrderVo.class.getSimpleName()
// );
//
// pagedResult.setList(voList).setTotal(count, pageSize);
// }
// return pagedResult;
// TODO: 2021/7/29 会员订单列表查取
PagedResult<AdamMemberOrderSimpleVo> pagedResult = ObjectUtil.getAdamMemberOrderSimpleVoPagedResult();
ArrayList<AdamMemberOrderVo> orderVos = adamRdmService.getMemberOrderVosByUid(uid);
......
......@@ -24,8 +24,6 @@ import java.util.List;
@Slf4j
@Service
public class AdamRealNameServiceImpl implements IAdamRealNameService {
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
......@@ -34,10 +32,6 @@ public class AdamRealNameServiceImpl implements IAdamRealNameService {
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamRealName realName) {
// long s = System.currentTimeMillis();
// mongoTemplate.insert(realName, AdamRealInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
List<Object> paramList = Arrays.asList(
realName.getRealNameId(),
realName.getUid(),
......
......@@ -32,8 +32,6 @@ import java.util.Map;
@Slf4j
@Service
public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
AdamRdmService adamRdmService;
@Autowired
......@@ -49,15 +47,6 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
userInfoVo.setCreateAt(null);
Document updateDoc = Document.parse(JsonUtils.toJson(userInfoVo));
updateDoc.replace("updatedAt", userInfoVo.getUpdatedAt());
// long s = System.currentTimeMillis();
// UpdateResult updateResult = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("uid").is(userInfoVo.getUid())).getQueryObject(),
// new Document("$set", updateDoc)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (updateResult.getModifiedCount() <= 0) {
// log.warn("Invalid update MDB.AdamUserInfoVo:{}", JsonUtils.toJson(userInfoVo));
// }
long s = System.currentTimeMillis();
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
......@@ -95,18 +84,6 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public String editMobile(String uid, String mobile) {
LocalDateTime now = LocalDateTime.now();
// AdamUserInfoVo updateInfoVo = AdamUserInfoVo.getNew();
// updateInfoVo.setUpdatedAt(now);
// updateInfoVo.setMobile(mobile);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid)).getQueryObject(),
// new Document("$set", new Document("mobile", mobile).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.BEFORE)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// log.debug("edit mobile - before doc:{}", JsonUtils.toJson(doc));
// AdamUserInfoVo beforeUserInfoVo = BsonUtil.toBean(doc, AdamUserInfoVo.class);
AdamUserInfoVo beforeUserInfoVo = adamRdmService.getUserInfoVoByUid(uid);
long s = System.currentTimeMillis();
......
......@@ -12,8 +12,6 @@ import java.util.regex.Pattern;
@Slf4j
@Service
public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
AdamRdmService adamRdmService;
......
......@@ -45,8 +45,6 @@ import java.util.List;
public class AdamUserServiceImpl implements IAdamUserService {
@Autowired
Environment env;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -76,10 +74,6 @@ public class AdamUserServiceImpl implements IAdamUserService {
userInfoVo.setIsComplete(0);
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
// long s = System.currentTimeMillis();
// mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
adamRdmService.setUidByMobile(mobile, userInfoVo.getUid());
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
......@@ -128,12 +122,6 @@ public class AdamUserServiceImpl implements IAdamUserService {
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
userInfoVo.setCreateAt(now);
// s = System.currentTimeMillis();
// mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// userInfoVo.setMobile(SensitizeUtil.custom(param.getMobile(), 3, 4));
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
toMqSqls.add(SqlMapping.get("adam_user.add"));
......@@ -147,10 +135,6 @@ public class AdamUserServiceImpl implements IAdamUserService {
thirdPartInfoVo.setUid(userInfoVo.getUid());
thirdPartInfoVo.setState(1);// 1-绑定
// s = System.currentTimeMillis();
// mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_third_party.add"));
initThirdPartObjs.add(new Object[]{thirdPartInfoVo.getUid(), thirdPartInfoVo.getOpenId(), thirdPartInfoVo.getAvatar(), thirdPartInfoVo.getNickname(), thirdPartInfoVo.getPlatform(), thirdPartInfoVo.getState(), thirdPartInfoVo.getCreatedAt()});
......@@ -228,8 +212,6 @@ public class AdamUserServiceImpl implements IAdamUserService {
bindThirdPartVo.setUid(bindUid);
bindThirdPartVo.setState(1);// 1-绑定
// mongoTemplate.insert(bindThirdPartVo, AdamThirdPartInfoVo.class.getSimpleName());
adamRdmService.setUidByPlatformOpenId(param.getPlatform(), param.getOpenId(), bindUid);
// adamRdmService.delThirdPartVoListByUid(bindUid);
......@@ -252,23 +234,6 @@ public class AdamUserServiceImpl implements IAdamUserService {
*/
private void unBindTpaProcess(String uid, String platform) {
LocalDateTime now = LocalDateTime.now();
// AdamThirdPartInfoVo unBindThirdPartInfoVo = AdamThirdPartInfoVo.getNew();
// unBindThirdPartInfoVo.setUpdatedAt(now);
// unBindThirdPartInfoVo.setState(2);// 2-解绑
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("platform").is(platform).and("state").is(1)).getQueryObject(),
// new Document("$set", new Document("state", 2).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// s = System.currentTimeMillis();
// if (null != doc) {
// adamRdmService.delUidByPlatformOpenId(platform, doc.getString("openId"));
// }
long s = System.currentTimeMillis();
List<AdamThirdPartInfoVo> vos = adamRdmService.getThirdPartVoListByUid(uid);
if (!CollectionUtils.isEmpty(vos)) {
......@@ -320,45 +285,26 @@ public class AdamUserServiceImpl implements IAdamUserService {
adamRdmService.delEntersVoByUid(uid);
log.debug("##RDS耗时:{}ms", System.currentTimeMillis() - s);
// 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});
/* ---------------------- 三方账号信息 */
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) {
// s = System.currentTimeMillis();
// mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_third_party.close"));
objsThirdPart.add(new Object[]{now, uid});
}
/* ---------------------- 用户会员信息 */
// s = System.currentTimeMillis();
// deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_user_member.close"));
objsThirdPart.add(new Object[]{now, uid});
// }
/* ---------------------- 收货地址信息 */
// s = System.currentTimeMillis();
// deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamAddressesVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_addresses.close"));
objsAddresses.add(new Object[]{now, now, uid});
// }
/* ---------------------- 入场人信息 */
// s = System.currentTimeMillis();
// deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)).getQueryObject(), AdamEnters.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_enters.close"));
objsAddresses.add(new Object[]{now, now, uid});
// }
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
......@@ -373,26 +319,6 @@ public class AdamUserServiceImpl implements IAdamUserService {
public AdamRealInfoVo identity(String uid, String name, String idCard) {
AdamRealInfoVo vo = null;
if (!adamRdmService.isCertification(1, idCard, name)) {
// String respStr = null;
// try {
// LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
// paramsMap.add("realName", name);
// paramsMap.add("cardNo", idCard);
// long s = System.currentTimeMillis();
// respStr = HttpUtil.postToPhpApi(env.getProperty("liquidnet.url-service.url") + PHP_API_REAL_NAME, paramsMap);
// log.debug("#PHP.API耗时:{}ms", System.currentTimeMillis() - s);
// log.debug("###PHP.API[{}].RESP:{}", PHP_API_REAL_NAME, respStr);
// Map respMap = JsonUtils.fromJson(respStr, Map.class);
// if (CollectionUtils.isEmpty(respMap) || !StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"))) {
// log.warn("PHP.API实名认证失败[uid:{},name:{},idCard:{},respStr:{}]", uid, name, idCard, respStr);
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10102");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
// } catch (Exception e) {
// log.error("PHP.API实名认证异常[uid:{},name:{},idCard:{},respStr:{}]", uid, name, idCard, respStr, e);
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10102");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
String respStr = IdentityUtils.aliThird(name, idCard);
JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
if (null == respJNode || !"0".equals(respJNode.get("error_code").asText())) {
......
adam_user.add=INSERT INTO adam_user (`uid`, mobile, `state`, is_complete, created_at) VALUES (?,?,?,?,?)
adam_user.complete=UPDATE adam_user SET is_complete=?, updated_at=? WHERE `uid`=?
adam_user.edit.mobile=UPDATE adam_user SET mobile=?, updated_at=? WHERE `uid`=?
adam_user.close=UPDATE adam_user SET `state`=2, mobile=concat(mobile,curdate()), updated_at=?, closed_at=? WHERE `uid`=?
adam_user.close=UPDATE adam_user SET `state`=2, mobile=concat(mobile,'_',curtime()), updated_at=?, closed_at=? WHERE `uid`=?
# ----------------------------------------------------
adam_user_info.add=INSERT INTO adam_user_info (`uid`, nickname, avatar, qr_code) VALUES (?,?,?,?)
......@@ -13,7 +13,7 @@ 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=?
adam_third_party.close=UPDATE adam_third_party SET `state`=2, open_id=concat(open_id, curdate()), updated_at=?, comment='close' WHERE `uid`=?
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 (?,?,?,?,?,?,?,?,?,?,?)
......
package com.liquidnet.service.consumer.kylin.config;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerSweetSqlUserRelationRdsReceiver;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription;
import java.time.Duration;
import static com.liquidnet.service.base.constant.MQConst.SweetQueue.ARTISTS_RELATION;
@Configuration
public class ConsumerSweetSqlUserRelationRedisStreamConfig {
@Autowired
ConsumerSweetSqlUserRelationRdsReceiver consumerSweetSqlUserRelationRdsReceiver;
private StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
var options = StreamMessageListenerContainer
.StreamMessageListenerContainerOptions
.builder()
.pollTimeout(Duration.ofMillis(1))
.build();
return StreamMessageListenerContainer.create(factory, options);
}
/**
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlUserRelation(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(
Consumer.from(ARTISTS_RELATION.getGroup(), ARTISTS_RELATION.name() + t),
StreamOffset.create(ARTISTS_RELATION.getKey(), ReadOffset.lastConsumed()), consumerSweetSqlUserRelationRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlUserRelation(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlUserRelation(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlUserRelation2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlUserRelation(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlUserRelation3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlUserRelation(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
/* -------------------------------------------------------- | */
}
package com.liquidnet.service.consumer.kylin.receiver;
import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component;
@Component
public class ConsumerSweetSqlUserRelationRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return MQConst.SweetQueue.ARTISTS_RELATION.getKey();
}
@Override
protected String getRedisStreamGroup() {
return MQConst.SweetQueue.ARTISTS_RELATION.getGroup();
}
}
......@@ -209,3 +209,214 @@ CREATE TABLE `sweet_wechat_user`
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '正在现场服务号关注事件储存用户信息表';
-- 用户 收藏/喜欢等状态
drop TABLE if exists `sweet_user_relation`;
CREATE TABLE `sweet_user_relation`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`user_id` varchar(200) NOT NULL DEFAULT '' COMMENT '用户id',
`type` tinyint NOT NULL DEFAULT 0 COMMENT '类型 1喜欢艺人 2签售艺人',
`target_id` varchar(200) NOT NULL DEFAULT '' COMMENT '目标id',
`manual_id` varchar(200) NOT NULL DEFAULT '' COMMENT '电子手册',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '1是 0否',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `sweet_wechat_user_user_id` (`user_id`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '用户 收藏/喜欢等状态';
-- 下面为MDSK表 --
-- 电子宣传手册表
drop TABLE if exists `sweet_manual_mdsk`;
CREATE TABLE `sweet_manual_mdsk`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`manual_id` varchar(200) NOT NULL DEFAULT '0' COMMENT 'manual_id',
`performance_id` varchar(200) NULL COMMENT '演出id',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '0关闭 1开启',
`is_release` tinyint NOT NULL DEFAULT 1 COMMENT '0取消 1发布',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `manual_id_index` (`manual_id`),
KEY `performance_id_index` (`performance_id`),
KEY `is_release_index` (`is_release`),
KEY `status_index` (`status`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8
COLLATE = utf8_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '电子宣传手册表';
-- 电子宣传手册显示内容表
drop TABLE if exists `sweet_manual_sort_mdsk`;
CREATE TABLE `sweet_manual_sort_mdsk`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`manual_id` varchar(200) NOT NULL DEFAULT '0' COMMENT 'manual_id',
`show_position` varchar(200) NULL COMMENT '显示哪个,号隔开',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `manual_id_index` (`manual_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8
COLLATE = utf8_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '电子宣传手册显示内容表';
-- 电子宣传手册富文本表
drop TABLE if exists `sweet_richtext_mdsk`;
CREATE TABLE `sweet_richtext_mdsk`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`richtext_id` varchar(200) NOT NULL DEFAULT '0' COMMENT 'order_refund_id',
`manual_id` varchar(200) NOT NULL DEFAULT '0' COMMENT 'manual_id',
`details` longtext NULL COMMENT '富文本详情',
`local` varchar(200) NOT NULL DEFAULT '' COMMENT '经纬度 5需要',
`pic_url` varchar(200) NOT NULL DEFAULT '' COMMENT '地图图片地址 2需要',
`type` tinyint NOT NULL DEFAULT 0 COMMENT '类型 1签售时间 2现场地图 3官方大巴 4公共交通 5自驾导航坐标 6官方支持 7观众须知 8防疫指南 9观演攻略',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '0关闭 1开启',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `richtext_id_index` (`richtext_id`),
KEY `manual_id_index` (`manual_id`),
KEY `type_index` (`type`),
KEY `status_index` (`status`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8
COLLATE = utf8_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '电子宣传手册富文本表';
-- 电子宣传手册艺人表
drop TABLE if exists `sweet_manual_artists_mdsk`;
CREATE TABLE `sweet_manual_artists_mdsk`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`manual_relation_id` varchar(200) NOT NULL DEFAULT '0' COMMENT 'manual_relation_id',
`manual_id` varchar(200) NOT NULL DEFAULT '' COMMENT '电子宣传手册id',
`stage_id` varchar(200) NULL COMMENT '关联id',
`artists_id` varchar(200) NULL COMMENT '关联id',
`performance_start` datetime NULL COMMENT '演出开始时间',
`performance_end` datetime NULL COMMENT '演出结束时间',
`signature_start` datetime NULL COMMENT '签收开始时间',
`signature_end` datetime NULL COMMENT '签收结束时间',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '0关闭 1开启',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `manual_relation_id_index` (`manual_relation_id`),
KEY `manual_id_index` (`manual_id`),
KEY `stage_id_index` (`stage_id`),
KEY `artists_id_index` (`artists_id`),
KEY `status_index` (`status`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8
COLLATE = utf8_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '电子宣传手册艺人表';
-- 电子宣传手册通知表
drop TABLE if exists `sweet_manual_notify_mdsk`;
CREATE TABLE `sweet_manual_notify_mdsk`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`manual_notify_id` varchar(200) NOT NULL DEFAULT '0' COMMENT 'manual_notify_id',
`manual_id` varchar(200) NOT NULL DEFAULT '' COMMENT '电子宣传手册id',
`title` varchar(200) NOT NULL DEFAULT '' COMMENT '标题',
`content` longtext NULL COMMENT '内容',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '0关闭 1开启',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `manual_notify_id_index` (`manual_notify_id`),
KEY `manual_id_index` (`manual_id`),
KEY `status_index` (`status`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8
COLLATE = utf8_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '电子宣传手册通知表';
-- 电子宣传手册商铺表
drop TABLE if exists `sweet_manual_shop_mdsk`;
CREATE TABLE `sweet_manual_shop_mdsk`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`manual_shop_id` varchar(200) NOT NULL DEFAULT '0' COMMENT 'manual_shop_id',
`manual_id` varchar(200) NOT NULL DEFAULT '' COMMENT '电子宣传手册id',
`title` varchar(200) NOT NULL DEFAULT '' COMMENT '商家名称',
`pic_url` varchar(200) NOT NULL DEFAULT '' COMMENT '商家图片',
`describes` longtext NULL COMMENT '商家介绍',
`type` tinyint NOT NULL DEFAULT 1 COMMENT '1吃喝 2玩乐',
`is_recommend` tinyint NOT NULL DEFAULT 1 COMMENT '0不推荐 1推荐',
`sort` tinyint NOT NULL DEFAULT 0 COMMENT '排序字段 数字越大越靠前',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '0关闭 1开启',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `manual_shop_index` (`manual_shop_id`),
KEY `manual_id_index` (`manual_id`),
KEY `status_index` (`status`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8
COLLATE = utf8_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '电子宣传手册商铺表';
-- 正在现场服务号关注事件储存用户信息表
drop TABLE if exists `sweet_wechat_user_mdsk`;
CREATE TABLE `sweet_wechat_user_mdsk`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`user_id` varchar(200) NOT NULL DEFAULT '' COMMENT 'user_id',
`openId` varchar(200) NOT NULL DEFAULT '' COMMENT 'openId',
`unionId` varchar(200) NOT NULL DEFAULT '' COMMENT 'unionId',
`nickname` varchar(200) NOT NULL DEFAULT '' COMMENT '昵称',
`sexDesc` varchar(200) NOT NULL DEFAULT '' COMMENT '性别',
`sex` tinyint NOT NULL DEFAULT 0 COMMENT '性别 男1',
`headImgUrl` varchar(200) NOT NULL DEFAULT '' COMMENT '头像',
`language` varchar(200) NOT NULL DEFAULT '' COMMENT 'zh_CN',
`country` varchar(200) NOT NULL DEFAULT '' COMMENT '国家',
`province` varchar(200) NOT NULL DEFAULT '' COMMENT '省',
`city` varchar(200) NOT NULL DEFAULT '' COMMENT '市',
`subscribeTime` datetime NULL DEFAULT null COMMENT '关注时间',
`subscribeScene` varchar(200) NOT NULL DEFAULT '' COMMENT 'ADD_SCENE_SEARCH 关注方式',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `sweet_wechat_user_user_id` (`user_id`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '正在现场服务号关注事件储存用户信息表';
-- 用户 收藏/喜欢等状态
drop TABLE if exists `sweet_user_relation_mdsk`;
CREATE TABLE `sweet_user_relation_mdsk`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`user_id` varchar(200) NOT NULL DEFAULT '' COMMENT '用户id',
`type` tinyint NOT NULL DEFAULT 0 COMMENT '类型 1喜欢艺人 2签售艺人',
`target_id` varchar(200) NOT NULL DEFAULT '' COMMENT '目标id',
`manual_id` varchar(200) NOT NULL DEFAULT '' COMMENT '电子手册',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '1是 0否',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `sweet_wechat_user_user_id` (`user_id`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '用户 收藏/喜欢等状态';
XADD sweet:stream:rk.artists.relation * 0 0
XGROUP CREATE sweet:stream:rk.artists.relation group.artists.relation 0
......@@ -95,7 +95,7 @@ public class MybatisPlusCodeGenerator {
String resourcePath = "/Users/hujiachen/Downloads/tmp";
String directory = "com.liquidnet.service.sweet";
String[] dbTableArray = new String[]{"sweet_manual_shop"};
String[] dbTableArray = new String[]{"sweet_user_relation"};
doGenerator(resourcePath, dsc, directory, dbTableArray);
}
......
package com.liquidnet.service.sweet.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 用户 收藏/喜欢等状态 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-08-06
*/
@RestController
@RequestMapping("/sweet-user-relation")
public class SweetUserRelationController {
}
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-08-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetUserRelation implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* 用户id
*/
private String userId;
/**
* 类型 1喜欢艺人 2签售艺人
*/
private Integer type;
/**
* 目标id
*/
private Integer targetId;
/**
* 手册id
*/
private Integer manualId;
/**
* 1是 0否
*/
private String status;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.entity.SweetUserRelation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 用户 收藏/喜欢等状态 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-08-06
*/
public interface SweetUserRelationMapper extends BaseMapper<SweetUserRelation> {
}
package com.liquidnet.service.sweet.service;
import com.liquidnet.service.sweet.entity.SweetUserRelation;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 用户 收藏/喜欢等状态 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-06
*/
public interface ISweetUserRelationService extends IService<SweetUserRelation> {
}
package com.liquidnet.service.sweet.service.impl;
import com.liquidnet.service.sweet.entity.SweetUserRelation;
import com.liquidnet.service.sweet.mapper.SweetUserRelationMapper;
import com.liquidnet.service.sweet.service.ISweetUserRelationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 用户 收藏/喜欢等状态 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-08-06
*/
@Service
public class SweetUserRelationServiceImpl extends ServiceImpl<SweetUserRelationMapper, SweetUserRelation> implements ISweetUserRelationService {
}
......@@ -28,13 +28,13 @@ import org.springframework.stereotype.Service;
@Slf4j
public class SweetWechatCallbackServiceImpl {
@Value("${liquidnet.wechat.zhengzai.service.appid}")
@Value("${liquidnet.wechat.service.zhengzai.appid}")
private String appid;
@Value("${liquidnet.wechat.zhengzai.service.secret}")
@Value("${liquidnet.wechat.service.zhengzai.secret}")
private String secret;
@Value("${liquidnet.wechat.zhengzai.service.token}")
@Value("${liquidnet.wechat.service.zhengzai.token}")
private String token;
@Value("${liquidnet.wechat.zhengzai.service.aeskey}")
@Value("${liquidnet.wechat.service.zhengzai.aeskey}")
private String aeskey;
@Autowired
......
......@@ -7,7 +7,9 @@ import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
import cn.binarywang.wx.miniapp.config.WxMaConfig;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
......@@ -23,6 +25,7 @@ import java.util.Objects;
* @author liquidnet
* @since 2021-07-27
*/
@Slf4j
@Service
public class SweetWechatLoginServiceImpl {
......@@ -42,6 +45,10 @@ public class SweetWechatLoginServiceImpl {
private String mdskSecret;
public ResponseDto userInfo(String code, String encryptedData, String iv, Integer type) {
log.info("\n参数code:[{}] ", code);
log.info("\n参数encryptedData:[{}] ", encryptedData);
log.info("\n参数iv:[{}] ", iv);
log.info("\n参数type:[{}] ", type);
try {
String appId = "";
String appSecret = "";
......@@ -62,6 +69,7 @@ public class SweetWechatLoginServiceImpl {
WxMaConfig wxMaConfig = wxMaConfig(appId, appSecret);
WxMaService wxMaService = wxMaService(wxMaConfig);
WxMaJscode2SessionResult sessionInfo = wxMaService.getUserService().getSessionInfo(code);
log.info("\nWxMaJscode2SessionResult:[{}] ", JsonUtils.toJson(sessionInfo));
if (null == sessionInfo) {
return ResponseDto.failure("login handler error");
}
......@@ -69,6 +77,7 @@ public class SweetWechatLoginServiceImpl {
// 解密用户信息
WxMaUserInfo wxUserInfo = wxMaService.getUserService().getUserInfo(sessionInfo.getSessionKey(),
encryptedData, iv);
log.info("\nWxMaUserInfo:[{}] ", JsonUtils.toJson(wxUserInfo));
if (null == wxUserInfo) {
return ResponseDto.failure("wxUser not exist");
}
......@@ -76,6 +85,7 @@ public class SweetWechatLoginServiceImpl {
// 解密手机号码信息
WxMaPhoneNumberInfo wxMaPhoneNumberInfo = wxMaService.getUserService().getPhoneNoInfo(sessionInfo.getSessionKey(),
encryptedData, iv);
log.info("\nWxMaPhoneNumberInfo:[{}] ", wxMaPhoneNumberInfo.toString());
if (Objects.isNull(wxMaPhoneNumberInfo) || StringUtils.isBlank(wxMaPhoneNumberInfo.getPhoneNumber())) {
return ResponseDto.failure("解密手机号码信息错误");
}
......@@ -92,6 +102,8 @@ public class SweetWechatLoginServiceImpl {
return ResponseDto.success(userInfo);
} catch (Exception e) {
e.printStackTrace();
log.info("\nprintStackTrace:[{}] ", e.toString());
return ResponseDto.failure();
}
}
......
......@@ -37,9 +37,9 @@ import java.util.Set;
@Service
public class SweetWechatTemplateServiceImpl {
@Value("${liquidnet.wechat.zhengzai.service.appid}")
@Value("${liquidnet.wechat.service.zhengzai.appid}")
private String appid;
@Value("${liquidnet.wechat.zhengzai.service.secret}")
@Value("${liquidnet.wechat.service.zhengzai.secret}")
private String secret;
@Value("${liquidnet.client.admin.h5Url}")
private String h5Url;
......
......@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.dto.SweetManualAppletDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistList2Dto;
......@@ -16,6 +19,7 @@ import com.liquidnet.service.sweet.vo.SweetRemindVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.*;
@Component
......@@ -23,6 +27,8 @@ public class RedisDataUtils {
@Autowired
private RedisUtil redisUtil;
@Autowired
private QueueUtils queueUtils;
@Autowired
private SweetManualMapper sweetManualMapper;
......@@ -85,13 +91,13 @@ public class RedisDataUtils {
//获取时间
SweetManualAppletDto sweetManualAppletDto = getAppletPerformance(manualId);
Date dateEnd=DateUtil.parse(sweetManualAppletDto.getTimeEnd(), DateUtil.DATE_SMALL_STR);
Date dateStart=DateUtil.parse(sweetManualAppletDto.getTimeStart(), DateUtil.DATE_SMALL_STR);
int intervalDay = (int) DateUtil.intervalDays(dateStart,dateEnd );
Date dateEnd = DateUtil.parse(sweetManualAppletDto.getTimeEnd(), DateUtil.DATE_SMALL_STR);
Date dateStart = DateUtil.parse(sweetManualAppletDto.getTimeStart(), DateUtil.DATE_SMALL_STR);
int intervalDay = (int) DateUtil.intervalDays(dateStart, dateEnd);
ArrayList<String> list = new ArrayList<>();
list.add(DateUtil.format(dateStart, DateUtil.Formatter.yyyy_MM_dd));
for (int i = 0; i < intervalDay; i++) {
list.add(DateUtil.format(DateUtil.addDay(dateStart, i+1), DateUtil.Formatter.yyyy_MM_dd));
list.add(DateUtil.format(DateUtil.addDay(dateStart, i + 1), DateUtil.Formatter.yyyy_MM_dd));
}
//获取舞台
......@@ -198,42 +204,73 @@ public class RedisDataUtils {
redisUtil.del(SweetConstant.REDIS_KEY_SWEET_MANUAL_SORT.concat(manualId));//列表
}
public void setArtistsRelationRedisVo(String uid, String artistsId,String manualId, String type) {
public void setArtistsRelationRedisVo(String uid, String artistsId, String manualId, String type) {
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
LocalDateTime now = LocalDateTime.now();
String redisKey = SweetConstant.REDIS_KEY_SWEET_ARTISTS_RELATION.concat(uid).concat(":manualId:").concat(manualId);
SweetArtistsRelationVo vo = getArtistsRelationRedisVo(uid,manualId);
SweetArtistsRelationVo vo = getArtistsRelationRedisVo(uid, manualId);
vo.setUid(uid);
if (type.equalsIgnoreCase("sign")) {
if (vo.getSignList() == null) {
ArrayList<String> signList = new ArrayList<>();
signList.add(artistsId);
vo.setSignList(signList);
sqls.add(SqlMapping.get("sweet_user_relation.insert"));
sqlsDataA.add(new Object[]{
uid, 2, artistsId, manualId, now
});
} else {
if (vo.getSignList().contains(artistsId)) {
vo.getSignList().remove(artistsId);
sqls.add(SqlMapping.get("sweet_user_relation.delete"));
sqlsDataA.add(new Object[]{
uid, artistsId, manualId,2
});
} else {
vo.getSignList().add(artistsId);
sqls.add(SqlMapping.get("sweet_user_relation.insert"));
sqlsDataA.add(new Object[]{
uid, 2, artistsId, manualId, now
});
}
}
} else if (type.equalsIgnoreCase("watch")) {
if (vo.getSignList() == null) {
if (vo.getWatchList() == null) {
ArrayList<String> watchList = new ArrayList<>();
watchList.add(artistsId);
vo.setWatchList(watchList);
sqls.add(SqlMapping.get("sweet_user_relation.insert"));
sqlsDataA.add(new Object[]{
uid, 1, artistsId, manualId, now
});
} else {
if (vo.getWatchList().contains(artistsId)) {
vo.getWatchList().remove(artistsId);
sqls.add(SqlMapping.get("sweet_user_relation.delete"));
sqlsDataA.add(new Object[]{
uid, artistsId, manualId,1
});
} else {
vo.getWatchList().add(artistsId);
sqls.add(SqlMapping.get("sweet_user_relation.insert"));
sqlsDataA.add(new Object[]{
uid, 1, artistsId, manualId, now
});
}
}
}
redisUtil.set(redisKey, vo);
queueUtils.sendMsgByRedis(MQConst.SweetQueue.ARTISTS_RELATION.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
}
//获取 签售
//获取 想看
public SweetArtistsRelationVo getArtistsRelationRedisVo(String uid,String manualId) {
public SweetArtistsRelationVo getArtistsRelationRedisVo(String uid, String manualId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_ARTISTS_RELATION.concat(uid).concat(":manualId:").concat(manualId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
......@@ -282,6 +319,7 @@ public class RedisDataUtils {
String redisKey = SweetConstant.REDIS_KEY_SWEET_WECHAT_USER_INFO.concat(sweetWechatUser.getUnionId());
redisUtil.set(redisKey, sweetWechatUser);
}
public SweetWechatUser getSweetWechatUser(String unionid) {
if (unionid.isEmpty()) {
return null;
......@@ -291,10 +329,10 @@ public class RedisDataUtils {
}
// 艺人详情
public SweetArtists setArtistsDetails(String artistsId){
public SweetArtists setArtistsDetails(String artistsId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_ARTISTS_DETAILS.concat(artistsId);
SweetArtists sweetArtists = sweetArtistsMapper.selectOne(Wrappers.lambdaQuery(SweetArtists.class).eq(SweetArtists::getArtistsId,artistsId).eq(SweetArtists::getStatus,1));
redisUtil.set(redisKey,sweetArtists);
SweetArtists sweetArtists = sweetArtistsMapper.selectOne(Wrappers.lambdaQuery(SweetArtists.class).eq(SweetArtists::getArtistsId, artistsId).eq(SweetArtists::getStatus, 1));
redisUtil.set(redisKey, sweetArtists);
return sweetArtists;
}
......
......@@ -19,7 +19,7 @@ import java.util.Arrays;
public class WechatSignUtils {
// 与接口配置信息中的 Token 要一致
@Value("${liquidnet.wechat.zhengzai.service.token}")
@Value("${liquidnet.wechat.service.zhengzai.token}")
private String token;
/**
......
......@@ -50,5 +50,6 @@ kylin_order_ticket_entities.overtimeRefund=UPDATE kylin_order_ticket_entities SE
kylin_order_refund.overtimeRefund=INSERT INTO kylin_order_refunds (order_refunds_id,order_tickets_id,order_refund_code,price,price_express,status,type,applicant_id,applicant_name,applicant_at,reason,refund_cate,created_at) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)
kylin_order_refund_entities.overtimeRefund=INSERT INTO kylin_order_refund_entities (order_refunds_entities_id,order_refunds_id,refund_price,order_ticket_entities_id,created_at) VALUES(?,?,?,?,?)
# ------------------------用户关系----------------------------
sweet_user_relation.insert=INSERT INTO sweet_user_relation (user_id,type,target_id,manual_id,status,created_at) VALUES (?,?,?,?,1,?)
sweet_user_relation.delete=DELETE FROM sweet_user_relation WHERE user_id = ? and target_id = ? and manual_id = ? and type = ?
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