Commit b62a6bb5 authored by libin's avatar libin

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

parents 27f1faed 21641c58
...@@ -88,6 +88,16 @@ auth: ...@@ -88,6 +88,16 @@ auth:
token-header: x-client-token token-header: x-client-token
id: ace-gate #不填则默认读取spring.application.name id: ace-gate #不填则默认读取spring.application.name
secret: 123456 secret: 123456
servlet:
multipart:
# 启用上传处理,默认是true
enabled: true
# 当上传文件达到20MB的时候进行磁盘写入
file-size-threshold: 20MB
# 设置最大的请求文件的大小
max-request-size: 50MB
# 设置单个文件的最大长度
max-file-size: 50MB
# #
# #
#ribbon: #ribbon:
......
...@@ -6,7 +6,7 @@ import java.util.List; ...@@ -6,7 +6,7 @@ import java.util.List;
import java.util.Set; import java.util.Set;
public class AppFormat { public class AppFormat {
private static final String[] format = {"ipa", "apk","pxl"}; private static final String[] format = {".ipa", ".apk",".pxl"};
private static final Set formatSet= new HashSet(Arrays.asList(format)); private static final Set formatSet= new HashSet(Arrays.asList(format));
public static Set<String> getFormatSet() { public static Set<String> getFormatSet() {
return formatSet; return formatSet;
......
...@@ -52,10 +52,10 @@ public class AppUserManageDTO { ...@@ -52,10 +52,10 @@ public class AppUserManageDTO {
*/ */
private Integer source; private Integer source;
/** // /**
* 接收前台时间范围 // * 接收前台时间范围
*/ // */
private String[] registrationDate; // private String[] registrationDate;
} }
...@@ -57,7 +57,7 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -57,7 +57,7 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
List<AppUserManageVo> appUserManageVos = mapper.selectAppUserManage(appUserManageDTO); List<AppUserManageVo> appUserManageVos = mapper.selectAppUserManage(appUserManageDTO);
PageInfo<AppUserManageVo> pageInfo = PageInfo.of(appUserManageVos); PageInfo<AppUserManageVo> pageInfo = PageInfo.of(appUserManageVos);
if (pageInfo.getList()==null||pageInfo.getList().size()==0) { if (pageInfo.getList()==null||pageInfo.getList().size()==0) {
return null; return pageInfo;
} }
List<Integer> Citys = pageInfo.getList().parallelStream().map(AppUserManageVo::getCityCode).collect(Collectors.toList()); List<Integer> Citys = pageInfo.getList().parallelStream().map(AppUserManageVo::getCityCode).collect(Collectors.toList());
HashSet<Integer> set = new HashSet<>(); HashSet<Integer> set = new HashSet<>();
......
...@@ -235,9 +235,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb ...@@ -235,9 +235,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
}else if (baseUserMembers.size()==1){ }else if (baseUserMembers.size()==1){
if (baseUserMemberVO.getMemberLevel() == null || baseUserMember.getValidTime() == null ){ if (baseUserMemberVO.getMemberLevel() == null || baseUserMember.getValidTime() == null ){
baseUserMember.setIsDel(1); baseUserMember.setTotalNumber(0);
baseUserMember.setRentFreeDays(0);
}else { }else {
baseUserMember.setIsDel(0);
} }
baseUserMember.setUpdTime(System.currentTimeMillis()); baseUserMember.setUpdTime(System.currentTimeMillis());
baseUserMember.setBuyCount(baseUserMembers.get(0).getBuyCount()+1); baseUserMember.setBuyCount(baseUserMembers.get(0).getBuyCount()+1);
......
...@@ -2,6 +2,8 @@ package com.github.wxiaoqi.security.admin.rpc; ...@@ -2,6 +2,8 @@ package com.github.wxiaoqi.security.admin.rpc;
import com.ace.cache.annotation.Cache; import com.ace.cache.annotation.Cache;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.biz.AppUserLoginBiz;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService; import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService;
import com.github.wxiaoqi.security.admin.rpc.service.PermissionService; import com.github.wxiaoqi.security.admin.rpc.service.PermissionService;
import com.github.wxiaoqi.security.admin.vo.ImiVo; import com.github.wxiaoqi.security.admin.vo.ImiVo;
...@@ -16,6 +18,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; ...@@ -16,6 +18,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.util.process.SystemConfig; import com.github.wxiaoqi.security.common.util.process.SystemConfig;
import com.github.wxiaoqi.security.common.util.result.JsonResultUtil; import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -40,6 +43,8 @@ public class AppUserRest { ...@@ -40,6 +43,8 @@ public class AppUserRest {
@Autowired @Autowired
private UserAuthConfig userAuthConfig; private UserAuthConfig userAuthConfig;
@Autowired
private AppUserLoginBiz appUserLoginBiz;
// @Cache(key="permission") // @Cache(key="permission")
// @RequestMapping(value = "/permissions", method = RequestMethod.GET) // @RequestMapping(value = "/permissions", method = RequestMethod.GET)
...@@ -235,4 +240,19 @@ public class AppUserRest { ...@@ -235,4 +240,19 @@ public class AppUserRest {
public ImiVo findUserInfoByImiId(@PathVariable(value = "imiId") Integer imiId){ public ImiVo findUserInfoByImiId(@PathVariable(value = "imiId") Integer imiId){
return appPermissionService.findUserInoByImiId(imiId); return appPermissionService.findUserInoByImiId(imiId);
} }
@ApiModelProperty("检查手机号是否注册过")
@GetMapping("/unauth/check")
public ObjectRestResponse check(@RequestParam(value = "phone") String phone){
if (StringUtils.isBlank(phone)){
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE, "参数为空");
}
AppUserLogin rsUserLogin = appUserLoginBiz.checkeUserLogin(phone);
if (rsUserLogin == null){
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "手机号未注册");
}
return ObjectRestResponse.succ();
}
} }
...@@ -95,8 +95,7 @@ ...@@ -95,8 +95,7 @@
) m ) m
on on
l.id = m.user_id l.id = m.user_id
and m.is_del=0 where 1=1
<if test="mobile !=null"> <if test="mobile !=null">
and l.username like CONCAT('%',#{mobile},'%') and l.username like CONCAT('%',#{mobile},'%')
</if> </if>
...@@ -115,8 +114,6 @@ ...@@ -115,8 +114,6 @@
<if test="source !=null"> <if test="source !=null">
and d.source = #{source} and d.source = #{source}
</if> </if>
order by l.id ASC order by l.id ASC
</select> </select>
......
...@@ -7,6 +7,7 @@ import org.springframework.cloud.openfeign.FeignClient; ...@@ -7,6 +7,7 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
...@@ -34,7 +35,7 @@ public interface ActivityFeign { ...@@ -34,7 +35,7 @@ public interface ActivityFeign {
@RequestMapping(value = "/user/use", method = RequestMethod.POST) @RequestMapping(value = "/user/use", method = RequestMethod.POST)
public BigDecimal use( public BigDecimal use(
@RequestParam(value = "userId") Integer userId, @RequestParam(value = "userId") Integer userId,
@RequestParam(value = "tickerNo") String tickerNo, @RequestParam(value = "tickerNos") List<String> tickerNos,
@RequestParam(value = "orderNo") String orderNo, @RequestParam(value = "orderNo") String orderNo,
@RequestParam(value = "channel") Integer channel, @RequestParam(value = "channel") Integer channel,
@RequestParam(value = "amount") BigDecimal amount, @RequestParam(value = "amount") BigDecimal amount,
......
...@@ -93,6 +93,29 @@ public class ActivityUserJoinBiz extends BaseBiz<ActivityUserJoinMapper,Activity ...@@ -93,6 +93,29 @@ public class ActivityUserJoinBiz extends BaseBiz<ActivityUserJoinMapper,Activity
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
//判断用户是否已领取或无法领取优惠卷
public ObjectRestResponse checkUserCoupon(Integer userId){
ActivityRule rule = ruleBiz.getActity();
if (rule == null) {
log.error("----没有开启的活动----");
return ObjectRestResponse.createFailedResult(101,"无有效活动");
}
Integer activityId = rule.getId();
ActivityUserJoin userJoin = new ActivityUserJoin();
userJoin.setActivityId(activityId);
userJoin.setUserId(userId);
userJoin= selectOne(userJoin);
if (userJoin == null ) {
log.error("----用户没有此参与活动----userId====" + userId);
return ObjectRestResponse.createFailedResult(102,"不是新用户,无法参与此活动");
}
if(userJoin.getStatus()!=0){
log.error("----用户已领取----userId====" + userId);
return ObjectRestResponse.createFailedResult(103,"用户已领取");
}
return ObjectRestResponse.succ();
}
} }
\ No newline at end of file
...@@ -11,6 +11,7 @@ import com.xxfc.platform.activity.vo.UserCouponVo; ...@@ -11,6 +11,7 @@ import com.xxfc.platform.activity.vo.UserCouponVo;
import com.xxfc.platform.universal.weixin.util.Snowflake; import com.xxfc.platform.universal.weixin.util.Snowflake;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.assertj.core.util.Arrays;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.activity.mapper.UserCouponMapper; import com.xxfc.platform.activity.mapper.UserCouponMapper;
...@@ -147,38 +148,37 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> { ...@@ -147,38 +148,37 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> {
return mapper.getUserCoupon(tickerNo); return mapper.getUserCoupon(tickerNo);
} }
//支付后更新优惠卷状态 //支付后更新优惠卷状态:type.1-
public BigDecimal useTickerNo(Integer userId, String TickerNo, String orderNo,Integer channel,BigDecimal amout,Integer type){ public BigDecimal useTickerNo(Integer userId, List<String> tickerNos, String orderNo,Integer channel,BigDecimal amout,Integer type){
BigDecimal couponAmout=new BigDecimal("0.00"); BigDecimal couponAmout=new BigDecimal("0.00");
if(couponAmout.compareTo(amout) >= 0) { if(couponAmout.compareTo(amout) >= 0) {
return BigDecimal.ZERO; return BigDecimal.ZERO;
} }
if (userId==null||userId==0||StringUtils.isBlank(TickerNo)){ if (userId==null||userId==0||tickerNos==null||tickerNos.size()==0){
log.error("----参数不能为空"); log.error("----参数不能为空");
return couponAmout; return couponAmout;
} }
Example example=new Example(UserCoupon.class); Example example=new Example(UserCoupon.class);
example.createCriteria().andEqualTo("tickerNo",TickerNo).andEqualTo("isDel",0); example.createCriteria().andIn("tickerNo", tickerNos).andEqualTo("isDel",0);
List<UserCoupon> list=selectByExample(example); List<UserCoupon> list=selectByExample(example);
if(list.size()==0){ if(list.size()==0){
log.error(userId+"----没有可用优惠卷--tickerNo==="+TickerNo); log.error(userId+"----没有可用优惠卷--");
return couponAmout; return couponAmout;
} }
for (UserCoupon userCoupon:list) {
UserCoupon userCoupon=list.get(0); if(userCoupon!=null&&userCoupon.getIsUse()==1){
if(userCoupon!=null&&userCoupon.getIsUse()==1){ log.error(userId+"----该优惠卷已使用--tickerNo==");
log.error(userId+"----该优惠卷已使用--tickerNo=="+TickerNo); continue;
return couponAmout; }
} if (type==1){
if (type==1){ userCoupon.setIsUse(1);
userCoupon.setIsUse(1); userCoupon.setOrderNo(orderNo);
userCoupon.setOrderNo(orderNo); userCoupon.setUseTime(System.currentTimeMillis());
userCoupon.setUseTime(System.currentTimeMillis()); updateSelectiveById(userCoupon);
updateSelectiveById(userCoupon); }
couponAmout=couponAmout.add(getCouponAmout(userCoupon.getCouponId(),channel,amout));
} }
return couponAmout;
return getCouponAmout(userCoupon.getCouponId(),channel,amout);
} }
public BigDecimal getCouponAmout(Integer couponId,Integer channel,BigDecimal amout) { public BigDecimal getCouponAmout(Integer couponId,Integer channel,BigDecimal amout) {
......
...@@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
@RestController @RestController
@RequestMapping("user") @RequestMapping("user")
...@@ -57,13 +58,13 @@ public class UserCouponController extends ActivityBaseController<UserCouponBiz> ...@@ -57,13 +58,13 @@ public class UserCouponController extends ActivityBaseController<UserCouponBiz>
@RequestMapping(value = "/use", method = RequestMethod.POST) @RequestMapping(value = "/use", method = RequestMethod.POST)
public BigDecimal use( public BigDecimal use(
@RequestParam(value = "userId",defaultValue ="0" ) Integer userId, @RequestParam(value = "userId",defaultValue ="0" ) Integer userId,
@RequestParam(value = "tickerNo",defaultValue ="" ) String tickerNo, @RequestParam(value = "tickerNos",defaultValue ="" ) List<String> tickerNos,
@RequestParam(value = "orderNo",defaultValue ="" ) String orderNo, @RequestParam(value = "orderNo",defaultValue ="" ) String orderNo,
@RequestParam(value = "channel",defaultValue ="1" ) Integer channel, @RequestParam(value = "channel",defaultValue ="1" ) Integer channel,
@RequestParam(value = "amount",defaultValue ="0.00" ) BigDecimal amount, @RequestParam(value = "amount",defaultValue ="0.00" ) BigDecimal amount,
@RequestParam(value = "type",defaultValue ="1" ) Integer type @RequestParam(value = "type",defaultValue ="1" ) Integer type
) { ) {
return baseBiz.useTickerNo(userId,tickerNo,orderNo,channel,amount,type); return baseBiz.useTickerNo(userId,tickerNos,orderNo,channel,amount,type);
} }
@ApiOperation("优惠卷取消使用") @ApiOperation("优惠卷取消使用")
...@@ -85,6 +86,17 @@ public class UserCouponController extends ActivityBaseController<UserCouponBiz> ...@@ -85,6 +86,17 @@ public class UserCouponController extends ActivityBaseController<UserCouponBiz>
return joinBiz.receiveCoupn(userId); return joinBiz.receiveCoupn(userId);
} }
@ApiOperation("检查用户是否可领取")
@RequestMapping(value = "/coupon/check", method = RequestMethod.GET)
public ObjectRestResponse check() {
AppUserDTO userInfo = getUserInfo();
Integer userId = userInfo.getUserid();
if (userId == null) {
return ObjectRestResponse.createDefaultFail();
}
return joinBiz.checkUserCoupon(userId);
}
......
...@@ -100,16 +100,14 @@ public class AppVersionBiz extends BaseBiz<AppVersionMapper,AppVersion> { ...@@ -100,16 +100,14 @@ public class AppVersionBiz extends BaseBiz<AppVersionMapper,AppVersion> {
public ObjectRestResponse uploadDrivingLicense(MultipartFile file) throws IOException { public ObjectRestResponse uploadDrivingLicense(MultipartFile file) throws IOException {
DateTime now = DateTime.now(); DateTime now = DateTime.now();
String dirPathToday = File.separator + now.toString(DEFAULT_DATE_TIME_FORMATTER); String dirPathToday = File.separator + now.toString(DEFAULT_DATE_TIME_FORMATTER);
String redisNoKey = RedisKey.UPLOAD_FILE_NO_PREFIX + now.toString(DEFAULT_DATE_TIME_FORMATTER); // String redisNoKey = RedisKey.UPLOAD_FILE_NO_PREFIX + now.toString(DEFAULT_DATE_TIME_FORMATTER);
// Long no = redisTemplate.opsForValue().increment(redisNoKey); // Long no = redisTemplate.opsForValue().increment(redisNoKey);
// if(no.equals(1L)){ // if(no.equals(1L)){
// redisTemplate.expire(redisNoKey,1, TimeUnit.DAYS); // redisTemplate.expire(redisNoKey,1, TimeUnit.DAYS);
// } // }
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
String realFileRelPath = dirPathToday + File.separator+fileName.substring(fileName.lastIndexOf("/")); String realFileRelPath = dirPathToday + File.separator+fileName;
String filePath = uploadPath + realFileRelPath; String filePath = uploadPath + realFileRelPath;
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(filePath)); FileUtils.copyInputStreamToFile(file.getInputStream(), new File(filePath));
return ObjectRestResponse.succ(filePath); return ObjectRestResponse.succ(filePath);
} }
......
...@@ -33,83 +33,87 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -33,83 +33,87 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
@RestController @RestController
@RequestMapping("version") @RequestMapping("version")
@IgnoreClientToken @IgnoreClientToken
@Slf4j @Slf4j
public class AppVersionController extends BaseController<AppVersionBiz,AppVersion> { public class AppVersionController extends BaseController<AppVersionBiz, AppVersion> {
//最大上传500MB /**
private Long MAX_DRIVING_LICENSE_SIZE =1024*1024*500L; * 最大上传500MB
private int id; */
private Long MAX_DRIVING_LICENSE_SIZE = 1024 * 1024 * 500L;
@ApiModelProperty("app自动更新") @ApiModelProperty("app自动更新")
@RequestMapping(value ="/app/unauth/info",method = RequestMethod.GET) @RequestMapping(value = "/app/unauth/info", method = RequestMethod.GET)
@IgnoreUserToken @IgnoreUserToken
public ObjectRestResponse info( public ObjectRestResponse info(
@RequestParam(value = "type",defaultValue = "0") Integer type, @RequestParam(value = "type", defaultValue = "0") Integer type,
@RequestParam(value = "version",defaultValue = "") String version, @RequestParam(value = "version", defaultValue = "") String version,
@RequestParam(value = "isH5",defaultValue = "0") Integer isH5 @RequestParam(value = "isH5", defaultValue = "0") Integer isH5
){ ) {
ObjectRestResponse restResponse=null; ObjectRestResponse restResponse = null;
if (isH5!=null&&isH5==1){ if (isH5 != null && isH5 == 1) {
restResponse= baseBiz.getVersionH5(type); restResponse = baseBiz.getVersionH5(type);
}else { } else {
restResponse=baseBiz.getVersion(version,type); restResponse = baseBiz.getVersion(version, type);
} }
return restResponse; return restResponse;
} }
@Override @Override
@ApiOperation("添加") @ApiOperation("添加")
@RequestMapping(value = "/background/add",method = RequestMethod.POST) @RequestMapping(value = "/background/add", method = RequestMethod.POST)
public ObjectRestResponse<AppVersion> add(@RequestBody AppVersion appVersion){ public ObjectRestResponse<AppVersion> add(@RequestBody AppVersion appVersion) {
baseBiz.insertAppVersion(appVersion); baseBiz.insertAppVersion(appVersion);
return new ObjectRestResponse<AppVersion>(); return new ObjectRestResponse<AppVersion>();
} }
@ApiOperation("查询一条") @ApiOperation("查询一条")
@RequestMapping(value = "/background/getAppVersion/{id}",method = RequestMethod.GET) @RequestMapping(value = "/background/getAppVersion/{id}", method = RequestMethod.GET)
public ObjectRestResponse<AppVersion> getAppVersion(@PathVariable Integer id){ public ObjectRestResponse<AppVersion> getAppVersion(@PathVariable Integer id) {
return ObjectRestResponse.succ(baseBiz.get(id)); return ObjectRestResponse.succ(baseBiz.get(id));
} }
@ApiOperation("查询所有") @ApiOperation("查询所有")
@RequestMapping(value = "/background/getAppVersions",method = RequestMethod.POST) @RequestMapping(value = "/background/getAppVersions", method = RequestMethod.POST)
public ObjectRestResponse<PageInfo<AppVersion>> getAppVersions(@RequestBody appVersionQuery query){ public ObjectRestResponse<PageInfo<AppVersion>> getAppVersions(@RequestBody appVersionQuery query) {
return ObjectRestResponse.succ(baseBiz.getAll(query)); return ObjectRestResponse.succ(baseBiz.getAll(query));
} }
@Override @Override
@ApiOperation("修改") @ApiOperation("修改")
@RequestMapping(value = "/background/update",method = RequestMethod.PUT) @RequestMapping(value = "/background/update", method = RequestMethod.PUT)
public ObjectRestResponse<AppVersion> update(@RequestBody AppVersion appVersion){ public ObjectRestResponse<AppVersion> update(@RequestBody AppVersion appVersion) {
baseBiz.updateAppVersionById(appVersion); baseBiz.updateAppVersionById(appVersion);
return new ObjectRestResponse<AppVersion>(); return new ObjectRestResponse<AppVersion>();
} }
@ApiOperation("删除") @ApiOperation("删除")
@DeleteMapping(value = "/background/remove/{id}") @DeleteMapping(value = "/background/remove/{id}")
public ObjectRestResponse<AppVersion> remove(@PathVariable Integer id){ public ObjectRestResponse<AppVersion> remove(@PathVariable Integer id) {
baseBiz.remove(id); baseBiz.remove(id);
return new ObjectRestResponse<AppVersion>(); return new ObjectRestResponse<AppVersion>();
} }
@PostMapping(value = "/upload/installationPackage") @PostMapping(value = "/upload/installationPackage")
@ApiOperation(value = "上传app安装包") @ApiOperation(value = "上传app安装包")
public ObjectRestResponse uploadInstallationPackage(@RequestParam("file") MultipartFile file) public ObjectRestResponse uploadInstallationPackage(@RequestParam MultipartFile file)
throws Exception { throws Exception {
Assert.notNull(file);
//文件类型 //文件类型
String contentType = file.getContentType(); String contentType = file.getContentType();
log.debug("contentType"+contentType); String name = file.getOriginalFilename();
//判断上传的文件格式 String content = name.substring(name.lastIndexOf("."));
if (!judgeFormat(contentType)||file.getSize() > MAX_DRIVING_LICENSE_SIZE) { System.out.println("file.getSize()" + file.getSize());
System.out.println("content"+content);
System.out.println("contentType" + contentType);
//判断上传的文件格式
if (!judgeFormat(content) || file.getSize() > MAX_DRIVING_LICENSE_SIZE) {
return ObjectRestResponse.createDefaultFail(); return ObjectRestResponse.createDefaultFail();
} }
...@@ -117,8 +121,6 @@ public class AppVersionController extends BaseController<AppVersionBiz,AppVersio ...@@ -117,8 +121,6 @@ public class AppVersionController extends BaseController<AppVersionBiz,AppVersio
} }
@IgnoreUserToken @IgnoreUserToken
@GetMapping(value = "/download/installationPackage/{realFileRelPath}") //匹配的是href中的download请求 @GetMapping(value = "/download/installationPackage/{realFileRelPath}") //匹配的是href中的download请求
@ApiOperation(value = "下载app安装包") @ApiOperation(value = "下载app安装包")
...@@ -128,11 +130,12 @@ public class AppVersionController extends BaseController<AppVersionBiz,AppVersio ...@@ -128,11 +130,12 @@ public class AppVersionController extends BaseController<AppVersionBiz,AppVersio
/** /**
* 判断上传的文件格式 * 判断上传的文件格式
*
* @param contentType * @param contentType
* @return * @return
*/ */
private boolean judgeFormat(String contentType){ private boolean judgeFormat(String contentType) {
if (AppFormat.getFormatSet().size()==0) { if (AppFormat.getFormatSet().size() == 0) {
return true; return true;
} }
for (String format : AppFormat.getFormatSet()) { for (String format : AppFormat.getFormatSet()) {
......
...@@ -2,7 +2,7 @@ servlet: ...@@ -2,7 +2,7 @@ servlet:
multipart: multipart:
# 启用上传处理,默认是true # 启用上传处理,默认是true
enabled: true enabled: true
# 当上传文件达到1MB的时候进行磁盘写入 # 当上传文件达到20MB的时候进行磁盘写入
file-size-threshold: 20MB file-size-threshold: 20MB
# 设置最大的请求文件的大小 # 设置最大的请求文件的大小
max-request-size: 50MB max-request-size: 50MB
......
...@@ -4,8 +4,8 @@ import java.util.HashMap; ...@@ -4,8 +4,8 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
public enum RefundTypeEnum { public enum RefundTypeEnum {
RentVehicle(1, "订单款"), ORDER_FUND(1, "订单款"),
TOUR(2, "押金"), DEPOSIT(2, "押金"),
; ;
/** /**
* 编码 * 编码
......
...@@ -5,6 +5,7 @@ import javax.persistence.Column; ...@@ -5,6 +5,7 @@ import javax.persistence.Column;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Table; import javax.persistence.Table;
import java.math.BigDecimal;
import java.math.BigInteger; import java.math.BigInteger;
@Data @Data
...@@ -19,7 +20,7 @@ public class OrderViolation { ...@@ -19,7 +20,7 @@ public class OrderViolation {
* 违章总金额 * 违章总金额
*/ */
@Column(name="price") @Column(name="price")
private Double price; private BigDecimal price;
/** /**
......
...@@ -326,7 +326,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -326,7 +326,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
//退款金额 //退款金额
BigDecimal refundAmount = depositAmount.add(refundGoodsAmount); BigDecimal refundAmount = depositAmount.add(refundGoodsAmount);
//退款子流程: 订单基础,退款描述,退款金额 //退款子流程: 订单基础,退款描述,退款金额
refundSubProcess(baseOrder, refundDesc, refundAmount, RefundTypeEnum.RentVehicle.getCode(), RefundStatusEnum.ALL.getCode()); refundSubProcess(baseOrder, refundDesc, refundAmount, RefundTypeEnum.ORDER_FUND.getCode(), RefundStatusEnum.ALL.getCode());
} }
public BigDecimal calculateRefund(BigDecimal goodsAmount, Long timeLag, String dicParentKey, String refundDesc) { public BigDecimal calculateRefund(BigDecimal goodsAmount, Long timeLag, String dicParentKey, String refundDesc) {
...@@ -412,7 +412,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -412,7 +412,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
setOrderId(orderId); setOrderId(orderId);
setRefundTime(System.currentTimeMillis()); setRefundTime(System.currentTimeMillis());
setTradeNo(refundTradeNo); setTradeNo(refundTradeNo);
setRefundType(RefundTypeEnum.RentVehicle.getCode()); setRefundType(RefundTypeEnum.ORDER_FUND.getCode());
}}; }};
orderRefund.setRefundAmount(refundAmount); orderRefund.setRefundAmount(refundAmount);
orderRefund.setRefundDesc(refundDesc); orderRefund.setRefundDesc(refundDesc);
...@@ -523,6 +523,18 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -523,6 +523,18 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* @return * @return
*/ */
public BaseOrder updateSelectiveByIdReT(BaseOrder baseOrder) { public BaseOrder updateSelectiveByIdReT(BaseOrder baseOrder) {
return updateSelectiveByIdReT(baseOrder, false);
}
/**
* 更新(不成功抛异常)
* @param baseOrder
* @return
*/
public BaseOrder updateSelectiveByIdReT(BaseOrder baseOrder, boolean needVersion) {
if(needVersion) {
baseOrder.setVersion(selectById(baseOrder.getId()).getVersion());
}
if(updateSelectiveByIdRe(baseOrder) > 0) { if(updateSelectiveByIdRe(baseOrder) > 0) {
return selectById(baseOrder.getId()); return selectById(baseOrder.getId());
}else { }else {
...@@ -530,6 +542,19 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -530,6 +542,19 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
} }
} }
// /**
// * 更新(不成功抛异常)
// * @param baseOrder
// * @return
// */
// public BaseOrder updateSelectiveByIdReT(BaseOrder baseOrder) {
// if(updateSelectiveByIdRe(baseOrder) > 0) {
// return selectById(baseOrder.getId());
// }else {
// throw new BaseException(ResultCode.DB_OPERATION_FAIL_CODE);
// }
// }
public boolean getTodyTime(Long time) { public boolean getTodyTime(Long time) {
Long startTime = getDayStart(); Long startTime = getDayStart();
if(time > startTime && time < startTime + 24 * 60 * 60 * 1000 - 1) { if(time > startTime && time < startTime + 24 * 60 * 60 * 1000 - 1) {
......
...@@ -6,6 +6,7 @@ import com.xxfc.platform.order.entity.BaseOrder; ...@@ -6,6 +6,7 @@ import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail; import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.entity.OrderVehicleCrosstown; import com.xxfc.platform.order.entity.OrderVehicleCrosstown;
import com.xxfc.platform.order.pojo.DedDetailDTO; import com.xxfc.platform.order.pojo.DedDetailDTO;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary; import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
...@@ -15,8 +16,6 @@ import org.springframework.stereotype.Service; ...@@ -15,8 +16,6 @@ import org.springframework.stereotype.Service;
import com.xxfc.platform.order.entity.OrderRefund; import com.xxfc.platform.order.entity.OrderRefund;
import com.xxfc.platform.order.mapper.OrderRefundMapper; import com.xxfc.platform.order.mapper.OrderRefundMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -45,39 +44,35 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> { ...@@ -45,39 +44,35 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
@Autowired @Autowired
OrderVehicalCrosstownBiz crosstownBiz; OrderVehicalCrosstownBiz crosstownBiz;
public void refundDeposit(){ public void refundDeposit(OrderMQDTO orderMQDTO){
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ILLEGAL_RESERVE).getDetail()); BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ILLEGAL_RESERVE).getDetail());
List<BaseOrder> lists = baseOrderBiz.selectByExample(new Example.Builder(BaseOrder.class) //未退还, 进行保留违章预备金 的退还
//订单已完成的租车订单 if(RefundStatusEnum.NONE.getCode().equals(orderMQDTO.getRefundStatus())) {
.where(WeekendSqls.<BaseOrder>custom().andEqualTo(BaseOrder::getType, OrderTypeEnum.RENT_VEHICLE) OrderVehicleCrosstown crosstown = crosstownBiz.selectOne(new OrderVehicleCrosstown(){{
.andEqualTo(BaseOrder::getStatus, OrderStatusEnum.ORDER_FINISH) setOrderId(orderMQDTO.getId());
// .andLike(BaseOrder::getId, "%"+ String.valueOf(i)) setType(CrosstownTypeEnum.TOUR.getCode());
).build());
//处理自动退押金
for(BaseOrder baseOrder : lists) {
OrderRentVehicleDetail orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail() {{
setOrderId(baseOrder.getId());
}}); }});
//未退还, 进行保留违章预备金 的退还 //还车扣除款 剩余的 钱,再减去违章预备金
if(RefundStatusEnum.NONE.getCode().equals(baseOrder.getRefundStatus())) { BigDecimal refundAmont = crosstown.getRestDeposit().subtract(illegalReserve);
OrderVehicleCrosstown crosstown = crosstownBiz.selectOne(new OrderVehicleCrosstown(){{ List<DedDetailDTO> dddList = JSONUtil.toBean(crosstown.getDedDetail(), List.class);
setOrderId(baseOrder.getId()); String refundDesc = "退还押金:"+ refundAmont.toString()+ "(已扣除 违章预备金:"+ illegalReserve.toString();
setType(CrosstownTypeEnum.TOUR.getCode()); for(DedDetailDTO ddd : dddList) {
}}); refundDesc += ", "+ ddd.getDeductions()+ ":"+ ddd.getCost();
BigDecimal refundAmont = crosstown.getRestDeposit().subtract(illegalReserve);
List<DedDetailDTO> dddList = JSONUtil.toBean(crosstown.getDedDetail(), List.class);
String refundDesc = "退还押金:"+ refundAmont.toString()+ "(已扣除 违章预备金:"+ illegalReserve.toString();
for(DedDetailDTO ddd : dddList) {
refundDesc += ", "+ ddd.getDeductions()+ ":"+ ddd.getCost();
}
refundDesc += ")";
//退款子流程: 订单基础,退款描述,退款金额
baseOrderBiz.refundSubProcess(baseOrder, refundDesc, refundAmont, RefundTypeEnum.RentVehicle.getCode(), RefundStatusEnum.RESIDUE_ILLEGAL.getCode());
//设置剩余
} }
refundDesc += ")";
refundTrigger(orderMQDTO, orderMQDTO.getOrderRentVehicleDetail(), illegalReserve, refundAmont, refundDesc, RefundStatusEnum.RESIDUE_ILLEGAL.getCode());
} }
} }
public void refundTrigger(BaseOrder baseOrder, OrderRentVehicleDetail orvd, BigDecimal residueAmount, BigDecimal refundAmont, String refundDesc, Integer refundStatus) {
//退款子流程: 订单基础,退款描述,退款金额
baseOrderBiz.refundSubProcess(baseOrder, refundDesc, refundAmont, RefundTypeEnum.DEPOSIT.getCode(), refundStatus);
//设置剩余没有返还的钱
orderRentVehicleBiz.updateSelectiveById(new OrderRentVehicleDetail(){{
setId(orvd.getId());
setReturnPayResidue(residueAmount);
}});
}
} }
\ No newline at end of file
...@@ -2,13 +2,12 @@ package com.xxfc.platform.order.jobhandler; ...@@ -2,13 +2,12 @@ package com.xxfc.platform.order.jobhandler;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.common.util.IntervalUtil; import com.github.wxiaoqi.security.common.util.IntervalUtil;
import com.xxfc.platform.order.biz.BaseOrderBiz; import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.biz.OrderRentVehicleBiz;
import com.xxfc.platform.order.biz.OrderVehicalCrosstownBiz;
import com.xxfc.platform.order.contant.enumerate.*; import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail; import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.entity.OrderVehicleCrosstown; import com.xxfc.platform.order.entity.OrderVehicleCrosstown;
import com.xxfc.platform.order.entity.OrderViolation;
import com.xxfc.platform.order.pojo.DedDetailDTO; import com.xxfc.platform.order.pojo.DedDetailDTO;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary; import com.xxfc.platform.universal.entity.Dictionary;
...@@ -27,6 +26,7 @@ import java.math.BigDecimal; ...@@ -27,6 +26,7 @@ import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
/** /**
...@@ -37,7 +37,7 @@ import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; ...@@ -37,7 +37,7 @@ import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@JobHandler(value = "rentDepositHandler") @JobHandler(value = "rentDepositHandler")
@Component @Component
@Slf4j @Slf4j
public class RentDepositHandler extends IJobHandler { public class RentDepositJobHandler extends IJobHandler {
@Autowired @Autowired
BaseOrderBiz baseOrderBiz; BaseOrderBiz baseOrderBiz;
...@@ -48,50 +48,51 @@ public class RentDepositHandler extends IJobHandler { ...@@ -48,50 +48,51 @@ public class RentDepositHandler extends IJobHandler {
@Autowired @Autowired
OrderVehicalCrosstownBiz crosstownBiz; OrderVehicalCrosstownBiz crosstownBiz;
@Autowired
OrderViolationBiz orderViolationBiz;
@Autowired
OrderRefundBiz orderRefundBiz;
@Autowired @Autowired
ThirdFeign thirdFeign; ThirdFeign thirdFeign;
@Override @Override
public ReturnT<String> execute(String idLastNumInterval) throws Exception { public ReturnT<String> execute(String idLastNumInterval) throws Exception {
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ILLEGAL_RESERVE).getDetail()); Integer rentDepositAutoRefundTime = new Integer(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail());
try { try {
for(int i = 0; i < 10; i++) { for(int i = 0; i < 10; i++) {
if(IntervalUtil.staticIsInTheInterval(String.valueOf(i), idLastNumInterval)) { if(IntervalUtil.staticIsInTheInterval(String.valueOf(i), idLastNumInterval)) {
//三十天
List<BaseOrder> lists = baseOrderBiz.selectByExample(new Example.Builder(BaseOrder.class) List<BaseOrder> lists = baseOrderBiz.selectByExample(new Example.Builder(BaseOrder.class)
//订单已完成的租车订单 //订单已完成的租车订单
.where(WeekendSqls.<BaseOrder>custom().andEqualTo(BaseOrder::getType, OrderTypeEnum.RENT_VEHICLE) .where(WeekendSqls.<BaseOrder>custom().andEqualTo(BaseOrder::getType, OrderTypeEnum.RENT_VEHICLE)
.andEqualTo(BaseOrder::getStatus, OrderStatusEnum.ORDER_FINISH) .andEqualTo(BaseOrder::getStatus, OrderStatusEnum.ORDER_FINISH) //已完成的订单
.andLike(BaseOrder::getId, "%"+ String.valueOf(i))).build()); .andEqualTo(BaseOrder::getRefundStatus, RefundStatusEnum.RESIDUE_ILLEGAL) //已归还了部分押金
.andLessThanOrEqualTo(BaseOrder::getRefundTime, System.currentTimeMillis() - (rentDepositAutoRefundTime * 60 * 60 * 1000))
.andLike(BaseOrder::getId, "%"+ i)).build());
//处理自动退押金 //处理自动退剩余押金
for(BaseOrder baseOrder : lists) { for(BaseOrder baseOrder : lists) {
OrderRentVehicleDetail orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail() {{ OrderRentVehicleDetail orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail() {{
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}); }});
//未退还, 进行保留违章预备金 的退还
if(RefundStatusEnum.NONE.getCode().equals(baseOrder.getRefundStatus())) { OrderViolation orderViolation = orderViolationBiz.selectOne(new OrderViolation(){{
OrderVehicleCrosstown crosstown = crosstownBiz.selectOne(new OrderVehicleCrosstown(){{ setDetailId(orvd.getId());
setOrderId(baseOrder.getId()); setIsDel(SYS_FALSE);
setType(CrosstownTypeEnum.TOUR.getCode()); }});
}});
BigDecimal refundAmont = crosstown.getRestDeposit().subtract(illegalReserve); //还车扣除款 剩余的 钱,再减去违章预备金
List<DedDetailDTO> dddList = JSONUtil.toBean(crosstown.getDedDetail(), List.class); BigDecimal refundAmont = orvd.getReturnPayResidue().subtract(orderViolation.getPrice());
String refundDesc = "退还押金:"+ refundAmont.toString()+ "(已扣除 违章预备金:"+ illegalReserve.toString(); String refundDesc = "退还押金:"+ refundAmont.toString()+ "(已扣除 违章扣款:"+ refundAmont.toString();
for(DedDetailDTO ddd : dddList) { // for(DedDetailDTO ddd : dddList) {
refundDesc += ", "+ ddd.getDeductions()+ ":"+ ddd.getCost(); // refundDesc += ", "+ ddd.getDeductions()+ ":"+ ddd.getCost();
} // }
refundDesc += ")"; refundDesc += ")";
//退款子流程: 订单基础,退款描述,退款金额 orderRefundBiz.refundTrigger(baseOrder, orvd, refundAmont, refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode());
baseOrderBiz.refundSubProcess(baseOrder, refundDesc, refundAmont, RefundTypeEnum.RentVehicle.getCode(), RefundStatusEnum.RESIDUE_ILLEGAL.getCode());
//设置剩余
}else if(RefundStatusEnum.RESIDUE_ILLEGAL.getCode().equals(baseOrder.getRefundStatus())){
//判断是否违章
//扣违章的钱
//baseOrderBiz.refundSubProcess(baseOrder, refundDesc, refundAmont, RefundTypeEnum.RENT_VEHICLE.getCode(), RefundStatusEnum.RESIDUE_ILLEGAL.getCode());
}
// baseOrderBiz.refundSubProcess(baseOrder, refundDesc, refundAmont);
} }
} }
......
package com.xxfc.platform.order.mqhandler;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.dto.OrderGoodsDTO;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import static com.xxfc.platform.order.config.RabbitOrderConfig.ORDER_DEPOSIT_REFUND_QUEUE;
import static com.xxfc.platform.order.pojo.mq.OrderMQDTO.*;
@Component
@Slf4j
public class RefundMQHandler {
@Autowired
OrderRefundBiz orderRefundBiz;
/**
* 佣金
* @param
*/
@RabbitListener(queues = ORDER_DEPOSIT_REFUND_QUEUE)
public void integralHandler(Message message, @Headers Map<String, Object> headers, Channel channel) {
ExecutorService executorService = Executors.newCachedThreadPool();
executorService.execute(new Runnable() {
@Override
public void run() {
try {
String messageId = message.getMessageProperties().getMessageId();
String msg = new String(message.getBody(), "UTF-8");
OrderMQDTO orderMQDTO = JSONUtil.toBean(msg, OrderMQDTO.class);
orderRefundBiz.refundDeposit(orderMQDTO);
executorService.shutdown();
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
// 手动签收
channel.basicAck(deliveryTag, false);
} catch (Exception e) {
log.info("接收到的消息失败");
try {
channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, false);
} catch (IOException i) {
i.printStackTrace();
}
e.printStackTrace();
}
}
});
}
}
...@@ -39,6 +39,7 @@ import java.math.BigDecimal; ...@@ -39,6 +39,7 @@ import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum.*; import static com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum.*;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
...@@ -141,7 +142,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -141,7 +142,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//如果有使用优惠券,则扣减 //如果有使用优惠券,则扣减
if(BigDecimal.ZERO.compareTo(bo.getOrder().getCouponAmount()) < 0) { if(BigDecimal.ZERO.compareTo(bo.getOrder().getCouponAmount()) < 0) {
activityFeign.use(bo.getAppUserDTO().getUserid(), bo.getTickerNo().get(0), bo.getOrder().getNo(), channel, bo.getOrder().getGoodsAmount(), ActivityFeign.TYPE_USE); activityFeign.use(bo.getAppUserDTO().getUserid(), bo.getTickerNo(), bo.getOrder().getNo(), channel, bo.getOrder().getGoodsAmount(), ActivityFeign.TYPE_USE);
} }
//获取可用车辆 //获取可用车辆
...@@ -245,9 +246,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -245,9 +246,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//优惠券处理 //优惠券处理
//待完成 //待完成
if(null != detail.getTickerNo() && detail.getTickerNo().size() > 0) { if(null != detail.getTickerNo() && detail.getTickerNo().size() > 0) {
couponAmount = activityFeign.use(dto.getUserid(), detail.getTickerNo().get(0), detail.getOrder().getNo(), channel, goodsAmount, ActivityFeign.TYPE_NO_USE); couponAmount = activityFeign.use(dto.getUserid(), detail.getTickerNo(), detail.getOrder().getNo(), channel, goodsAmount, ActivityFeign.TYPE_NO_USE);
if(couponAmount.compareTo(BigDecimal.ZERO) > 0) { if(couponAmount.compareTo(BigDecimal.ZERO) > 0) {
detail.getOrder().setCouponTickerNos(detail.getTickerNo().get(0)); detail.getOrder().setCouponTickerNos(detail.getTickerNo().stream().collect(Collectors.joining(",")));
} }
} }
......
...@@ -140,7 +140,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -140,7 +140,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
//如果有使用优惠券,则扣减 //如果有使用优惠券,则扣减
if(BigDecimal.ZERO.compareTo(bo.getOrder().getCouponAmount()) < 0) { if(BigDecimal.ZERO.compareTo(bo.getOrder().getCouponAmount()) < 0) {
activityFeign.use(bo.getAppUserDTO().getUserid(), bo.getTickerNo().get(0), bo.getOrder().getNo(), channel, bo.getOrder().getGoodsAmount(), ActivityFeign.TYPE_USE); activityFeign.use(bo.getAppUserDTO().getUserid(), bo.getTickerNo(), bo.getOrder().getNo(), channel, bo.getOrder().getGoodsAmount(), ActivityFeign.TYPE_USE);
} }
super.handleDetail(bo); super.handleDetail(bo);
...@@ -217,9 +217,10 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -217,9 +217,10 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
//优惠券处理 //优惠券处理
//待完成 //待完成
if(null != detail.getTickerNo() && detail.getTickerNo().size() > 0) { if(null != detail.getTickerNo() && detail.getTickerNo().size() > 0) {
couponAmount = activityFeign.use(dto.getUserid(), detail.getTickerNo().get(0), detail.getOrder().getNo(), channel, goodsAmount, ActivityFeign.TYPE_NO_USE); couponAmount = activityFeign.use(dto.getUserid(), detail.getTickerNo(), detail.getOrder().getNo(), channel, goodsAmount, ActivityFeign.TYPE_NO_USE);
if(couponAmount.compareTo(BigDecimal.ZERO) > 0) { if(couponAmount.compareTo(BigDecimal.ZERO) > 0) {
detail.getOrder().setCouponTickerNos(detail.getTickerNo().get(0)); detail.getOrder().setCouponTickerNos(detail.getTickerNo()
.stream().collect(Collectors.joining(",")));
} }
} }
......
...@@ -42,4 +42,9 @@ public class DictionaryKey { ...@@ -42,4 +42,9 @@ public class DictionaryKey {
* 支付价格减低 * 支付价格减低
*/ */
public static final String PAY_DEMOTION = "PAY_DEMOTION"; public static final String PAY_DEMOTION = "PAY_DEMOTION";
/**
* 自动退款保留押金的时间(小时)
*/
public static final String RENT_DEPOSIT_AUTO_REFUND_TIME = "RENT_DEPOSIT_AUTO_REFUND_TIME";
} }
...@@ -80,9 +80,11 @@ public class UploadService { ...@@ -80,9 +80,11 @@ public class UploadService {
file.mkdirs(); file.mkdirs();
} }
realFileRelPath=filePath + "/" + no + ".jpg"; String str="/" + no + ".jpg";
realFileRelPath = realFileRelPath+str;
filePath=filePath +str;
//将文件写入指定位置 //将文件写入指定位置
ImgBase64Util.generateImage(imgFile,realFileRelPath); ImgBase64Util.generateImage(imgFile,filePath);
realFileRelPath=xx_url+SystemConfig.XXMP_URL+realFileRelPath; realFileRelPath=xx_url+SystemConfig.XXMP_URL+realFileRelPath;
return realFileRelPath; return realFileRelPath;
} }
......
...@@ -9,7 +9,7 @@ servlet: ...@@ -9,7 +9,7 @@ servlet:
multipart: multipart:
# 启用上传处理,默认是true # 启用上传处理,默认是true
enabled: true enabled: true
# 当上传文件达到1MB的时候进行磁盘写入 # 当上传文件达到20MB的时候进行磁盘写入
file-size-threshold: 20MB file-size-threshold: 20MB
# 设置最大的请求文件的大小 # 设置最大的请求文件的大小
max-request-size: 50MB max-request-size: 50MB
......
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