Commit f59a5d7f authored by libin's avatar libin

Merge branch 'luck_draw_feature' into dev

parents ca3c614b 3eda9793
......@@ -10,6 +10,8 @@ import lombok.Data;
*/
@Data
public class InviteMemberBO {
private Integer userId;
private Integer parentId;
private String username;
private String headUrl;
private Long joinTime;
......
......@@ -34,7 +34,7 @@ import java.util.stream.Collectors;
*/
@Service
@Slf4j
public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRelation> {
public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRelation> {
@Autowired
AppUserRelationTempBiz relationTempBiz;
......@@ -49,23 +49,24 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
private Long failureTime;
@Autowired
private AppUserDetailBiz appUserDetailBiz;
private AppUserDetailBiz appUserDetailBiz;
@Value("${admin.validTime}")
private Long validTime;
private Long validTime;
@Autowired
private AppUserPositionTempBiz positionTempBiz;
private AppUserPositionTempBiz positionTempBiz;
/**
* 关系绑定
* 规则A->B (B无有效上线+无有效下线)
*
* @param userId
* @param parentId
*/
public void bindRelation(Integer userId,Integer parentId,Integer type){
if (userId.equals(parentId)){
log.info("----userId==="+userId+"----parentId===="+parentId+"----自己不能成为自己的上线");
public void bindRelation(Integer userId, Integer parentId, Integer type) {
if (userId.equals(parentId)) {
log.info("----userId===" + userId + "----parentId====" + parentId + "----自己不能成为自己的上线");
return;
}
/* AppUserVo appUserVo=userDetailBiz.getUserInfoById(userId);
......@@ -74,34 +75,34 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
log.info("----userId==="+userId+"----parentId===="+parentId+"----该用户不存在");
return;
}*/
AppUserVo appUserVo=userDetailBiz.getUserInfoById(parentId);
if (appUserVo==null){
log.info("----userId==="+userId+"----parentId===="+parentId+"----该上线用户不存在");
AppUserVo appUserVo = userDetailBiz.getUserInfoById(parentId);
if (appUserVo == null) {
log.info("----userId===" + userId + "----parentId====" + parentId + "----该上线用户不存在");
return;
}
AppUserRelation relation=getMyBiz().getRelationByUserId(parentId);
Long time=System.currentTimeMillis();
if(relation==null){
relation=new AppUserRelation();
relation.setUserId(parentId);
relation.setBindType(type);
insertSelective(relation);
}
Long bindTime=time-validTime;
//判断用户是否有有效的下线
if (getCountByParentId(userId,bindTime)==0L){
relation=getMyBiz().getRelationByUserId(userId);
if(relation==null){
relation=new AppUserRelation();
AppUserRelation relation = getMyBiz().getRelationByUserId(parentId);
Long time = System.currentTimeMillis();
if (relation == null) {
relation = new AppUserRelation();
relation.setUserId(parentId);
relation.setBindType(type);
insertSelective(relation);
}
Long bindTime = time - validTime;
//判断用户是否有有效的下线
if (getCountByParentId(userId, bindTime) == 0L) {
relation = getMyBiz().getRelationByUserId(userId);
if (relation == null) {
relation = new AppUserRelation();
relation.setUserId(userId);
relation.setParentId(parentId);
relation.setBindType(type);
relation.setBindTime(time);
insertSelective(relation);
}else {
} else {
//判断用户是否有有效的上线
log.info("----userId==="+userId+"----bindTime===="+bindTime+"----relation.getBindTime()==="+relation.getBindTime());
if(relation.getParentId()==null||relation.getParentId()==0||(relation.getIsForever()!=1&&validTime>0&&relation.getBindTime()<bindTime)){
log.info("----userId===" + userId + "----bindTime====" + bindTime + "----relation.getBindTime()===" + relation.getBindTime());
if (relation.getParentId() == null || relation.getParentId() == 0 || (relation.getIsForever() != 1 && validTime > 0 && relation.getBindTime() < bindTime)) {
relation.setParentId(parentId);
relation.setBindType(type);
relation.setBindTime(time);
......@@ -110,65 +111,69 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
}
}
}
//首页关系绑定
public ObjectRestResponse appBindRelation(Integer userId,String code){
Integer parentId=0;
if (StringUtils.isNotBlank(code)){
public ObjectRestResponse appBindRelation(Integer userId, String code) {
Integer parentId = 0;
if (StringUtils.isNotBlank(code)) {
//判断处理活动关键字
String[] codes = code.split("_");
if(codes.length > 1) {
if (codes.length > 1) {
code = codes[0];
}
parentId=appUserDetailBiz.getUserByCode(code);
parentId = appUserDetailBiz.getUserByCode(code);
}
if (parentId!=null&&parentId>0&&userId!=null&&userId>0){
getMyBiz().bindRelation(userId,parentId,1);
if (parentId != null && parentId > 0 && userId != null && userId > 0) {
getMyBiz().bindRelation(userId, parentId, 1);
}
return ObjectRestResponse.succ();
return ObjectRestResponse.succ();
}
//后台关系绑定
public ObjectRestResponse adminBindRelation(UserRelationDTO relationDTO){
String phone=relationDTO.getPhone();
Integer userId=relationDTO.getUserId();
if (StringUtils.isBlank(phone)||userId==null||userId==0){
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE,"参数不能为空");
public ObjectRestResponse adminBindRelation(UserRelationDTO relationDTO) {
String phone = relationDTO.getPhone();
Integer userId = relationDTO.getUserId();
if (StringUtils.isBlank(phone) || userId == null || userId == 0) {
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE, "参数不能为空");
}
AppUserLogin userLogin=appUserLoginBiz.checkeUserLogin(phone);
if (userLogin==null){
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE,"该上级不存在");
AppUserLogin userLogin = appUserLoginBiz.checkeUserLogin(phone);
if (userLogin == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE, "该上级不存在");
}
Integer parentId=userLogin.getId();
getMyBiz().bindRelation(userId,parentId,1);
return ObjectRestResponse.succ();
Integer parentId = userLogin.getId();
getMyBiz().bindRelation(userId, parentId, 1);
return ObjectRestResponse.succ();
}
//永久稳定关系
public void foreverBind(Integer user_id ){
AppUserRelation relation=getMyBiz().getRelationByUserId(user_id);
if(relation!=null&&relation.getIsForever()==0&&relation.getParentId()!=null&&relation.getParentId()>0){
public void foreverBind(Integer user_id) {
AppUserRelation relation = getMyBiz().getRelationByUserId(user_id);
if (relation != null && relation.getIsForever() == 0 && relation.getParentId() != null && relation.getParentId() > 0) {
relation.setIsForever(1);
getMyBiz().updRelation(relation);
}
}
/**
* 小程序分享上下线绑定
* @param userid 当前人小程序id
* @param pid 分享人id
* @param platform_userid 当前人统一平台id
*
* @param userid 当前人小程序id
* @param pid 分享人id
* @param platform_userid 当前人统一平台id
*/
public ObjectRestResponse shareParentByUserId(Integer userid, Integer pid, Integer platform_userid){
if(pid==null||pid==0||((platform_userid==null||platform_userid==0)&&(userid==0||userid==null))){
public ObjectRestResponse shareParentByUserId(Integer userid, Integer pid, Integer platform_userid) {
if (pid == null || pid == 0 || ((platform_userid == null || platform_userid == 0) && (userid == 0 || userid == null))) {
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE, "参数为空");
}
if(platform_userid==null||platform_userid==0){
upRelationTemp(pid,userid);
}else {
AppUserVo userVo=userDetailBiz.getUserInfoById(platform_userid);
if(userVo==null){
upRelationTemp(pid,userid);
}else {
bindRelation(platform_userid,pid,2);
if (platform_userid == null || platform_userid == 0) {
upRelationTemp(pid, userid);
} else {
AppUserVo userVo = userDetailBiz.getUserInfoById(platform_userid);
if (userVo == null) {
upRelationTemp(pid, userid);
} else {
bindRelation(platform_userid, pid, 2);
}
}
return ObjectRestResponse.succ();
......@@ -177,17 +182,18 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
/**
* 新增临时关系
*
* @param pid
* @param userid
*/
public void upRelationTemp(Integer pid,Integer userid){
public void upRelationTemp(Integer pid, Integer userid) {
AppUserRelationTemp relationTemp=new AppUserRelationTemp();
AppUserRelationTemp relationTemp = new AppUserRelationTemp();
relationTemp.setTempId(userid);
relationTemp.setIsDel(0);
relationTemp.setType(1);
AppUserRelationTemp relationTemp1= relationTempBiz.selectOne(relationTemp);
if(relationTemp1==null){
AppUserRelationTemp relationTemp1 = relationTempBiz.selectOne(relationTemp);
if (relationTemp1 == null) {
relationTemp.setUserId(pid);
relationTempBiz.insertSelective(relationTemp);
}
......@@ -196,68 +202,70 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
/**
* 小程序上下线绑定
*
* @param platform_userid 当前人统一平台id
* @param userid 当前人小程序id
* @param userid 当前人小程序id
*/
public void bindByUserId(Integer platform_userid,Integer userid){
if(platform_userid==null||platform_userid==0||userid==null||userid==0){
public void bindByUserId(Integer platform_userid, Integer userid) {
if (platform_userid == null || platform_userid == 0 || userid == null || userid == 0) {
return;
}
AppUserRelationTemp relationTemp =new AppUserRelationTemp();
AppUserRelationTemp relationTemp = new AppUserRelationTemp();
relationTemp.setTempId(userid);
relationTemp.setIsValid(0);
relationTemp.setType(1);
relationTemp.setIsDel(0);
relationTemp=relationTempBiz.selectOne(relationTemp);
if(relationTemp==null){
return;
relationTemp = relationTempBiz.selectOne(relationTemp);
if (relationTemp == null) {
return;
}
Integer parentId=relationTemp.getUserId();
bindRelation(platform_userid,parentId,2);
Integer parentId = relationTemp.getUserId();
bindRelation(platform_userid, parentId, 2);
}
/**
* 获取用户的上线关系
*
* @param userId
* @return
*/
@Cache(key="user:relation{1}")
public AppUserRelation getRelationByUserId(Integer userId){
AppUserRelation relation=new AppUserRelation();
@Cache(key = "user:relation{1}")
public AppUserRelation getRelationByUserId(Integer userId) {
AppUserRelation relation = new AppUserRelation();
relation.setUserId(userId);
return selectOne(relation);
return selectOne(relation);
}
//获取有效的上线
public AppUserRelation getRelationByIdUserIdAndTime(Integer userId){
AppUserRelation userRelation= getMyBiz().getRelationByUserId(userId);
if (userRelation==null){
return null;
public AppUserRelation getRelationByIdUserIdAndTime(Integer userId) {
AppUserRelation userRelation = getMyBiz().getRelationByUserId(userId);
if (userRelation == null) {
return null;
}
log.info("---userId==="+userId+"-----isForever==="+userRelation.getIsForever());
if (validTime==null||validTime==0){
return userRelation;
log.info("---userId===" + userId + "-----isForever===" + userRelation.getIsForever());
if (validTime == null || validTime == 0) {
return userRelation;
}
Long time=System.currentTimeMillis()-validTime;
if (userRelation.getIsForever()==1||userRelation.getBindTime()>time){
return userRelation;
Long time = System.currentTimeMillis() - validTime;
if (userRelation.getIsForever() == 1 || userRelation.getBindTime() > time) {
return userRelation;
}
log.info("---userId==="+userId+"-----time==="+time+"----userRelation.getBindTime()==="+userRelation.getBindTime());
return null;
log.info("---userId===" + userId + "-----time===" + time + "----userRelation.getBindTime()===" + userRelation.getBindTime());
return null;
}
//获取用户的下线总数
public int getCountByParentId(Integer parentId,Long time){
if (validTime<=0){
time= validTime;
}
return mapper.countByParentId(parentId,time);
public int getCountByParentId(Integer parentId, Long time) {
if (validTime <= 0) {
time = validTime;
}
return mapper.countByParentId(parentId, time);
}
@CacheClear(key="user:relation{1.userId}")
public int updRelation(AppUserRelation appUserRelation){
return super.updateSelectiveByIdRe(appUserRelation);
@CacheClear(key = "user:relation{1.userId}")
public int updRelation(AppUserRelation appUserRelation) {
return super.updateSelectiveByIdRe(appUserRelation);
}
private AppUserRelationBiz getMyBiz() {
......@@ -265,7 +273,7 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
}
public List<AppUserRelation> findMemberPageByLeaderId(Integer leaderId) {
return mapper.selectByLeaderId(leaderId);
return mapper.selectByLeaderId(leaderId);
}
public InviteMemberVo findInviteMemberByActivitState(Integer leaderId, Integer state, Integer page, Integer limit) {
......@@ -273,16 +281,16 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
InviteMemberVo inviteMemberVo = new InviteMemberVo();
inviteMemberVo.setPage(page);
inviteMemberVo.setLimit(limit);
inviteMemberVo.setFailureTime(failureTime*24*60*60);
inviteMemberVo.setFailureTime(failureTime * 24 * 60 * 60);
Example example = new Example(AppUserRelation.class);
Example.Criteria criteria = example.createCriteria();
if (state!=null) {
if (state != null) {
criteria.andEqualTo("isForever", state);
}
criteria.andEqualTo("parentId",leaderId);
criteria.andEqualTo("parentId", leaderId);
PageDataVO<AppUserRelation> pageDataVO = PageDataVO.pageInfo(page, limit, () -> mapper.selectByExample(example));
List<AppUserRelation> appUserRelations = pageDataVO.getData();
if (CollectionUtils.isEmpty(appUserRelations)){
if (CollectionUtils.isEmpty(appUserRelations)) {
inviteMemberVo.setInviteMembers(Collections.EMPTY_LIST);
return inviteMemberVo;
}
......@@ -294,15 +302,17 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
List<InviteMemberBO> inviteMemberBOS = new ArrayList<>();
InviteMemberBO inviteMemberBO;
for (AppUserRelation appUserRelation : appUserRelations) {
if (userIdAndUserLoginMap==null || userIdAndUserDetailMap==null){
if (userIdAndUserLoginMap == null || userIdAndUserDetailMap == null) {
continue;
}
inviteMemberBO = new InviteMemberBO();
inviteMemberBO.setBindTime(appUserRelation.getBindTime());
inviteMemberBO.setJoinTime(appUserRelation.getBindTime());
inviteMemberBO.setUsername(userIdAndUserLoginMap==null?"":userIdAndUserLoginMap.get(appUserRelation.getUserId())==null?"":userIdAndUserLoginMap.get(appUserRelation.getUserId()).getUsername());
inviteMemberBO.setHeadUrl(userIdAndUserDetailMap==null?"":userIdAndUserDetailMap.get(appUserRelation.getUserId())==null?"":userIdAndUserDetailMap.get(appUserRelation.getUserId()).getHeadimgurl());
inviteMemberBOS.add(inviteMemberBO);
inviteMemberBO = new InviteMemberBO();
inviteMemberBO.setUserId(appUserRelation.getUserId());
inviteMemberBO.setParentId(appUserRelation.getParentId());
inviteMemberBO.setBindTime(appUserRelation.getBindTime());
inviteMemberBO.setJoinTime(appUserRelation.getBindTime());
inviteMemberBO.setUsername(userIdAndUserLoginMap == null ? "" : userIdAndUserLoginMap.get(appUserRelation.getUserId()) == null ? "" : userIdAndUserLoginMap.get(appUserRelation.getUserId()).getUsername());
inviteMemberBO.setHeadUrl(userIdAndUserDetailMap == null ? "" : userIdAndUserDetailMap.get(appUserRelation.getUserId()) == null ? "" : userIdAndUserDetailMap.get(appUserRelation.getUserId()).getHeadimgurl());
inviteMemberBOS.add(inviteMemberBO);
}
inviteMemberVo.setTotalCount(pageDataVO.getTotalCount().intValue());
inviteMemberVo.setTotalPage(pageDataVO.getTotalPage());
......@@ -311,71 +321,72 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
}
public Integer findLeaderIdByMemberId(Integer userId) {
Example example = new Example(AppUserRelation.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId",userId);
List<AppUserRelation> appUserRelations = mapper.selectByExample(example);
if (CollectionUtils.isEmpty(appUserRelations)){
Example example = new Example(AppUserRelation.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId", userId);
List<AppUserRelation> appUserRelations = mapper.selectByExample(example);
if (CollectionUtils.isEmpty(appUserRelations)) {
return 0;
}
return appUserRelations.get(0).getParentId();
}
public Map<Integer, Integer> findMemberSateAndCountMapByLeaderId(Integer userId) {
Map<Integer,Integer> memberSateAndCountMap = new HashMap<>();
AppUserRelation appUserRelation = new AppUserRelation();
appUserRelation.setParentId(userId);
appUserRelation.setIsForever(0);
int totalCount = mapper.selectCount(appUserRelation);
appUserRelation.setIsForever(1);
int activityCount = mapper.selectCount(appUserRelation);
memberSateAndCountMap.put(0,totalCount);
memberSateAndCountMap.put(1,activityCount);
Map<Integer, Integer> memberSateAndCountMap = new HashMap<>();
List<AppUserRelation> appUserRelationList = mapper.selectCountByLeaderId(userId);
if (CollectionUtils.isEmpty(appUserRelationList)){
memberSateAndCountMap.put(0, 0);
memberSateAndCountMap.put(1, 0);
}
Map<Boolean, Long> resultMap = appUserRelationList.stream().collect(Collectors.partitioningBy(x -> x.getIsForever() == 0, Collectors.counting()));
memberSateAndCountMap.put(0, resultMap.get(Boolean.TRUE)==null?0:resultMap.get(Boolean.TRUE).intValue());
memberSateAndCountMap.put(1, resultMap.get(Boolean.FALSE)==null?0:resultMap.get(Boolean.FALSE).intValue());
return memberSateAndCountMap;
}
public void deleteByMemberIds(Collection<Integer> userIds) {
Example example = new Example(AppUserRelation.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("parentId",userIds);
List<AppUserRelation> list=mapper.selectByExample(example);
for (AppUserRelation appUserRelation:list){
criteria.andIn("parentId", userIds);
List<AppUserRelation> list = mapper.selectByExample(example);
for (AppUserRelation appUserRelation : list) {
getMyBiz().delRelation(appUserRelation.getUserId());
}
mapper.deleteByExample(example);
Example example2 = new Example(AppUserRelation.class);
Example.Criteria criteria1 = example2.createCriteria();
criteria1.andIn("userId",userIds);
criteria1.andIn("userId", userIds);
mapper.deleteByExample(example2);
for (Integer userId:userIds){
for (Integer userId : userIds) {
getMyBiz().delRelation(userId);
}
}
@CacheClear(key="user:relation{1}")
public void delRelation(Integer userId){
@CacheClear(key = "user:relation{1}")
public void delRelation(Integer userId) {
}
public List<AppUserRelation> findLeaderByUserIds(List<Integer> userIds) {
List<AppUserRelation> appUserRelationList = mapper.selectByUserIds(userIds);
return appUserRelationList==null?Collections.EMPTY_LIST:appUserRelationList;
List<AppUserRelation> appUserRelationList = mapper.selectByUserIds(userIds);
return appUserRelationList == null ? Collections.EMPTY_LIST : appUserRelationList;
}
public void initParentId(AppUserDTO userDTO, Integer userid) {
AppUserRelation relation = getRelationByIdUserIdAndTime(userid);
Integer parentId=0;
if (relation!=null){
parentId=relation.getParentId();
Integer parentId = 0;
if (relation != null) {
parentId = relation.getParentId();
}
userDTO.setParentId(parentId);
if (parentId!=null&&parentId>0){
AppUserPositionTemp positionTemp= positionTempBiz.getOne(parentId);
if (positionTemp!=null){
userDTO.setParentPositionId(positionTemp.getPositionId());
userDTO.setParentPositionTempId(positionTemp.getId());
userDTO.setParentCompanyId(positionTemp.getCompanyId());
}
if (parentId != null && parentId > 0) {
AppUserPositionTemp positionTemp = positionTempBiz.getOne(parentId);
if (positionTemp != null) {
userDTO.setParentPositionId(positionTemp.getPositionId());
userDTO.setParentPositionTempId(positionTemp.getId());
userDTO.setParentCompanyId(positionTemp.getCompanyId());
}
}
}
......
......@@ -23,4 +23,6 @@ public interface AppUserRelationMapper extends Mapper<AppUserRelation> {
public int countByParentId(@Param("parentId")Integer parentId,@Param("bindTime")Long bindTime);
List<AppUserRelation> selectByUserIds(@Param("userIds") List<Integer> userIds);
List<AppUserRelation> selectCountByLeaderId(Integer userId);
}
......@@ -21,4 +21,8 @@
#{userId}
</foreach>
</select>
<select id="selectCountByLeaderId" resultType="com.github.wxiaoqi.security.admin.entity.AppUserRelation">
select * from `app_user_relation` as `aur` inner join `app_user_login` as `aul` on aul.id=aur.user_id where aur.is_del=0 and aul.isdel=0 and aur.parent_id=#{userId}
</select>
</mapper>
\ No newline at end of file
......@@ -10,6 +10,7 @@
IFNULL(ausww.income,0) AS `income`
FROM
`app_user_relation` AS `aur`
INNER JOIN (select `id` from `app_user_login` where isdel=0)as `aul` ON aul.id=aur.user_id
LEFT JOIN (SELECT DISTINCT
`source_id` AS userId,
IFNULL(
......@@ -149,29 +150,29 @@ FROM
<if test="userName!=null and userName!=' '">
WHERE `realname` LIKE CONCAT('%',#{userName},'%') OR `nickname` LIKE CONCAT('%',#{userName},'%')
</if>) AS audd ON audd.userid = ausw.user_id
ORDER BY ausw.crt_time DESC
ORDER BY ausw.crt_time DESC
</select>
<select id="statisticsStatffSellerWaterByUserIdsAndTime"
resultType="com.github.wxiaoqi.security.admin.dto.AppUserSellingWaterDTO">
SELECT
`auswu`.user_id, ( IFNULL(auswu.upIncome,0) - IFNULL(auswd.dowIncome,0) ) AS `commission`
FROM
( SELECT `user_id` as `userId`, IFNULL(SUM( commission ),0) AS upIncome FROM `app_user_selling_water` where STATUS = 0 and waiting=1
AND `crt_time` between #{startTime} and #{endTime}
<if test="userIds!=null and userIds.size!=0">
AND `user_id` IN <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
#{userId}
</foreach>
</if> group by user_id) AS `auswu`
left join
( SELECT `user_id`,IFNULL(SUM( commission ),0) AS `dowIncome` FROM `app_user_selling_water` where STATUS = 1 and waiting=1
and `crt_time` between #{startTime} and #{endTime}
<if test="userIds!=null and userIds.size!=0">
AND `user_id` IN <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
#{userId}
</foreach>
</if> group by user_id) AS `auswd`
on auswd.user_id=auswu.user_id
`auswu`.user_id, ( IFNULL(auswu.upIncome,0) - IFNULL(auswd.dowIncome,0) ) AS `commission`
FROM
( SELECT `user_id` as `userId`, IFNULL(SUM( commission ),0) AS upIncome FROM `app_user_selling_water` where STATUS = 0 and waiting=1
AND `crt_time` between #{startTime} and #{endTime}
<if test="userIds!=null and userIds.size!=0">
AND `user_id` IN <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
#{userId}
</foreach>
</if> group by user_id) AS `auswu`
left join
( SELECT `user_id`,IFNULL(SUM( commission ),0) AS `dowIncome` FROM `app_user_selling_water` where STATUS = 1 and waiting=1
and `crt_time` between #{startTime} and #{endTime}
<if test="userIds!=null and userIds.size!=0">
AND `user_id` IN <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
#{userId}
</foreach>
</if> group by user_id) AS `auswd`
on auswd.user_id=auswu.user_id
</select>
</mapper>
\ No newline at end of file
......@@ -140,20 +140,24 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
int index = LotteryUtils.getrandomIndex(activityPrizes);
ActivityPrize activityPrize = activityPrizes.get(index);
//库存为0
if (activityPrize.getPrizeGoodsType()!=0 && activityPrize.getTotalStock() == 0) {
activityPrize = notActivityPrize;
}
if (activityPrize.getDayMaxUse()!=null){
String key = String.format("%s:%s:%d:%s",lotteryDate,LOTTERY_PRE_KEY, activityId, activityPrize.getSerialNumber());
Long prizeDayUseStock = valueOperations.increment(key);
//达到日上限
if (prizeDayUseStock.intValue() > activityPrize.getDayMaxUse()){
try {
//库存为0
if (activityPrize.getPrizeGoodsType() != 0 && activityPrize.getTotalStock() != null && activityPrize.getTotalStock() == 0) {
activityPrize = notActivityPrize;
}
}catch (Exception ex){
System.out.println("+++++"+activityPrize);
}
// if (activityPrize.getDayMaxUse()!=null){
// String key = String.format("%s:%s:%d:%s",lotteryDate,LOTTERY_PRE_KEY, activityId, activityPrize.getSerialNumber());
// Long prizeDayUseStock = valueOperations.increment(key);
// //达到日上限
// if (prizeDayUseStock.intValue() > activityPrize.getDayMaxUse()){
// activityPrize = notActivityPrize;
// }
// }
ActivityWinningRecord activityWinningRecord = new ActivityWinningRecord();
activityWinningRecord.setActivityId(activityId);
activityWinningRecord.setPrizeType(prizeType);
......@@ -182,6 +186,8 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
//设置为已中奖
activityWinningRecord.setHasWinning(1);
activityWinningRecord.setIconPath(activityPrize.getIconPath());
activityWinningRecord.setLotteryTime(new Date());
activityWinningRecord.setPrizeName(activityPrize.getName());
}
activityWinningRecordBiz.saveRecord(activityWinningRecord);
lotteryVo.setSerialNumber(activityPrize.getSerialNumber());
......
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