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

Commit f56c9089 authored by zhouhuan's avatar zhouhuan

Merge branch 'master' into master_zhouhuan

parents 048c4025 3086b75c
......@@ -112,6 +112,7 @@ public class CandyCouponCodeAdminController extends BaseController {
LambdaQueryWrapper<CandyCouponCode> couponCodeLambdaQueryWrapper = Wrappers.lambdaQuery(CandyCouponCode.class);
couponCodeLambdaQueryWrapper.in(CandyCouponCode::getCcode, ccodes);
couponCodeLambdaQueryWrapper.eq(CandyCouponCode::getCouponId, couponId);
couponCodeLambdaQueryWrapper.eq(CandyCouponCode::getState, 0);
List<CandyCouponCode> list = candyCouponCodeAdminService.list(couponCodeLambdaQueryWrapper);
List<String> ccodeUpdateList = CollectionUtil.arrayListString();
......@@ -155,6 +156,8 @@ public class CandyCouponCodeAdminController extends BaseController {
LambdaQueryWrapper<CandyCouponCode> couponCodeLambdaQueryWrapper = Wrappers.lambdaQuery(CandyCouponCode.class);
couponCodeLambdaQueryWrapper.in(CandyCouponCode::getUcouponId, ucouponIds);
couponCodeLambdaQueryWrapper.eq(CandyCouponCode::getCouponId, couponId);
couponCodeLambdaQueryWrapper.eq(CandyCouponCode::getState, 1);
couponCodeLambdaQueryWrapper.select(CandyCouponCode::getCouponId, CandyCouponCode::getUcouponId, CandyCouponCode::getRedeemUid);
List<CandyCouponCode> list = candyCouponCodeAdminService.list(couponCodeLambdaQueryWrapper);
List<String> ccodeUpdateList = CollectionUtil.arrayListString();
......@@ -166,6 +169,8 @@ public class CandyCouponCodeAdminController extends BaseController {
vos.removeIf(rv -> rv.getUcouponId().equals(r.getUcouponId()));
}
redisUtil.set(uckey, vos);
ccodeUpdateList.add(r.getUcouponId());
});
......
......@@ -92,7 +92,7 @@
if (row.state === 0) {
actions.push('<a class="btn btn-primary btn-xs ' + invalidFlag + '" href="javascript:void(0)" onclick="invalidHandler(\'' + row.ccode + '\')"><i class="fa fa-edit"></i>失效</a> ');
} else if (row.state === 1) {
actions.push('<a class="btn btn-danger btn-xs ' + recoverFlag + '" href="javascript:void(0)" onclick="recoverHandler(\'' + row.ccode + '\',' + row.ucouponId + '\')"><i class="fa fa-remove"></i>退回</a>');
actions.push('<a class="btn btn-danger btn-xs ' + recoverFlag + '" href="javascript:void(0)" onclick="recoverHandler(\'' + row.ccode + '\', \'' + row.ucouponId + '\')"><i class="fa fa-remove"></i>退回</a>');
}
return actions.join('');
}
......@@ -113,17 +113,21 @@
function invalidHandler(ccode) {
if (ccode !== null && ccode !== undefined) {
var data = {"couponId":couponId,"ccodes": ccode};
$.operate.submit('code/invalid', "post", "json", data);
$.modal.confirm("是否失效?", function() {
var data = {"couponId":couponId,"ccodes": ccode};
$.operate.submit('code/invalid', "post", "json", data);
});
} else {
$.operate.batchProcessingForCouponCode(couponId, 1);
}
}
function recoverHandler(ccode, ucouponId) {
if (ccode !== null && ccode !== undefined) {
var data = {"ucouponId":ucouponId,"couponId":couponId,"ccodes": ccode};
$.operate.submit('code/recover', "post", "json", data);
if (ccode !== null && ccode !== undefined && ucouponId !== null && ucouponId !== undefined) {
var data = {"ucouponIds": ucouponId, "couponId": couponId, "ccodes": ccode};
$.modal.confirm("是否退回?", function() {
$.operate.submit('code/recover', "post", "json", data);
});
}
// else {
// $.operate.batchProcessingForCouponCode(couponId, 2);
......
......@@ -412,7 +412,7 @@
closeBtn: 1, //右上角按钮,可通过配置1和2来展示,如果不显示,则closeBtn: 0
anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
});
};
}
</script>
</body>
</html>
......@@ -2,6 +2,110 @@
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('退款详情')"/>
<style>
.showPhotoModal {
display: none;
height: 450px;
width: 640px;
z-index: 999;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: 10% auto;
background: #fff;
box-shadow: rgba(0, 0, 0, 0.3) 1px 1px 50px;
}
.showPhotoModal .top{
height: 40px;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #ccc;
}
.showPhotoModal .top .title{
padding-left: 12px;
font-size: 16px;
}
.showPhotoModal .top .close{
padding-right: 12px;
font-size: 16px;
color: black;
}
.showPhotoModal .content {
height: 360px;
width: 100%;
border-bottom: 1px solid #ccc;
display: flex;
justify-content: center;
align-items: center;
}
.showPhotoModal .content img{
max-height: 360px;
/* width: 100%; */
}
.showPhotoModal .bottom {
height: 50px;
display: flex;
flex-direction: row-reverse;
align-items: center;
}
.showPhotoModal .bottom {
display: flex;
flex-direction: row-reverse;
align-items: center;
}
.showPhotoModal .bottom div span {
cursor: pointer;
font-size: 12px;
font-weight: normal;
margin: 0px 7px;
padding: 0px 15px;
color: rgb(255, 255, 255);
border: 1px solid rgb(0, 100, 182);
background: no-repeat rgb(0, 113, 206);
border-radius: 3px;
display: inline-block;
height: 30px;
line-height: 30px;
text-align: center;
vertical-align: middle;
text-decoration: none;
outline: none;
box-sizing: content-box;
}
.showPhotoModal .bottom div span:last-child {
font-size: 12px;
font-weight: normal;
margin: 0px 7px;
padding: 0px 15px;
color: black;
border: 1px solid #bbb;
background: no-repeat #fff;
border-radius: 3px;
display: inline-block;
height: 30px;
line-height: 30px;
text-align: center;
vertical-align: middle;
text-decoration: none;
outline: none;
box-sizing: content-box;
}
.modals {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 888;
display: none;
overflow: hidden;
background-color: rgb(0, 0, 0);
opacity: 0.3;
}
</style>
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
......@@ -73,7 +177,7 @@
<tbody>
<tr>
<td th:each="str : ${KylinOrderRefundsVo.picList}" style="float: left">
<img th:src="${str}" width="25%">
<img th:src="${str}" onclick="showPic(this)" width="25%">
</td>
</tr>
</tbody>
......@@ -105,8 +209,45 @@
</tbody>
</table>
</div>
<a id="downLoadImg" href="" download style="display: none;"></a>
<div class="modals"></div>
<div class="showPhotoModal">
<div class="top">
<div class="title">
图片展示
</div>
<div class="close" onclick="closeModal()">
x
</div>
</div>
<div class="content">
<img id="showPhoto" src="" alt="">
</div>
<div class="bottom">
<div>
<span onclick="downloadImg()">下载</span>
<span onclick="closeModal()">关闭</span>
</div>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer"/>
</body>
<script>
function showPic(e) {
$(".showPhotoModal").show();
$(".modals").show();
$("#showPhoto").attr('src', $(e).attr('src'));
};
function downloadImg() {
$("#downLoadImg").attr('href', $("#showPhoto").attr('src')+'?response-content-type=application/octet-stream');
$("#downLoadImg")[0].click();
closeModal();
};
function closeModal() {
$(".showPhotoModal").hide();
$(".modals").hide();
};
</script>
</html>
......@@ -129,7 +129,7 @@ public class AdamLoginController {
}
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
if (null == userInfoVo) {
if (null == userInfoVo || userInfoVo.getState() == 2) {
log.warn("Cancelled mobile:{}", mobile);
return ResponseDto.failure(ErrorMapping.get("10024"));
}
......@@ -169,7 +169,7 @@ public class AdamLoginController {
AdamUserInfoVo userInfoVo = toRegister ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid);
if (!toRegister && null == userInfoVo) {
if (!toRegister && (null == userInfoVo || userInfoVo.getState() == 2)) {
log.warn("Cancelled mobile:{}", mobile);
return ResponseDto.failure(ErrorMapping.get("10024"));
}
......@@ -206,7 +206,7 @@ public class AdamLoginController {
AdamUserInfoVo userInfoVo = toRegister ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid);
if (!toRegister && null == userInfoVo) {
if (!toRegister && (null == userInfoVo || userInfoVo.getState() == 2)) {
log.warn("Cancelled mobile:{}", mobile);
return ResponseDto.failure(ErrorMapping.get("10024"));
}
......@@ -257,6 +257,11 @@ public class AdamLoginController {
AdamUserInfoVo userInfoVo = toRegister ? adamUserService.register(wechatMobile) : adamRdmService.getUserInfoVoByUid(uid);
if (!toRegister && (null == userInfoVo || userInfoVo.getState() == 2)) {
log.warn("Cancelled mobile:{}", wechatMobile);
return ResponseDto.failure(ErrorMapping.get("10024"));
}
// 根据skip值,设置IsComplete(考虑到已存在用户未完善信息的情况,这里只对返回数据单独设置IsComplete)
userInfoVo.setIsComplete(1);
......@@ -285,7 +290,7 @@ public class AdamLoginController {
if (StringUtils.isEmpty(uid)) return ResponseDto.failure(ErrorMapping.get("10006"));
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
if (null == userInfoVo) {
if (null == userInfoVo || userInfoVo.getState() == 2) {
log.warn("Cancelled openId:{}", parameter.getOpenId());
return ResponseDto.failure(ErrorMapping.get("10024"));
}
......
......@@ -183,6 +183,10 @@ public class AdamRdmService {
return vo;
}
public void delRealInfoVoByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_REAL_NAME.concat(uid));
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 认证失败的<ID_TYPE+ID_NO, ID_NAME> */
public boolean setCertificationJunk(int idType, String idNo, String idName) {
......@@ -652,7 +656,7 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <ORDER_NO, MEMBER_ORDER_INFO> */
public boolean setShotMemberOrderVoByOrderNo(String orderNo, AdamMemberOrderVo vo) {
return redisUtil.set(AdamRedisConst.SHOT_MEMBER_ORDER + orderNo, vo);
return redisUtil.set(AdamRedisConst.SHOT_MEMBER_ORDER + orderNo, vo, 604800);
}
public AdamMemberOrderVo getShotMemberOrderVoByOrderNo(String orderNo) {
......
......@@ -179,7 +179,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
AdamThirdPartInfoVo thirdPartVo = adamRdmService.getThirdPartVoByUidPlatform(uid, param.getPlatform());
if (null == thirdPartVo) {// 未绑定
userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
if (null == userInfoVo) {
if (null == userInfoVo || userInfoVo.getState() == 2) {
log.warn("Cancelled mobile:{}", param.getMobile());
return ResponseDto.failure(ErrorMapping.get("10024"));
}
......@@ -301,86 +301,88 @@ public class AdamUserServiceImpl implements IAdamUserService {
objsMobileLocate = CollectionUtil.linkedListObjectArr();
long s = System.currentTimeMillis();
// AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
//
// adamRdmService.delUidByMobile(userInfoVo.getMobile());
// adamRdmService.delUserInfoVoByUid(uid);
// adamRdmService.delUserMemberVoByUid(uid);
// adamRdmService.delAddressesVoByUid(uid);
// adamRdmService.delEntersVoByUid(uid);
log.debug("##RDS耗时:{}ms", System.currentTimeMillis() - s);
/* ---------------------- 账号基础信息 */
AdamUserInfoVo userInfoVoByUid = adamRdmService.getUserInfoVoByUid(uid);
if (null != userInfoVoByUid) {
userInfoVoByUid.setState(2);
userInfoVoByUid.setUpdatedAt(now);
userInfoVoByUid.setClosedAt(now);
adamRdmService.setUserInfoVoByUid(uid, userInfoVoByUid);
}
// AdamUserInfoVo userInfoVoByUid = adamRdmService.getUserInfoVoByUid(uid);
// if (null != userInfoVoByUid) {
// userInfoVoByUid.setState(2);
// userInfoVoByUid.setUpdatedAt(now);
// userInfoVoByUid.setClosedAt(now);
// adamRdmService.setUserInfoVoByUid(uid, userInfoVoByUid);
// }
adamRdmService.delUserInfoVoByUid(uid);
toMqSqls.add(SqlMapping.get("adam_user.close"));
objsUser.add(new Object[]{now, now, uid});
/* ---------------------- 三方账号信息 */
List<AdamThirdPartInfoVo> thirdPartInfoVos = adamRdmService.getThirdPartVoListByUid(uid);
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) {
adamRdmService.delThirdPartVoListByUid(uid);
thirdPartInfoVos.forEach(r -> {
r.setState(2);
r.setUpdatedAt(now);
// r.setState(2);
// r.setUpdatedAt(now);
adamRdmService.delUidByPlatformOpenId(r.getPlatform(), r.getOpenId());
if (null != r) {
adamRdmService.delUidByPlatformOpenId(r.getPlatform(), r.getOpenId());
}
});
adamRdmService.setThirdPartVoListByUid(uid, thirdPartInfoVos);
// adamRdmService.setThirdPartVoListByUid(uid, thirdPartInfoVos);
}
toMqSqls.add(SqlMapping.get("adam_third_party.close"));
objsThirdPart.add(new Object[]{now, uid});
/* ---------------------- 用户会员信息 */
AdamUserMemberVo userMemberVoByUid = adamRdmService.getUserMemberVoByUid(uid);
if (null != userMemberVoByUid) {
userMemberVoByUid.setState(2);
userMemberVoByUid.setUpdatedAt(now);
adamRdmService.setUserMemberVoByUid(uid, userMemberVoByUid);
}
// AdamUserMemberVo userMemberVoByUid = adamRdmService.getUserMemberVoByUid(uid);
// if (null != userMemberVoByUid) {
// userMemberVoByUid.setState(2);
// userMemberVoByUid.setUpdatedAt(now);
//
// adamRdmService.setUserMemberVoByUid(uid, userMemberVoByUid);
// }
adamRdmService.delUserMemberVoByUid(uid);
adamRdmService.delMemberOrderVoByUid(uid);
toMqSqls.add(SqlMapping.get("adam_user_member.close"));
objsUserMember.add(new Object[]{now, uid});
/* ---------------------- 用户实名信息 */
AdamRealInfoVo realInfoVoByUid = adamRdmService.getRealInfoVoByUid(uid);
if (null != realInfoVoByUid) {
realInfoVoByUid.setState(2);
adamRdmService.setRealInfoVoByUid(uid, realInfoVoByUid);
}
// AdamRealInfoVo realInfoVoByUid = adamRdmService.getRealInfoVoByUid(uid);
// if (null != realInfoVoByUid) {
// realInfoVoByUid.setState(2);
//
// adamRdmService.setRealInfoVoByUid(uid, realInfoVoByUid);
// }
adamRdmService.delRealInfoVoByUid(uid);
toMqSqls.add(SqlMapping.get("adam_real_name.close"));
objsRealInfo.add(new Object[]{now, uid});
/* ---------------------- 收货地址信息 */
List<AdamAddressesVo> addressesVoByUid = adamRdmService.getAddressesVoByUid(uid);
if (!CollectionUtils.isEmpty(addressesVoByUid)) {
addressesVoByUid.forEach(r -> {
r.setState(2);
r.setUpdatedAt(now);
r.setDeletedAt(now);
});
adamRdmService.setAddressesVoByUid(uid, addressesVoByUid);
}
// List<AdamAddressesVo> addressesVoByUid = adamRdmService.getAddressesVoByUid(uid);
// if (!CollectionUtils.isEmpty(addressesVoByUid)) {
// addressesVoByUid.forEach(r -> {
// r.setState(2);
// r.setUpdatedAt(now);
// r.setDeletedAt(now);
// });
//
// adamRdmService.setAddressesVoByUid(uid, addressesVoByUid);
// }
adamRdmService.delAddressesVoByUid(uid);
toMqSqls.add(SqlMapping.get("adam_addresses.close"));
objsAddresses.add(new Object[]{now, now, uid});
/* ---------------------- 入场人信息 */
List<AdamEntersVo> entersVoByUid = adamRdmService.getEntersVoByUid(uid);
if (!CollectionUtils.isEmpty(entersVoByUid)) {
entersVoByUid.forEach(r -> {
r.setState(2);
r.setUpdatedAt(now);
r.setDeletedAt(now);
});
adamRdmService.setEntersVoByUid(uid, entersVoByUid);
}
// List<AdamEntersVo> entersVoByUid = adamRdmService.getEntersVoByUid(uid);
// if (!CollectionUtils.isEmpty(entersVoByUid)) {
// entersVoByUid.forEach(r -> {
// r.setState(2);
// r.setUpdatedAt(now);
// r.setDeletedAt(now);
// });
//
// adamRdmService.setEntersVoByUid(uid, entersVoByUid);
// }
adamRdmService.delEntersVoByUid(uid);
toMqSqls.add(SqlMapping.get("adam_enters.close"));
objsEnters.add(new Object[]{now, now, uid});
......
......@@ -38,7 +38,7 @@ eureka:
register-with-eureka: true #禁止自己当做服务注册
fetch-registry: true #屏蔽注册信息
serviceUrl:
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-test-0.eureka-test-svc.zhengzai-test:7001${server.servlet.context-path}/eureka,http://${spring.security.user.name}:${spring.security.user.password}@eureka-test-1.eureka-test-svc.zhengzai-test:7001${server.servlet.context-path}/eureka,http://${spring.security.user.name}:${spring.security.user.password}@eureka-test-2.eureka-test-svc.zhengzai-test:7001${server.servlet.context-path}/eureka
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-test-0.eureka-test-svc.zhengzai-test:7001${server.servlet.context-path}/eureka
# instance:
# prefer-ip-address: true
# instance-id: ${spring.application.name}:${server.port}
......
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