Commit cbe52b07 authored by libin's avatar libin

Merge branch 'master-memberName-fix' into base-modify

# Conflicts:
#	ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/BaseUserMemberExportBiz.java
parents fab24ce5 44a78c8a
......@@ -43,4 +43,7 @@ public class WalletCathListDTO {
@ApiModelProperty("单号")
private String cono;
@ApiModelProperty(value = "用户账号")
private String accountNumber;
}
......@@ -79,7 +79,7 @@ public class AppUserDTO {
private Integer buyCount;
private Integer lockDays;
private Integer discount;
private Integer memberLevel;
private Integer memberLevel = 0;
private String memberName;
//图标
private String icon;
......
......@@ -40,4 +40,7 @@ public class WalletCathAdminVo {
@ApiModelProperty("单号")
private String cono;
@ApiModelProperty(value = "用户账号")
private String accountNumber;
}
......@@ -130,7 +130,7 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
BeanUtils.copyProperties(appUserPositionTemp, appUserPositionTempVo);
String postionName = postionMap == null ? "" : postionMap.get(appUserPositionTemp.getPositionId())==null?"":postionMap.get(appUserPositionTemp.getPositionId()).getName();
appUserPositionTempVo.setPositionName(postionName);
appUserPositionTempVo.setStatus(appUserPositionTemp.getUserId() == null ? DataStatus.NO_USERED.code : DataStatus.USERED.code);
appUserPositionTempVo.setStatus(appUserPositionTemp.getUserId() == null ? DataStatus.NO_USERED.code : appUserPositionTemp.getUserId()==0?DataStatus.NO_USERED.code:DataStatus.USERED.code);
appUserPositionTempVos.add(appUserPositionTempVo);
}
......
......@@ -4,6 +4,8 @@ import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO;
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.UserMemberVo;
import com.github.wxiaoqi.security.common.exception.BaseException;
......@@ -43,6 +45,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
@Autowired
AppUserDetailBiz detailBiz;
@Autowired
private BaseUserMemberLevelMapper BaseUserMemberLevelMapper;
// @Autowired
// private TaskExecutor taskExecutor;
//
......@@ -213,7 +218,6 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
}
/**
* 设置用户会员
*
......@@ -230,7 +234,25 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
if (totalNumber < freeDays) {
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());
if (userMemberVo == null) {
baseUserMember.setRentFreeDays(freeDays);
......@@ -241,8 +263,8 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
Integer number = userMemberVo.getTotalNumber() == null ? 0 : userMemberVo.getTotalNumber();
Integer days = userMemberVo.getRentFreeDays() == null ? 0 : userMemberVo.getRentFreeDays();
baseUserMember.setBuyCount(userMemberVo.getBuyCount() + buyCount);
number=(totalNumber-number)+number;
days=(freeDays-days)+days;
number = (totalNumber - number) + number;
days = (freeDays - days) + days;
baseUserMember.setTotalNumber(number);
baseUserMember.setRentFreeDays(days);
getMyBiz().updateSelectiveById(baseUserMember);
......@@ -255,14 +277,13 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
userVo1.setIsMember(1);
detailBiz.updUuserInfoById(userVo1);
}
}
public void deleteByUserIds(Collection<Integer> userIds) {
Example example = new Example(BaseUserMember.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("userId",userIds);
criteria.andIn("userId", userIds);
mapper.deleteByExample(example);
}
}
\ No newline at end of file
......@@ -84,6 +84,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
.memberLevel(userMemberSaveDTO.getMemberLevel())
.totalNumber(userMemberSaveDTO.getTotalNumber())
.rentFreeDays(userMemberSaveDTO.getRentFreeDays())
.memberName(userMemberSaveDTO.getMemberName())
.discount(level == null ? 0 : level.getDiscount() == null ? 0 : level.getDiscount())
.status(phoneAndUserIdMap == null ? 0 : (phoneAndUserIdMap.get(userMemberSaveDTO.getPhone()) == null ? 0 : 1))
.crtId(userId)
......@@ -113,27 +114,38 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
AtomicInteger counter = new AtomicInteger(0);
int threadNums= userMemberData.size()/BORDER_NUM==0?1:userMemberData.size()/BORDER_NUM;
CountDownLatch latch = new CountDownLatch(threadNums);
Map<Integer,UserMemberDTO> numAndUserMemberMap = new HashMap<>(userMemberData.size());
for (int i=0;i<threadNums;i++){
int startIndex = i*BORDER_NUM;
int endIndex=i==(threadNums-1)?userMemberData.size():(i+1)*BORDER_NUM;
List<String[]> subResultDate = userMemberData.subList(startIndex,endIndex);
threadPoolTaskExecutor.execute(()->{
wrapperData(subResultDate, userId, userName, baseUserMemberExports, levelAndbaseUserMemberMap, phoneAndUserIdMap, leaveNameAndLeaveEntry, memberLevel, discount, counter);
latch.countDown();
});
}
wrapperData(subResultDate, userId, userName, baseUserMemberExports, levelAndbaseUserMemberMap, phoneAndUserIdMap, leaveNameAndLeaveEntry, memberLevel, discount, counter, numAndUserMemberMap);
latch.countDown();
});
}
try {
latch.await();
} catch (InterruptedException e) {
throw new BaseException("导入数据失败");
}
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();
}
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) {
counter.incrementAndGet();
String phone = data[0];
String memberLevelName = data[1];
String memberName = data[2];
......@@ -158,15 +170,15 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
userMemberDTO.setIsBind(1);
userMemberDTO.setMemberName(memberName);
userMemberDTO.setBuyCount(0);
try {
numAndUserMemberMap.put(counter.incrementAndGet(),userMemberDTO);
/* try {
baseUserMemberBiz.updUserMemberByUserId(userMemberDTO);
} catch (Exception e) {
log.error("当前行数:【{}】",counter.get());
log.error("会员更新错误:【{}】", e.getMessage());
throw new BaseException(e);
}
}*/
}
BaseUserMemberExport memberExport = BaseUserMemberExport
.builder()
.username(phone.trim())
......
......@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
......@@ -13,6 +14,7 @@ import java.util.List;
* @email nishijjo@qq.com
* @date 2019-06-11 11:06:45
*/
@Repository
public interface BaseUserMemberLevelMapper extends Mapper<BaseUserMemberLevel> {
List<BaseUserMemberLevel> selectUserMembersLevelByLevels(@Param("levels") List<Integer> levels);
......
......@@ -30,6 +30,7 @@ import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.im.feign.ImFeign;
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.RegionFeign;
import com.xxfc.platform.universal.feign.ThirdFeign;
......@@ -37,6 +38,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
......@@ -105,6 +107,9 @@ public class AppPermissionService {
@Autowired
private BaseUserMemberBiz baseUserMemberBiz;
@Value("${admin.smallName}")
private String smallName;
public AppUserInfo validate(String username, String password) {
AppUserInfo info = new AppUserInfo();
......@@ -447,8 +452,14 @@ public class AppPermissionService {
}
public static String getIp() {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
return requestAttributes.getRequest().getHeader("userHost");
try {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
return requestAttributes.getRequest().getHeader("userHost");
}catch (Exception e){
e.printStackTrace();
return null;
}
}
/**
......@@ -949,7 +960,15 @@ public class AppPermissionService {
//上线绑定
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);
// 登录结果要做做统一处理
......
......@@ -112,6 +112,8 @@
base_user_member_level ml
on
ml.level = b.member_level
where
ml.isdel=0
) m
on
l.id = m.user_id
......
......@@ -14,7 +14,8 @@
wc.stauts,
wc.crt_time AS `crtTime`,
wc.finish_time AS `finishTime`,
wc.cono
wc.cono,
wc.account_number AS `accountNumber`
FROM
(SELECT * FROM `my_wallet_cath` <if test="state != null">
WHERE `stauts`=#{state}
......
......@@ -25,7 +25,6 @@ public class IntegralToolsUtils {
endDate.setTime(date2);
return endDate.getDate() - startDate.getDate();
}
//获取当天的0点
public static Long getDayStart() {
long current = System.currentTimeMillis();
......
......@@ -80,7 +80,7 @@ public class IntegralSignRecordBiz extends BaseBiz<IntegralSignRecordMapper, Int
mapper.updateByPrimaryKeySelective(integralSignRecord);
//添加积分记录
addPoint(objectRestResponse.getData(),integralSignRecord, appUserDTO, integralSignRecord.getSignDays());
} else if(day >1 ) {//断续签
} else if(day > 1 || day < 0) {//断续签,小于0代表跨年签到
//规则连续签到 断签需要重新签到
if(objectRestResponse.getData().getIsContinuity()) {
integralSignRecord.setIsdel(true);
......
......@@ -137,7 +137,7 @@ public class MsgBiz {
if (msgVoList.size() > 0) {
return ObjectRestResponse.succ(msgVoList.get(0));
}
return ObjectRestResponse.succ();
return ObjectRestResponse.createFailedResult(ResultCode.IM_MSG_NOT_EXIST_CODE, ResultCode.getMsg(ResultCode.IM_MSG_NOT_EXIST_CODE));
}
public ObjectRestResponse getMsgListByUserId(Integer page, Integer limit, Integer type) {
......@@ -273,8 +273,6 @@ public class MsgBiz {
BeanUtil.copyProperties(msg, msgVo, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
//添加用户昵称和头像
ImiVo imiVo = userBiz.getUserInfo(msg.getUserId());
log.info("获取用户头像和昵称 : 用户ID>>> {}", msg.getUserId());
log.info("获取用户头像和昵称 : imiVo>>> {}", imiVo);
if (imiVo != null) {
msgVo.setNickname(imiVo.getNickname());
msgVo.setPicUrl(imiVo.getHeadimgurl());
......
......@@ -16,6 +16,7 @@ import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.biz.inner.OrderCalculateBiz;
import com.xxfc.platform.order.biz.inner.OrderCancelBiz;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.OrderRefund;
......@@ -155,10 +156,12 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
OrderRefundPriceVO orpv = new OrderRefundPriceVO();
orpv.setRealAmount(orderPageVO.getRealAmount());
orpv.setRefundAmount(totalRefundAmount);
if(totalDeductAmount.compareTo(BigDecimal.ZERO) > 0) {
orpv.setRefundDesc(StrUtil.format("本次取消操作需要扣除{}元违约金,实际退款金额为{}元,您确定要取消订单吗?", totalDeductAmount, totalRefundAmount));
if(orderPageVO.getStatus().equals(OrderStatusEnum.ORDER_UNPAY.getCode())
|| orderPageVO.getStatus().equals(OrderStatusEnum.ORDER_CRT.getCode())
|| totalDeductAmount.compareTo(BigDecimal.ZERO) <= 0) {
orpv.setRefundDesc("是否确定取消订单");
}else {
orpv.setRefundDesc("取消操作可能会产生额外费用,是否确定取消订单");
orpv.setRefundDesc(StrUtil.format("本次取消操作需要扣除{}元违约金,实际退款金额为{}元,您确定要取消订单吗?", totalDeductAmount, totalRefundAmount));
}
return ObjectRestResponse.succ(orpv);
}
......
......@@ -261,11 +261,15 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//计算车辆费用
//如果用户存在,并且为会员,并且车辆有优惠价
//默认折扣默认100
detail.setRebate(100);
if(null != dto && SYS_TRUE.equals(dto.getIsMember()) && !NONE.getCode().equals(dto.getMemberLevel()) && !DISCOUNT_STATUS_NONE.equals(vehicleModel.getRentDiscountStatus())) {
String[] prices = StrUtil.isBlank(vehicleModel.getRentDiscountPrice())
?new String[]{vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString()}
:vehicleModel.getRentDiscountPrice().split(",");
HandleDiscountDTO handleDiscountDTO = new HandleDiscountDTO();
handleDiscountDTO.setRebate(100);
handleDiscountDTO.setModelAmount(vehicleModel.getPrice());
switch (MemberEnum.getByCode(dto.getMemberLevel())) {
case NORMAL:
handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, NORMAL);
......@@ -279,6 +283,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, DIAMOND);
detail.getOrder().setHasMemberRight(SYS_TRUE);
break;
default:
break;
}
detail.setRebate(handleDiscountDTO.getRebate());
vehicleOrderItem.setUnitPrice(handleDiscountDTO.getModelAmount());
......
......@@ -90,7 +90,7 @@
REPLACE(GROUP_CONCAT( DISTINCT t.`name`),',','|')as name1
from tour_good g
LEFT JOIN (SELECT * FROM tour_good_tag WHERE is_del=0) tag ON g.id=tag.good_id
LEFT JOIN (SELECT * FROM tour_tag WHERE is_del=0) t ON tag.tag_id=t.id
LEFT JOIN (SELECT * FROM tour_tag WHERE is_del=0 and name!='全部') t ON tag.tag_id=t.id
where g.recommend=1 and g.status=1 and g.is_del=0
GROUP BY g.id
ORDER BY g.rank DESC ,g.id DESC
......
......@@ -71,6 +71,8 @@ public class SmsTemplateDTO {
public static final int PAY_I= 26;
//旅游(上车通知)27
public static final int PAY_J= 27;
//小程序密码通知
public static final int PWD= 28;
......
......@@ -82,6 +82,9 @@ public class AliYunSmsBiz {
//旅游(上车通知)27
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 {
case 27 :
SmsService.sendTemplateToJson(phoneNumbers,params,TEMPLATE_ID_PAY_J);
break;
case 28 :
SmsService.sendTemplateToJson(phoneNumbers,params,PWD);
break;
}
......
......@@ -9,7 +9,7 @@ public class CompanySearchDTO {
Integer addrCity;
String lon;
String lat;
Integer state = 1;
Integer state;
Integer isShow = 1;
Integer isDel = 0;
}
......@@ -10,6 +10,7 @@ import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.ClientUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.GoodDataVO;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
......@@ -32,8 +33,6 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
......@@ -295,11 +294,10 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
}
@Override
@ApiOperation("删除")
@DeleteMapping(value = "/app/{id}")
@Transactional
public ObjectRestResponse<VehicleModel> remove(@PathVariable int id) {
public ObjectRestResponse<VehicleModel> remove(@PathVariable int id,UserDTO userDTO) {
if (id == 1 || id == 14) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "The label cannot be deleted");
......@@ -308,7 +306,12 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
VehicleModel vm = new VehicleModel();
vm.setId(id);
vm.setIsdel(1);
vehicleModelBiz.updateSelectiveById(vm);
vm.setUpdTime(new Date());
vm.setUpdUser(userDTO.getId());
vm.setUpdName(userDTO.getUsername());
vm.setUpdHost(org.apache.commons.lang3.StringUtils.defaultIfBlank(request.getHeader("userHost"), ClientUtil.getClientIp(request)));
// vehicleModelBiz.updateSelectiveById(vm);
vehicleModelBiz.updateByPrimaryKeySelective(vm);
//3.删除车型对应的标签
VehicleCata vehicleCata = new VehicleCata();
......
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