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

Commit ad95a2e3 authored by 张国柄's avatar 张国柄

购买会员+券发放任务;

parent 21faf334
package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.service.adam.entity.AdamMemberRights;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
......
......@@ -65,7 +65,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
Integer eventAmt = initMgtCoupon.getEventAmt();
for (int i = 0; i < eventAmt; i++) {
AdamMemberRightsCouponVo memberRightsCouponVo = AdamMemberRightsCouponVo.getNew();
//memberRightsCouponVo.setMrightsId(initMgtCoupon.getMcouponId());
memberRightsCouponVo.setMrightsId(initMgtCoupon.getMcouponId());
memberRightsCouponVo.setCouponId(initCoupon.getCouponId());
memberRightsCouponVo.setBusiType(initCoupon.getBusiType());
memberRightsCouponVo.setCouType(initCoupon.getCouType());
......
......@@ -116,9 +116,10 @@
cmc.`operator`,
cmc.created_at,
cmc.updated_at
FROM candy_mgt_coupon cmc
LEFT JOIN candy_coupon cc ON cmc.coupon_id = cc.coupon_id
WHERE cmc.state <![CDATA[<>]]> 2
FROM candy_mgt_coupon cmc, candy_coupon cc
WHERE cmc.coupon_id = cc.coupon_id
AND cmc.state <![CDATA[<>]]> 2
AND cc.`exclusive` = 0
<if test="couType != null">
AND cc.cou_type = #{couType,jdbcType=SMALLINT}
......
......@@ -29,10 +29,11 @@ import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@Service
......@@ -324,10 +325,15 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
memberOrderExtVo.getOrderNo(), memberOrderExtVo.getExpressStatus(), memberOrderExtVo.getExpressReceiver(),
memberOrderExtVo.getExpressPhone(), memberOrderExtVo.getExpressAddress()
});
// 权益券发放
toMqSqls.add(SqlMapping.get("candy_mgt_coupon.add_for_member"));
LinkedList<Object[]> initMemberRightsCouponObjs = this.issueMemberRightsCouponProcessing(handleMemberOrderVo.getUid(), handleMemberOrderVo.getMemberId());
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UMEMBER.getKey(),
SqlMapping.gets(toMqSqls, operationObjs, initMemberOrderObjs, initMemberOrderExtObjs)
SqlMapping.gets(toMqSqls, operationObjs, initMemberOrderObjs, initMemberOrderExtObjs, initMemberRightsCouponObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
// } else {
......@@ -493,10 +499,14 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
memberOrderExtVo.getExpressPhone(), memberOrderExtVo.getExpressAddress()
});
// 权益券发放
toMqSqls.add(SqlMapping.get("candy_mgt_coupon.add_for_member"));
LinkedList<Object[]> initMemberRightsCouponObjs = this.issueMemberRightsCouponProcessing(currentUid, initMemberOrderVo.getMemberId());
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UMEMBER.getKey(),
SqlMapping.gets(toMqSqls, upsertUserMemberObjs, updateMemberCodeObjs, initMemberOrderObjs, initMemberOrderExtObjs)
SqlMapping.gets(toMqSqls, upsertUserMemberObjs, updateMemberCodeObjs, initMemberOrderObjs, initMemberOrderExtObjs, initMemberRightsCouponObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
} catch (Exception e) {
......@@ -535,4 +545,41 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
return pagedResult;
}
/* ------------------------------------------------------------------------------------ */
/**
* 发放会员专属特权券
*
* @param uid 用户ID
* @param memberId 会员ID
* @return LinkedList<Object[]>
*/
private LinkedList<Object[]> issueMemberRightsCouponProcessing(String uid, String memberId) {
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
LocalDateTime now = LocalDateTime.now();
LinkedList<Object[]> initMemberRightsCouponObjs = CollectionUtil.linkedListObjectArr();
List<AdamMemberRightsVo> memberRightsVoList = adamRdmService.getMemberRightsVoByMemberId(memberId, 0);
if (!CollectionUtils.isEmpty(memberRightsVoList)) {
memberRightsVoList.forEach(r -> {
List<AdamMemberRightsCouponVo> memberRightsCouponVoList = adamRdmService.getMemberRightsCouponVoByRightsId(r.getMrightsId());
if (!CollectionUtils.isEmpty(memberRightsCouponVoList)) {
// 该权益下关联券统计
Map<String, Long> rightsCouponCtMap = memberRightsCouponVoList.parallelStream()
.collect(Collectors.groupingBy(AdamMemberRightsCouponVo::getCouponId, Collectors.counting()));
rightsCouponCtMap.forEach((couponId, num) -> {
initMemberRightsCouponObjs.add(
new Object[]{r.getMrightsId(), couponId, num, userInfoVo.getMobile(), now, userInfoVo.getMobile(), now}
);
});
}
});
}
return initMemberRightsCouponObjs;
}
}
......@@ -56,6 +56,12 @@ adam_user_member.add=INSERT INTO adam_user_member (`uid`, member_id, member_no,
adam_user_member.update=UPDATE adam_user_member SET `state`=?, expiry_at=?, updated_at=? WHERE `uid`=?
adam_user_member.close=UPDATE adam_user_member SET `state`=2, updated_at=?, comment='close' WHERE `uid`=?
# ----------------------------------------------------
candy_mgt_coupon.add_for_member=INSERT INTO candy_mgt_coupon (mcoupon_id, coupon_id, `state`, event_amt, event_type, event_limit, event_at, `operator`, created_at) VALUES (?, ?, 0, ?, 2, ?, ?, ?, ?)
# ----------------------------------------------------
# ----------------------------------------------------
......
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