Commit b2a0976d authored by hezhen's avatar hezhen

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

parents 2cbbf54d 419ba1c3
......@@ -31,4 +31,8 @@ public class CommonBaseController {
public String getCurrentUserName(){
return BaseContextHandler.getUsername();
}
public String getCurrentUserId(){
return BaseContextHandler.getUserID();
}
}
......@@ -249,6 +249,18 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
return phoneAndUserIdMap;
}
public Map<String, Integer> findPhoneAndUserIdMapByPhonesForDel(List<String> phones) {
Example example = new Example(AppUserLogin.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("username",phones);
List<AppUserLogin> appUserLogins = mapper.selectByExample(example);
Map<String, Integer> phoneAndUserIdMap = null;
if (CollectionUtils.isNotEmpty(appUserLogins)) {
phoneAndUserIdMap = appUserLogins.parallelStream().collect(Collectors.toMap(AppUserLogin::getUsername, AppUserLogin::getId));
}
return phoneAndUserIdMap;
}
public Map<Integer, AppUserLogin> findUserIdAndUserLoginMapByMemberIds(List<Integer> memberIds) {
Map<Integer, AppUserLogin> userIdAndAppUserLoginMap = new HashMap<>();
List<AppUserLogin> appUserLogins = mapper.selectByIdList(memberIds);
......
......@@ -52,7 +52,7 @@ public class DataController {
@GetMapping("/clearwithphone")
public ObjectRestResponse<Void> clearData(@RequestParam("phones") List<String> phons) {
Map<String, Integer> phoneAndUserIdMapByPhones = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phons);
Map<String, Integer> phoneAndUserIdMapByPhones = appUserLoginBiz.findPhoneAndUserIdMapByPhonesForDel(phons);
if (Objects.nonNull(phoneAndUserIdMapByPhones)) {
Collection<Integer> userIds = phoneAndUserIdMapByPhones.values();
//1.删除登录表信息
......@@ -80,7 +80,7 @@ public class DataController {
@GetMapping("/clear_relation_withphone")
public ObjectRestResponse<Void> clearRelationphone(@RequestParam("phones") List<String> phons) {
Map<String, Integer> phoneAndUserIdMapByPhones = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phons);
Map<String, Integer> phoneAndUserIdMapByPhones = appUserLoginBiz.findPhoneAndUserIdMapByPhonesForDel(phons);
if (Objects.nonNull(phoneAndUserIdMapByPhones)) {
Collection<Integer> userIds = phoneAndUserIdMapByPhones.values();
appUserRelationBiz.deleteByMemberIds(userIds);
......
package com.github.wxiaoqi.security.admin.rpc.service;
import cn.hutool.json.JSONUtil;
import com.ace.cache.annotation.CacheClear;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.constant.RedisKey;
......@@ -252,8 +251,15 @@ public class AppPermissionService {
if (StringUtils.isBlank(username) || StringUtils.isBlank(password) || StringUtils.isBlank(mobilecode)) {
return JsonResultUtil.createFailedResult(ResultCode.NULL_CODE, "参数为空");
}
if(StringUtils.isNotBlank(code)&&appUserDetailBiz.getUserByCode(code)==0){
return JsonResultUtil.createFailedResult(ResultCode.NOTEXIST_CODE, "邀请人不存在");
if (StringUtils.isNotBlank(code)){
//判断处理活动关键字
String[] codes = code.split("_");
if(codes.length > 1) {
String userCode = codes[0];
if(appUserDetailBiz.getUserByCode(userCode)==0) {
return JsonResultUtil.createFailedResult(ResultCode.NOTEXIST_CODE, "邀请人不存在");
}
}
}
String redisLockKey = RedisKey.CONSTANT_CODE_PREFIX + username + mobilecode;
String mobilecodeRedis = userRedisTemplate.opsForValue().get(redisLockKey) == null ? "" : userRedisTemplate.opsForValue().get(redisLockKey).toString();
......
......@@ -8,6 +8,7 @@ import tk.mybatis.mapper.code.IdentityDialect;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.math.BigInteger;
@Data
......@@ -61,4 +62,7 @@ public class ActivityPopup {
@Column(name = "time_type")
private Integer timeType;
@Column(name = "activity_id")
private Integer activityId;
}
......@@ -36,7 +36,7 @@ import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TR
*/
@Service
@Slf4j
public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper,ActivityPopularize> {
public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, ActivityPopularize> {
@Autowired
ActivityPopularizeRelationBiz relationBiz;
......@@ -66,16 +66,17 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper,Acti
public static final Integer INVITE_ITEMID = 3;
public void handleRegister(RegisterQueueDTO registerQueueDTO) {
log.info("活动码注册成功:registerQueueDTO = {}", registerQueueDTO.toString());
if (StringUtils.isNotBlank(registerQueueDTO.getInParamDTO().getActivityCode())) {
String activityCode = registerQueueDTO.getInParamDTO().getActivityCode().replace(PREFIX, "");
String activityCode = registerQueueDTO.getInParamDTO().getActivityCode().replace(PREFIX, "").replace("p", "");
AppUserDTO appUserDTO = userFeign.userDetailById(registerQueueDTO.getAppUserId()).getData();
//获取活动code,并且注册来源是app 并且 非普通登录
if(!RegisterQueueDTO.SIGN_LOGIN.equals(registerQueueDTO.getSign()) && StringUtils.isNotBlank(activityCode)) {
if (!RegisterQueueDTO.SIGN_LOGIN.equals(registerQueueDTO.getSign()) && StringUtils.isNotBlank(activityCode)) {
//查询出活动
ActivityPopularize activityPopularize = popularizeBiz.selectOne(new ActivityPopularize(){{
ActivityPopularize activityPopularize = popularizeBiz.selectOne(new ActivityPopularize() {{
setCode(activityCode);
}});
log.info("活动邀请注册:activityPopularize = {}", activityPopularize.toString());
if (activityPopularize != null) {
List<ActivityPopularizeItem> activityPopularizeItems = activityPopularizeItemBiz.selectByPopularizeId(activityPopularize.getId());
ActivityPopularizeItem activityPopularizeItem = activityPopularizeItems.get(activityPopularizeItems.size() - 1);
......@@ -84,13 +85,13 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper,Acti
Date end = DateUtil.date(activityPopularize.getEndTime());
//判断是否活动超时
if(now.before(start) || now.after(end)) {
log.error("不在活动范围内 入参Json:"+ JSONUtil.toJsonStr(registerQueueDTO));
if (now.before(start) || now.after(end)) {
log.error("不在活动范围内 入参Json:" + JSONUtil.toJsonStr(registerQueueDTO));
return;
}
Integer majorUserId = Integer.valueOf(appUserDTO.getInviterAccount());
ActivityPopularizeRelation activityPopularizeRelation = new ActivityPopularizeRelation(){{
ActivityPopularizeRelation activityPopularizeRelation = new ActivityPopularizeRelation() {{
setMajorUserId(majorUserId);
setPopularizeId(activityPopularize.getId());
}};
......@@ -98,35 +99,36 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper,Acti
//新增第几个邀请人和邀请金额字段
Integer num = relationBiz.getByUserIdAndPopularizeId(activityPopularizeRelation);
BigDecimal amount = new BigDecimal(0);
double amount = 0;
JSONObject jsonObject = JSONObject.parseObject(activityPopularizeItem.getDetail());
if (jsonObject != null && StringUtils.isNotBlank(jsonObject.getString("detail"))) {
JSONArray jsonArray = JSONArray.parseArray(jsonObject.getString("detail"));
if (jsonArray != null) {
JSONObject jsonObject1 = jsonArray.getJSONObject(num - 1);
if (jsonObject1 != null) {
String amountString = jsonObject1.getString("amount");
amount.add(new BigDecimal(amountString));
double amountString = jsonObject1.getInteger("amount");
amount = amount + amountString;
}
}
}
double a = amount;
//添加活动关系
relationBiz.insertSelective(new ActivityPopularizeRelation(){{
relationBiz.insertSelective(new ActivityPopularizeRelation() {{
setPopularizeId(activityPopularize.getId());
setMajorUserId(majorUserId);
setMinorUserId(appUserDTO.getUserid());
setNum(num);
setAmount(amount);
setAmount(new BigDecimal(a));
}});
ApLogDTO apLogDTO = popularizeLogBiz.selectOneApLogDTO(new ActivityPopularizeLog(){{
ApLogDTO apLogDTO = popularizeLogBiz.selectOneApLogDTO(new ActivityPopularizeLog() {{
setUserId(majorUserId);
setItemId(activityPopularizeItem.getId());
}});
//生成任务项
if(null == apLogDTO){
popularizeLogBiz.insertSelectiveRe(new ActivityPopularizeLog(){{
if (null == apLogDTO) {
popularizeLogBiz.insertSelectiveRe(new ActivityPopularizeLog() {{
setItemId(activityPopularizeItem.getId());
setUserId(majorUserId);
setStatus(SYS_FALSE);
......@@ -135,26 +137,36 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper,Acti
}
//查出majorUser参与活动信息
ActivityPopularizeUser activityPopularizeUser = popularizeUserBiz.selectOne(new ActivityPopularizeUser(){{
ActivityPopularizeUser activityPopularizeUser = popularizeUserBiz.selectOne(new ActivityPopularizeUser() {{
setUserId(majorUserId);
setPopularizeId(activityPopularize.getId());
}});
double currentProgress = activityPopularizeUser.getCurrentProgress().doubleValue();
log.info("用户原活动进度:currentProgress = {}", currentProgress);
currentProgress += Double.parseDouble(a + "");
BigDecimal bigDecimal = new BigDecimal(currentProgress);
log.info("用户现活动进度:newCurrentProgress = {}", currentProgress);
if (activityPopularizeUser.getEndProgress().compareTo(bigDecimal) != 0) {
activityPopularizeUser.setStatus(0);
} else {
activityPopularizeUser.setStatus(1);
}
//修改当前进度
activityPopularizeUser.setCurrentProgress(activityPopularizeUser.getCurrentProgress().add(amount));
activityPopularizeUser.setCurrentProgress(bigDecimal);
popularizeUserBiz.updateSelectiveById(activityPopularizeUser);
//任务没有完成
if(!SYS_TRUE.equals(activityPopularizeUser.getStatus())) {
if (!SYS_TRUE.equals(activityPopularizeUser.getStatus())) {
// AwardDTO awardDTO = JSONUtil.toBean(activityPopularize.getValue(), AwardDTO.class);
//检查是否满足奖励
if(relationBiz.selectList(new ActivityPopularizeRelation(){{
if (relationBiz.selectList(new ActivityPopularizeRelation() {{
setMajorUserId(majorUserId);
setPopularizeId(activityPopularize.getId());
}}).size() >= 2) {
}}).size() >= 10) {
apLogDTO.setStatus(SYS_TRUE);
popularizeLogBiz.updateSelectiveById(BeanUtil.toBean(apLogDTO, ActivityPopularizeLog.class));
activityPopularizeUser.setStatus(SYS_TRUE);
activityPopularizeUser.setCurrentProgress(new BigDecimal(apLogDTO.getItem().getProgress()));
popularizeUserBiz.updateSelectiveById(activityPopularizeUser);
mqSenderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, RabbitConstant.KEY_WALLET_ADD, JSONUtil.toJsonStr(new MyWalletDetail(){{
mqSenderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, RabbitConstant.KEY_WALLET_ADD, JSONUtil.toJsonStr(new MyWalletDetail() {{
setAmount(new BigDecimal("50"));
setSource(SOURCE_ACTIVITY);
setUserId(majorUserId);
......
......@@ -30,7 +30,7 @@ public class ActivityPopularizeRelationBiz extends BaseBiz<ActivityPopularizeRel
}
public Integer getByUserIdAndPopularizeId(ActivityPopularizeRelation activityPopularizeRelation) {
Integer num = mapper.getByUserIdAndPopularizeId(activityPopularizeRelation);
return num == null ? 1 : num;
Integer num = mapper.getByUserIdAndPopularizeId(activityPopularizeRelation);
return num == null ? 1 : num + 1 ;
}
}
\ No newline at end of file
package com.xxfc.platform.activity.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import org.springframework.stereotype.Service;
import com.google.common.collect.Maps;
import com.xxfc.platform.activity.entity.ActivityPopularizeUser;
import com.xxfc.platform.activity.mapper.ActivityPopularizeUserMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
import java.util.Map;
/**
* 用户与推广活动(邀请有礼)的关系表
......@@ -19,19 +20,39 @@ import java.util.List;
* @date 2019-07-05 15:23:04
*/
@Service
public class ActivityPopularizeUserBiz extends BaseBiz<ActivityPopularizeUserMapper,ActivityPopularizeUser> {
public ActivityPopularizeUser insertSelectiveReT(ActivityPopularizeUser entity) {
if(insertSelectiveRe(entity) > 0) {
return selectById(entity.getId());
}else {
throw new BaseException(ResultCode.DB_OPERATION_FAIL_CODE);
}
}
public class ActivityPopularizeUserBiz extends BaseBiz<ActivityPopularizeUserMapper, ActivityPopularizeUser> {
public ActivityPopularizeUser insertSelectiveReT(ActivityPopularizeUser entity) {
if (insertSelectiveRe(entity) > 0) {
return selectById(entity.getId());
} else {
throw new BaseException(ResultCode.DB_OPERATION_FAIL_CODE);
}
}
public void deleteByUserIds(List<Integer> userIds) {
Example example = new Example(ActivityPopularizeUser.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("userId", userIds);
mapper.deleteByExample(example);
}
public void deleteByUserIds(List<Integer> userIds) {
Example example = new Example(ActivityPopularizeUser.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("userId",userIds);
mapper.deleteByExample(example);
}
public Map<Integer, Boolean> getByUserIdAndPopularizeId(Integer userId, List<Integer> popularizeIds) {
Map<Integer, Boolean> activityIds = Maps.newHashMap();
if (userId == null || popularizeIds == null) {
return activityIds;
}
popularizeIds.parallelStream().forEach(id -> {
Example example = new Example(ActivityPopularizeUser.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId", userId);
criteria.andEqualTo("popularizeId", id);
ActivityPopularizeUser activityPopularizeUsers = mapper.selectOneByExample(example);
if (activityPopularizeUsers != null) {
activityIds.put(id, true);
} else {
activityIds.put(id, false);
}
});
return activityIds;
}
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ import com.xxfc.platform.activity.entity.ActivityPopup;
import com.xxfc.platform.activity.entity.ActivityPopupUser;
import com.xxfc.platform.activity.mapper.ActivityPopupMapper;
import com.xxfc.platform.activity.mapper.ActivityPopupUserMapper;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
......@@ -16,10 +17,8 @@ import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.swing.plaf.synth.SynthEditorPaneUI;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.time.Instant;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -38,6 +37,9 @@ public class ActivityPopupBiz extends BaseBiz<ActivityPopupMapper, ActivityPopup
@Autowired
private ActivityPopupUserBiz activityPopupUserBiz;
@Autowired
private ActivityPopularizeUserBiz activityPopularizeUserBiz;
/**
* 获取活动弹窗,根据是否登录
*
......@@ -50,7 +52,7 @@ public class ActivityPopupBiz extends BaseBiz<ActivityPopupMapper, ActivityPopup
if (activityPopups == null || activityPopups.size() == 0) {
return activityPopups;
}
List<Integer> collect = activityPopups.parallelStream().map(ActivityPopup::getId).collect(Collectors.toList());
/* List<Integer> collect = activityPopups.parallelStream().map(ActivityPopup::getId).collect(Collectors.toList());
Example exaple = Example.builder(ActivityPopupUser.class)
.where(WeekendSqls.<ActivityPopupUser>custom()
.andEqualTo(ActivityPopupUser::getUserId, userInfo.getUserid())
......@@ -60,13 +62,22 @@ public class ActivityPopupBiz extends BaseBiz<ActivityPopupMapper, ActivityPopup
if (activityPopupUsers == null || activityPopupUsers.size() == 0) {
return activityPopups;
}
Set<Integer> popupIdSet = activityPopupUsers.parallelStream().map(ActivityPopupUser::getPopupId).collect(Collectors.toSet());
Set<Integer> popupIdSet = activityPopupUsers.parallelStream().map(ActivityPopupUser::getPopupId).collect(Collectors.toSet());*/
List<ActivityPopup> result = new ArrayList<>();
List<Integer> activityIds = activityPopups.stream().map(ActivityPopup::getActivityId).collect(Collectors.toList());
activityIds = CollectionUtils.isEmpty(activityIds)? Collections.EMPTY_LIST:activityIds;
Map<Integer, Boolean> activityPopularizeUserMap = activityPopularizeUserBiz.getByUserIdAndPopularizeId(userInfo.getUserid(), activityIds);
for (ActivityPopup activityPopup : activityPopups) {
if (popupIdSet.add(activityPopup.getId())) {
result.add(activityPopup);
}
/*if (popupIdSet.add(activityPopup.getId())) {*/
boolean flag = activityPopularizeUserMap.isEmpty() ||
activityPopularizeUserMap.get(activityPopup.getActivityId()) == null ||
activityPopularizeUserMap.get(activityPopup.getActivityId()).equals(Boolean.FALSE);
if (flag) {
result.add(activityPopup);
}
// }
}
return result;
} else {
......@@ -85,17 +96,34 @@ public class ActivityPopupBiz extends BaseBiz<ActivityPopupMapper, ActivityPopup
private List<ActivityPopup> getActivityPopupByTypes(String Types) {
long timeMillis = System.currentTimeMillis();
//获取有期限的弹窗timeType=1
Example exa = Example.builder(ActivityPopup.class)
.where(
Example exa = new Example(ActivityPopup.class);
/* .where(
WeekendSqls.<ActivityPopup>custom()
.andEqualTo(ActivityPopup::getTimeType, 1)
.andGreaterThanOrEqualTo(ActivityPopup::getEndTime, BigInteger.valueOf(timeMillis))
.andLessThanOrEqualTo(ActivityPopup::getStartTime, BigInteger.valueOf(timeMillis))
.andGreaterThanOrEqualTo(ActivityPopup::getStartTime, BigInteger.valueOf(timeMillis))
.andLessThanOrEqualTo(ActivityPopup::getEndTime, BigInteger.valueOf(timeMillis))
.andIn(ActivityPopup::getType, Arrays.asList(Types.split(",")))
.andEqualTo(ActivityPopup::getStatus, 1)
.andEqualTo(ActivityPopup::getIsDel, 0)
).orderByAsc("sort").build();
).orderByAsc("sort").build();*/
Example.Criteria criteria = exa.createCriteria();
exa.orderBy("sort").asc();
criteria.andEqualTo("timeType",1);
criteria.andIn("type",Arrays.asList(Types.split(",")));
criteria.andEqualTo("status",1);
criteria.andEqualTo("isDel",0);
criteria.orLessThanOrEqualTo("endTime",BigInteger.valueOf(timeMillis));
Example.Criteria exaCriteria = exa.createCriteria();
exa.orderBy("sort").asc();
criteria.andEqualTo("timeType",1);
criteria.andIn("type",Arrays.asList(Types.split(",")));
criteria.andEqualTo("status",1);
criteria.andEqualTo("isDel",0);
criteria.orGreaterThanOrEqualTo("startTime",BigInteger.valueOf(timeMillis));
exa.or(exaCriteria);
List<ActivityPopup> activityPopups = mapper.selectByExample(exa);
//获取永久的弹窗timeType=0
......
......@@ -27,6 +27,6 @@
</select>
<select id="getByUserIdAndPopularizeId" parameterType="com.xxfc.platform.activity.entity.ActivityPopularizeRelation" resultType="Integer">
select num from activity_popularize_relation where major_user_id = #{majorUserId} and popularize_id = #{popularizeId} ORDER BY crt_time DESC LIMIT 1
select MAX(num) from activity_popularize_relation where major_user_id = #{majorUserId} and popularize_id = #{popularizeId} ORDER BY crt_time DESC LIMIT 1
</select>
</mapper>
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.xxfc.platform.im.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
......@@ -13,6 +14,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.RandomUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import com.xxfc.platform.im.dto.CommentVo;
......@@ -88,9 +90,7 @@ public class MsgBiz {
goodPageInfo.setPageSize(totalSize % limit == 0 ? totalSize / limit : totalSize / limit + 1);
return ObjectRestResponse.succ(goodPageInfo);
} else {
List<Integer> ids = new ArrayList<>();
ids.add(2);
ids.add(4);
List<Integer> ids = getType();
query = new Query(Criteria.where("body.type").in(ids).and("visible").is(1));
int totalSize = mongoTemplate.find(query, Msg.class, "s_msg").size();
query.with(pageable);
......@@ -113,9 +113,7 @@ public class MsgBiz {
page = page == null ? 1 : page;
limit = limit == null ? 10 : limit;
Pageable pageable = PageRequest.of(--page, limit);
List<Integer> ids = new ArrayList<>();
ids.add(2);
ids.add(4);
List<Integer> ids = getType();
Query query = new Query(Criteria.where("body.type").in(ids).and("count.praise").gt(getNumber()).and("visible").is(1));
int totalSize = mongoTemplate.find(query, Msg.class, "s_msg").size();
query.with(pageable);
......@@ -370,6 +368,17 @@ public class MsgBiz {
}
public List<Integer> getType() {
List<Integer> list = Lists.newArrayList();
Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(IM_TYPE, DictionaryKey.IM_MSG_TYPE_LIST);
if (dictionary != null && StringUtils.isNotBlank(dictionary.getDetail())) {
log.info("查询IM限制数为字典表的结果为: dictionary = {}", dictionary.toString());
list = JSONArray.parseArray( dictionary.getDetail(), Integer.class);
}
return list;
}
/**
* 后台管理接口
*/
......@@ -427,9 +436,7 @@ public class MsgBiz {
goodPageInfo.setTotal(totalSize);
return ObjectRestResponse.succ(goodPageInfo);
} else {
List<Integer> ids = new ArrayList<>();
ids.add(2);
ids.add(4);
List<Integer> ids = getType();
query = new Query(Criteria.where("body.type").in(ids));
int totalSize = mongoTemplate.find(query, Msg.class, "s_msg").size();
query.with(pageable);
......
......@@ -357,21 +357,17 @@ public class OrderRentVehicleDetail implements Serializable {
@ApiModelProperty(value = "延期结束时间")
private Long delayAddEndTime;
public Long obtainRealEndTime() {
if(null != getDelayAddEndTime()) {
return getDelayAddEndTime();
}else {
return getEndTime();
}
@Column(name = "meta_end_time")
@ApiModelProperty(value = "原结束时间")
private Long metaEndTime;
public Long getEndTime() {
return endTime;
}
// public Integer obtainRealDayNum() {
// if(null != getDelayAddDays()) {
// return (getDelayAddDays() + getDayNum());
// }else {
// return getDayNum();
// }
// }
public void setEndTime(Long endTime) {
this.endTime = endTime;
}
public Integer obtainRealDayNum() {
return this.dayNum + this.delayAddDays;
......
......@@ -341,7 +341,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
DedDetailDTO dedDetailDTO = new DedDetailDTO();
//提前还车,结束时间大于当前时间
Long nowTime = System.currentTimeMillis();
Long endTime = orderPageVO.getOrderRentVehicleDetail().obtainRealEndTime();
Long endTime = orderPageVO.getOrderRentVehicleDetail().getEndTime();
Long startTime = orderPageVO.getOrderRentVehicleDetail().getStartTime();
//设置使用天数
......
......@@ -237,7 +237,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
OrderRentVehicleDetail orderRentVehicleDetail = orderRentVehicleBiz.selectById(baseOrder.getDetailId());
if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.DEPARTURE.getCode()) {
boolean flag = getTodayTime(orderRentVehicleDetail.getStartTime(), orderRentVehicleDetail.obtainRealEndTime());
boolean flag = getTodayTime(orderRentVehicleDetail.getStartTime(), orderRentVehicleDetail.getEndTime());
if (!flag) {
return ObjectRestResponse.createFailedResult(3502, "已超过预定还车时间,不能进行交车操作!");
}
......
......@@ -2,9 +2,6 @@ package com.xxfc.platform.order.biz.inner;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
......@@ -12,18 +9,13 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.calculate.InProgressVO;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
import com.xxfc.platform.order.contant.enumerate.OrderLogEnum;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.pojo.order.DelayRentOrderDTO;
import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.order.VehicleItemDTO;
import com.xxfc.platform.order.pojo.price.CancelNoStartVO;
import com.xxfc.platform.order.pojo.price.CancelStartedVO;
import com.xxfc.platform.order.pojo.price.CostDetailExtend;
import com.xxfc.platform.order.pojo.price.DelayAddPriceVO;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.universal.constant.DictionaryKey;
......@@ -33,23 +25,18 @@ import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.BookVehicleVO;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.mockito.internal.util.collections.Sets;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.Column;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_JSON_TRUE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.universal.constant.DictionaryKey.*;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
/**
* 订单退款记录表
......@@ -172,13 +159,15 @@ public class OrderDelayBiz {
//根据订单号获取订单
RestResponse restResponse = vehicleFeign.updateOrderBookRecord(new BookVehicleVO() {{
setVehicleId(orderPageVO.getOrderRentVehicleDetail().getVehicleId());
setBookStartDate(dto.getBookStartDate());
setBookEndDate(dto.getBookEndDate());
setVehicleBookRecordId(orvd.getBookRecordId());
setBookStartDate(dto.getBookStartDateTime());
setBookEndDate(dto.getBookEndDateTime());
setBookStartDateTime(dto.getBookStartDateTime());
setBookEndDateTime(dto.getBookEndDateTime());
setBookType(BOOK_TYPE_RENT);
}});
if( !SYS_TRUE.equals(restResponse.getCode())) {
if( !SYS_JSON_TRUE.equals(restResponse.getStatus())) {
throw new BaseException(ResultCode.FAILED_CODE, Sets.newSet("延期失败"));
}
cloudTransact = 1;
......@@ -203,6 +192,8 @@ public class OrderDelayBiz {
orvd.setDelayAddDays(delayAddDays);
orvd.setDelayAddFreeDays(delayAddFreeDays);
orvd.setDelayAddEndTime(dto.getDelayEndTime());
//修改还车时间
orvd.setEndTime(dto.getDelayEndTime());
DelayAddPriceVO delayAddPriceVO = new DelayAddPriceVO(){{
setDamageSafePrice(new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.DAMAGE_SAFE).getDetail()));
setDelayAddDays(orvd.getDelayAddDays());
......
......@@ -506,7 +506,7 @@ public class OrderMsgBiz {
private void handelSmsParam(OrderRentVehicleDetail orvd, BaseOrder baseOrder, List<String> smsParams, AppUserDTO appUserDTO, int handelType) {
if(RENT_DELIVERY == handelType) {
smsParams.add(appUserDTO.obtainRealname());
smsParams.add(DateUtil.formatDateTime(DateUtil.date(orvd.obtainRealEndTime())));
smsParams.add(DateUtil.formatDateTime(DateUtil.date(orvd.getEndTime())));
smsParams.add(orvd.getEndAddr());
smsParams.add(baseOrder.getName());
smsParams.add(appUserDTO.getUsername());
......@@ -516,7 +516,7 @@ public class OrderMsgBiz {
smsParams.add(orvd.getStartAddr());
smsParams.add(orvd.getEndAddr());
smsParams.add(DateUtil.formatDateTime(DateUtil.date(orvd.getStartTime())));
smsParams.add(DateUtil.formatDateTime(DateUtil.date(orvd.obtainRealEndTime())));
smsParams.add(DateUtil.formatDateTime(DateUtil.date(orvd.getEndTime())));
smsParams.add(orvd.obtainRealDayNum().toString());
smsParams.add(appUserDTO.getUsername());
}
......
......@@ -434,9 +434,9 @@ public class BackStageOrderController extends CommonBaseController implements Us
bo.setOrder(orderPageVO);
bo.setBookVehicleVO(new BookVehicleVO() {{
setBookStartDate(YMR_SLASH_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.getStartTime()), ZoneOffset.ofHours(8))));
setBookEndDate(YMR_SLASH_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.obtainRealEndTime()), ZoneOffset.ofHours(8))));
setBookEndDate(YMR_SLASH_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.getEndTime()), ZoneOffset.ofHours(8))));
setBookStartDateTime(DATE_TIME_LINE_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.getStartTime()), ZoneOffset.ofHours(8))));
setBookEndDateTime(DATE_TIME_LINE_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.obtainRealEndTime()), ZoneOffset.ofHours(8))));
setBookEndDateTime(DATE_TIME_LINE_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.getEndTime()), ZoneOffset.ofHours(8))));
}});
List<OrderAccompanyDTO> oads = JSONUtil.toList(JSONUtil.parseArray(orderItemBiz.selectOne(new OrderItem() {{
......@@ -457,12 +457,13 @@ public class BackStageOrderController extends CommonBaseController implements Us
return ObjectRestResponse.succ();
}
@ApiOperation("修改租车订单延")
@ApiOperation("修改租车订单延长时间")
@RequestMapping(value = "/baseOrder/bg/delay-rent-order", method = RequestMethod.POST)
@IgnoreClientToken
@ResponseBody
public ObjectRestResponse<OrderPageVO> delayRentOrder(@RequestBody DelayRentOrderDTO dto) {
checkAdminUser();
dto.setOperateId(Integer.valueOf("-1"+ getCurrentUserId()));
Query query = baseOrderBiz.initBgQuery(dto.getNo());
......
......@@ -207,6 +207,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
bo.getOrder().setCrtUser(bo.getCrtUser());
}
//
bo.setMetaEndTime(bo.getEndTime());
super.handleDetail(bo);
}catch (Exception e) {
//事务补偿处理
......
......@@ -37,6 +37,12 @@ public class DictionaryKey {
* IM限制条数
*/
public static final String MSG_LIMIT_NUMBER = "MSG_LIMIT_NUMBER";
/**
*
*/
public static final String IM_MSG_TYPE_LIST = "IM_MSG_TYPE_LIST";
/**
* 支付
*/
......
......@@ -186,4 +186,8 @@ public class VehicleModel implements Serializable {
@Column(name = "app_show")
@ApiModelProperty("是否在App展示")
private Integer appShow;
@Column(name = "panorama_url")
@ApiModelProperty("全景vr链接")
private String panoramaUrl;
}
......@@ -7,24 +7,30 @@ import java.util.Map;
@Data
public class BookVehicleVO {
//用途
public static final int BOOK_TYPE_RENT = 1;
/**
* 车辆id
*/
@ApiModelProperty("车辆id")
private String vehicleId;
/**
* 填写RecordId 修改日期
*/
private Long vehicleBookRecordId;
/**
* 预定目标日期(开始)
*/
@ApiModelProperty("预定目标日期(开始)")
@ApiModelProperty("预定目标日期(开始) yyyy-MM-dd HH:mm:ss")
private String bookStartDate;
/**
* 预定目标日期(结束)
*/
@ApiModelProperty("预定目标日期(结束)")
@ApiModelProperty("预定目标日期(结束) yyyy-MM-dd HH:mm:ss")
private String bookEndDate;
/**
......
......@@ -74,4 +74,10 @@ public class UsableVeicleDTO extends PageParam {
this.endDate = DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(endDateTamp), ZoneOffset.ofHours(8)));
this.endDateExtend = DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(endDateTamp), ZoneOffset.ofHours(8)).plusDays(1L));
}
// private Boolean isTest;
//
// private Integer testCompanyId;
//
// private Integer testModelId;
}
\ No newline at end of file
......@@ -402,7 +402,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
DateTime startDay = DateTime.parse(bookVehicleVo.getBookStartDate(), DATE_TIME_FORMATTER);
DateTime endDay = DateTime.parse(bookVehicleVo.getBookEndDate(), DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法
fillDateList4DatePeriod(yearMonthAndDate, DateTime.parse(startDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER), DateTime.parse(endDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER));
fillDateList4DatePeriod(yearMonthAndDate, DateTime.parse(startDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER), DateTime.parse(endDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER), bookVehicleVo.getNotCheckTimeLegal());
if (yearMonthAndDate.size() > 3) {//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH);
}
......@@ -705,7 +705,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
DateTime startDay = DateTime.parse(bookVehicleVo.getBookStartDate(), DATE_TIME_FORMATTER);
DateTime endDay = DateTime.parse(bookVehicleVo.getBookEndDate(), DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法
fillDateList4DatePeriod(yearMonthAndDate, DateTime.parse(startDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER), DateTime.parse(endDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER));
fillDateList4DatePeriod(yearMonthAndDate, DateTime.parse(startDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER), DateTime.parse(endDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER), bookVehicleVo.getNotCheckTimeLegal());
if (yearMonthAndDate.size() > 3) {//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH);
}
......@@ -827,11 +827,14 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
* @param startDay
* @param endDay
*/
private void fillDateList4DatePeriod(Map<String, List<String>> yearMonthAndDate, DateTime startDay, DateTime endDay) {
private void fillDateList4DatePeriod(Map<String, List<String>> yearMonthAndDate, DateTime startDay, DateTime endDay, Boolean notCheckTimeLegal) {
for (DateTime curDate = startDay; curDate.compareTo(endDay) <= 0; curDate = curDate.plusDays(1)) {
String curDateStr = curDate.toString(DEFAULT_DATE_TIME_FORMATTER);
if (curDateStr.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
if (!Boolean.TRUE.equals(notCheckTimeLegal)) {
//判定时间是否合法
if (curDateStr.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
}
}
String curYearMonth = curDate.toString(YEARMONTH_DATE_TIME_FORMATTER);
if (!yearMonthAndDate.containsKey(curYearMonth)) {
......
......@@ -240,7 +240,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPROVE.getCode());
bookVehicleVo.setNotCheckTimeLegal(Boolean.FALSE);
bookVehicleVo.setNotCheckTimeLegal(Boolean.TRUE);
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc();
}
......
package com.xxfc.platform.vehicle.rest;
import com.alibaba.fastjson.JSONArray;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
......@@ -172,7 +171,7 @@ public class VehicleDepartureController {
public ObjectRestResponse<OrderPageVO> getOrderDetail() {
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
String reserveType = dictionaryMap.get(VEHICE_ORDER + "_" + RESERVE).getDetail();
return ObjectRestResponse.succ(JSONArray.parse(reserveType));
return ObjectRestResponse.succ(reserveType);
}
......
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