Commit c2dbd217 authored by 周健威's avatar 周健威

Merge branch 'master' into master-zjw

parents cc4d3b57 3ec7beff
...@@ -43,4 +43,7 @@ public class WalletCathListDTO { ...@@ -43,4 +43,7 @@ public class WalletCathListDTO {
@ApiModelProperty("单号") @ApiModelProperty("单号")
private String cono; private String cono;
@ApiModelProperty(value = "用户账号")
private String accountNumber;
} }
...@@ -40,4 +40,7 @@ public class WalletCathAdminVo { ...@@ -40,4 +40,7 @@ public class WalletCathAdminVo {
@ApiModelProperty("单号") @ApiModelProperty("单号")
private String cono; private String cono;
@ApiModelProperty(value = "用户账号")
private String accountNumber;
} }
...@@ -4,6 +4,8 @@ import com.ace.cache.annotation.Cache; ...@@ -4,6 +4,8 @@ import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear; import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO; import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO; import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo; import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
...@@ -43,6 +45,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -43,6 +45,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
@Autowired @Autowired
AppUserDetailBiz detailBiz; AppUserDetailBiz detailBiz;
@Autowired
private BaseUserMemberLevelMapper BaseUserMemberLevelMapper;
// @Autowired // @Autowired
// private TaskExecutor taskExecutor; // private TaskExecutor taskExecutor;
// //
...@@ -213,7 +218,6 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -213,7 +218,6 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
} }
/** /**
* 设置用户会员 * 设置用户会员
* *
...@@ -230,7 +234,25 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -230,7 +234,25 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
if (totalNumber < freeDays) { if (totalNumber < freeDays) {
freeDays = totalNumber; freeDays = totalNumber;
} }
Integer buyCount = userMemberDTO.getBuyCount() == null ? 1:userMemberDTO.getBuyCount() ;
if (userMemberDTO.getMemberLevel() != null) {
Example exa = new Example(BaseUserMemberLevel.class);
Example.Criteria criteria = exa.createCriteria();
criteria.andEqualTo("isdel", 0);
criteria.andEqualTo("level",userMemberDTO.getMemberLevel());
List<BaseUserMemberLevel> levels = BaseUserMemberLevelMapper.selectByExample(exa);
if (CollectionUtils.isEmpty(levels)) {
log.error("错误!设置的该等级会员不存在.");
throw new BaseException("错误!设置的该等级会员不存在。");
}else if (levels.size()>1){
log.error("错误!该等级的会员存在多个。");
throw new BaseException("错误!该等级的会员存在多个。");
}else {
baseUserMember.setDiscount(levels.get(0).getDiscount());
}
}
Integer buyCount = userMemberDTO.getBuyCount() == null ? 1 : userMemberDTO.getBuyCount();
UserMemberVo userMemberVo = getMemberInfoByUserId(userMemberDTO.getUserId()); UserMemberVo userMemberVo = getMemberInfoByUserId(userMemberDTO.getUserId());
if (userMemberVo == null) { if (userMemberVo == null) {
baseUserMember.setRentFreeDays(freeDays); baseUserMember.setRentFreeDays(freeDays);
...@@ -241,8 +263,8 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -241,8 +263,8 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
Integer number = userMemberVo.getTotalNumber() == null ? 0 : userMemberVo.getTotalNumber(); Integer number = userMemberVo.getTotalNumber() == null ? 0 : userMemberVo.getTotalNumber();
Integer days = userMemberVo.getRentFreeDays() == null ? 0 : userMemberVo.getRentFreeDays(); Integer days = userMemberVo.getRentFreeDays() == null ? 0 : userMemberVo.getRentFreeDays();
baseUserMember.setBuyCount(userMemberVo.getBuyCount() + buyCount); baseUserMember.setBuyCount(userMemberVo.getBuyCount() + buyCount);
number=(totalNumber-number)+number; number = (totalNumber - number) + number;
days=(freeDays-days)+days; days = (freeDays - days) + days;
baseUserMember.setTotalNumber(number); baseUserMember.setTotalNumber(number);
baseUserMember.setRentFreeDays(days); baseUserMember.setRentFreeDays(days);
getMyBiz().updateSelectiveById(baseUserMember); getMyBiz().updateSelectiveById(baseUserMember);
...@@ -255,14 +277,13 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -255,14 +277,13 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
userVo1.setIsMember(1); userVo1.setIsMember(1);
detailBiz.updUuserInfoById(userVo1); detailBiz.updUuserInfoById(userVo1);
} }
} }
public void deleteByUserIds(Collection<Integer> userIds) { public void deleteByUserIds(Collection<Integer> userIds) {
Example example = new Example(BaseUserMember.class); Example example = new Example(BaseUserMember.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
criteria.andIn("userId",userIds); criteria.andIn("userId", userIds);
mapper.deleteByExample(example); mapper.deleteByExample(example);
} }
} }
\ No newline at end of file
...@@ -84,6 +84,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -84,6 +84,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
.memberLevel(userMemberSaveDTO.getMemberLevel()) .memberLevel(userMemberSaveDTO.getMemberLevel())
.totalNumber(userMemberSaveDTO.getTotalNumber()) .totalNumber(userMemberSaveDTO.getTotalNumber())
.rentFreeDays(userMemberSaveDTO.getRentFreeDays()) .rentFreeDays(userMemberSaveDTO.getRentFreeDays())
.memberName(userMemberSaveDTO.getMemberName())
.discount(level == null ? 0 : level.getDiscount() == null ? 0 : level.getDiscount()) .discount(level == null ? 0 : level.getDiscount() == null ? 0 : level.getDiscount())
.status(phoneAndUserIdMap == null ? 0 : (phoneAndUserIdMap.get(userMemberSaveDTO.getPhone()) == null ? 0 : 1)) .status(phoneAndUserIdMap == null ? 0 : (phoneAndUserIdMap.get(userMemberSaveDTO.getPhone()) == null ? 0 : 1))
.crtId(userId) .crtId(userId)
...@@ -113,12 +114,13 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -113,12 +114,13 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
AtomicInteger counter = new AtomicInteger(0); AtomicInteger counter = new AtomicInteger(0);
int threadNums= userMemberData.size()/BORDER_NUM==0?1:userMemberData.size()/BORDER_NUM; int threadNums= userMemberData.size()/BORDER_NUM==0?1:userMemberData.size()/BORDER_NUM;
CountDownLatch latch = new CountDownLatch(threadNums); CountDownLatch latch = new CountDownLatch(threadNums);
Map<Integer,UserMemberDTO> numAndUserMemberMap = new HashMap<>(userMemberData.size());
for (int i=0;i<threadNums;i++){ for (int i=0;i<threadNums;i++){
int startIndex = i*BORDER_NUM; int startIndex = i*BORDER_NUM;
int endIndex=i==(threadNums-1)?userMemberData.size():(i+1)*BORDER_NUM; int endIndex=i==(threadNums-1)?userMemberData.size():(i+1)*BORDER_NUM;
List<String[]> subResultDate = userMemberData.subList(startIndex,endIndex); List<String[]> subResultDate = userMemberData.subList(startIndex,endIndex);
threadPoolTaskExecutor.execute(()->{ threadPoolTaskExecutor.execute(()->{
wrapperData(subResultDate, userId, userName, baseUserMemberExports, levelAndbaseUserMemberMap, phoneAndUserIdMap, leaveNameAndLeaveEntry, memberLevel, discount, counter); wrapperData(subResultDate, userId, userName, baseUserMemberExports, levelAndbaseUserMemberMap, phoneAndUserIdMap, leaveNameAndLeaveEntry, memberLevel, discount, counter, numAndUserMemberMap);
latch.countDown(); latch.countDown();
}); });
} }
...@@ -128,12 +130,22 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -128,12 +130,22 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
throw new BaseException("导入数据失败"); throw new BaseException("导入数据失败");
} }
InsertBatch(baseUserMemberExports); InsertBatch(baseUserMemberExports);
Set<Map.Entry<Integer, UserMemberDTO>> entries = numAndUserMemberMap.entrySet();
for (Map.Entry<Integer, UserMemberDTO> memberDTOEntry : entries) {
try {
baseUserMemberBiz.updUserMemberByUserId(memberDTOEntry.getValue());
}catch (Exception ex){
log.error("当前行数:【{}】",memberDTOEntry.getKey());
log.error("会员更新错误:【{}】", ex.getMessage());
throw new BaseException("");
}
}
return baseUserMemberExports.size(); return baseUserMemberExports.size();
} }
private void wrapperData(List<String[]> userMemberData, Integer userId, String userName, List<BaseUserMemberExport> baseUserMemberExports, Map<Integer, BaseUserMemberLevel> levelAndbaseUserMemberMap, Map<String, Integer> phoneAndUserIdMap, Set<Map.Entry<String, Integer>> leaveNameAndLeaveEntry, Integer memberLevel, Integer discount, AtomicInteger counter) { private void wrapperData(List<String[]> userMemberData, Integer userId, String userName, List<BaseUserMemberExport> baseUserMemberExports, Map<Integer, BaseUserMemberLevel> levelAndbaseUserMemberMap, Map<String, Integer> phoneAndUserIdMap, Set<Map.Entry<String, Integer>> leaveNameAndLeaveEntry, Integer memberLevel, Integer discount, AtomicInteger counter,Map<Integer,UserMemberDTO> numAndUserMemberMap) {
for (String[] data : userMemberData) { for (String[] data : userMemberData) {
counter.incrementAndGet();
String phone = data[0]; String phone = data[0];
String memberLevelName = data[1]; String memberLevelName = data[1];
String memberName = data[2]; String memberName = data[2];
...@@ -158,15 +170,15 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -158,15 +170,15 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
userMemberDTO.setIsBind(1); userMemberDTO.setIsBind(1);
userMemberDTO.setMemberName(memberName); userMemberDTO.setMemberName(memberName);
userMemberDTO.setBuyCount(0); userMemberDTO.setBuyCount(0);
try { numAndUserMemberMap.put(counter.incrementAndGet(),userMemberDTO);
/* try {
baseUserMemberBiz.updUserMemberByUserId(userMemberDTO); baseUserMemberBiz.updUserMemberByUserId(userMemberDTO);
} catch (Exception e) { } catch (Exception e) {
log.error("当前行数:【{}】",counter.get()); log.error("当前行数:【{}】",counter.get());
log.error("会员更新错误:【{}】", e.getMessage()); log.error("会员更新错误:【{}】", e.getMessage());
throw new BaseException(e); throw new BaseException(e);
}*/
} }
}
BaseUserMemberExport memberExport = BaseUserMemberExport BaseUserMemberExport memberExport = BaseUserMemberExport
.builder() .builder()
.username(phone.trim()) .username(phone.trim())
......
...@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.mapper; ...@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
...@@ -13,6 +14,7 @@ import java.util.List; ...@@ -13,6 +14,7 @@ import java.util.List;
* @email nishijjo@qq.com * @email nishijjo@qq.com
* @date 2019-06-11 11:06:45 * @date 2019-06-11 11:06:45
*/ */
@Repository
public interface BaseUserMemberLevelMapper extends Mapper<BaseUserMemberLevel> { public interface BaseUserMemberLevelMapper extends Mapper<BaseUserMemberLevel> {
List<BaseUserMemberLevel> selectUserMembersLevelByLevels(@Param("levels") List<Integer> levels); List<BaseUserMemberLevel> selectUserMembersLevelByLevels(@Param("levels") List<Integer> levels);
......
...@@ -30,6 +30,7 @@ import com.github.wxiaoqi.security.common.util.result.JsonResultUtil; ...@@ -30,6 +30,7 @@ import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
import com.xxfc.platform.activity.feign.ActivityFeign; import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.im.feign.ImFeign; import com.xxfc.platform.im.feign.ImFeign;
import com.xxfc.platform.universal.dto.RegionDTO; import com.xxfc.platform.universal.dto.RegionDTO;
import com.xxfc.platform.universal.dto.SmsTemplateDTO;
import com.xxfc.platform.universal.feign.MQSenderFeign; import com.xxfc.platform.universal.feign.MQSenderFeign;
import com.xxfc.platform.universal.feign.RegionFeign; import com.xxfc.platform.universal.feign.RegionFeign;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
...@@ -37,6 +38,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -37,6 +38,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -105,6 +107,9 @@ public class AppPermissionService { ...@@ -105,6 +107,9 @@ public class AppPermissionService {
@Autowired @Autowired
private BaseUserMemberBiz baseUserMemberBiz; private BaseUserMemberBiz baseUserMemberBiz;
@Value("${admin.smallName}")
private String smallName;
public AppUserInfo validate(String username, String password) { public AppUserInfo validate(String username, String password) {
AppUserInfo info = new AppUserInfo(); AppUserInfo info = new AppUserInfo();
...@@ -447,8 +452,14 @@ public class AppPermissionService { ...@@ -447,8 +452,14 @@ public class AppPermissionService {
} }
public static String getIp() { public static String getIp() {
try {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
return requestAttributes.getRequest().getHeader("userHost"); return requestAttributes.getRequest().getHeader("userHost");
}catch (Exception e){
e.printStackTrace();
return null;
}
} }
/** /**
...@@ -949,7 +960,15 @@ public class AppPermissionService { ...@@ -949,7 +960,15 @@ public class AppPermissionService {
//上线绑定 //上线绑定
relationBiz.bindByUserId(userid, small_id); relationBiz.bindByUserId(userid, small_id);
//发送短信通知用户 //发送短信通知用户
thirdFeign.sendCode(username, password, SystemConfig.TEMPLATECODE); List<String> smsParams = new ArrayList<String>();
smsParams.add(smallName);
smsParams.add(username);
smsParams.add(password);
thirdFeign.sendTemplate(new SmsTemplateDTO(){{
setPhoneNumbers(username);
setType(SmsTemplateDTO.PWD);
setParams(smsParams.toArray(new String[smsParams.size()]));
}});
//参加新人活动 //参加新人活动
jionActivity(userid); jionActivity(userid);
// 登录结果要做做统一处理 // 登录结果要做做统一处理
......
...@@ -113,6 +113,8 @@ ...@@ -113,6 +113,8 @@
base_user_member_level ml base_user_member_level ml
on on
ml.level = b.member_level ml.level = b.member_level
where
ml.isdel=0
) m ) m
on on
l.id = m.user_id l.id = m.user_id
......
...@@ -14,7 +14,8 @@ ...@@ -14,7 +14,8 @@
wc.stauts, wc.stauts,
wc.crt_time AS `crtTime`, wc.crt_time AS `crtTime`,
wc.finish_time AS `finishTime`, wc.finish_time AS `finishTime`,
wc.cono wc.cono,
wc.account_number AS `accountNumber`
FROM FROM
(SELECT * FROM `my_wallet_cath` <if test="state != null"> (SELECT * FROM `my_wallet_cath` <if test="state != null">
WHERE `stauts`=#{state} WHERE `stauts`=#{state}
......
...@@ -127,6 +127,9 @@ ...@@ -127,6 +127,9 @@
</foreach> </foreach>
</if> </if>
<if test="userId != null">
and b.user_id = #{userId}
</if>
<if test="status != null"> <if test="status != null">
and b.status = #{status} and b.status = #{status}
</if> </if>
......
...@@ -71,6 +71,8 @@ public class SmsTemplateDTO { ...@@ -71,6 +71,8 @@ public class SmsTemplateDTO {
public static final int PAY_I= 26; public static final int PAY_I= 26;
//旅游(上车通知)27 //旅游(上车通知)27
public static final int PAY_J= 27; public static final int PAY_J= 27;
//小程序密码通知
public static final int PWD= 28;
......
...@@ -82,6 +82,9 @@ public class AliYunSmsBiz { ...@@ -82,6 +82,9 @@ public class AliYunSmsBiz {
//旅游(上车通知)27 //旅游(上车通知)27
public static final String TEMPLATE_ID_PAY_J= "SMS_173345606"; public static final String TEMPLATE_ID_PAY_J= "SMS_173345606";
//旅游(上车通知)27
public static final String PWD= "SMS_174990497";
//发送模板消息 //发送模板消息
...@@ -166,6 +169,9 @@ public class AliYunSmsBiz { ...@@ -166,6 +169,9 @@ public class AliYunSmsBiz {
case 27 : case 27 :
SmsService.sendTemplateToJson(phoneNumbers,params,TEMPLATE_ID_PAY_J); SmsService.sendTemplateToJson(phoneNumbers,params,TEMPLATE_ID_PAY_J);
break; break;
case 28 :
SmsService.sendTemplateToJson(phoneNumbers,params,PWD);
break;
} }
......
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