## Opt - 秒结MQ(下单/撤单)
This commit is contained in:
parent
8ccf1f4c9a
commit
817bca7553
|
@ -127,4 +127,7 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
|
|||
* @param memberList
|
||||
*/
|
||||
void updateMemberRetailSecondRangeParent(@Param("tableName") String tableName, @Param("orderExt") SaOrderExt orderExt, @Param("memberList") List<CuMemberExt> memberList, @Param("updateType") Integer updateType, @Param("symbol") String symbol);
|
||||
|
||||
|
||||
void initMemberRetailSecondRange(@Param("tableName") String tableName, @Param("member") CuMemberExt memberList);
|
||||
}
|
||||
|
|
|
@ -87,4 +87,5 @@ public interface ICuMemberRetailRangeService extends IService<CuMemberRetailRang
|
|||
|
||||
void updateMemberRetailSecondRangeParent(String settleTableName, SaOrderExt orderExt, List<CuMemberExt> pkMemberList, Integer updateType, String symbol);
|
||||
|
||||
void initMemberRetailSecondRange(String tableName, CuMemberExt member);
|
||||
}
|
||||
|
|
|
@ -149,6 +149,11 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
|
|||
baseMapper.updateMemberRetailSecondRangeParent(settleTableName, orderExt, pkMemberList, updateType, symbol);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initMemberRetailSecondRange(String tableName, CuMemberExt member) {
|
||||
baseMapper.initMemberRetailSecondRange(tableName, member);
|
||||
}
|
||||
|
||||
private List<List<?>> setUpdCuMemberTreeLists(Map<Long, CuMemberRetailRangeExt> cuMemberTreeMap) {
|
||||
List<CuMemberRetailRangeExt> cuMemberTreeList = new ArrayList<>();
|
||||
cuMemberTreeMap.forEach((key, value) -> cuMemberTreeList.add(value));
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.hzs.common.domain.member.base.CuMember;
|
|||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -13,6 +14,8 @@ import java.util.List;
|
|||
*/
|
||||
public interface CuMemberMapper extends BaseMapper<CuMember> {
|
||||
|
||||
CuMember getByPkId(@Param("pkId") Serializable id);
|
||||
|
||||
/**
|
||||
* 更新会员奖衔根据临时表
|
||||
*/
|
||||
|
|
|
@ -3,7 +3,9 @@ package com.hzs.bonus.base.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.member.base.CuMember;
|
||||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -12,6 +14,7 @@ import java.util.List;
|
|||
*/
|
||||
public interface ICuMemberService extends IService<CuMember> {
|
||||
|
||||
CuMember getByPkId(Serializable id);
|
||||
/**
|
||||
* 更新会员奖衔根据临时表 -- 日结
|
||||
*/
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.hzs.common.domain.member.detail.CuMemberAwards;
|
|||
import com.hzs.bonus.base.mapper.CuMemberMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
|
@ -16,6 +17,11 @@ import java.util.*;
|
|||
@Service
|
||||
public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> implements ICuMemberService {
|
||||
|
||||
@Override
|
||||
public CuMember getByPkId(Serializable id) {
|
||||
return baseMapper.getByPkId(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCuMemberRetailRangeByPeriod(Integer period) {
|
||||
baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue());
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package com.hzs.bonus.bonus.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.base.service.ICuMemberService;
|
||||
|
@ -26,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 奖金结算服务类
|
||||
|
@ -182,7 +185,15 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 秒结表名
|
||||
String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod;
|
||||
List<CuMemberExt> memberList = iCuMemberRetailRangeService.findParentMemberList(orderExt.getPkMember());
|
||||
CuMember self = iCuMemberService.getById(orderExt.getPkId());
|
||||
CuMember self = iCuMemberService.getByPkId(orderExt.getPkMember());
|
||||
CuMemberExt initSelf = new CuMemberExt();
|
||||
BeanUtil.copyProperties(self, initSelf);
|
||||
List<CuMemberExt> initMemberList = new ArrayList<>();
|
||||
initMemberList.add(initSelf);
|
||||
initMemberList.addAll(memberList);
|
||||
for (CuMemberExt memberExt : initMemberList) {
|
||||
iCuMemberRetailRangeService.initMemberRetailSecondRange(secondRangeTableName, memberExt);
|
||||
}
|
||||
iCuMemberRetailRangeService.updateMemberRetailSecondRangeSelf(secondRangeTableName, orderExt, self, updateType, symbol);
|
||||
iCuMemberRetailRangeService.updateMemberRetailSecondRangeParent(secondRangeTableName, orderExt, memberList, updateType, symbol);
|
||||
}
|
||||
|
|
|
@ -540,7 +540,7 @@
|
|||
ALL_CONSUME_NEW_AMOUNT = ALL_CONSUME_NEW_AMOUNT ${symbol} #{orderExt.orderAmount},
|
||||
ALL_CONSUME_NEW_PV = ALL_CONSUME_NEW_PV ${symbol} #{orderExt.orderAchieve}
|
||||
WHERE
|
||||
PK_MEMBER = #{pkMember}
|
||||
PK_MEMBER = #{cuMember.pkId}
|
||||
</update>
|
||||
<update id="updateMemberRetailSecondRangeParent">
|
||||
UPDATE ${tableName}
|
||||
|
@ -554,13 +554,56 @@
|
|||
REP_TEAM_NEW_PV = REP_TEAM_NEW_PV ${symbol} #{orderExt.orderAchieve},
|
||||
</if>
|
||||
ALL_TEAM_NEW_AMOUNT = ALL_TEAM_NEW_AMOUNT ${symbol} #{orderExt.orderAmount},
|
||||
ALL_TEAM_NEW_PV = ALL_TEAM_NEW_PV ${symbol} #{orderExt.orderAchieve},
|
||||
ALL_TEAM_NEW_PV = ALL_TEAM_NEW_PV ${symbol} #{orderExt.orderAchieve}
|
||||
WHERE
|
||||
PK_MEMBER in
|
||||
<foreach collection="memberList" item="member" separator="," open="(" close=")">
|
||||
#{member.pkId}
|
||||
</foreach>
|
||||
</update>
|
||||
<insert id="initMemberRetailSecondRange">
|
||||
INSERT INTO ${tableName} (
|
||||
"PK_MEMBER",
|
||||
"PK_PARENT",
|
||||
"PK_GRADE",
|
||||
"PK_AWARDS",
|
||||
"ALL_CONSUME_NEW_AMOUNT",
|
||||
"ALL_CONSUME_NEW_PV",
|
||||
"ALL_TEAM_NEW_AMOUNT",
|
||||
"ALL_TEAM_NEW_PV",
|
||||
"REG_CONSUME_NEW_AMOUNT",
|
||||
"REG_CONSUME_NEW_PV",
|
||||
"REG_TEAM_NEW_AMOUNT",
|
||||
"REG_TEAM_NEW_PV",
|
||||
"REP_CONSUME_NEW_AMOUNT",
|
||||
"REP_CONSUME_NEW_PV",
|
||||
"REP_TEAM_NEW_AMOUNT",
|
||||
"REP_TEAM_NEW_PV"
|
||||
)
|
||||
SELECT
|
||||
#{member.pkId},
|
||||
#{member.pkParent},
|
||||
#{member.pkSettleGrade},
|
||||
#{member.pkAwards},
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM ${tableName}
|
||||
WHERE "PK_MEMBER" = #{member.pkId}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<select id="queryCuMemberRetailRangeParent" resultMap="CuMemberRetailRangeExt">
|
||||
<foreach collection="saOrderExtList" item="item" close=" " open=" " separator="union">
|
||||
|
@ -808,12 +851,14 @@
|
|||
where pk_parent = #{pkParent}
|
||||
</select>
|
||||
<select id="findParentMemberList" resultType="com.hzs.common.domain.member.ext.CuMemberExt">
|
||||
select * from (
|
||||
select cm.*
|
||||
from cu_member cm
|
||||
start
|
||||
with cm.pk_id = #{pkMember}
|
||||
connect by cm.pk_id = prior cm.pk_parent
|
||||
order by level
|
||||
) r where r.pk_id != #{pkMember}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -239,5 +239,9 @@
|
|||
</if>
|
||||
a.modified_time = sysdate
|
||||
</update>
|
||||
<select id="getByPkId" resultType="com.hzs.common.domain.member.base.CuMember"
|
||||
parameterType="java.io.Serializable">
|
||||
select * from cu_member where pk_id = ${pkId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -13,14 +13,11 @@ import com.hzs.common.core.utils.poi.ExcelUtil;
|
|||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.member.base.CuMember;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.service.ITransactionCommonService;
|
||||
import com.hzs.member.base.IMemberServiceApi;
|
||||
import com.hzs.report.member.service.IMemberService;
|
||||
import com.hzs.report.member.vo.MallPVStatVO;
|
||||
import com.hzs.report.member.vo.UmbrellaBelowPushVO;
|
||||
import com.hzs.sale.order.ISaOrderServiceApi;
|
||||
import com.hzs.report.order.ISaOrderServiceApi;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
|
|
@ -10,13 +10,12 @@ import com.hzs.common.core.utils.DateUtils;
|
|||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.core.utils.poi.ExcelUtil;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.PageDomain;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.core.web.page.TableSupport;
|
||||
import com.hzs.sale.order.ISaOrderServiceApi;
|
||||
import com.hzs.sale.order.dto.SingleItemStatDTO;
|
||||
import com.hzs.sale.order.dto.SingleItemStatParamDTO;
|
||||
import com.hzs.report.order.ISaOrderServiceApi;
|
||||
import com.hzs.report.order.dto.SingleItemStatDTO;
|
||||
import com.hzs.report.order.dto.SingleItemStatParamDTO;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
|
|
@ -745,10 +745,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
*/
|
||||
private Boolean handleMemberActivate(CuMember cuMember, SaOrderExt saOrder) {
|
||||
if ((null == cuMember.getIsActivate() || EYesNo.YES.getIntValue() != cuMember.getIsActivate())
|
||||
&& EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()
|
||||
&& (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType() || EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType())
|
||||
) {
|
||||
// 会员激活状态为空 或 未激活,并且是 注册、升级 订单,判断会员是否激活
|
||||
if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) > 0) {
|
||||
// 存在指定盒数商品
|
||||
cuMember.setIsActivate(EYesNo.YES.getIntValue());
|
||||
if (EPayStatus.UNPAID.getValue() == cuMember.getPayStatus()) {
|
||||
|
@ -757,7 +756,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.hzs.common.core.utils;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import org.apache.commons.lang3.time.DateFormatUtils;
|
||||
|
||||
import java.text.ParseException;
|
||||
|
@ -910,4 +911,28 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||
return daysStrList;
|
||||
}
|
||||
|
||||
|
||||
public static Date getStartOfDay(Date date) {
|
||||
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
||||
LocalDateTime endOfDay = localDateTime.withHour(0).withMinute(0).withSecond(0).withNano(0);
|
||||
return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
public static Date getEndOfDay(Date date) {
|
||||
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
||||
LocalDateTime endOfDay = localDateTime.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
|
||||
return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
public static Date getStartOfDay(String day) {
|
||||
Date date = DateUtil.parse(day, "yyyy-MM-dd");
|
||||
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
||||
LocalDateTime endOfDay = localDateTime.withHour(0).withMinute(0).withSecond(0).withNano(0);
|
||||
return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
public static Date getEndOfDay(String day) {
|
||||
Date date = DateUtil.parse(day, "yyyy-MM-dd");
|
||||
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
||||
LocalDateTime endOfDay = localDateTime.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
|
||||
return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue