Commit 9650c58a authored by libin's avatar libin

Merge remote-tracking branch 'origin/base-modify' into base-modify

parents a682f847 2c2693f0
package com.github.wxiaoqi.security.admin.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/17 20:22
*/
@Data
public class WalletCathSumDto {
//总金额
private BigDecimal sumAmount;
//总次数
private Integer number;
//用户余额
private BigDecimal balance;
//费率
private BigDecimal proceduReates;
//钱包id
private Integer walletId;
}
......@@ -33,7 +33,7 @@ public class MyWalletCath implements Serializable {
*/
@Column(name = "user_id")
@ApiModelProperty(value = "用户iD")
private String userId;
private Integer userId;
/**
* 提现类别,第三方提现类别(0-微信,1-支付宝,2-银行卡)
......@@ -45,9 +45,9 @@ public class MyWalletCath implements Serializable {
/**
* 商户订单号
*/
@Column(name = "orderno")
@ApiModelProperty(value = "商户订单号")
private String orderno;
@Column(name = "account_number")
@ApiModelProperty(value = "用户账号")
private String accountNumber;
/**
* 第三方订单号:如微信,支付宝,银行卡等
......@@ -55,13 +55,37 @@ public class MyWalletCath implements Serializable {
@Column(name = "cono")
@ApiModelProperty(value = "第三方订单号:如微信,支付宝,银行卡等")
private String cono;
/**
* 提现金额
*/
@Column(name = "balance")
@ApiModelProperty(value = "当前钱包余额")
private BigDecimal balance;
/**
/**
* 提现金额
*/
@Column(name = "amount")
@ApiModelProperty(value = "提现金额")
private BigDecimal amount;
/**
* 到账金额
*/
@Column(name = "real_amount")
@ApiModelProperty(value = "到账金额")
private BigDecimal realAmount;
/**
* 手续费
*/
@Column(name = "commission")
@ApiModelProperty(value = "手续费")
private BigDecimal commission;
/**
* 订单状态:0-未提现,待审核,1-已审核
......@@ -87,9 +111,9 @@ public class MyWalletCath implements Serializable {
/**
* 操作者ID
*/
@Column(name = "oper_user")
@Column(name = "upd_user")
@ApiModelProperty(value = "操作者ID")
private String operUser;
private String updUser;
}
package com.github.wxiaoqi.security.admin.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/12 9:20
*/
@Data
public class ApplyCathVo {
/**
* 用户ID
*/
@ApiModelProperty("用户ID")
private Integer userId;
/**
* 提现金额
*/
@ApiModelProperty(value = "提现金额")
private BigDecimal amount;
/**
* 支付密码
*/
@ApiModelProperty(value = "支付密码")
private String password;
/**
* 支付账号
*/
@ApiModelProperty(value = "支付账号")
private String accountNumber;
/**
* 支付类型
*/
@ApiModelProperty(value = "支付类型")
private Integer cathType;
}
......@@ -46,6 +46,11 @@
<artifactId>xx-im-api</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-app-api</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-activity-api</artifactId>
......
package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.entity.AppUserAlipay;
import com.github.wxiaoqi.security.admin.entity.AppUserRelationTemp;
import com.github.wxiaoqi.security.admin.mapper.AppUserAlipayMapper;
import com.github.wxiaoqi.security.admin.mapper.AppUserRelationTempMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
/**
* 支付宝账号表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-07-03 16:36:44
*/
@Service
public class AppUserAlipayBiz extends BaseBiz<AppUserAlipayMapper, AppUserAlipay> {
//添加支付宝账号
public void addAlipay(Integer userId,String txAlipay){
AppUserAlipay appUserAlipay=new AppUserAlipay();
appUserAlipay.setTxAlipay(txAlipay);
appUserAlipay.setUserId(userId);
appUserAlipay.setIsDel(0);
AppUserAlipay appUserAlipay1=selectOne(appUserAlipay);
if (appUserAlipay1==null){
appUserAlipay.setIsDefault(1);
insertSelective(appUserAlipay);
}else {
appUserAlipay1.setIsDefault(1);
updateSelectiveById(appUserAlipay1);
}
}
//获取支付宝列表
public List<AppUserAlipay> getListByUserId(Integer userId){
Example example=new Example(AppUserAlipay.class);
example.createCriteria().andEqualTo("userId",userId).andEqualTo("isDel",0);
example.setOrderByClause("is_default desc");
return selectByExample(example);
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.dto.PersonalConsumptionDTO;
import com.github.wxiaoqi.security.admin.dto.WalletCathFindDTO;
import com.github.wxiaoqi.security.admin.dto.WalletCathListDTO;
import com.github.wxiaoqi.security.admin.dto.WalletCathSumDto;
import com.github.wxiaoqi.security.admin.entity.MyWalletCath;
import com.github.wxiaoqi.security.admin.mapper.MyWalletCathMapper;
import com.github.wxiaoqi.security.admin.vo.WalletCathAdminVo;
......@@ -120,4 +121,8 @@ public class MyWalletCathBiz extends BaseBiz<MyWalletCathMapper, MyWalletCath> {
Map<Integer, BigDecimal> userIdAndPersonalConsumptionMap = personalConsumptions.stream().collect(Collectors.toMap(PersonalConsumptionDTO::getUserId, PersonalConsumptionDTO::getTotalConsumption));
return userIdAndPersonalConsumptionMap;
}
public WalletCathSumDto sumCathAmount(Integer type){
return mapper.sumCathAmount(type);
}
}
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppUserAlipay;
import tk.mybatis.mapper.common.Mapper;
/**
* 钱包提现表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-11 14:14:54
*/
public interface AppUserAlipayMapper extends Mapper<AppUserAlipay> {
}
......@@ -2,10 +2,10 @@ package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.dto.PersonalConsumptionDTO;
import com.github.wxiaoqi.security.admin.dto.WalletCathListDTO;
import com.github.wxiaoqi.security.admin.dto.WalletCathSumDto;
import com.github.wxiaoqi.security.admin.entity.MyWalletCath;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
......@@ -22,4 +22,12 @@ public interface MyWalletCathMapper extends Mapper<MyWalletCath> {
@Param("state") Integer state);
List<PersonalConsumptionDTO> findUserWithDrawingByUserIds(@Param("userIds") List<Integer> userIds);
/**
* 计算提现的金额
* @param type 1-日;2-月
* @return
*/
WalletCathSumDto sumCathAmount(@Param("type") int type);
}
......@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserManage;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
......@@ -33,13 +34,13 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz,
/**
* 设置用户会员
* @param baseUserMemberVO
* @param userMemberDTO
* @return
*/
@PutMapping("/setUserMember")
public ObjectRestResponse UpdateUserMember(@RequestBody BaseUserMemberVO baseUserMemberVO)
throws InvocationTargetException, IllegalAccessException {
baseBiz.UpdateUserMember(baseUserMemberVO);
public ObjectRestResponse UpdateUserMember(@RequestBody UserMemberDTO userMemberDTO)
throws Exception {
baseBiz.updUserMemberByUserId(userMemberDTO);
return ObjectRestResponse.succ();
}
}
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.AppUserAlipayBiz;
import com.github.wxiaoqi.security.admin.biz.MyWalletBiz;
import com.github.wxiaoqi.security.admin.vo.AppletWalletVo;
import com.github.wxiaoqi.security.admin.vo.ApplyCathVo;
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 com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
/**
* @author libin
......@@ -34,6 +35,10 @@ public class MyWalletController {
@Autowired
private MyWalletBiz myWalletBiz;
@Autowired
private AppUserAlipayBiz alipayBiz;
@GetMapping
public ObjectRestResponse<AppletWalletVo> findMyWallet(HttpServletRequest request){
try {
......@@ -46,4 +51,96 @@ public class MyWalletController {
}
@GetMapping
@ApiOperation("检查验证码")
public ObjectRestResponse checkCode(
@RequestParam(value = "phone",defaultValue = "")String phone,
@RequestParam(value = "mobilecode",defaultValue = "")String mobilecod
){
return myWalletBiz.checkCode(phone,mobilecod);
}
@PostMapping("/setPwd")
@ApiOperation("设置密码")
public ObjectRestResponse setPwd(
@RequestParam(value = "phone",defaultValue = "")String phone,
@RequestParam(value = "mobilecode",defaultValue = "")String mobilecod,
@RequestParam(value = "password",defaultValue = "")String password,
@RequestParam(value = "type",defaultValue = "1")Integer type,
HttpServletRequest request){
try {
Integer userId=Integer.parseInt(userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getId());
return myWalletBiz.setPwd(userId,phone,mobilecod,password,type);
}catch (Exception e) {
throw new BaseException(e);
}
}
@GetMapping("/checkSetPwd")
@ApiOperation("检查用户是否设置过支付密码")
public ObjectRestResponse checkSetPwd(HttpServletRequest request){
try {
Integer userId=Integer.parseInt(userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getId());
return myWalletBiz.checkSetPwd(userId);
}catch (Exception e) {
throw new BaseException(e);
}
}
@GetMapping("/checkAmount")
@ApiOperation("检查提成下一步操作")
public ObjectRestResponse checkAmount(
@RequestParam(value = "amount",defaultValue = "0.00") BigDecimal amount,
HttpServletRequest request){
try {
Integer userId=Integer.parseInt(userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getId());
return myWalletBiz.checkAmount(userId,amount,null);
}catch (Exception e) {
throw new BaseException(e);
}
}
@PostMapping("/applyCath")
@ApiOperation("提现申请")
public ObjectRestResponse applyCath(@RequestBody ApplyCathVo applyCathVo, HttpServletRequest request){
try {
Integer userId=Integer.parseInt(userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getId());
return myWalletBiz.applyCath(applyCathVo);
}catch (Exception e) {
throw new BaseException(e);
}
}
@PostMapping("/verifyCath")
@ApiOperation("提现审核")
public ObjectRestResponse verifyCath(
@RequestParam(value = "cathId",defaultValue = "0") Integer cathId,
@RequestParam(value = "cono",defaultValue = "") String cono){
try {
return myWalletBiz.verifyCath(cathId,cono);
}catch (Exception e) {
throw new BaseException(e);
}
}
@GetMapping("/txAlipayList")
@ApiOperation("获取支付账号列表")
public ObjectRestResponse txAlipayList(HttpServletRequest request){
try {
Integer userId=Integer.parseInt(userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getId());
return ObjectRestResponse.succ(alipayBiz.getListByUserId(userId)) ;
}catch (Exception e) {
throw new BaseException(e);
}
}
}
......@@ -205,6 +205,23 @@ public class AppPermissionService {
return JsonResultUtil.createSuccessResultWithObj(result);
}
//检查验证码是否正确
public String checkCodeByUsername(String username,String mobilecode){
// 判断参数和验证码
if (StringUtils.isBlank(username) || StringUtils.isBlank(mobilecode)) {
log.info("---参数为空------");
return null;
}
String redisLockKey = RedisKey.CONSTANT_CODE_PREFIX + username + mobilecode;
String mobilecodeRedis = userRedisTemplate.opsForValue().get(redisLockKey) == null ? "" : userRedisTemplate.opsForValue().get(redisLockKey).toString();
log.error("checkCodeByUsername接口,获取redis中的验证码:" + mobilecodeRedis);
if (StringUtils.isBlank(mobilecodeRedis)) {
log.info("---验证码错误------username==="+username);
return null;
}
return redisLockKey;
}
/**
* 注册用户
*
......
......@@ -34,4 +34,21 @@
</foreach>
GROUP BY `user_id`
</select>
<select id="sumCathAmount" resultType="com.github.wxiaoqi.security.admin.dto.WalletCathSumDto">
select IFNULL(SUM(amount),0) as sumAmount,COUNT(*) as `number` from my_wallet_cath
<where>
<choose>
<when test="type ==1 ">
AND date_format(from_unixtime(crt_time/1000),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')
</when >
<when test="type==2 ">
AND date_format(from_unixtime(crt_time/1000),'%Y-%m') = date_format(now(),'%Y-%m')
</when >
<otherwise>
</otherwise>
</choose>
</where>
</select>
</mapper>
\ No newline at end of file
package com.xxfc.platform.activity.constant;
public enum IntegralRulePeriod {
DAY(0, "天"),
WEEK(1, "周"),
MONTH(2, "月"),
QUARTER(3,"季度"),
YEAR(4,"年");
Integer code;
String msg;
IntegralRulePeriod(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
......@@ -58,6 +58,7 @@ public class ActivityPopup {
@Column(name = "is_del")
private Integer isDel;
@Column(name = "time_type")
private Integer timeType;
}
package com.xxfc.platform.activity.entity;
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
......@@ -29,14 +30,14 @@ public class HomeActivities implements Serializable {
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
private BigInteger crtTime;
/**
* 更新时间
*/
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
private BigInteger updTime;
/**
* 活动名称
......@@ -50,14 +51,14 @@ public class HomeActivities implements Serializable {
*/
@Column(name = "start_time")
@ApiModelProperty(value = "活动开始时间")
private Long startTime;
private BigInteger startTime;
/**
* 精彩活动结束时间
*/
@Column(name = "end_time")
@ApiModelProperty(value = "活动结束时间")
private Long endTime;
private BigInteger endTime;
/**
......@@ -99,4 +100,11 @@ public class HomeActivities implements Serializable {
@ApiModelProperty(value = "是否删除")
private Integer isDel;
/**
* 有效期限:0-永久 ,1-有期限
*/
@Column(name = "time_type")
private Integer timeType;
}
......@@ -138,6 +138,6 @@ public class IntegralRule{
private String btnWord;
@Transient
private Boolean integralStatus;
private Boolean integralStatus = false;
}
\ No newline at end of file
package com.xxfc.platform.activity.entity;
import lombok.Data;
import javax.persistence.*;
@Table(name = "integral_user_status")
@Data
public class IntegralUserStatus {
@Id
private Integer id;
@Column(name = "integral_rule_code")
private String integralRuleCode;
@Column(name = "user_id")
private Integer userId;
private Boolean integralStatus;
private Long crtTime;
private Long updTime;
}
\ No newline at end of file
......@@ -3,8 +3,6 @@ package com.xxfc.platform.activity.vo;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class IntegralRuleDto extends PageParam {
/**
......@@ -13,4 +11,7 @@ public class IntegralRuleDto extends PageParam {
Integer id;
String code;
Integer userId;
}
......@@ -14,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.swing.plaf.synth.SynthEditorPaneUI;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
......@@ -23,10 +24,11 @@ import java.util.stream.Collectors;
/**
* 活动弹窗biz
*
* @author Administrator
*/
@Service
public class ActivityPopupBiz extends BaseBiz<ActivityPopupMapper,ActivityPopup> {
public class ActivityPopupBiz extends BaseBiz<ActivityPopupMapper, ActivityPopup> {
@Value("${activity.popup.loginTypes}")
private String loginTypes;
......@@ -38,36 +40,35 @@ public class ActivityPopupBiz extends BaseBiz<ActivityPopupMapper,ActivityPopup>
/**
* 获取活动弹窗,根据是否登录
*
* @param userInfo
* @return
*/
public List<ActivityPopup> getActivityPopup(AppUserDTO userInfo) {
if (userInfo!=null){
if (userInfo != null) {
List<ActivityPopup> activityPopups = getActivityPopupByTypes(loginTypes);
if (activityPopups==null||activityPopups.size()==0) {
if (activityPopups == null || activityPopups.size() == 0) {
return activityPopups;
}
List<Integer> collect = activityPopups.parallelStream().map(ActivityPopup::getId).collect(Collectors.toList());
Example exaple= Example.builder(ActivityPopupUser.class)
Example exaple = Example.builder(ActivityPopupUser.class)
.where(WeekendSqls.<ActivityPopupUser>custom()
.andEqualTo(ActivityPopupUser::getUserId,userInfo.getUserid())
.andIn(ActivityPopupUser::getPopupId,collect)
).build();
.andEqualTo(ActivityPopupUser::getUserId, userInfo.getUserid())
.andIn(ActivityPopupUser::getPopupId, collect)
).build();
List<ActivityPopupUser> activityPopupUsers = activityPopupUserBiz.selectByExample(exaple);
if (activityPopupUsers==null||activityPopupUsers.size()==0) {
if (activityPopupUsers == null || activityPopupUsers.size() == 0) {
return activityPopups;
}
Set<Integer> popupIdSet = activityPopupUsers.parallelStream().map(ActivityPopupUser::getPopupId).collect(Collectors.toSet());
List<ActivityPopup> result= new ArrayList<>();
List<ActivityPopup> result = new ArrayList<>();
for (ActivityPopup activityPopup : activityPopups) {
if (popupIdSet.add(activityPopup.getId())){
if (popupIdSet.add(activityPopup.getId())) {
result.add(activityPopup);
}
}
return result;
}else {
} else {
return getActivityPopupByTypes(notLoginTypes);
......@@ -77,41 +78,57 @@ public class ActivityPopupBiz extends BaseBiz<ActivityPopupMapper,ActivityPopup>
/**
* 根据不同的用户,可查询寻的类型.得到对应的弹窗
*
* @param Types
* @return
*/
private List<ActivityPopup> getActivityPopupByTypes(String Types) {
Example exa = Example.builder(ActivityPopup.class)
long timeMillis = System.currentTimeMillis();
//获取有期限的弹窗timeType=1
Example exa = Example.builder(ActivityPopup.class)
.where(
WeekendSqls.<ActivityPopup>custom()
.andGreaterThanOrEqualTo(ActivityPopup::getEndTime, BigInteger.valueOf(System.currentTimeMillis()))
.andLessThanOrEqualTo(ActivityPopup::getStartTime, BigInteger.valueOf(System.currentTimeMillis()))
.andEqualTo(ActivityPopup::getTimeType, 1)
.andGreaterThanOrEqualTo(ActivityPopup::getEndTime, BigInteger.valueOf(timeMillis))
.andLessThanOrEqualTo(ActivityPopup::getStartTime, BigInteger.valueOf(timeMillis))
.andIn(ActivityPopup::getType, Arrays.asList(Types.split(",")))
.andEqualTo(ActivityPopup::getStatus, 1)
.andEqualTo(ActivityPopup::getIsDel,0)
.andEqualTo(ActivityPopup::getIsDel, 0)
).orderByAsc("sort").build();
List<ActivityPopup> activityPopups = mapper.selectByExample(exa);
long l = System.currentTimeMillis();
return activityPopups ;
//获取永久的弹窗timeType=0
Example permanentExa = Example.builder(ActivityPopup.class)
.where(
WeekendSqls.<ActivityPopup>custom()
.andEqualTo(ActivityPopup::getTimeType, 0)
.andIn(ActivityPopup::getType, Arrays.asList(Types.split(",")))
.andEqualTo(ActivityPopup::getStatus, 1)
.andEqualTo(ActivityPopup::getIsDel, 0)
).orderByAsc("sort").build();
List<ActivityPopup> permanentActivityPopups = mapper.selectByExample(permanentExa);
activityPopups.addAll(permanentActivityPopups);
return activityPopups;
}
/**
* 判断是否重复弹窗
*
* @param userInfo
* @param id
*/
@Transactional(rollbackFor = Exception.class)
public void setActivityPopup(AppUserDTO userInfo,Integer id){
if (userInfo!=null) {
Example exa=Example.builder(ActivityPopupUser.class).where(
public void setActivityPopup(AppUserDTO userInfo, Integer id) {
if (userInfo != null) {
Example exa = Example.builder(ActivityPopupUser.class).where(
WeekendSqls.<ActivityPopupUser>custom()
.andEqualTo(ActivityPopupUser::getPopupId,id)
.andEqualTo(ActivityPopupUser::getUserId,userInfo.getUserid())
.andEqualTo(ActivityPopupUser::getPopupId, id)
.andEqualTo(ActivityPopupUser::getUserId, userInfo.getUserid())
).build();
List<ActivityPopupUser> activityPopupUsers = activityPopupUserBiz.selectByExample(exa);
if (activityPopupUsers==null||activityPopupUsers.size()==0) {
if (activityPopupUsers == null || activityPopupUsers.size() == 0) {
ActivityPopupUser activityPopupUser = new ActivityPopupUser();
activityPopupUser.setPopupId(id);
activityPopupUser.setUserId(userInfo.getUserid());
......@@ -126,11 +143,25 @@ public class ActivityPopupBiz extends BaseBiz<ActivityPopupMapper,ActivityPopup>
public void deleteOne(Integer id) {
ActivityPopup activityPopup = selectById(id);
if (activityPopup.getStatus()==1) {
if (activityPopup.getStatus() == 1) {
throw new BaseException("Please take it off the shelves first");
}else{
} else {
activityPopup.setIsDel(1);
}
updateById(activityPopup);
}
@Override
public int updateSelectiveByIdRe(ActivityPopup activityPopup) {
activityPopup.setUpdTime(BigInteger.valueOf(System.currentTimeMillis()));
return mapper.updateByPrimaryKeySelective(activityPopup);
}
@Override
public int insertSelectiveRe(ActivityPopup activityPopup) {
activityPopup.setCrtTime(BigInteger.valueOf(System.currentTimeMillis()));
activityPopup.setSort(0);
activityPopup.setTimeType(0);
return mapper.insertSelective(activityPopup);
}
}
......@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.math.BigInteger;
import java.util.List;
/**
* @author Administrator
......@@ -23,12 +24,22 @@ public class HomeActivitiesBiz extends BaseBiz<HomeActivitiesMapper, HomeActivit
public List<HomeActivities> activities () {
long currentTime = System.currentTimeMillis();
Example exa=Example.builder(HomeActivities.class).where(WeekendSqls.<HomeActivities>custom()
.andEqualTo(HomeActivities::getTimeType,1)
.andGreaterThanOrEqualTo(HomeActivities::getEndTime,currentTime)
.andLessThanOrEqualTo(HomeActivities::getStartTime,currentTime)
.andEqualTo(HomeActivities::getStatus,1)
.andEqualTo(HomeActivities::getIsDel,0)
).orderByAsc("sort").build();
List<HomeActivities> activityLists = selectByExample(exa);
Example permanentExa=Example.builder(HomeActivities.class).where(WeekendSqls.<HomeActivities>custom()
.andEqualTo(HomeActivities::getTimeType,0)
.andEqualTo(HomeActivities::getStatus,1)
.andEqualTo(HomeActivities::getIsDel,0)
).orderByAsc("sort").build();
List<HomeActivities> permanentActivityLists = selectByExample(permanentExa);
activityLists.addAll(permanentActivityLists);
return activityLists;
}
......@@ -36,10 +47,11 @@ public class HomeActivitiesBiz extends BaseBiz<HomeActivitiesMapper, HomeActivit
public PageInfo<HomeActivities> getPage (ActivitiesQuery query) {
Example exa =new Example(HomeActivities.class);
Example.Criteria criteria = exa.createCriteria();
if (StringUtils.isNotBlank(query.getActivitiesName())){
exa.createCriteria().andLike("name","%"+query.getActivitiesName()+"%");
criteria.andLike("name","%"+query.getActivitiesName()+"%");
}
exa.createCriteria().andEqualTo("isDel",0);
criteria.andEqualTo("isDel",0);
exa.orderBy("sort").asc();
PageHelper.startPage(query.getPage(),query.getLimit());
List<HomeActivities> activityLists = selectByExample(exa);
......@@ -56,4 +68,19 @@ public class HomeActivitiesBiz extends BaseBiz<HomeActivitiesMapper, HomeActivit
updateById(homeActivities);
}
@Override
public int updateSelectiveByIdRe(HomeActivities activityPopup) {
activityPopup.setUpdTime(BigInteger.valueOf(System.currentTimeMillis()));
return mapper.updateByPrimaryKeySelective(activityPopup);
}
@Override
public int insertSelectiveRe(HomeActivities activityPopup) {
activityPopup.setCrtTime(BigInteger.valueOf(System.currentTimeMillis()));
activityPopup.setSort(0);
activityPopup.setTimeType(0);
return mapper.insertSelective(activityPopup);
}
}
......@@ -97,9 +97,6 @@ public class IntegralRuleBiz extends BaseBiz<IntegralRuleMapper, IntegralRule> {
Query query = new Query(integralRule);
PageDataVO<IntegralRule> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.selectAllByParam(integralRule));
//添加个人积分状态
for(IntegralRule value : pageDataVO.getData()) {
value.setIntegralStatus(getIntegralStatus(appUserDTO, value));
}
return ObjectRestResponse.succ(pageDataVO);
}
......
......@@ -7,11 +7,14 @@ import com.github.wxiaoqi.security.common.constant.RestCode;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.constant.IntegralRulePeriod;
import com.xxfc.platform.activity.entity.IntegralRule;
import com.xxfc.platform.activity.entity.IntegralUserRecord;
import com.xxfc.platform.activity.entity.IntegralUserStatus;
import com.xxfc.platform.activity.entity.IntegralUserTotal;
import com.xxfc.platform.activity.mapper.IntegralUserRecordMapper;
import com.xxfc.platform.activity.user.UserInfoBiz;
import com.xxfc.platform.activity.util.IntegralToolsUtils;
import com.xxfc.platform.activity.vo.IntegralRuleDto;
import com.xxfc.platform.activity.vo.IntegralUserRecordDto;
import com.xxfc.platform.activity.vo.IntegralUserTotalDto;
......@@ -37,6 +40,9 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
@Autowired
IntegralRuleBiz integralRuleBiz;
@Autowired
IntegralUserStatusBiz integralUserStatusBiz;
/**
* 添加用户积分记录
*
......@@ -49,15 +55,15 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
return ObjectRestResponse.paramIsEmpty();
}
//如果参数没有积分,说明是消息队列过来的参数,需要查询规则表获取积分数
IntegralRuleDto integralRule = new IntegralRuleDto();
integralRule.setCode(integralUserRecord.getIntegralRuleCode());
ObjectRestResponse<IntegralRule> ruleObjectRestResponse = integralRuleBiz.getOne(integralRule);
if (ruleObjectRestResponse.getData() == null) {
return ObjectRestResponse.createFailedResult(1202, "积分规则不存在");
}
IntegralRule oldValue = ruleObjectRestResponse.getData();
if (integralUserRecord.getPoint() == null) {
IntegralRuleDto integralRule = new IntegralRuleDto();
integralRule.setCode(integralUserRecord.getIntegralRuleCode());
ObjectRestResponse<IntegralRule> ruleObjectRestResponse = integralRuleBiz.getOne(integralRule);
if (ruleObjectRestResponse.getData() == null) {
return ObjectRestResponse.createFailedResult(1202, "积分规则不存在");
}
Integer point = 0;
IntegralRule oldValue = ruleObjectRestResponse.getData();
if(oldValue.getPoint() == 0) {//没有基础分需要计算分数
//Integer amount = Integer.parseInt(new BigDecimal(integralUserRecord.getAmount()).divide(new BigDecimal("100"), 0, BigDecimal.ROUND_DOWN).toString());
Integer amount = Integer.parseInt(integralUserRecord.getAmount());
......@@ -95,6 +101,9 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
}
}
insertSelective(integralUserRecord.getIntegralUserRecord());
if(oldValue != null) {
getUserRecordStatus(integralUserRecord, oldValue.getPeriod(), oldValue.getNumber());
}
return ObjectRestResponse.succ();
}
......@@ -149,4 +158,32 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
List<IntegralUserRecord> integralUserRecordList = mapper.selectByUserAndTime(integralUserRecordDto);
return ObjectRestResponse.succ(integralUserRecordList);
}
/**
* //判断用户获取积分是否达标
* @param integralUserRecordDto 积分记录实体
* @param period 周期
* number 周期内可获得积分的次数
*/
public void getUserRecordStatus(IntegralUserRecordDto integralUserRecordDto, Integer period, Integer number) {
IntegralUserStatus integralUserStatus = new IntegralUserStatus();
integralUserStatus.setUserId(integralUserRecordDto.getUserId());
integralUserStatus.setIntegralRuleCode(integralUserRecordDto.getIntegralRuleCode());
if(period == IntegralRulePeriod.DAY.getCode()) {//按天
integralUserRecordDto.setStartTime(IntegralToolsUtils.getDayStart());
integralUserRecordDto.setEndTime(IntegralToolsUtils.getDayStart() + 24 * 60 * 60 * 1000);
Integer count = mapper.countByUserAndCode(integralUserRecordDto);
integralUserStatus.setIntegralStatus(count == number);
} else {
integralUserRecordDto.setStartTime(null);
Integer count = mapper.countByUserAndCode(integralUserRecordDto);
integralUserStatus.setIntegralStatus(count == number);
}
integralUserStatusBiz.save(integralUserStatus);
}
}
package com.xxfc.platform.activity.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.entity.IntegralUserStatus;
import com.xxfc.platform.activity.mapper.IntegralUserStatusMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class IntegralUserStatusBiz extends BaseBiz<IntegralUserStatusMapper, IntegralUserStatus> {
public ObjectRestResponse save(IntegralUserStatus integralUserStatus) {
if(integralUserStatus != null) {
IntegralUserStatus oldValue = mapper.selectByUserAndCode(integralUserStatus);
if(oldValue != null) {
BeanUtil.copyProperties(integralUserStatus, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
updateSelectiveById(oldValue);
}
insertSelective(integralUserStatus);
}
return ObjectRestResponse.succ();
}
public IntegralUserStatus selectByUserAndCode(String code, Integer userId) {
if(!StringUtils.isAllBlank(code, userId + "")) {
IntegralUserStatus integralUserStatus = new IntegralUserStatus();
integralUserStatus.setIntegralRuleCode(code);
integralUserStatus.setUserId(userId);
return mapper.selectByUserAndCode(integralUserStatus);
}
return null;
}
}
......@@ -12,4 +12,6 @@ public interface IntegralUserRecordMapper extends Mapper<IntegralUserRecord> {
List<IntegralUserRecord> selectByUserAndTime(IntegralUserRecordDto integralUserRecordDto);
Integer countByUserAndCode(IntegralUserRecordDto integralUserRecordDto);
}
\ No newline at end of file
package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.entity.IntegralUserStatus;
import tk.mybatis.mapper.common.Mapper;
public interface IntegralUserStatusMapper extends Mapper<IntegralUserStatus> {
IntegralUserStatus selectByUserAndCode(IntegralUserStatus integralUserStatus);
}
\ No newline at end of file
......@@ -3,8 +3,11 @@ package com.xxfc.platform.activity.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.activity.biz.ActivityListBiz;
import com.xxfc.platform.activity.biz.HomeActivitiesBiz;
import com.xxfc.platform.activity.entity.ActivityList;
import com.xxfc.platform.activity.entity.ActivityManagement;
import com.xxfc.platform.activity.entity.HomeActivities;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -16,6 +19,9 @@ import java.util.List;
@RestController
@RequestMapping("activityList")
public class ActivityListController extends BaseController<ActivityListBiz,ActivityList> {
@Autowired
private HomeActivitiesBiz homeActivitiesBiz;
/**
* 精彩活动列表
* @return
......@@ -23,8 +29,9 @@ public class ActivityListController extends BaseController<ActivityListBiz,Activ
* @throws IllegalAccessException
*/
@GetMapping("/app/unauth/activity/findAll")
public ObjectRestResponse<List<ActivityList>> appFindAll() throws InvocationTargetException, IllegalAccessException {
List<ActivityList> list= baseBiz.activities();
return ObjectRestResponse.succ(list);
public ObjectRestResponse<List<HomeActivities>> appFindAll() throws InvocationTargetException, IllegalAccessException {
List<HomeActivities> activities = homeActivitiesBiz.activities();
// List<ActivityList> list= baseBiz.activities();
return ObjectRestResponse.succ(activities);
}
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.activity.biz.ActivityPopupBiz;
import com.xxfc.platform.activity.entity.ActivityPopup;
import com.xxfc.platform.activity.vo.PopupQuery;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
......@@ -45,11 +46,12 @@ public class ActivityPopupManageController extends BaseController<ActivityPopupB
* @param id
* @return
*/
@PostMapping(value = "/manage/getOne/{id}")
@GetMapping(value = "/manage/getOne/{id}")
public ObjectRestResponse<ActivityPopup> getOne(@PathVariable Integer id) {
Example exa=new Example(ActivityPopup.class);
exa.createCriteria().andEqualTo("isDel",0);
exa.createCriteria().andEqualTo("id",id);
Example.Criteria criteria = exa.createCriteria();
criteria.andEqualTo("isDel",0);
criteria.andEqualTo("id",id);
List<ActivityPopup> activityPopups = baseBiz.selectByExample(exa);
if (activityPopups==null||activityPopups.size()==0) {
return ObjectRestResponse.succ(new ActivityPopup());
......@@ -71,4 +73,18 @@ public class ActivityPopupManageController extends BaseController<ActivityPopupB
return ObjectRestResponse.succ();
}
// /**
// * 添加
// * @param activityPopup
// * @return
// */
// @ApiOperation("保存")
// @PutMapping(value = "save")
// @ResponseBody
// public ObjectRestResponse<ActivityPopup> save(@RequestBody ActivityPopup activityPopup){
// baseBiz.save(activityPopup);
// return new ObjectRestResponse<ActivityPopup>();
// }
}
......@@ -28,7 +28,7 @@ public class HomeActivitiesController extends BaseController<HomeActivitiesBiz,
* @throws IllegalAccessException
*/
@GetMapping("/app/unauth/activity/findAll")
public ObjectRestResponse<List<HomeActivities>> appFindAll() throws InvocationTargetException, IllegalAccessException {
public ObjectRestResponse<List<HomeActivities>> appFindAll() {
List<HomeActivities> list= baseBiz.activities();
return ObjectRestResponse.succ(list);
}
......@@ -49,7 +49,7 @@ public class HomeActivitiesController extends BaseController<HomeActivitiesBiz,
* @param id
* @return
*/
@PostMapping(value = "/manage/activity/getOne/{id}")
@GetMapping(value = "/manage/activity/getOne/{id}")
public ObjectRestResponse<HomeActivities> getOne(@PathVariable Integer id) {
Example exa=new Example(HomeActivities.class);
Example.Criteria criteria = exa.createCriteria();
......
......@@ -15,9 +15,9 @@
</plugin>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/vehicle?useUnicode=true&amp;characterEncoding=UTF8"
connectionURL="jdbc:mysql://10.5.52.4:3307/xxfc_activity?useUnicode=true&amp;characterEncoding=UTF8"
userId="root"
password="xx2019fc">
password="sslcloud123*()">
</jdbcConnection>
<javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}"/>
......@@ -26,18 +26,6 @@
<javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}"
type="XMLMAPPER"/>
<!-- <table tableName="vehicle" domainObjectName="Vehicle">-->
<!-- </table>-->
<!-- <table tableName="vehicle_book_info" domainObjectName="VehicleBookInfo">-->
<!-- </table>-->
<!-- <table tableName="vehicle_book_record" domainObjectName="VehicleBookRecord">-->
<!-- </table>-->
<!-- <table tableName="branch_company" domainObjectName="BranchCompany">-->
<!-- </table>-->
<!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>-->
<!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>-->
<table tableName="vehicle_upkeep_item" domainObjectName="VehicleUpkeepItem"></table>
<table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table>
<table tableName="integral_user_status" domainObjectName="IntegralUserStatus"></table>
</context>
</generatorConfiguration>
\ No newline at end of file
......@@ -31,17 +31,21 @@
<select id="selectAllByParam" resultType="com.xxfc.platform.activity.entity.IntegralRule" parameterType="com.xxfc.platform.activity.vo.IntegralRuleDto">
select * from integral_rule
select i1.*, i2.integral_status from integral_rule i1
left join integral_user_status i2 on i1.code = i2.integral_rule_code
<where>
<if test="id != null">
and id = #{id}
and i1.id = #{id}
</if>
<if test="userId != null">
and i2.user_id = #{userId}
</if>
<if test="code != null">
and code = #{code}
and i1.code = #{code}
</if>
and isdel = 0 and status = 1
and i1.isdel = 0 and status = 1
</where>
order by order_id DESC ,crt_time DESC
order by i1.order_id DESC ,i1.crt_time DESC
</select>
</mapper>
\ No newline at end of file
......@@ -29,4 +29,13 @@
select * from integral_user_record
where user_id = #{userId} and crt_time between #{startTime} and #{endTime} and integral_rule_code = #{integralRuleCode}
</select>
<select id="countByUserAndCode" resultType="java.lang.Integer" parameterType="com.xxfc.platform.activity.vo.IntegralUserRecordDto">
select count(*) from integral_user_record
where user_id = #{userId} and integral_rule_code = #{integralRuleCode}
<if test="startTime != null">
and crt_time between #{startTime} and #{endTime}
</if>
</select>
</mapper>
\ 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.activity.mapper.IntegralUserStatusMapper" >
<resultMap id="BaseResultMap" type="com.xxfc.platform.activity.entity.IntegralUserStatus" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="integral_rule_code" property="integralRuleCode" jdbcType="VARCHAR" />
<result column="user_id" property="userId" jdbcType="INTEGER" />
<result column="integral_status" property="integralStatus" jdbcType="BIT" />
</resultMap>
<select id="selectByUserAndCode" resultType="com.xxfc.platform.activity.entity.IntegralUserStatus" parameterType="com.xxfc.platform.activity.entity.IntegralUserStatus">
select * from integral_user_status
where integral_rule_code = #{integralRuleCode} and user_id = #{userId}
</select>
</mapper>
\ No newline at end of file
......@@ -112,7 +112,7 @@ public class AppVersionBiz extends BaseBiz<AppVersionMapper,AppVersion> {
String realFileRelPath = dirPathToday + "/"+fileName;
String filePath = uploadPath + realFileRelPath;
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(filePath));
realFileRelPath=Dev_url+realFileRelPath;
// filePath=Dev_url+filePath;
return ObjectRestResponse.succ(filePath);
}
......
......@@ -12,7 +12,6 @@ import com.xxfc.platform.im.dto.PraiseVo;
import com.xxfc.platform.im.model.Comment;
import com.xxfc.platform.im.model.Msg;
import com.xxfc.platform.im.model.Praise;
import com.xxfc.platform.im.utils.AddressUtils;
import com.xxfc.platform.im.vo.MsgVo;
import lombok.extern.slf4j.Slf4j;
import org.bson.types.ObjectId;
......@@ -190,8 +189,8 @@ public class MsgBiz {
msgVo.setNickname(imiVo.getNickname());
msgVo.setPicUrl(imiVo.getHeadimgurl());
}
String address = AddressUtils.getMapaddress(msg.getLatitude().toString(), msg.getLongitude().toString());
msgVo.setAddress(address);
//String address = AddressUtils.getMapaddress(msg.getLatitude().toString(), msg.getLongitude().toString());
msgVo.setAddress(msg.getLocation());
msgVo.setMsgId(msg.getId().toString());
msgVoList.add(msgVo);
}
......
......@@ -22,7 +22,7 @@ public class ImCommentController {
return imCommentBiz.add(imComment);
}
@DeleteMapping(value = "/delete")
@PostMapping(value = "/delete")
@ApiOperation(value = "删除评论")
public ObjectRestResponse deleteById(ImComment imComment) {
return imCommentBiz.deleteById(imComment);
......
......@@ -22,7 +22,7 @@ public class ImPraiseController {
return imPraiseBiz.add(imPraise);
}
@DeleteMapping(value = "/delete")
@PostMapping(value = "/delete")
@ApiOperation(value = "取消点赞")
public ObjectRestResponse deleteById(ImPraiseDto imPraiseDto) {
return imPraiseBiz.deleteById(imPraiseDto);
......
package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
import java.util.List;
/**
* 旅游订单详情
......@@ -241,4 +243,7 @@ public class OrderTourDetail implements Serializable {
@Column(name = "is_outside")
@ApiModelProperty(value = "是否省外 1--省外;0--省内")
private Integer isOutside;
@Transient
private List<AppUserVo> userVoList;
}
package com.xxfc.platform.order.pojo.pay;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class NotifyUrlDTO {
public static final int TYPE_APP = 1;
public static final int TYPE_WX = 2;
//订单号
@ApiModelProperty(value = "订单号")
private String orderNo;
//订单号
@ApiModelProperty(value = "支付订单(流水)号")
private String tradeNo;
//支付类型
@ApiModelProperty(value = "支付类型")
private Integer type;
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
......@@ -36,7 +37,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.jexl2.MapContext;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -137,11 +137,12 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* @return
*/
public ObjectRestResponse getOrderDetail(String no) {
OrderPageVO orderPageVo = mapper.getOrderDetail(no);
if(orderPageVo == null) {
return ObjectRestResponse.createDefaultFail();
return ObjectRestResponse.createFailedResult(3501, "订单不存在");
}
if(orderPageVo.getOrderRentVehicleDetail() != null) {
if(orderPageVo.getStatus() == 4) { //未交车
List<VehicleUserLicense> vehicleUserLicenses = Lists.newArrayList();
......@@ -189,9 +190,24 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
}
orderPageVo.setOrderVehicleCrosstownDto(orderVehicleCrosstownDto);
}
RestResponse<Vehicle> restResponse = vehicleFeign.findById(orderPageVo.getOrderRentVehicleDetail().getVehicleId());
if(restResponse.getData() != null) {
orderPageVo.setVehicalNumberPlat(restResponse.getData().getNumberPlate());
RestResponse<Vehicle> restResponse = vehicleFeign.findById(orderPageVo.getOrderRentVehicleDetail().getVehicleId());
if(restResponse.getData() != null) {
orderPageVo.setVehicalNumberPlat(restResponse.getData().getNumberPlate());
}
} else if(orderPageVo.getOrderTourDetail() != null) {
List<Integer> ids = Lists.newArrayList();
if(orderPageVo.getOrderTourDetail().getTourUserIds().contains(",")) {
String[] strings = orderPageVo.getOrderTourDetail().getTourUserIds().split(",");
for (int i = 0; i < strings.length; i++) {
ids.add(Integer.parseInt(StringUtils.isNotBlank(strings[i])? strings[i] : "0"));
}
} else {
ids.add(Integer.parseInt(orderPageVo.getOrderTourDetail().getTourUserIds()));
}
List<AppUserVo> list = userFeign.getByUserIds(ids).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list);
}
return ObjectRestResponse.succ(orderPageVo);
}
......@@ -375,13 +391,17 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* @param refundStatus
*/
public void refundSubProcess(BaseOrder baseOrder, String refundDesc, BigDecimal refundAmount, Integer refundType, Integer refundStatus) {
OrderRefundVo orv = new OrderRefundVo(){{
setAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue());
setOrderNo(baseOrder.getNo());
}};
orv.setRefundDesc(refundDesc+ refundAmount.toString());
orv.setRefundAmount(refundAmount.multiply(new BigDecimal("100")).intValue());
String refundTradeNo = thirdFeign.refund(orv).getData();
String refundTradeNo = null;
//0 小于 退款金额
if(BigDecimal.ZERO.compareTo(refundAmount) < 0) {
OrderRefundVo orv = new OrderRefundVo(){{
setAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue());
setOrderNo(baseOrder.getNo());
}};
orv.setRefundDesc(refundDesc+ refundAmount.toString());
orv.setRefundAmount(refundAmount.multiply(new BigDecimal("100")).intValue());
refundTradeNo = thirdFeign.refund(orv).getData();
}
//记录订单退款记录
Integer flag = addOrderRefund(baseOrder.getId(), refundDesc, refundAmount, refundTradeNo, refundType);
......
......@@ -28,6 +28,7 @@ import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderUserLicense;
import com.xxfc.platform.order.mqhandler.RabbitProduct;
import com.xxfc.platform.order.pojo.order.*;
import com.xxfc.platform.order.pojo.pay.NotifyUrlDTO;
import com.xxfc.platform.order.pojo.pay.OrderPayDTO;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary;
......@@ -470,19 +471,4 @@ public class BaseOrderController extends CommonBaseController implements UserRes
@ApiModelProperty("每页限制")
Integer limit;
}
@Data
public class NotifyUrlDTO {
//订单号
@ApiModelProperty(value = "订单号")
private String orderNo;
//订单号
@ApiModelProperty(value = "支付订单(流水)号")
private String tradeNo;
//支付类型
@ApiModelProperty(value = "支付类型")
private Integer type;
}
}
......@@ -14,6 +14,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.inter.OrderDetail;
import com.xxfc.platform.order.mqhandler.RabbitProduct;
import com.xxfc.platform.order.pojo.pay.NotifyUrlDTO;
import com.xxfc.platform.order.pojo.price.OrderPriceVO;
import com.xxfc.platform.universal.entity.Dictionary;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -120,13 +121,13 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
}
//判断是否价格为0
// BigDecimal realAmount = detail.getOrder().getRealAmount();
// if(BigDecimal.ZERO.compareTo(realAmount) > 0) {
// throw new BaseException(ResultCode.FAILED_CODE);
// }else if(BigDecimal.ZERO.compareTo(realAmount) = 0) {
// //直接支付
// baseOrderBiz.payNotifyHandle();
// }
BigDecimal realAmount = detail.getOrder().getRealAmount();
if(BigDecimal.ZERO.compareTo(realAmount) > 0) {
throw new BaseException(ResultCode.FAILED_CODE);
}else if(BigDecimal.ZERO.compareTo(realAmount) == 0) {
//直接支付
baseOrderBiz.payNotifyHandle(detail.getOrder().getNo(), null, detail.getOrderOrigin());
}
}
/**
* 计算价格
......
......@@ -46,6 +46,11 @@ public class RedisKey {
*/
public static final String BRANCH_COMPANY_CACHE_ALL = BRANCH_COMPANY_CACHE + ":all";
/**
* 子公司列表缓存key前缀
*/
public static final String BRANCH_COMPANY_CACHE_DETAIL = "cache:CompanyDetail";
/**
* 车型分类列表缓存key前缀
*/
......
......@@ -187,4 +187,9 @@ public class VehicleBookRecord {
@Transient
private List<String> endHourList;
@Transient
private String startHour;
@Transient
private String endHour;
}
\ No newline at end of file
......@@ -24,6 +24,11 @@ public class VehicleWarningMsg {
*/
public Integer type;
/**
* 颜色预警:1、红色预警,2、蓝色预警、3、黄色预警
*/
private Integer colorType;
/**
* 消息类型,详见VehicleMsgStatus
*/
......
......@@ -4,7 +4,9 @@ import com.xxfc.platform.vehicle.entity.VehicleBookHourInfo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import lombok.Data;
import java.util.List;
@Data
public class VehicleBookRecordDateVo extends VehicleBookRecord {
VehicleBookHourInfo vehicleBookHourInfo;
public class VehicleBookRecordVo extends VehicleBookRecord {
List<VehicleBookHourInfo> vehicleBookHourInfo;
}
......@@ -67,6 +67,10 @@ public class VehicleWarningMsgQueryVo{
private Date createTime;
private Date updateTime;
/**
* 颜色预警:1、红色预警,2、蓝色预警、3、黄色预警
*/
private Integer colorType;
VehicleWarningRule vehicleWarningRule;
}
......@@ -83,6 +83,7 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
* @param id
* @return
*/
@Cache(key= RedisKey.BRANCH_COMPANY_CACHE)
public CompanyDetail getDetailById(Integer id) {
BranchCompany branchCompany = this.getById(id);
CompanyDetail detail = null;
......
......@@ -1157,46 +1157,32 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
public PageDataVO<VehicleAndModelInfoVo> getAllVehicle(VehiclePlanDto vehiclePlanDto) {
Query query = new Query(vehiclePlanDto);
PageDataVO<VehicleAndModelInfoVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getAllVehicle(query.getSuper()));
for(VehicleAndModelInfoVo vehicleAndModelInfoVo : pageDataVO.getData()) {
//获取时间
if(vehicleAndModelInfoVo.getVehicleBookRecord() != null) {
for(VehicleBookRecord vehicleBookRecord : vehicleAndModelInfoVo.getVehicleBookRecord()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setVehicleId(vehicleBookRecord.getVehicleId());
vehicleBookHourInfoDto.setBookRecordId(vehicleBookRecord.getId());
vehicleBookHourInfoDto.setYearMonthDay(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DEFAULT_DATE_TIME_FORMATTER));
VehicleBookHourInfo startVehicleBookHourInfo = vehicleBookHourInfoBiz.selectByVehicleAndId(vehicleBookHourInfoDto);
vehicleBookHourInfoDto.setYearMonthDay(new DateTime(vehicleBookRecord.getBookEndDate()).toString(DEFAULT_DATE_TIME_FORMATTER));
VehicleBookHourInfo endVehicleBookHourInfo = vehicleBookHourInfoBiz.selectByVehicleAndId(vehicleBookHourInfoDto);
if(startVehicleBookHourInfo != null ) {
String result = Integer.toBinaryString(startVehicleBookHourInfo.getBookedHour());
if(StringUtils.isNotBlank(result)) {
vehicleBookRecord.setStartHourList(getHourList(result));
}
}
if(endVehicleBookHourInfo != null ) {
String result = Integer.toBinaryString(endVehicleBookHourInfo.getBookedHour());
if(StringUtils.isNotBlank(result)) {
vehicleBookRecord.setEndHourList(getHourList(result));
}
}
}
}
CompanyDetail partCompany = branchCompanyBiz.getDetailById(vehicleAndModelInfoVo.getParkBranchCompanyId());
if(partCompany != null) {
vehicleAndModelInfoVo.setParkCompanyName(partCompany.getName());
}
CompanyDetail subCompany = branchCompanyBiz.getDetailById(vehicleAndModelInfoVo.getSubordinateBranch());
if(subCompany != null) {
vehicleAndModelInfoVo.setSubordinateBranchName(subCompany.getName());
}
CompanyDetail disCompany = branchCompanyBiz.getDetailById(vehicleAndModelInfoVo.getExpectDestinationBranchCompanyId());
if(disCompany != null) {
vehicleAndModelInfoVo.setDestinationBranchCompanyName(disCompany.getName());
}
}
// for(VehicleAndModelInfoVo vehicleAndModelInfoVo : pageDataVO.getData()) {
// //获取时间
// if(vehicleAndModelInfoVo.getVehicleBookRecord() != null) {
// for(VehicleBookRecord vehicleBookRecord : vehicleAndModelInfoVo.getVehicleBookRecord()) {
// VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
// vehicleBookHourInfoDto.setVehicleId(vehicleBookRecord.getVehicleId());
// vehicleBookHourInfoDto.setBookRecordId(vehicleBookRecord.getId());
// vehicleBookHourInfoDto.setYearMonthDay(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DEFAULT_DATE_TIME_FORMATTER));
// VehicleBookHourInfo startVehicleBookHourInfo = vehicleBookHourInfoBiz.selectByVehicleAndId(vehicleBookHourInfoDto);
// vehicleBookHourInfoDto.setYearMonthDay(new DateTime(vehicleBookRecord.getBookEndDate()).toString(DEFAULT_DATE_TIME_FORMATTER));
// VehicleBookHourInfo endVehicleBookHourInfo = vehicleBookHourInfoBiz.selectByVehicleAndId(vehicleBookHourInfoDto);
// if(startVehicleBookHourInfo != null ) {
// String result = Integer.toBinaryString(startVehicleBookHourInfo.getBookedHour());
// if(StringUtils.isNotBlank(result)) {
// vehicleBookRecord.setStartHour(result);
// }
// }
// if(endVehicleBookHourInfo != null ) {
// String result = Integer.toBinaryString(endVehicleBookHourInfo.getBookedHour());
// if(StringUtils.isNotBlank(result)) {
// vehicleBookRecord.setEndHour(result);
// }
// }
// }
// }
// }
return pageDataVO;
}
......
package com.xxfc.platform.vehicle.biz;
import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.google.common.collect.Maps;
......@@ -26,6 +28,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
public static Map<String, Integer> getPredictableHours(String bookStartdate, String bookEndDate) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = null;
......@@ -77,11 +80,18 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
return mapper.selectByVehicleAndDate(vehicleBookHourInfoDto);
}
@Cache(key = "vehicle.hourInfo")
public VehicleBookHourInfo selectByVehicleAndId(VehicleBookHourInfoDto vehicleBookHourInfoDto) {
return mapper.selectByVehicleAndId(vehicleBookHourInfoDto);
}
@Cache(key = "vehicle.hourInfo")
public List<VehicleBookHourInfo> getAll() {
return mapper.selectAll();
}
@Transactional
@CacheClear(key = "vehicle.hourInfo")
public ObjectRestResponse save(VehicleBookHourInfoDto vehicleBookHourInfoDto) {
if(vehicleBookHourInfoDto == null) {
return ObjectRestResponse.createFailedResult(502, "参数为空");
......@@ -111,6 +121,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
* @return
*/
@Transactional
@CacheClear(key = "vehicle.hourInfo")
public ObjectRestResponse delete(String vehicleId, List<String> dateList) {
if(StringUtils.isBlank(vehicleId) || dateList.size() <= 0) {
return ObjectRestResponse.createFailedResult(502, "删除信息车辆Id为空");
......
......@@ -13,4 +13,6 @@ public interface VehicleBookHourInfoMapper extends Mapper<VehicleBookHourInfo> {
List<VehicleBookHourInfo> selectByVehicleAndDateList(Map<String, Object> param);
VehicleBookHourInfo selectByVehicleAndId(VehicleBookHourInfoDto vehicleBookHourInfoDto);
List<VehicleBookHourInfo> selectByBookRecordId(Integer bookVehicleId);
}
\ No newline at end of file
......@@ -26,7 +26,7 @@ public class VehicleActiveController {
*
* @return
*/
@PostMapping("departure")
@PostMapping("/departure")
public RestResponse departure(@RequestBody VehicleDepartureVo departureVo) {
if (departureVo == null || departureVo.getVehicleId() == null
|| departureVo.getMileage() == null || departureVo.getDepartureBranchCompanyId() == null
......
......@@ -125,7 +125,7 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @return
*/
@PostMapping("/add/updateAndAdd")
public ObjectRestResponse updateAndAdd(@RequestBody Cascade<VehiclePlatCata> cas){
public ObjectRestResponse save(@RequestBody Cascade<VehiclePlatCata> cas){
return baseBiz.updateAndAdd(cas);
}
......
......@@ -422,19 +422,46 @@ public class VehicleController extends BaseController<VehicleBiz> {
@IgnoreClientToken
@IgnoreUserToken
public ObjectRestResponse<Map<String, Object>> getVehiclePlanList(VehiclePlanDto vehiclePlanDto) {
//获取统计信息
List<VehicleCountVo> vehicleCountVos = baseBiz.countVehicleByParam(vehiclePlanDto);
//获取警告信息
List<VehicleWarningMsgQueryVo> vehicleWarningMsgs = vehicleWarningMsgBiz.getAllByParam(vehiclePlanDto);
//获取列表
PageDataVO<VehicleAndModelInfoVo> pageDataVO = baseBiz.getAllVehicle(vehiclePlanDto);
Map<String, Object> map = Maps.newHashMap();
map.put("vehicleCountVos",vehicleCountVos);
map.put("vehicleWarningMsgs",vehicleWarningMsgs);
map.put("vehicleAndModelInfoVo",pageDataVO);
//获取列表
PageDataVO<VehicleAndModelInfoVo> pageDataVO = baseBiz.getAllVehicle(vehiclePlanDto);
//获取警告信息
List<VehicleWarningMsgQueryVo> vehicleWarningMsgs = vehicleWarningMsgBiz.getAllByParam(vehiclePlanDto);
//获取统计信息
List<VehicleCountVo> vehicleCountVos = baseBiz.countVehicleByParam(vehiclePlanDto);
//获取列表
Map<String, Object> map = Maps.newHashMap();
map.put("vehicleWarningMsgs",vehicleWarningMsgs);
map.put("vehicleAndModelInfoVo",pageDataVO);
map.put("vehicleCountVos",vehicleCountVos);
return ObjectRestResponse.succ(map);
}
@RequestMapping(value = "/app/unauth/getVehicleWarningMsg", method = RequestMethod.GET)
@ApiOperation(value = "获取排车车辆警告信息")
@IgnoreClientToken
@IgnoreUserToken
public ObjectRestResponse<Map<String, Object>> getVehicleWarningMsg(VehiclePlanDto vehiclePlanDto) {
//获取警告信息
List<VehicleWarningMsgQueryVo> vehicleWarningMsgs = vehicleWarningMsgBiz.getAllByParam(vehiclePlanDto);
//获取列表
Map<String, Object> map = Maps.newHashMap();
map.put("vehicleWarningMsgs",vehicleWarningMsgs);
return ObjectRestResponse.succ(map);
}
@RequestMapping(value = "/app/unauth/getVehicleTotalMsg", method = RequestMethod.GET)
@ApiOperation(value = "获取排车车辆统计信息")
@IgnoreClientToken
@IgnoreUserToken
public ObjectRestResponse<Map<String, Object>> getVehicleTotalMsg(VehiclePlanDto vehiclePlanDto) {
//获取统计信息
List<VehicleCountVo> vehicleCountVos = baseBiz.countVehicleByParam(vehiclePlanDto);
//获取列表
Map<String, Object> map = Maps.newHashMap();
map.put("vehicleCountVos",vehicleCountVos);
return ObjectRestResponse.succ(map);
}
/**
* 保存
......
......@@ -9,14 +9,14 @@
<property name="path" value="logs"></property>
<property name="maxHistory" value="30"/>
<property name="maxFileSize" value="50MB"/>
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<charset>UTF-8</charset> <!-- 设置字符集 -->
</encoder>
</appender>
......@@ -32,8 +32,7 @@
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
......@@ -54,8 +53,7 @@
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
......@@ -76,8 +74,7 @@
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
......@@ -99,8 +96,7 @@
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
......
......@@ -21,6 +21,10 @@
select * from vehicle_book_hour_info
where vehicle_id = #{vehicleId} and book_record_id = #{bookRecordId} and year_month_day = #{yearMonthDay}
</select>
<select id="selectByBookRecordId" parameterType="java.lang.Integer" resultType="com.xxfc.platform.vehicle.entity.VehicleBookHourInfo">
select * from vehicle_book_hour_info
where book_record_id = #{bookRecordId}
</select>
<select id="selectByVehicleAndDateList" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleBookHourInfo">
select * from vehicle_book_hour_info
where vehicle_id = #{vehicleId} and year_month_day in
......
......@@ -6,6 +6,10 @@
<association property="vehicle" column="vehicle_id" select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectById" />
</resultMap>
<resultMap id="getVehicleHourMap" type="com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo">
<association property="vehicleBookHourInfo" column="id" select="com.xxfc.platform.vehicle.mapper.VehicleBookHourInfoMapper.selectByBookRecordId" />
</resultMap>
<update id="changeRecordStatus" parameterType="java.util.Map">
update vehicle_book_record set
<if test="reviewerApply != null ">
......@@ -119,7 +123,8 @@
mileage_lift,
mileage_ret,
have_violation,
ret_remark
ret_remark,
order_no
)
values(
#{id},
......@@ -151,7 +156,8 @@
#{mileageLift},
#{mileageRet},
#{haveViolation},
#{retRemark}
#{retRemark},
#{orderNo}
);
</insert>
......@@ -188,7 +194,8 @@
mileage_lift,
mileage_ret,
have_violation,
ret_remark
ret_remark,
order_no
from
vehicle_book_record
where
......@@ -233,6 +240,7 @@
vbr.mileage_ret,
vbr.have_violation,
vbr.ret_remark,
vbr.order_no,
v.`code` as vehicleCode,
v.number_plate as numberPlate,
v.subordinate_branch,
......@@ -324,48 +332,17 @@
vbr.mileage_lift,
vbr.mileage_ret,
vbr.have_violation,
vbr.ret_remark
vbr.ret_remark,
vbr.order_no
from ${tbName} vbr
where id = #{id}
</select>
<select id="getByVehicleId" parameterType="java.lang.String" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord" >
select
vbr.`id`,
vbr.`vehicle_id`,
vbr.`status`,
vbr.`book_type`,
vbr.`book_user`,
vbr.`book_user_name`,
vbr.`contact_info`,
vbr.`book_start_date`,
vbr.`book_end_date`,
vbr.`lift_location`,
vbr.`lift_addr`,
vbr.`remark`,
vbr.`create_time`,
vbr.`update_time`,
vbr.`destination`,
vbr.`reviewer_apply`,
vbr.`reviewer_name_apply`,
vbr.`reviewer_return`,
vbr.`reviewer_name_return`,
vbr.`reviewer_cancel`,
vbr.`reviewer_name_cancel`,
vbr.`actual_start_date`,
vbr.`actual_end_date`,
vbr.`reviewer_lift`,
vbr.`reviewer_name_lift`,
vbr.lift_company,
vbr.lift_remark,
vbr.ret_company,
vbr.mileage_lift,
vbr.mileage_ret,
vbr.have_violation,
vbr.ret_remark
from vehicle_book_record vbr
where vehicle_id = #{vehicleId}
SELECT v1.*, conv(v2.booked_hour,10,2) startHour,conv(v3.booked_hour,10,2) endHour from vehicle_book_record v1
LEFT JOIN vehicle_book_hour_info v2 on v2.book_record_id = v1.id and YEAR(v2.year_month_day) = YEAR(v1.book_start_date) AND MONTH(v2.year_month_day) = MONTH(v1.book_start_date) AND DAY(v2.year_month_day) =DAY(v1.book_start_date)
LEFT JOIN vehicle_book_hour_info v3 on v3.book_record_id = v1.id and YEAR(v3.year_month_day) = YEAR(v1.book_end_date) AND MONTH(v3.year_month_day) = MONTH(v1.book_end_date) AND DAY(v3.year_month_day) =DAY(v1.book_end_date)
where v1.vehicle_id = #{vehicleId}
</select>
<select id="getByParam" parameterType="java.util.Map" resultMap="getVehicleMap">
select v1.* from vehicle_book_record v1
......@@ -421,6 +398,7 @@
`ret_remark` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '还车备注',
`reviewer_lift` int(10) NULL DEFAULT NULL COMMENT '提车审核人',
`reviewer_name_lift` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提车审核人姓名',
`order_no` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单号',
`mileage_lift` int(10) NULL DEFAULT NULL COMMENT '提车里程数',
`mileage_ret` int(10) NULL DEFAULT NULL COMMENT '还车里程数',
`have_violation` tinyint(4) NULL DEFAULT NULL COMMENT '是否违章',
......
......@@ -421,10 +421,12 @@
</if>
</select>
<select id="getAllVehicle" parameterType="java.util.Map" resultMap="searchModel">
select *
select v1.*, bc2.name subordinateBranchName, bc3.name parkCompanyName, bc4.name destinationBranchCompanyName
from vehicle v1
-- 所属分公司
LEFT JOIN branch_company bc2 ON v1.subordinate_branch = bc2.id
LEFT JOIN branch_company bc3 ON v1.park_branch_company_id = bc3.id
LEFT JOIN branch_company bc4 ON v1.expect_destination_branch_company_id = bc4.id
<where>
<if test="startTime != null">
and v1.create_time between #{startTime} and #{endTime}
......
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