Commit 2c2693f0 authored by hezhen's avatar hezhen

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

parents 92797cf8 17a64dc8
......@@ -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.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);
}
......
package com.xxfc.platform.app.biz;
import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.alibaba.fastjson.JSON;
import com.github.wxiaoqi.security.common.msg.TableResultResponse;
import com.github.wxiaoqi.security.common.util.EntityUtils;
......@@ -37,11 +39,13 @@ public class CofigBiz extends BaseBiz<CofigMapper,Cofig> {
* @param cofig
* @return
*/
@CacheClear(pre = "app:withdrawrule:",key = "config{1}")
public int updateConfig(Cofig cofig) {
EntityUtils.setUpdatedInfo(cofig);
return mapper.updateByPrimaryKeySelective(cofig);
}
@Cache(key = "app:withdrawrule:88")
public WithDrawRuleVo getWithDrawRule(){
WithDrawRuleVo withDrawRuleVo = new WithDrawRuleVo();
Example example = new Example(Cofig.class);
......
......@@ -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;
......@@ -83,6 +82,11 @@ public class MsgBiz {
}
public ObjectRestResponse getHotMsgList(Integer page, Integer limit) {
AppUserDTO appUserDTO = userBiz.getUserInfo();
Integer userId = null;
if(appUserDTO != null) {
userId = appUserDTO.getImUserid();
}
log.info("获取消息列表: page = {}, limit = {}, type = {}", page, limit);
page = page == null ? 1 : page;
limit = limit == null ? 10 : limit;
......@@ -94,7 +98,7 @@ public class MsgBiz {
int totalSize = mongoTemplate.find(query, Msg.class, "s_msg").size();
query.with(pageable);
query.with(new Sort(Sort.Direction.DESC, "count.praise"));
List<Msg> msgList = mongoTemplate.find(query, Msg.class, "s_msg");
List<Msg> msgList = fetchAndAttach(mongoTemplate.find(query, Msg.class, "s_msg"), userId);
PageInfo<MsgVo> goodPageInfo = new PageInfo<>(replaceMsgResult(msgList));
goodPageInfo.setPageSize(totalSize%limit == 0 ?totalSize/limit : totalSize/limit + 1);
return ObjectRestResponse.succ(goodPageInfo);
......@@ -158,7 +162,7 @@ public class MsgBiz {
public boolean exists(int userId, ObjectId msgId) {
Query query = new Query(Criteria.where("msgId").is(msgId).and("userId").is(userId));
List<Praise> praise = mongoTemplate.find(query, Praise.class, "s_praise");
return 0 != praise.size();
return praise.size() > 0 ? true :false;
}
/**
......@@ -171,7 +175,7 @@ public class MsgBiz {
public boolean existsCollect(int userId, ObjectId msgId) {
Query query = new Query(Criteria.where("msgId").is(msgId).and("userId").is(userId));
List<Comment> comments = mongoTemplate.find(query, Comment.class, "s_comment");
return 0 != comments.size();
return comments.size() > 0 ? true :false;
}
public List<MsgVo> replaceMsgResult(List<Msg> list) {
......@@ -185,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);
......
......@@ -19,7 +19,7 @@
<select id="selectByQuestionId" resultType="com.xxfc.platform.im.entity.ImComment" parameterType="java.lang.Long">
select * from im_comment
where question_id = #{questionId} and is_del = 0
order by upd_time
order by time DESC
</select>
</mapper>
\ No newline at end of file
......@@ -17,7 +17,7 @@
<select id="selectByQuestionId" resultType="com.xxfc.platform.im.entity.ImPraise" parameterType="java.lang.Long">
select * from im_praise
where question_id = #{questionId} and is_del = 0 and visible = 1
order by upd_time
order by time DESC
</select>
<select id="selectByQuestionIdAndTime" resultType="com.xxfc.platform.im.entity.ImPraise" parameterType="com.xxfc.platform.im.dto.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;
......@@ -118,8 +119,16 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
return v;
}).collect(Collectors.toList()));
}
}
//判断是否价格为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(detail.getOrder().getNo(), null, detail.getOrderOrigin());
}
}
/**
* 计算价格
* @param detail
......
......@@ -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
*/
......
......@@ -38,6 +38,8 @@ public class UsableVeicleDTO extends PageParam {
String catasStr;
@ApiModelProperty(value = "分类列表", hidden = true)
Map<Integer, List<VehiclePlatCata>> catas;
@ApiModelProperty("停靠公司")
String parkBranchCompanyId;
@ApiModelProperty(hidden = true)
Boolean yearNo4Where;
......
......@@ -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;
......
......@@ -991,10 +991,6 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
if(StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) {
initBookSearchParam(dto, params);
}
// PageHelper.startPage(dto.getPage(), dto.getLimit());
// List<UsableVehicleModelVO> lists = mapper.searchUsableModel(params);
// PageInfo<UsableVehicleModelVO> usableVehicleModel = new PageInfo<>(lists);
// return PageDataVO.pageInfo(usableVehicleModel);
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params));
}
......@@ -1161,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}
......@@ -559,6 +561,9 @@
<if test=" hotSign != null ">
and vm.hot_sign = #{hotSign}
</if>
<if test=" parkBranchCompanyId != null ">
and v.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
</sql>
......
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