Commit 4c105e7a authored by jiaorz's avatar jiaorz

Merge remote-tracking branch 'origin/master'

parents f02c47c5 f311b093
......@@ -10,7 +10,7 @@ ace-modules/ace-tool/src/main/resources/application-dev.yml
**/src/test
**/logs
xx-order/xx-order-server/logs/**
xx-order/xx-order-server/src/test/java/**
xx-order/xx-order-server/src/test/**
*.log
logs/**
/src/main/test/**
......
......@@ -36,4 +36,11 @@ public class UserMemberSaveDTO {
*/
@ApiModelProperty(value = "剩余天数")
private Integer rentFreeDays;
/**
* 剩余天数
*/
@ApiModelProperty(value = "剩余天数")
private Integer source;
}
package com.github.wxiaoqi.security.admin.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Table;
......@@ -20,6 +17,7 @@ import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "base_user_member_export")
@ToString
public class BaseUserMemberExport implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
......@@ -42,5 +40,12 @@ public class BaseUserMemberExport implements Serializable {
private Integer crtId;
@Column(name = "member_name")
private String memberName;
@Column(name = "before_membe_level")
private Integer beforeMemberLevel;
@Column(name = "before_discount")
private Integer beforeDiscount;
@Column(name = "source")
private Integer source;
}
......@@ -4,18 +4,20 @@ 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.BaseUserMemberExport;
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.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper;
......@@ -23,12 +25,14 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.InvocationTargetException;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 用户会员表
......@@ -43,11 +47,25 @@ import java.util.List;
public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMember> {
@Autowired
AppUserDetailBiz detailBiz;
private AppUserDetailBiz detailBiz;
@Autowired
private BaseUserMemberLevelMapper BaseUserMemberLevelMapper;
private ExecutorService executorService = Executors.newCachedThreadPool();
@Autowired
private UserAuthUtil userAuthUtil;
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
private BaseUserMemberExportBiz baseUserMemberExportBiz;
@Autowired
private HttpServletRequest request;
// @Autowired
// private TaskExecutor taskExecutor;
//
......@@ -224,7 +242,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
* @param userMemberDTO
*/
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public void UpdateUserMember(UserMemberDTO userMemberDTO) throws InvocationTargetException, IllegalAccessException {
public void UpdateUserMember(UserMemberDTO userMemberDTO) throws Exception {
Integer userId = userMemberDTO.getUserId();
BaseUserMember baseUserMember = new BaseUserMember();
......@@ -234,7 +252,6 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
if (totalNumber < freeDays) {
freeDays = totalNumber;
}
if (userMemberDTO.getMemberLevel() != null) {
Example exa = new Example(BaseUserMemberLevel.class);
Example.Criteria criteria = exa.createCriteria();
......@@ -254,6 +271,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
Integer buyCount = userMemberDTO.getBuyCount() == null ? 1 : userMemberDTO.getBuyCount();
UserMemberVo userMemberVo = getMemberInfoByUserId(userMemberDTO.getUserId());
//保存修改记录
if (userMemberVo == null) {
baseUserMember.setRentFreeDays(freeDays);
baseUserMember.setBuyCount(buyCount);
......@@ -277,6 +295,10 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
userVo1.setIsMember(1);
detailBiz.updUuserInfoById(userVo1);
}
log.info("保存修改记录");
setModifyData(userMemberVo,baseUserMember);
log.info("保存成功");
}
......@@ -286,4 +308,36 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
criteria.andIn("userId", userIds);
mapper.deleteByExample(example);
}
private void setModifyData(UserMemberVo beforeMember, BaseUserMember aftereMember) throws Exception {
log.info("保存修改会员记录={}",aftereMember);
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
executorService.submit(()->{
try {
AppUserVo qppUser = detailBiz.getUserInfoById(beforeMember.getUserId());
BaseUserMemberExport baseUserMemberExport = BaseUserMemberExport
.builder()
.username(qppUser.getUsername())
.beforeMemberLevel(beforeMember.getMemberLevel())
.memberLevel(aftereMember.getMemberLevel())
.totalNumber(aftereMember.getTotalNumber() - beforeMember.getTotalNumber())
.rentFreeDays(aftereMember.getRentFreeDays() - beforeMember.getRentFreeDays())
.beforeDiscount(beforeMember.getDiscount())
.discount(aftereMember.getDiscount())
.status(1)
.crtTime(System.currentTimeMillis())
.crtId(Integer.valueOf(infoFromToken.getId()))
.crtName(infoFromToken.getUniqueName())
.memberName(qppUser.getRealname())
.source(1)
.build();
baseUserMemberExportBiz.insertSelective(baseUserMemberExport);
System.out.println(baseUserMemberExport);
} catch (Exception e) {
e.printStackTrace();
log.error("保存修改会员记录失败"+e.getMessage());
}
log.info("保存修改会员记录成功");
});
}
}
\ No newline at end of file
......@@ -52,6 +52,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
private final int BORDER_NUM=250;
private BaseUserMemberExport baseUserMemberExport;
public void saveUserMember(UserMemberSaveDTO userMemberSaveDTO, Integer userId, String name) {
......@@ -256,4 +257,9 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
public void updateUserMemberExportDataStatus(Integer id) {
mapper.updateUserMemberExportDataStatusById(id, 1);
}
@Override
public void insertSelective(BaseUserMemberExport baseUserMemberExport){
mapper.insertSelective(baseUserMemberExport);
}
}
......@@ -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.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);
......
......@@ -20,7 +20,8 @@
</update>
<select id="findExportDataPage" resultType="com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO">
select `id`,`member_level` as `memberLevel`,`member_name` as `memberName`,`rent_free_days` as `rentFreeDays`,`total_number` as `totalNumber`,`username`,`status`,`crt_name` as `crtName`,`crt_time`as `crtTime` from `base_user_member_export` where `is_del`=0
select `id`,`member_level` as `memberLevel`,`member_name` as `memberName`,`rent_free_days` as `rentFreeDays`,`total_number` as `totalNumber`,`username`,`status`,`crt_name` as `crtName`,`crt_time`as `crtTime` from `base_user_member_export`
where `is_del`=0 and source = 0
<if test="username != null and username != ''">
and `username`=#{username}
</if>
......
......@@ -297,6 +297,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
orderPageVo.setIllegalReserve(illegalReserve);
orderPageVo.setItems(orderItemBiz.selectList(new OrderItem(){{
setOrderId(orderPageVo.getId());
setType(104);
}}));
return ObjectRestResponse.succ(orderPageVo);
}
......
......@@ -113,6 +113,13 @@ public class BackStageOrderController extends CommonBaseController implements Us
return ObjectRestResponse.succ(new PageDataVO<>());
}
//车辆排班表查询订单详情
if (dto.getOneNo()!=null) {
dto.setPage(1);
dto.setLimit(1);
dto.setType(1);
}
if (StringUtils.isNotBlank(dto.getPhone()) || StringUtils.isNotBlank(dto.getRealName())) {
List<AppUserLogin> appUserLoins = userFeign.getOne(dto.getPhone(), dto.getRealName());
if (CollectionUtil.isNotEmpty(appUserLoins)) {
......
......@@ -67,7 +67,7 @@ public class ServiceTest {
@Test
public void test4(){
HomePageOrderData totalOrder = statisticsBiz.getTotalOrder(null);
HomePageOrderData totalOrder = statisticsBiz.getTotalOrder(null,null);
System.out.println(totalOrder);
}
......
......@@ -99,6 +99,12 @@
<version>0.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-app-api</artifactId>
<version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
......
......@@ -8,6 +8,8 @@ import com.github.wxiaoqi.security.common.constant.RestCode;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.app.entity.Cofig;
import com.xxfc.platform.app.feign.ConfigFeign;
import com.xxfc.platform.universal.biz.UserMessage;
import com.xxfc.platform.universal.entity.IDCardInformation;
import com.xxfc.platform.universal.entity.IdInformation;
......@@ -16,6 +18,8 @@ import com.xxfc.platform.universal.service.PictureParsing.UserPictureParsing;
import com.xxfc.platform.universal.service.authenticationInterface.UserAuthentication;
import com.xxfc.platform.universal.utils.CertifHttpUtils;
import com.xxfc.platform.universal.utils.Validation;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.map.HashedMap;
......@@ -44,14 +48,22 @@ import java.util.*;
*/
@Service
@Slf4j
@AllArgsConstructor
@NoArgsConstructor
public class CertificationService {
@Value("${certification.frequency:2}")
private Integer FREQUENCY;
@Autowired
private ConfigFeign configFeign;
@Autowired
private UserAuthentication authentication;
@Autowired
private IdInformationMapper idInformationMapper;
@Autowired
private UserFeign userFeign;
......@@ -61,8 +73,12 @@ public class CertificationService {
@Autowired
private UserPictureParsing userPictureParsing;
private String AUTHENTICATION_TYPE="100";
/**
* 一、身份证图片进行实名认证
* 一、身份证图片进行实名认证
*
* @param idInformation
* @return
*/
......@@ -75,14 +91,14 @@ public class CertificationService {
}
//判断是否有填写身份证号
if (StringUtils.isBlank(idInformation.getIdNumber())) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写证件号");
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写证件号");
}
if (!Validation.isIdCard(idInformation.getIdNumber())) {
return ObjectRestResponse.createFailedResult(ResultCode.WRONG_FORMAT_OF_ID_CARD, "填写的证件格式错误");
return ObjectRestResponse.createFailedResult(ResultCode.WRONG_FORMAT_OF_ID_CARD, "证件格式错误");
}
//判断是有否填写名字
if (StringUtils.isBlank(idInformation.getName())) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写姓名");
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写姓名");
}
//判断是否有正面照片
if (StringUtils.isBlank(idInformation.getFrontUrl())) {
......@@ -97,11 +113,20 @@ public class CertificationService {
//验证证件信息是否和填入的客户信息一致
String name = credentialsData.getName();
String number = credentialsData.getCode();
if (idInformation.getName().equals(name)) {
ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "姓名不一致");
if (!idInformation.getName().replaceAll(" ","").equals(name)) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "姓名不一致");
}
if (!idInformation.getIdNumber().replaceAll(" ","").equals(number)) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "证件号不一致");
}
if (idInformation.getIdNumber().equals(number)) {
ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "证件号不一致");
//判断是否超过认证次数
Example exa = new Example(IdInformation.class);
exa.createCriteria().andEqualTo("idNumber", number);
List<IdInformation> idInformatics = idInformationMapper.selectByExample(exa);
if (CollectionUtils.isNotEmpty(idInformatics) && idInformatics.size() >getCofig() ) {
log.error("该身份证已超过最大认证次数");
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "该身份证已超过最大认证次数");
}
//3.验证
boolean result = authentication.certificate(new UserMessage() {{
......@@ -150,6 +175,25 @@ public class CertificationService {
}
/**
* 获取认证次数
* @return
*/
public Integer getCofig() {
List<Cofig> cofigs = null;
try {
cofigs = configFeign.getAllByType(AUTHENTICATION_TYPE).getData();
log.info("cofigs={}",cofigs);
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
}
if (CollectionUtils.isEmpty(cofigs)) {
return FREQUENCY;
}
return Integer.valueOf(cofigs.get(0).getParams());
}
/**
* 二、认证通过保存到数据库当中
*
......@@ -159,23 +203,12 @@ public class CertificationService {
@Transactional(rollbackFor = Exception.class)
public ObjectRestResponse<Integer> addIdInformation(IdInformation idInformation) {
log.info("----idInformation=========" + idInformation);
//保存认证信息
try {
Example exa = new Example(IdInformation.class);
Example.Criteria criteria = exa.createCriteria();
criteria.andEqualTo("idNumber", idInformation.getIdNumber());
List<IdInformation> idInformatics = idInformationMapper.selectByExample(exa);
if (CollectionUtils.isEmpty(idInformatics)) {
idInformation.setCrtTime(new Date());
idInformationMapper.insertSelective(idInformation);
} else {
log.error("该身份证已存在,不要重复认证");
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "该身份证已存在,不要重复认证");
}
idInformationMapper.insertSelective(idInformation);
log.info("----addIdInformation---userid===" + idInformation.getUserLoginId() + "----name====" + idInformation.getName() + "---IdNumber===" + idInformation.getIdNumber());
//认证成功后修改用户,用户认证状态
ObjectRestResponse authentication = userFeign.authentication(idInformation.getUserLoginId(), idInformation.getName(), idInformation.getIdNumber(), 1);
userFeign.authentication(idInformation.getUserLoginId(), idInformation.getName(), idInformation.getIdNumber(), 1);
return ObjectRestResponse.succ(idInformation.getId());
} catch (Exception e) {
log.error(e.getMessage(), e);
......
......@@ -151,4 +151,19 @@ public class AddOrUpdateVehicleVo {
* 车辆状态
*/
private Integer travelStatus;
/**
* 终端号
*/
private String terminalNumber;
/**
* SIM卡号
*/
private String simNumber;
/**
* 通讯类型
*/
private String communicationType;
}
\ No newline at end of file
......@@ -4,14 +4,16 @@
<select id="findVehicleModelPage" parameterType="com.xxfc.platform.vehicle.pojo.VehicleModelQueryCondition"
resultType="com.xxfc.platform.vehicle.pojo.VehicleModelVo">
SELECT * from
(select vm.*,v.sum,v2.leasableQuantity,vpc.`name` brandName,vpc2.name numberName from vehicle_model vm left JOIN
(select model_id as mid, count(1) as sum FROM vehicle GROUP BY mid) v
on vm.id=v.mid left JOIN
(select model_id as mid2, count(1) as leasableQuantity FROM vehicle where`use_type`=1 GROUP BY model_id) v2
(select vm.*,v.sum,v2.leasableQuantity,vpc.`name` brandName,vpc2.name numberName from vehicle_model vm
left JOIN
(select model_id as mid, count(1) as sum FROM vehicle where is_del= 0 GROUP BY mid) v
on vm.id=v.mid
left JOIN
(select model_id as mid2, count(1) as leasableQuantity FROM vehicle where`use_type`=1 and is_del= 0 GROUP BY model_id) v2
on v.mid=v2.mid2
left join (SELECT id,name FROM vehicle_plat_cata where state=0) vpc on vm.brand=vpc.id
left join (SELECT id,name FROM vehicle_plat_cata where state=0) vpc2 on vm.number=vpc2.id
where isdel = 0
where vm.isdel = 0
) vmqc WHERE 1=1
<if test="isDel !=null ">
......
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