Commit 242b6704 authored by jiaorz's avatar jiaorz

Merge branch 'base-modify' of http://113.105.137.151:22280/youjj/cloud-platform into base-modify

parents fed5cc66 ea046c7f
......@@ -47,4 +47,15 @@ public class AppUserManageDTO {
private Long registrationTimeEnd;
/**
* 用户来源:0-自来,1-用户邀请
*/
private Integer source;
/**
*
*/
private String registrationDate;
}
......@@ -68,6 +68,13 @@ public class BaseUserMemberVO implements Serializable {
@ApiModelProperty(value = "有效期;0代表永久")
private Long validTime;
/**
* 会员等级名称
*/
@Column(name = "name")
private String name;
......
......@@ -71,7 +71,7 @@ public class AppUserDetail {
@Column(name = "code")
private String code;
@ApiModelProperty(value = "邀请人id:")
@ApiModelProperty(value = "邀请人账号:")
@Column(name = "inviter_account")
private String inviterAccount;
}
package com.github.wxiaoqi.security.admin.entity;
import lombok.Data;
import javax.persistence.Column;
@Data
public class UserMemberLevel {
/**
* 会员id
*/
@Column(name = "id")
private String id;
/**
* 会员等级名称
*/
@Column(name = "name")
private String name;
/**
* 图标
*/
@Column(name = "icon")
private String icon;
/**
* 等级
*/
@Column(name = "level")
private String level;
/**
* describes
*/
@Column(name = "describes")
private String describes;
/**
* 有效数;-1是永久有效
*/
@Column(name = "end_date")
private String end_date;
/**
* 折扣
*/
@Column(name = "discount")
private String discount;
/**
* 是否删除;0-正常;1-删除
*/
@Column(name = "isdel")
private String isdel;
/**
* 购买会员价格
*/
@Column(name = "price")
private String price;
/**
* 权益
*/
@Column(name = "rights")
private String rights;
/**
* 赠送免费天数
*/
@Column(name = "number")
private String number;
}
......@@ -72,6 +72,8 @@ public class AppUserDTO {
private Integer lockDays;
private Integer discount;
private Integer memberLevel;
//图标
private String icon;
private Integer memberNo;
private Long cardLeave;
private Integer isBind;
......
......@@ -55,7 +55,7 @@ public class AppUserManageVo {
* 邀请人id
*/
@Column(name = "inviter_account")
private Integer inviterAccount;
private String inviterAccount;
/**
* 省代码
*/
......@@ -90,7 +90,7 @@ public class AppUserManageVo {
* 实名认证状态:0-未认证,1-已认证
*/
@Column(name = "certification_status")
private String certification_status;
private String certificationStatus;
/**
* 身份证号
......@@ -156,4 +156,8 @@ public class AppUserManageVo {
*/
private String memberName;
/**
* 头像
*/
private String headimgurl;
}
......@@ -77,4 +77,10 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
}
}
......@@ -39,11 +39,11 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
* @param appUserManageDTO 查询条件
* @return
*/
public List<AppUserManageVo> findAllByQuery(AppUserManageDTO appUserManageDTO) {
public PageInfo<AppUserManageVo> findAllByQuery(AppUserManageDTO appUserManageDTO) {
Page<AppUserManageVo> page = PageHelper.startPage(appUserManageDTO.getPage(), appUserManageDTO.getLimit());
List<AppUserManageVo> appUserManageVos = mapper.selectAppUserManage(appUserManageDTO);
return PageInfo.of(appUserManageVos).getList();
return PageInfo.of(appUserManageVos);
}
/**
......
......@@ -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.entity.UserMemberLevel;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import com.github.wxiaoqi.security.common.exception.BaseException;
......@@ -44,6 +46,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
@Autowired
private TaskExecutor taskExecutor;
@Autowired
private UserMemberLevelBiz userMemberLevelBiz;
//获取用户会员信息
@Cache(key = "user:member{1}")
public UserMemberVo getMemberInfoByUserId(Integer userId){
......@@ -72,9 +77,13 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
if(freeDays==null||freeDays==0){
freeDays=totalNumber;
}
Integer buyCount=1;
if(userMemberDTO.getBuyCount()!=null){
buyCount=userMemberDTO.getBuyCount();
}
if(userMemberVo==null){
baseUserMember.setRentFreeDays(freeDays);
baseUserMember.setBuyCount(1);
baseUserMember.setBuyCount(buyCount);
insertSelective(baseUserMember);
}else {
Integer discount=userMemberVo.getDiscount()==null?0:userMemberVo.getDiscount();
......@@ -90,10 +99,6 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
baseUserMember.setId(userMemberVo.getId());
totalNumber+=userMemberVo.getTotalNumber()==null?0:userMemberVo.getTotalNumber();
freeDays+=userMemberVo.getRentFreeDays()==null?0:userMemberVo.getRentFreeDays();
Integer buyCount=1;
if(userMemberDTO.getBuyCount()!=null){
buyCount=userMemberDTO.getBuyCount();
}
baseUserMember.setBuyCount(userMemberVo.getBuyCount()+buyCount);
baseUserMember.setTotalNumber(totalNumber);
baseUserMember.setRentFreeDays(freeDays);
......@@ -136,6 +141,11 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
if(freeDays>0&&freeDays>=days){
freeDays=freeDays-days;
baseUserMember.setRentFreeDays(freeDays);
Integer payCount=userMemberVo.getPayCount()==null?0:userMemberVo.getPayCount();
if(days>0){
payCount=payCount+1;
}
baseUserMember.setPayCount(payCount);
getMyBiz().updateSelectiveById(baseUserMember);
num=freeDays;
}
......@@ -149,10 +159,12 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
baseUserMember.setLockDays(lockDays);
updateSelectiveById(baseUserMember);
num=freeDays-lockDays;*/
Integer payCount=userMemberVo.getPayCount()==null?0:userMemberVo.getPayCount();
payCount=payCount+1;
/*Integer payCount=userMemberVo.getPayCount()==null?0:userMemberVo.getPayCount();
if(days>0){
payCount=payCount+1;
}
baseUserMember.setPayCount(payCount);
getMyBiz().updateSelectiveById(baseUserMember);
getMyBiz().updateSelectiveById(baseUserMember);*/
num=freeDays;
}else {
/*lockDays=lockDays>0?(lockDays-days)>0?(lockDays-days):0:0;
......@@ -179,16 +191,13 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
* @param userId
* @return
*/
public BaseUserMember findOneByUserId(Integer userId) {
Example exa = new Example(BaseUserMember.class);
Example.Criteria criteria = exa.createCriteria();
criteria.andEqualTo("userId",userId);
List<BaseUserMember> baseUserMembers = mapper.selectByExample(exa);
if (baseUserMembers.size()>1) {
throw new BaseException("Member purchase repeat!");
public BaseUserMemberVO findOneByUserId(Integer userId) {
BaseUserMemberVO baseUserMemberVO= mapper.getBaseUserMemberVOByUserId(userId);
if (baseUserMemberVO!=null) {
return baseUserMemberVO;
}
return baseUserMembers!=null&&baseUserMembers.size()!=0 ? baseUserMembers.get(0): null;
return new BaseUserMemberVO();
}
......@@ -218,7 +227,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
return;
}else if (baseUserMembers.size()==1){
baseUserMember.setUpdTime(System.currentTimeMillis());
updateSelectiveById(baseUserMember);
getMyBiz().updateSelectiveById(baseUserMember);
}else {
throw new BaseException("Member purchase repeat!");
}
......
......@@ -42,7 +42,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public void importUserMember(List<String[]> userMemberData){
public int importUserMember(List<String[]> userMemberData){
List<BaseUserMemberExport> baseUserMemberExports = new ArrayList<>();
List<Integer> levels = userMemberData.stream().map(x -> x[1]).map(Integer::valueOf).collect(Collectors.toList());
......@@ -90,6 +90,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
}
InsertBatch(baseUserMemberExports);
return baseUserMemberExports.size();
}
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
......
......@@ -30,6 +30,16 @@ public class UserMemberLevelBiz extends BaseBiz<BaseUserMemberLevelMapper,BaseUs
return mapper.selectByExample(example);
}
public BaseUserMemberLevel getLevel(Integer level) {
Example example=new Example(BaseUserMemberLevel.class);
example.createCriteria().andEqualTo("isdel",0).andEqualTo("level",level);
List<BaseUserMemberLevel> list=mapper.selectByExample(example);
if (list.size()>0){
return list.get(0);
}
return null;
}
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public Map<Integer,Integer> getUserMemberLevelAndDisCountMapByLevels(List<Integer> levels){
List<BaseUserMemberLevel> baseUserMemberLevels = mapper.selectUserMembersLevelByLevels(levels);
......
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import org.apache.ibatis.annotations.Param;
......@@ -16,5 +17,6 @@ public interface BaseUserMemberMapper extends Mapper<BaseUserMember> {
//获取用户会员信息
public UserMemberVo getInfoByUserId(@Param("userId")Integer userId);
BaseUserMemberVO getBaseUserMemberVOByUserId(@Param("userId") Integer userId);
}
......@@ -50,6 +50,9 @@ public class AppUserController extends CommonBaseController {
@Autowired
AppUserPositionBiz positionBiz;
@Autowired
private UserMemberLevelBiz userMemberLevelBiz;
@GetMapping("page")
public TableResultResponse list(@RequestParam Map<String, Object> params) {
Query query = new Query(params);
......@@ -126,6 +129,12 @@ public class AppUserController extends CommonBaseController {
UserMemberVo memberVo=userMemberBiz.getMemberInfoByUserId(userid);
if(memberVo!=null){
BeanUtils.copyProperties(userDTO,memberVo);
Integer level=memberVo.getMemberLevel();
BaseUserMemberLevel memberLevel=userMemberLevelBiz.getLevel(level);
if (memberLevel!=null){
String icon=memberLevel.getIcon();
userDTO.setIcon(icon);
}
}
}
AppUserPosition userPosition=positionBiz.selectById(positionId);
......
......@@ -26,7 +26,7 @@ public class AppUsersManageController extends BaseController<AppUserManageBiz,Ap
* @return
*/
@PostMapping("/findAll")
public ObjectRestResponse<List<AppUserManageVo>> findAllByQuery(@RequestBody AppUserManageDTO appUserManageDTO){
public ObjectRestResponse<PageInfo<AppUserManageVo>> findAllByQuery(@RequestBody AppUserManageDTO appUserManageDTO){
return ObjectRestResponse.succ(baseBiz.findAllByQuery(appUserManageDTO));
}
......
......@@ -24,12 +24,9 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz,
* @return
*/
@RequestMapping("/findOne/{userId}")
public ObjectRestResponse<AppUserManage> findOneByUserId(@PathVariable Integer userId){
BaseUserMember oneByUserId = baseBiz.findOneByUserId(userId);
if (oneByUserId==null) {
return ObjectRestResponse.succ();
}
return ObjectRestResponse.succ(oneByUserId);
public ObjectRestResponse<BaseUserMemberVO> findOneByUserId(@PathVariable Integer userId){
return ObjectRestResponse.succ(baseBiz.findOneByUserId(userId));
}
......
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.AdminBootstrap;
import com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz;
import com.github.wxiaoqi.security.admin.biz.BaseUserMemberExportBiz;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.excel.ExcelImport;
import com.xxfc.platform.vehicle.common.RestResponse;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
......@@ -62,7 +68,7 @@ public class UserMemberController {
}
@PostMapping("/user/export")
public ObjectRestResponse importUserMember(MultipartFile userMemberExcel) {
public ObjectRestResponse importUserMember(@RequestPart("file") MultipartFile userMemberExcel) {
List<String[]> userMemberData = ExcelImport.getExcelData(userMemberExcel);
if (userMemberData.size() < 1) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
......@@ -73,7 +79,29 @@ public class UserMemberController {
}
}
userMemberData.remove(0);
baseUserMemberExportBiz.importUserMember(userMemberData);
return ObjectRestResponse.succ();
try {
int effectSize = baseUserMemberExportBiz.importUserMember(userMemberData);
return ObjectRestResponse.succ(effectSize);
}catch (BaseException ex){
return ObjectRestResponse.createDefaultFail();
}
}
@GetMapping("/app/unauth/user/excel_model/dowload")
public ResponseEntity<byte[]> dowloadUserMemberExcelModel(HttpServletResponse response){
// 重置response
response.reset();
//设置http头信息的内容
response.setCharacterEncoding("utf-8");
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment;filename=usermember.xlsx");
InputStream inputStream = AdminBootstrap.class.getClassLoader().getResourceAsStream("file/usermember.xlsx");
try {
byte[] bytes = IOUtils.toByteArray(inputStream);
return ResponseEntity.ok(bytes);
} catch (IOException e) {
e.printStackTrace();
}
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
}
}
......@@ -44,30 +44,31 @@
<select id="selectAppUserManage" parameterType="com.github.wxiaoqi.security.admin.dto.AppUserManageDTO"
resultType="com.github.wxiaoqi.security.admin.vo.AppUserManageVo">
select
d.userid,
l.id As userid,
l.username,
l.certification_status as certificationStatus,
l.id_number as idNumber,
l.createtime,
l.last_time as lastTime,
d.channel,
d.is_member,
d.realname,
d.isdel,
d.nickname,
d.source,
d.Inviter_account,
d.province_code,
d.city_code,
d.Inviter_account as inviterAccount,
d.province_code as provinceCode,
d.city_code as cityCode,
d.sex,
d.headimgurl,
d.email,
l.username,
l.certification_status,
l.id_number,
l.createtime,
l.last_time,
m.member_level,
m.valid_time,
m.buy_count,
m.total_number,
m.rent_free_days,
m.crt_time AS timeOfMembership,
m.recent_recharge,
m.member_level as memberLevel,
m.valid_time as validTime,
m.buy_count as buyCount,
m.total_number as totalNumber,
m.rent_free_days as rentFreeDays,
m.crt_time as timeOfMembership,
m.recent_recharge as recentRecharge,
m.name as memberName
from
app_user_login l
......@@ -84,29 +85,12 @@
left join
base_user_member_level ml
on
ml.id = b.member_level
ml.level = b.member_level
) m
on
l.id = m.user_id
where 1=1
<!-- <if test="mobile !=null or mobile != ''">-->
<!-- and l.username=#{mobile}-->
<!-- </if>-->
<!-- <if test="channel !=null or channel != ''">-->
<!-- and d.channel=#{channel}-->
<!-- </if>-->
<!-- <if test="memberLevel !=null or memberLevel != ''">-->
<!-- and m.member_level = #{memberLevel}-->
<!-- </if>-->
<!-- <if test="registrationTimeBegin !=null or registrationTimeBegin != ''">-->
<!-- and l.createtime &gt;= #{registrationTimeBegin}-->
<!-- </if>-->
<!-- <if test="registrationTimeEnd!=null or registrationTimeEnd != ''">-->
<!-- and l.createtime &lt;= #{registrationTimeEnd}-->
<!-- </if>-->
<if test="mobile !=null">
and l.username=#{mobile}
</if>
......@@ -122,7 +106,10 @@
<if test="registrationTimeEnd !=null">
and l.createtime &lt;= #{registrationTimeEnd}
</if>
<if test="source !=null">
and d.source &lt;= #{source}
</if>
order by l.id ASC
</select>
......
......@@ -3,7 +3,7 @@
<mapper namespace="com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper">
<!-- 可根据自己的需求,是否要使用 -->
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.github.wxiaoqi.security.admin.vo.UserMemberVo" id="baseUserMemberMap">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
......@@ -25,4 +25,28 @@
select * from base_user_member where user_id=#{userId} and is_del=0 limit 1
</select>
<select id="getBaseUserMemberVOByUserId" parameterType="Integer"
resultType="com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO">
select
m.id as id,
m.user_id as userId,
m.rent_free_days as rentFreeDays,
m.member_level as memberLevel,
m.total_number as totalNumber,
m.buy_count as buyCount,
m.valid_time as validTime,
ml.name as name
from
base_user_member m
left join
base_user_member_level ml
on
m.member_level =ml.level
where
m.user_id=#{userId}
and
m.is_del=0
</select>
</mapper>
\ No newline at end of file
......@@ -10,7 +10,7 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://10.5.52.3:3306/xxfc_activity?useUnicode=true&characterEncoding=UTF-8
url: jdbc:mysql://10.5.52.3:3306/xxfc_app?useUnicode=true&characterEncoding=UTF-8
username: root
password: sslcloud123*()
jackson:
......
#\u4EE3\u7801\u751F\u6210\u5668\uFF0C\u914D\u7F6E\u4FE1\u606F
#\u5305\u540D
package=com.xxfc.platform.activity
package=com.xxfc.platform.app
#\u4F5C\u8005
author=libin
author=zjw
#Email
email=18178966185@163.com
#\u8868\u524D\u9519\u8BEF\u7684Unicode\u5B57\u7B26\u4E32!
......
package com.xxfc.platform.app.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 购房车提交表单
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-09 19:39:47
*/
@Data
@Table(name = "buy_vehicle_form")
public class BuyVehicleForm implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键")
private Integer id;
/**
* 创建时间
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 更新时间
*/
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
/**
* 车型id
*/
@Column(name = "model_id")
@ApiModelProperty(value = "车型id")
private Integer modelId;
/**
* 联系人名称
*/
@Column(name = "contact_name")
@ApiModelProperty(value = "联系人名称")
private String contactName;
/**
* 联系人电话
*/
@Column(name = "contact_phone")
@ApiModelProperty(value = "联系人电话")
private String contactPhone;
/**
* 预约时间
*/
@Column(name = "book_time")
@ApiModelProperty(value = "预约时间")
private Long bookTime;
/**
* 公司id
*/
@Column(name = "company_id")
@ApiModelProperty(value = "公司id")
private Integer companyId;
/**
* 备注
*/
@Column(name = "remark")
@ApiModelProperty(value = "备注")
private String remark;
}
package com.xxfc.platform.app.biz;
import org.springframework.stereotype.Service;
import com.xxfc.platform.app.entity.BuyVehicleForm;
import com.xxfc.platform.app.mapper.BuyVehicleFormMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
/**
* 购房车提交表单
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-09 19:39:47
*/
@Service
public class BuyVehicleFormBiz extends BaseBiz<BuyVehicleFormMapper,BuyVehicleForm> {
}
\ No newline at end of file
package com.xxfc.platform.app.mapper;
import com.xxfc.platform.app.entity.BuyVehicleForm;
import tk.mybatis.mapper.common.Mapper;
/**
* 购房车提交表单
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-09 19:39:47
*/
public interface BuyVehicleFormMapper extends Mapper<BuyVehicleForm> {
}
package com.xxfc.platform.app.rest;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.app.biz.BuyVehicleFormBiz;
import com.xxfc.platform.app.entity.BuyVehicleForm;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("buyVehicleForm")
public class BuyVehicleFormController extends BaseController<BuyVehicleFormBiz,BuyVehicleForm> {
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.app.mapper.BuyVehicleFormMapper">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.xxfc.platform.app.entity.BuyVehicleForm" id="buyVehicleFormMap">
<result property="id" column="id"/>
<result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/>
<result property="name" column="name"/>
<result property="modelId" column="model_id"/>
<result property="contactName" column="contact_name"/>
<result property="contactPhone" column="contact_phone"/>
<result property="bookTime" column="book_time"/>
<result property="companyId" column="company_id"/>
<result property="remark" column="remark"/>
</resultMap>
</mapper>
\ No newline at end of file
......@@ -238,4 +238,7 @@ public class OrderTourDetail implements Serializable {
@ApiModelProperty(value = "出发的站点id")
private Integer siteId;
@Column(name = "is_outside")
@ApiModelProperty(value = "是否省外 1--省外;0--省内")
private Integer isOutside;
}
......@@ -15,4 +15,13 @@ public class OrderAboutParamDTO {
@ApiModelProperty(value = "旅游订单自动取消时间(毫秒)")
private Long actTour;
@ApiModelProperty(value = "会员订单自动取消时间(毫秒)")
private Long actMember;
@ApiModelProperty(value = "平台司机单价")
private BigDecimal driverPrice;
@ApiModelProperty(value = "免赔费用")
private BigDecimal damageSafe;
}
\ No newline at end of file
package com.xxfc.platform.order.pojo.order;
import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 订单查询类
*/
@Data
public class QueryOrderDTO extends PageParam {
@ApiModelProperty(hidden = false)
private Integer crtUser;
@ApiModelProperty(hidden = false)
private Integer crtCompanyId;
@ApiModelProperty(value = "订单状态\n" +
"0--删除\n" +
"1--创建订单\n" +
"2--取消\n" +
"3--待付款\n" +
"4--待出行\n" +
"5--出行中(进行中)\n" +
"6--已完成")
private Integer status;
private String multiStatus;
@ApiModelProperty(value = "是否有使用会员权益")
private Integer hasMemberRight;
@ApiModelProperty(value = "订单类型 1--租车;2--旅游; 3--会员订单")
private Integer type;
private String multiTypes;
}
\ No newline at end of file
......@@ -191,15 +191,32 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
setOrderId(baseOrder.getId());
}});
//如果超过出发时间,不能取消订单
//根据时间处理goodsAmount
//获取出发时间 到现在 距离时间
Long timeLag = orvd.getStartTime() - System.currentTimeMillis();
if(timeLag < 0) {
throw new BaseException(ResultCode.FAILED_CODE, new HashSet<String>(){{
add("已超过出发时间,不能取消订单");
}});
}
//退款流程
rentRefundProcess(hasUpdateOrder, orvd.getDeposit(), orvd.getStartTime(), APP_ORDER+ "_"+ RENT_REFUND);
rentRefundProcess(hasUpdateOrder, orvd.getDeposit(), timeLag, APP_ORDER+ "_"+ RENT_REFUND);
}else if (OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
OrderTourDetail otd = orderTourDetailBiz.selectOne(new OrderTourDetail(){{
setOrderId(baseOrder.getId());
}});
Long timeLag = otd.getStartTime() - System.currentTimeMillis();
//判断是省内还是省外
String key = TOUR_IN_REFUND;
if(SYS_TRUE.equals(otd.getIsOutside())) {
key = TOUR_REFUND;
}
//退款流程
rentRefundProcess(hasUpdateOrder, otd.getStartTime(), APP_ORDER+ "_"+ TOUR_REFUND);
rentRefundProcess(hasUpdateOrder, timeLag, APP_ORDER+ "_"+ key);
}
}
......@@ -253,10 +270,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* 租车退款流程(含押金)
* @param baseOrder
* @param depositAmont
* @param startTime
* @param timeLag 与开始时间的时间差
* @param dicParentKey
*/
private void rentRefundProcess(BaseOrder baseOrder, BigDecimal depositAmont, Long startTime, String dicParentKey) {
private void rentRefundProcess(BaseOrder baseOrder, BigDecimal depositAmont, Long timeLag, String dicParentKey) {
//计算退款金额
// 1、押金 + 租金(规则扣除)
BigDecimal refundGoodsAmount = baseOrder.getGoodsAmount();
......@@ -268,7 +285,6 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
//根据时间处理goodsAmount
//获取出发时间 到现在 距离时间
Long timeLag = startTime - System.currentTimeMillis();
Integer hourLag = Long.valueOf(timeLag/(1000L * 60L * 60L)).intValue();
Map<String, com.xxfc.platform.universal.entity.Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
......
......@@ -46,7 +46,7 @@ public class RabbitConsumer {
baseOrderBiz.cancel(baseOrder);
}catch (BaseException e) {
if(ResultCode.DB_OPERATION_FAIL_CODE == e.getStatus()) {
log.info("取消操作被取消");
log.info("取消操作被取消;订单id:"+ baseOrder.getId());
}
}catch (Exception e) {
log.error("============消费失败,尝试消息补发再次消费!==============");
......
......@@ -23,10 +23,7 @@ import com.xxfc.platform.order.biz.OrderMemberDetailBiz;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.mqhandler.RabbitProduct;
import com.xxfc.platform.order.pojo.order.CancelOrderDTO;
import com.xxfc.platform.order.pojo.order.OrderListVo;
import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.order.OrderAboutParamDTO;
import com.xxfc.platform.order.pojo.order.*;
import com.xxfc.platform.order.pojo.pay.OrderPayDTO;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary;
......@@ -113,6 +110,9 @@ public class BaseOrderController extends CommonBaseController {
setInsurePrice(new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.INSURE_PRICE).getDetail()));
setActRent(new Long(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ACT_RENT).getDetail()));
setActTour(new Long(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ACT_TOUR).getDetail()));
setActMember(new Long(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ACT_MEMBER).getDetail()));
setDamageSafe(new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.DAMAGE_SAFE).getDetail()));
setDriverPrice(new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.DRIVER_PRICE).getDetail()));
}});
}
......@@ -236,6 +236,7 @@ public class BaseOrderController extends CommonBaseController {
@IgnoreClientToken
@ResponseBody
public ObjectRestResponse<OrderPageVO> get(@PathVariable String no) {
log.info("no:"+ no + ",时间戳:"+ System.currentTimeMillis());
//查询列表数据
if (StringUtils.isBlank(BaseContextHandler.getUserID())) {
throw new BaseException(ResultCode.AJAX_WECHAT_NOTEXIST_CODE);
......@@ -246,6 +247,7 @@ public class BaseOrderController extends CommonBaseController {
if (page.getData().isEmpty()) {
throw new BaseException(ResultCode.NOTEXIST_CODE);
}
log.info("no:"+ no + ",时间戳:"+ System.currentTimeMillis());
return new ObjectRestResponse<>().data(page.getData().get(0));
}
......@@ -378,35 +380,7 @@ public class BaseOrderController extends CommonBaseController {
return ObjectRestResponse.succ();
}
/**
* 订单查询类
*/
@Data
public class QueryOrderDTO extends PageParam {
@ApiModelProperty(hidden = false)
private Integer crtUser;
@ApiModelProperty(hidden = false)
private Integer crtCompanyId;
@ApiModelProperty(value = "订单状态\n" +
"0--删除\n" +
"1--创建订单\n" +
"2--取消\n" +
"3--待付款\n" +
"4--待出行\n" +
"5--出行中(进行中)\n" +
"6--已完成")
private Integer status;
private String multiStatus;
@ApiModelProperty(value = "是否有使用会员权益")
private Integer hasMemberRight;
@ApiModelProperty(value = "订单类型 1--租车;2--旅游; 3--会员订单")
private Integer type;
}
/**
* 订单查询类
......
......@@ -15,6 +15,8 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.pojo.order.MemberBO;
import com.xxfc.platform.order.pojo.price.OrderPriceVO;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.log4j.Log4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -26,6 +28,8 @@ import java.math.BigDecimal;
import java.util.HashMap;
import java.util.HashSet;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service
@Log4j
public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz, MemberBO> {
......@@ -36,10 +40,14 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
@Autowired
VehicleFeign vehicleFeign;
@Autowired
ThirdFeign thirdFeign;
private static Integer IS_CHILD = 1;
private static Integer LEVEL_DEFAULT = 0;
private static Integer NUMBER_ZERO = 0;
private static Long autoCancelTime;
@Autowired
OrderCostDetailBiz orderCostDetailBiz;
......@@ -68,6 +76,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
@Override
public void initDetail(MemberBO bo) {
super.initDetail(bo);
initDictionary();
BaseUserMemberLevel buml = userFeign.level(bo.getMemberLevel());
if(!bo.getMemberLevelId().equals(buml.getId())) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, new HashSet<String>(){{
......@@ -79,6 +88,11 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
bo.setRebate(buml.getDiscount());
}
public void initDictionary() {
dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
this.autoCancelTime = Long.valueOf(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ACT_MEMBER).getDetail());
}
@Override
public void handleDetail(MemberBO bo) {
//设置订单状态为3
......@@ -91,7 +105,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
super.handleDetail(bo);
//发送定时取消订单(30分钟)
rabbitProduct.sendDelayMessage(bo.getOrder(), 1000L * 60 * 30);
rabbitProduct.sendDelayMessage(bo.getOrder(), autoCancelTime);
}
@Override
......
......@@ -119,6 +119,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
bo.setStartCity(sysRegion.getId().intValue());
bo.setStartCityName(sysRegion.getName());
//设置省内,省外
bo.setIsOutside(bo.getTourGood().getIsOutside());
//设置verificationId 核销id
bo.setVerificationId(tourFeign.entityList(BeanUtil.beanToMap(new TourGoodVerification(){{
setSpeId(bo.getSpePriceId());
......@@ -197,7 +200,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
//总价格
orderAmount = orderAmount.add(goodsAmount).add(insureAmount);
//真实价格
realAmount = realAmount.add(tourSpePriceVo.getRealPrice()).add(tourSpePriceVo.getRealChildPrice());
realAmount = realAmount.add(tourSpePriceVo.getRealPrice()).add(tourSpePriceVo.getRealChildPrice()).add(insureAmount);
//生成订单明细
TourPriceVO tpv = BeanUtil.toBean(tourSpePriceVo, TourPriceVO.class);
......
......@@ -86,6 +86,14 @@
</foreach>
)
</if>
<if test="multiTypes != null">
and
(
<foreach collection="multiTypes.split(',')" index="tIndex" item="typeEntity" separator=" or ">
type = #{typeEntity}
</foreach>
)
</if>
</where>
order by crt_time desc
</select>
......
......@@ -72,6 +72,7 @@ public class TourUserController extends TourBaseController<TourUserBiz> {
TourUser tourUser1=new TourUser();
tourUser1.setUserid(userid);
tourUser1.setIdCard(tourUser.getIdCard());
tourUser1.setIsdel(0);
tourUser1=baseBiz.selectOne(tourUser1);
if(tourUser1!=null){
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"出游人证件号一样");
......
......@@ -13,10 +13,11 @@ public class DictionaryKey {
public static final String UNIVERSAL_PAY ="UNIVERSAL_PAY";
/**
* 租车,旅游退款
* 租车,旅游(省内、省外)退款
*/
public static final String RENT_REFUND ="RENT_REFUND";
public static final String TOUR_REFUND ="TOUR_REFUND";
public static final String TOUR_IN_REFUND ="TOUR_IN_REFUND";
/**
* 租车:公司司机租金、免赔费用、违章预备金
......@@ -35,6 +36,7 @@ public class DictionaryKey {
*/
public static final String ACT_RENT = "ACT_RENT";
public static final String ACT_TOUR = "ACT_TOUR";
public static final String ACT_MEMBER = "ACT_MEMBER";
/**
* 支付价格减低
......
......@@ -361,7 +361,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
//判断子标签是更新还是新增
if (VehiclePlatCata.getId() == null || VehiclePlatCata.getId() == 0) {
VehiclePlatCata.setUpdTime(System.currentTimeMillis());
VehiclePlatCata.setParentId(parentVPC.getParentId());
VehiclePlatCata.setParentId(parentVPC.getId());
//添加
insertSelective(VehiclePlatCata);
} else {
......
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