Commit 9211d2ad authored by hanfeng's avatar hanfeng

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

# Conflicts:
#	xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/DailyVehicleOrderStatistics.java
parents 4269fc23 adb7ba58
...@@ -16,6 +16,10 @@ public class ResultCode { ...@@ -16,6 +16,10 @@ public class ResultCode {
// 操作失败 // 操作失败
public static int FAILED_CODE = Integer.valueOf(SystemProperty.getResultConfig("FAILED_CODE")); public static int FAILED_CODE = Integer.valueOf(SystemProperty.getResultConfig("FAILED_CODE"));
//IM消息删除失败
public static int IM_DELETE_FAIL_CODE = Integer.valueOf(SystemProperty.getResultConfig("IM_DELETE_FAIL_CODE"));
public static int IM_MSG_NOT_EXIST_CODE = Integer.valueOf(SystemProperty.getResultConfig("IM_MSG_NOT_EXIST_CODE"));
// 车辆预定失败,请重试 // 车辆预定失败,请重试
public static int BOOKED_FAILED_CODE = Integer.valueOf(SystemProperty.getResultConfig("BOOKED_FAILED_CODE")); public static int BOOKED_FAILED_CODE = Integer.valueOf(SystemProperty.getResultConfig("BOOKED_FAILED_CODE"));
//预定时间不能为空 DATE_TIME_IS_NULL //预定时间不能为空 DATE_TIME_IS_NULL
......
...@@ -39,4 +39,13 @@ public class GoodDataVO{ ...@@ -39,4 +39,13 @@ public class GoodDataVO{
@ApiModelProperty("seo*html标签优化") @ApiModelProperty("seo*html标签优化")
private String alt; private String alt;
@ApiModelProperty("seo*html标签优化")
private String imgTitle;
@ApiModelProperty("seo*html标签优化")
private String imgKeyword;
@ApiModelProperty("seo*html标签优化")
private String imgDesc;
} }
...@@ -6,6 +6,10 @@ SUCCESS_CODE=200 ...@@ -6,6 +6,10 @@ SUCCESS_CODE=200
#操作失败 #操作失败
FAILED_CODE=1001 FAILED_CODE=1001
1001=操作失败 1001=操作失败
IM_DELETE_FAIL_CODE = 10011
10011 = 删除消息失败
IM_MSG_NOT_EXIST_CODE = 10012
10012 = 消息不存在
#数据已存在 #数据已存在
EXIST_CODE=1002 EXIST_CODE=1002
1002=数据已存在 1002=数据已存在
......
...@@ -26,6 +26,8 @@ public class Menu { ...@@ -26,6 +26,8 @@ public class Menu {
private String type; private String type;
private String state; private String state;
@Column(name = "order_num")
private Integer orderNum;
private String description; private String description;
...@@ -183,6 +185,20 @@ public class Menu { ...@@ -183,6 +185,20 @@ public class Menu {
this.state = state; this.state = state;
} }
/**
* @return orderNum
*/
public Integer getOrderNum() {
return orderNum;
}
/**
* @param orderNum
*/
public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum;
}
/** /**
* @return description * @return description
*/ */
......
...@@ -52,6 +52,9 @@ public interface UserFeign { ...@@ -52,6 +52,9 @@ public interface UserFeign {
public ObjectRestResponse<AppUserDTO> userDetailById(@RequestParam("id") Integer id); public ObjectRestResponse<AppUserDTO> userDetailById(@RequestParam("id") Integer id);
@GetMapping("/app/user/app/unauth/getUserIdByUsername")
public List<Integer> getUserIdByUsername(@RequestParam(value="keywords")String keywords);
/** /**
*status:0-判断是否认证过,1-认证成功后修改用户认证状态 *status:0-判断是否认证过,1-认证成功后修改用户认证状态
*userId:用户登录时的id,必须 *userId:用户登录时的id,必须
...@@ -115,6 +118,8 @@ public interface UserFeign { ...@@ -115,6 +118,8 @@ public interface UserFeign {
@GetMapping("/app/user/one") @GetMapping("/app/user/one")
public AppUserLogin one(@RequestParam(value = "username")String username); public AppUserLogin one(@RequestParam(value = "username")String username);
@GetMapping("/app/user/getOne")
public List<AppUserLogin> getOne(@RequestParam(value = "username")String username,@RequestParam(value = "realName")String realName);
@GetMapping("/api/app/imi/{imiId}") @GetMapping("/api/app/imi/{imiId}")
ImiVo findUserInfoByImiId(@PathVariable(value = "imiId") Integer imiId); ImiVo findUserInfoByImiId(@PathVariable(value = "imiId") Integer imiId);
......
...@@ -144,4 +144,9 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -144,4 +144,9 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
appUserInfoVo.setNickname(userDetail.getNickname()); appUserInfoVo.setNickname(userDetail.getNickname());
return appUserInfoVo; return appUserInfoVo;
} }
public List<Integer> getUserIdByUsername(String keywords) {
return mapper.getUserIdByUsername(keywords);
}
} }
...@@ -19,4 +19,6 @@ public interface AppUserDetailMapper extends Mapper<AppUserDetail> { ...@@ -19,4 +19,6 @@ public interface AppUserDetailMapper extends Mapper<AppUserDetail> {
void updateUserMemberStatusByUserId(@Param("userId") Integer userId,@Param("status") Integer status); void updateUserMemberStatusByUserId(@Param("userId") Integer userId,@Param("status") Integer status);
void updateUserPositionByUserId(@Param("userId") Integer id, @Param("positionId") Integer positionId); void updateUserPositionByUserId(@Param("userId") Integer id, @Param("positionId") Integer positionId);
List<Integer> getUserIdByUsername(@Param("keywords") String keywords);
} }
\ No newline at end of file
...@@ -28,4 +28,7 @@ public interface AppUserLoginMapper extends Mapper<AppUserLogin>, SelectByIdList ...@@ -28,4 +28,7 @@ public interface AppUserLoginMapper extends Mapper<AppUserLogin>, SelectByIdList
List<Integer> selectAllExistUserIds(); List<Integer> selectAllExistUserIds();
List<AppUserLogin> getUserByUsernameAndRealName(@Param("username") String username, @Param("realName")String realName);
} }
\ No newline at end of file
...@@ -262,6 +262,15 @@ public class AppUserController extends CommonBaseController{ ...@@ -262,6 +262,15 @@ public class AppUserController extends CommonBaseController{
return appUserLoginBiz.getUserByUsername(username); return appUserLoginBiz.getUserByUsername(username);
} }
/**
* 根据用户真实姓名和手机号模糊查询寻用户
* @param username
* @return
*/
@GetMapping("/getOne")
public List<AppUserLogin> getOne(@RequestParam(value = "username",required = false)String username, @RequestParam(value = "realName",required = false)String realName){
return appUserLoginBiz.getUserByUsernameAndRealName(username,realName);
}
@GetMapping("/findusersByIds") @GetMapping("/findusersByIds")
public Map<Integer,AppUserLogin> findAppUsersByUserIds(@RequestParam(value = "userIds") List<Integer> userIds){ public Map<Integer,AppUserLogin> findAppUsersByUserIds(@RequestParam(value = "userIds") List<Integer> userIds){
return appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(userIds); return appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(userIds);
...@@ -280,6 +289,14 @@ public class AppUserController extends CommonBaseController{ ...@@ -280,6 +289,14 @@ public class AppUserController extends CommonBaseController{
return ObjectRestResponse.succ(appUserInfoVo); return ObjectRestResponse.succ(appUserInfoVo);
} }
@GetMapping("/app/unauth/getUserIdByUsername")
@IgnoreUserToken
@IgnoreClientToken
public List<Integer> getUserIdByUsername(@RequestParam("keywords") String keywords){
List<Integer> userIds = userDetailBiz.getUserIdByUsername(keywords);
return userIds;
}
@GetMapping("/app/unauth/test") @GetMapping("/app/unauth/test")
@IgnoreUserToken @IgnoreUserToken
@IgnoreClientToken @IgnoreClientToken
......
...@@ -23,6 +23,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; ...@@ -23,6 +23,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
...@@ -178,6 +179,9 @@ public class PermissionService { ...@@ -178,6 +179,9 @@ public class PermissionService {
User user = userBiz.getUserByUsername(username); User user = userBiz.getUserByUsername(username);
List<Menu> menus = menuBiz.getUserAuthorityMenuByUserId(user.getId()); List<Menu> menus = menuBiz.getUserAuthorityMenuByUserId(user.getId());
menus=menus.stream().filter(a->state.contains(a.getState()==null?"1":a.getState())).collect(Collectors.toList()); menus=menus.stream().filter(a->state.contains(a.getState()==null?"1":a.getState())).collect(Collectors.toList());
if (state.contains("2")){
menus.sort(Comparator.comparing(Menu::getOrderNum));
}
return getMenuTree(menus,AdminCommonConstant.ROOT); return getMenuTree(menus,AdminCommonConstant.ROOT);
} }
} }
...@@ -42,6 +42,14 @@ ...@@ -42,6 +42,14 @@
where d.userid = #{userId} limit 1 where d.userid = #{userId} limit 1
</select> </select>
<select id="getUserIdByUsername" resultType="java.lang.Integer" parameterType="java.lang.String">
select d.userid from app_user_login l
left join app_user_detail d
on d.userid = l.id
where d.realname like concat("%", #{keywords}, "%") or l.username like concat("%", #{keywords}, "%")
</select>
<select id="selectAppUserManage" parameterType="com.github.wxiaoqi.security.admin.dto.AppUserManageDTO" <select id="selectAppUserManage" parameterType="com.github.wxiaoqi.security.admin.dto.AppUserManageDTO"
resultType="com.github.wxiaoqi.security.admin.vo.AppUserManageVo"> resultType="com.github.wxiaoqi.security.admin.vo.AppUserManageVo">
select select
......
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
<select id="selectbyPhones" resultType="com.github.wxiaoqi.security.admin.entity.AppUserLogin"> <select id="selectbyPhones" resultType="com.github.wxiaoqi.security.admin.entity.AppUserLogin">
select `id`,`username` from `app_user_login` where `username` in select `id`,`username` from `app_user_login` where `username` in
<foreach collection="phones" item="phone" open="(" close=")" separator=","> <foreach collection="phones" item="phone" open="(" close=")" separator=",">
#{phone} #{phone}
</foreach> </foreach>
</select> </select>
<update id="bindOpenId" parameterType="com.github.wxiaoqi.security.admin.entity.AppUserLogin"> <update id="bindOpenId" parameterType="com.github.wxiaoqi.security.admin.entity.AppUserLogin">
UPDATE app_user_login SET wx_openid=#{wxOpenid},unionid=#{unionid},openid=#{openid} where id=#{id} UPDATE app_user_login SET wx_openid=#{wxOpenid},unionid=#{unionid},openid=#{openid} where id=#{id}
</update> </update>
...@@ -16,4 +16,15 @@ ...@@ -16,4 +16,15 @@
<select id="selectAllExistUserIds" resultType="integer"> <select id="selectAllExistUserIds" resultType="integer">
SELECT `id` FROM `app_user_login` WHERE `isdel`=0; SELECT `id` FROM `app_user_login` WHERE `isdel`=0;
</select> </select>
<select id="getUserByUsernameAndRealName" resultType="com.github.wxiaoqi.security.admin.entity.AppUserLogin">
select l.* from app_user_login l left join app_user_detail d on l.id=d.userid where 1=1
<if test="username!=null ">
and l.username like concat('%',#{username},'%')
</if>
<if test="realName !=null">
and d.realname like concat('%',#{realName},'%')
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<result column="icon" jdbcType="VARCHAR" property="icon"/> <result column="icon" jdbcType="VARCHAR" property="icon"/>
<result column="type" jdbcType="CHAR" property="type"/> <result column="type" jdbcType="CHAR" property="type"/>
<result column="state" jdbcType="INTEGER" property="state"/> <result column="state" jdbcType="INTEGER" property="state"/>
<result column="order_num" jdbcType="INTEGER" property="orderNum"/>
<result column="description" jdbcType="VARCHAR" property="description"/> <result column="description" jdbcType="VARCHAR" property="description"/>
<result column="crt_time" jdbcType="DATE" property="crtTime"/> <result column="crt_time" jdbcType="DATE" property="crtTime"/>
<result column="crt_user" jdbcType="VARCHAR" property="crtUser"/> <result column="crt_user" jdbcType="VARCHAR" property="crtUser"/>
......
...@@ -168,4 +168,12 @@ public class CampsiteShopAdminDTO { ...@@ -168,4 +168,12 @@ public class CampsiteShopAdminDTO {
@ApiModelProperty("seo*html标签优化") @ApiModelProperty("seo*html标签优化")
private String alt; private String alt;
@ApiModelProperty("seo*html标签优化")
private String imgTitle;
@ApiModelProperty("seo*html标签优化")
private String imgKeyword;
@ApiModelProperty("seo*html标签优化")
private String imgDesc;
} }
...@@ -79,5 +79,13 @@ public class CampsiteShopDetailDTO { ...@@ -79,5 +79,13 @@ public class CampsiteShopDetailDTO {
@ApiModelProperty("seo*html标签优化") @ApiModelProperty("seo*html标签优化")
private String alt; private String alt;
@ApiModelProperty("seo*html标签优化")
private String imgTitle;
@ApiModelProperty("seo*html标签优化")
private String imgKeyword;
@ApiModelProperty("seo*html标签优化")
private String imgDesc;
} }
...@@ -17,4 +17,6 @@ public class CampsiteShopFindDTO extends PageParam { ...@@ -17,4 +17,6 @@ public class CampsiteShopFindDTO extends PageParam {
private Integer addrCity; private Integer addrCity;
private Integer type; private Integer type;
private String name;
} }
...@@ -101,6 +101,18 @@ public class CampsiteShopPageDTO implements Serializable { ...@@ -101,6 +101,18 @@ public class CampsiteShopPageDTO implements Serializable {
@ApiModelProperty("联系人") @ApiModelProperty("联系人")
private String concat; private String concat;
@ApiModelProperty("seo*html标签优化")
private String alt;
@ApiModelProperty("seo*html标签优化")
private String imgTitle;
@ApiModelProperty("seo*html标签优化")
private String imgKeyword;
@ApiModelProperty("seo*html标签优化")
private String imgDesc;
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) { if (this == o) {
......
...@@ -216,4 +216,16 @@ public class CampsiteShop implements Serializable { ...@@ -216,4 +216,16 @@ public class CampsiteShop implements Serializable {
@ApiModelProperty("seo*html标签优化") @ApiModelProperty("seo*html标签优化")
private String alt; private String alt;
@Column(name = "img_title")
@ApiModelProperty("seo*html标签优化")
private String imgTitle;
@Column(name = "img_keyword")
@ApiModelProperty("seo*html标签优化")
private String imgKeyword;
@Column(name = "img_desc")
@ApiModelProperty("seo*html标签优化")
private String imgDesc;
} }
...@@ -4,11 +4,15 @@ package com.xxfc.platform.campsite.feign; ...@@ -4,11 +4,15 @@ package com.xxfc.platform.campsite.feign;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.GoodDataVO; import com.github.wxiaoqi.security.common.vo.GoodDataVO;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.sun.org.apache.regexp.internal.RE;
import com.xxfc.platform.campsite.dto.CampsiteShopFindDTO;
import com.xxfc.platform.campsite.vo.CampsiteShopDetailVo; import com.xxfc.platform.campsite.vo.CampsiteShopDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopPageVo; import com.xxfc.platform.campsite.vo.CampsiteShopPageVo;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
...@@ -30,9 +34,10 @@ public interface CampsiteFeign { ...@@ -30,9 +34,10 @@ public interface CampsiteFeign {
@ApiOperation("分页查询营地列表") @ApiOperation("分页查询营地列表")
@GetMapping("/app/unauth/shops") @GetMapping("/app/unauth/shops")
ObjectRestResponse<PageDataVO<CampsiteShopPageVo>> findCampsiteShopPageByType(@RequestParam(value = "type", required = false) Integer type, ObjectRestResponse<PageDataVO<CampsiteShopPageVo>> findCampsiteShopPageByTypeAndName(@RequestParam(value = "type", required = false) Integer type,
@RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo, @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", required = false, defaultValue = "6") Integer pageSize); @RequestParam(value = "pageSize", required = false, defaultValue = "6") Integer pageSize,
@RequestParam(value = "name",required = false) String name);
/** /**
* @param longitude 经度 * @param longitude 经度
...@@ -44,4 +49,7 @@ public interface CampsiteFeign { ...@@ -44,4 +49,7 @@ public interface CampsiteFeign {
ObjectRestResponse<CampsiteShopDetailVo> findCampsiteShopDetailById(@RequestParam(value = "id") Integer id, ObjectRestResponse<CampsiteShopDetailVo> findCampsiteShopDetailById(@RequestParam(value = "id") Integer id,
@RequestParam(value = "longitude", required = false) Double longitude, @RequestParam(value = "longitude", required = false) Double longitude,
@RequestParam(value = "latitude", required = false) Double latitude); @RequestParam(value = "latitude", required = false) Double latitude);
@PostMapping(value = "/app/unauth/campsites")
ObjectRestResponse<PageDataVO<CampsiteShopPageVo>> findCampsiteShopPageForUncc(@RequestBody CampsiteShopFindDTO campsiteShopFindDTO);
} }
...@@ -175,4 +175,13 @@ public class CampsiteShopAdminVO { ...@@ -175,4 +175,13 @@ public class CampsiteShopAdminVO {
@ApiModelProperty("seo*html标签优化") @ApiModelProperty("seo*html标签优化")
private String alt; private String alt;
@ApiModelProperty("seo*html标签优化")
private String imgTitle;
@ApiModelProperty("seo*html标签优化")
private String imgKeyword;
@ApiModelProperty("seo*html标签优化")
private String imgDesc;
} }
...@@ -99,4 +99,16 @@ public class CampsiteShopPageVo implements Serializable { ...@@ -99,4 +99,16 @@ public class CampsiteShopPageVo implements Serializable {
@ApiModelProperty("地址") @ApiModelProperty("地址")
private String address; private String address;
@ApiModelProperty("seo*html标签优化")
private String alt;
@ApiModelProperty("seo*html标签优化")
private String imgTitle;
@ApiModelProperty("seo*html标签优化")
private String imgKeyword;
@ApiModelProperty("seo*html标签优化")
private String imgDesc;
} }
...@@ -91,9 +91,17 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> { ...@@ -91,9 +91,17 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
return JSONObject.parseObject(result, new TypeReference<PageDataVO<CampsiteShopPageVo>>() { return JSONObject.parseObject(result, new TypeReference<PageDataVO<CampsiteShopPageVo>>() {
}); });
} }
PageDataVO<CampsiteShopPageVo> campsiteShopPageDataVO = new PageDataVO<>(); PageDataVO<CampsiteShopPageVo> campsiteShopPageDataVO = findCampsiteShopPageByTypeAndName(campsiteShopFindDTO);
campHashOperations.put(CAMPSITE_LIST_CACHE_PREKEY,campsite_cache_key,JSONObject.toJSONString(campsiteShopPageDataVO));
return campsiteShopPageDataVO;
}
PageDataVO<CampsiteShopPageDTO> pageDataVO = PageDataVO.pageInfo(campsiteShopFindDTO.getPage(), campsiteShopFindDTO.getLimit(), () -> mapper.findAllCampsiteShopsByTypeOrCode(campsiteShopFindDTO.getType(),campsiteShopFindDTO.getAddrProvince(),campsiteShopFindDTO.getAddrCity()));
public PageDataVO<CampsiteShopPageVo> findCampsiteShopPageByTypeAndName(CampsiteShopFindDTO campsiteShopFindDTO){
PageDataVO<CampsiteShopPageVo> campsiteShopPageDataVO = new PageDataVO<>();
PageDataVO<CampsiteShopPageDTO> pageDataVO = PageDataVO.pageInfo(campsiteShopFindDTO.getPage(), campsiteShopFindDTO.getLimit(),
() -> mapper.findAllCampsiteShopsByTypeOrCodeOrName(campsiteShopFindDTO.getType(),campsiteShopFindDTO.getAddrProvince(),
campsiteShopFindDTO.getAddrCity(),campsiteShopFindDTO.getName()));
List<CampsiteShopPageDTO> campsiteShopPageDTOS = pageDataVO.getData(); List<CampsiteShopPageDTO> campsiteShopPageDTOS = pageDataVO.getData();
if (CollectionUtils.isEmpty(campsiteShopPageDTOS)) { if (CollectionUtils.isEmpty(campsiteShopPageDTOS)) {
campsiteShopPageDataVO.setPageNum(campsiteShopFindDTO.getPage()); campsiteShopPageDataVO.setPageNum(campsiteShopFindDTO.getPage());
...@@ -106,7 +114,6 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> { ...@@ -106,7 +114,6 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("根据type=【{}】查询到的店铺数据:【{}】", campsiteShopFindDTO.getType(), campsiteShopPageDTOS); log.debug("根据type=【{}】查询到的店铺数据:【{}】", campsiteShopFindDTO.getType(), campsiteShopPageDTOS);
} }
List<CampsiteShopPageVo> campsiteShopPageVoList = new ArrayList<>(); List<CampsiteShopPageVo> campsiteShopPageVoList = new ArrayList<>();
campsiteShopPageDTOS = campsiteShopPageDTOS.stream().distinct().collect(Collectors.toList()); campsiteShopPageDTOS = campsiteShopPageDTOS.stream().distinct().collect(Collectors.toList());
for (CampsiteShopPageDTO campsiteShopPageDTO : campsiteShopPageDTOS) { for (CampsiteShopPageDTO campsiteShopPageDTO : campsiteShopPageDTOS) {
...@@ -115,14 +122,11 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> { ...@@ -115,14 +122,11 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
campsiteShopPageVoList.add(campsiteShopPageVo); campsiteShopPageVoList.add(campsiteShopPageVo);
} }
campsiteShopPageVoList.sort(Comparator.comparing(CampsiteShopPageVo::getHot).reversed().thenComparing(CampsiteShopPageVo::getCrtTime).reversed()); campsiteShopPageVoList.sort(Comparator.comparing(CampsiteShopPageVo::getHot).reversed().thenComparing(CampsiteShopPageVo::getCrtTime).reversed());
campsiteShopPageDataVO.setTotalPage(pageDataVO.getTotalPage()); campsiteShopPageDataVO.setTotalPage(pageDataVO.getTotalPage());
campsiteShopPageDataVO.setTotalCount(pageDataVO.getTotalCount()); campsiteShopPageDataVO.setTotalCount(pageDataVO.getTotalCount());
campsiteShopPageDataVO.setPageSize(pageDataVO.getPageSize()); campsiteShopPageDataVO.setPageSize(pageDataVO.getPageSize());
campsiteShopPageDataVO.setPageNum(pageDataVO.getPageNum()); campsiteShopPageDataVO.setPageNum(pageDataVO.getPageNum());
campsiteShopPageDataVO.setData(campsiteShopPageVoList); campsiteShopPageDataVO.setData(campsiteShopPageVoList);
campHashOperations.put(CAMPSITE_LIST_CACHE_PREKEY,campsite_cache_key,JSONObject.toJSONString(campsiteShopPageDataVO));
return campsiteShopPageDataVO; return campsiteShopPageDataVO;
} }
...@@ -329,6 +333,11 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> { ...@@ -329,6 +333,11 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
return true; return true;
} }
public PageDataVO<CampsiteShopPageVo> findCampsiteShopPageForUncc(CampsiteShopFindDTO campsiteShopFindDTO) {
return findCampsiteShopPageByTypeAndName(campsiteShopFindDTO);
}
private long transformStartTime(Long startTime) { private long transformStartTime(Long startTime) {
return LocalDateTime.ofInstant(new Date(startTime).toInstant(), ZoneOffset.ofHours(+8)) return LocalDateTime.ofInstant(new Date(startTime).toInstant(), ZoneOffset.ofHours(+8))
.withHour(0) .withHour(0)
...@@ -399,4 +408,5 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> { ...@@ -399,4 +408,5 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
s = s * EARTH_RADIUS; s = s * EARTH_RADIUS;
return s; return s;
} }
} }
\ No newline at end of file
...@@ -26,9 +26,10 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> { ...@@ -26,9 +26,10 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
* *
* @param typeId * @param typeId
*/ */
List<CampsiteShopPageDTO> findAllCampsiteShopsByTypeOrCode(@Param("typeId") Integer typeId, List<CampsiteShopPageDTO> findAllCampsiteShopsByTypeOrCodeOrName(@Param("typeId") Integer typeId,
@Param("proviceCode") Integer proviceCode, @Param("proviceCode") Integer proviceCode,
@Param("cityCode") Integer cityCode); @Param("cityCode") Integer cityCode,
@Param("name") String name);
/** /**
* 首页营地列表 * 首页营地列表
...@@ -82,7 +83,7 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> { ...@@ -82,7 +83,7 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
* @param name * @param name
* @return * @return
*/ */
int checkNameExist(@Param("id") Integer id,@Param("name") String name); int checkNameExist(@Param("id") Integer id, @Param("name") String name);
} }
...@@ -29,17 +29,22 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz, Camp ...@@ -29,17 +29,22 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz, Camp
@ApiOperation("分页查询营地列表") @ApiOperation("分页查询营地列表")
@GetMapping("/app/unauth/shops") @GetMapping("/app/unauth/shops")
public ObjectRestResponse<PageDataVO<CampsiteShopPageVo>> findCampsiteShopPageByType(@RequestParam(value = "type", required = false) Integer type, public ObjectRestResponse<PageDataVO<CampsiteShopPageVo>> findCampsiteShopPageByTypeAndName(@RequestParam(value = "type", required = false) Integer type,
@RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo, @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", required = false, defaultValue = "6") Integer pageSize) { @RequestParam(value = "pageSize", required = false, defaultValue = "6") Integer pageSize) {
CampsiteShopFindDTO campsiteShopFindDTO = new CampsiteShopFindDTO(); CampsiteShopFindDTO campsiteShopFindDTO = new CampsiteShopFindDTO();
campsiteShopFindDTO.setType(type); campsiteShopFindDTO.setType(type);
campsiteShopFindDTO.setPage(pageNo); campsiteShopFindDTO.setPage(pageNo);
campsiteShopFindDTO.setLimit(pageSize); campsiteShopFindDTO.setLimit(pageSize);
PageDataVO<CampsiteShopPageVo> pageDataVO = getBaseBiz().findCampsiteShopPageByType(campsiteShopFindDTO); PageDataVO<CampsiteShopPageVo> pageDataVO = getBaseBiz().findCampsiteShopPageByType(campsiteShopFindDTO);
return ObjectRestResponse.succ(pageDataVO); return ObjectRestResponse.succ(pageDataVO);
} }
@PostMapping(value = "/app/unauth/campsites")
public ObjectRestResponse<PageDataVO<CampsiteShopPageVo>> findCampsiteShopPageForUncc(@RequestBody CampsiteShopFindDTO campsiteShopFindDTO) {
PageDataVO<CampsiteShopPageVo> campsiteShops = baseBiz.findCampsiteShopPageForUncc(campsiteShopFindDTO);
return ObjectRestResponse.succ(campsiteShops);
}
/** /**
* @param longitude 经度 * @param longitude 经度
...@@ -49,8 +54,8 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz, Camp ...@@ -49,8 +54,8 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz, Camp
@ApiOperation("查询营地详情") @ApiOperation("查询营地详情")
@GetMapping("/app/unauth/shop") @GetMapping("/app/unauth/shop")
public ObjectRestResponse<CampsiteShopDetailVo> findCampsiteShopDetailById(@RequestParam(value = "id") Integer id, public ObjectRestResponse<CampsiteShopDetailVo> findCampsiteShopDetailById(@RequestParam(value = "id") Integer id,
@RequestParam(value = "longitude",required = false) Double longitude, @RequestParam(value = "longitude", required = false) Double longitude,
@RequestParam(value = "latitude",required = false) Double latitude) { @RequestParam(value = "latitude", required = false) Double latitude) {
CampsiteShopDetailVo campsiteShopDetailVo = getBaseBiz().findCampsiteShopDetailById(id, longitude, latitude); CampsiteShopDetailVo campsiteShopDetailVo = getBaseBiz().findCampsiteShopDetailById(id, longitude, latitude);
return ObjectRestResponse.succ(campsiteShopDetailVo); return ObjectRestResponse.succ(campsiteShopDetailVo);
} }
...@@ -58,8 +63,8 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz, Camp ...@@ -58,8 +63,8 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz, Camp
@ApiOperation("首页营地列表") @ApiOperation("首页营地列表")
@GetMapping(value = "/app/shopList") @GetMapping(value = "/app/shopList")
public List<GoodDataVO> goodList(@RequestParam(value = "page", defaultValue = "1") Integer page, public List<GoodDataVO> goodList(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit",defaultValue = "4") Integer limit) { @RequestParam(value = "limit", defaultValue = "4") Integer limit) {
return getBaseBiz().getAllByHome(page,limit); return getBaseBiz().getAllByHome(page, limit);
} }
@ApiOperation("随机获取营地") @ApiOperation("随机获取营地")
...@@ -67,8 +72,9 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz, Camp ...@@ -67,8 +72,9 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz, Camp
public ObjectRestResponse findRandomVehicle(Integer number) { public ObjectRestResponse findRandomVehicle(Integer number) {
return baseBiz.findRandomVehicle(number); return baseBiz.findRandomVehicle(number);
} }
@PostMapping(value = "/app/unauth/webchat_official/campsites") @PostMapping(value = "/app/unauth/webchat_official/campsites")
public ObjectRestResponse<PageDataVO<CampsiteShopPageVo>> findCampsitesForPublicNumber(@RequestBody CampsiteShopFindDTO campsiteShopFindDTO){ public ObjectRestResponse<PageDataVO<CampsiteShopPageVo>> findCampsitesForPublicNumber(@RequestBody CampsiteShopFindDTO campsiteShopFindDTO) {
PageDataVO<CampsiteShopPageVo> campsiteShops = baseBiz.findCampsiteShopPageByType(campsiteShopFindDTO); PageDataVO<CampsiteShopPageVo> campsiteShops = baseBiz.findCampsiteShopPageByType(campsiteShopFindDTO);
return ObjectRestResponse.succ(campsiteShops); return ObjectRestResponse.succ(campsiteShops);
......
...@@ -33,10 +33,13 @@ ...@@ -33,10 +33,13 @@
<result property="hot" column="hot"/> <result property="hot" column="hot"/>
<result property="saleState" column="sale_state"/> <result property="saleState" column="sale_state"/>
<result property="alt" column="alt"/> <result property="alt" column="alt"/>
<result property="imgTitle" column="img_title"/>
<result property="imgKeyword" column="img_keyword"/>
<result property="imgDesc" column="img_desc"/>
</resultMap> </resultMap>
<!--根据类型查询全部--> <!--根据类型查询全部-->
<select id="findAllCampsiteShopsByTypeOrCode" resultType="com.xxfc.platform.campsite.dto.CampsiteShopPageDTO"> <select id="findAllCampsiteShopsByTypeOrCodeOrName" resultType="com.xxfc.platform.campsite.dto.CampsiteShopPageDTO">
SELECT SELECT
cs.id AS `id`, cs.id AS `id`,
cs. NAME AS `name`, cs. NAME AS `name`,
...@@ -51,6 +54,10 @@ ...@@ -51,6 +54,10 @@
cs.hot AS `hot`, cs.hot AS `hot`,
cs.crt_time AS `crtTime`, cs.crt_time AS `crtTime`,
cs.concat AS `concat`, cs.concat AS `concat`,
cs.alt AS `alt`,
cs.img_title AS `imgTitle`,
cs.img_keyword AS `imgKeyword`,
cs.img_desc AS `imgDesc`,
REPLACE(GROUP_CONCAT( DISTINCT ct.`name` ),',','|') AS `storeTypeName` REPLACE(GROUP_CONCAT( DISTINCT ct.`name` ),',','|') AS `storeTypeName`
FROM campsite_shop cs FROM campsite_shop cs
LEFT JOIN campsite_shop_tag cst ON cs.id = cst.shop_id LEFT JOIN campsite_shop_tag cst ON cs.id = cst.shop_id
...@@ -63,10 +70,13 @@ ...@@ -63,10 +70,13 @@
and cst.tag_id=#{typeId} and cst.tag_id=#{typeId}
</if> </if>
<if test="proviceCode != null"> <if test="proviceCode != null">
and `province`=#{proviceCode} and cs.`province`=#{proviceCode}
</if> </if>
<if test="cityCode != null"> <if test="cityCode != null">
and `city`=#{cityCode} and cs.`city`=#{cityCode}
</if>
<if test="name!=null and name!=''">
and cs.`name` like concat('%',#{name},'%')
</if> </if>
GROUP BY cs.id GROUP BY cs.id
order by cs.hot DESC,cs.crt_time DESC order by cs.hot DESC,cs.crt_time DESC
...@@ -74,7 +84,7 @@ ...@@ -74,7 +84,7 @@
<!--首页查询全部--> <!--首页查询全部-->
<select id="findAllByHome" resultType="com.github.wxiaoqi.security.common.vo.GoodDataVO"> <select id="findAllByHome" resultType="com.github.wxiaoqi.security.common.vo.GoodDataVO">
select cs.id as `id`,cs.name as `name`,cs.logo as `imgUrl`,cs.province_name as `name1`,cs.longitude,cs.latitude,cs.alt select cs.id as `id`,cs.name as `name`,cs.logo as `imgUrl`,cs.province_name as `name1`,cs.longitude,cs.latitude,cs.alt,cs.img_title as `imgTitle`,cs.img_keyword as `imgKeyword`,cs.img_desc as `imgDesc`
FROM `campsite_shop` cs FROM `campsite_shop` cs
where cs.sale_state=1 and cs.is_del=0 where cs.sale_state=1 and cs.is_del=0
order by cs.hot desc order by cs.hot desc
...@@ -82,7 +92,7 @@ ...@@ -82,7 +92,7 @@
</select> </select>
<select id="findAll" resultType="com.github.wxiaoqi.security.common.vo.GoodDataVO"> <select id="findAll" resultType="com.github.wxiaoqi.security.common.vo.GoodDataVO">
select cs.id as `id`,cs.name as `name`,cs.logo as `imgUrl`,cs.province_name as `name1`,cs.longitude,cs.latitude,cs.alt select cs.id as `id`,cs.name as `name`,cs.logo as `imgUrl`,cs.province_name as `name1`,cs.longitude,cs.latitude,cs.alt,cs.img_title as `imgTitle`,cs.img_keyword as `imgKeyword`,cs.img_desc as `imgDesc`
FROM `campsite_shop` cs FROM `campsite_shop` cs
where cs.sale_state=1 and cs.is_del=0 where cs.sale_state=1 and cs.is_del=0
order by cs.hot desc order by cs.hot desc
...@@ -91,7 +101,7 @@ ...@@ -91,7 +101,7 @@
<!--根据id查询详情--> <!--根据id查询详情-->
<select id="findCampsiteShopDetailById" resultType="com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO"> <select id="findCampsiteShopDetailById" resultType="com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO">
select `name` as `name`,`province_name` as `provinceName`,`city_name` as `cityName`,`address` as `address`,`service_phone` as `phone`,`logo` as `logo`,`poster_background` as `posterBackground` , select `name` as `name`,`province_name` as `provinceName`,`city_name` as `cityName`,`address` as `address`,`service_phone` as `phone`,`logo` as `logo`,`poster_background` as `posterBackground` ,
`content` as `content`,`configure` as `configure`,`longitude` as `longitude`,`latitude` as `latitude`,`alt` from `campsite_shop` where `id`=#{id} `content` as `content`,`configure` as `configure`,`longitude` as `longitude`,`latitude` as `latitude`,`alt`,cs.img_title as `imgTitle`,cs.img_keyword as `imgKeyword`,cs.img_desc as `imgDesc` from `campsite_shop` where `id`=#{id}
</select> </select>
<!--根据查询条件分页查询--> <!--根据查询条件分页查询-->
...@@ -111,7 +121,7 @@ ...@@ -111,7 +121,7 @@
<if test="name != null and name != ''"> <if test="name != null and name != ''">
and `name` like concat('%',#{name},'%') and `name` like concat('%',#{name},'%')
</if> </if>
ORDER BY `hot` DESC ORDER BY `hot` DESC
</select> </select>
<!--根据id更新营地状态--> <!--根据id更新营地状态-->
......
...@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.admin.vo.ImiVo; ...@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.admin.vo.ImiVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; 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.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.mongodb.client.result.DeleteResult;
import com.xxfc.platform.im.dto.CommentVo; import com.xxfc.platform.im.dto.CommentVo;
import com.xxfc.platform.im.dto.PraiseVo; import com.xxfc.platform.im.dto.PraiseVo;
import com.xxfc.platform.im.dto.QuestionParamDto; import com.xxfc.platform.im.dto.QuestionParamDto;
...@@ -16,7 +17,9 @@ import com.xxfc.platform.im.model.Comment; ...@@ -16,7 +17,9 @@ import com.xxfc.platform.im.model.Comment;
import com.xxfc.platform.im.model.Msg; import com.xxfc.platform.im.model.Msg;
import com.xxfc.platform.im.model.Praise; import com.xxfc.platform.im.model.Praise;
import com.xxfc.platform.im.vo.MsgVo; import com.xxfc.platform.im.vo.MsgVo;
import com.xxfc.platform.universal.constant.ResCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
...@@ -27,9 +30,7 @@ import org.springframework.data.mongodb.core.query.Criteria; ...@@ -27,9 +30,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.Iterator;
import java.util.List;
@Service @Service
@Slf4j @Slf4j
...@@ -162,6 +163,29 @@ public class MsgBiz { ...@@ -162,6 +163,29 @@ public class MsgBiz {
} }
/**
* 删除消息
* @param ids id字符串,用逗号隔开
* @return
*/
public ObjectRestResponse deleteByList(String ids) {
Integer userId = 0;
AppUserDTO appUserDTO = userBiz.getUserInfo();
if(appUserDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if (StringUtils.isBlank(ids)) {
return ObjectRestResponse.paramIsEmpty();
}
userId = appUserDTO.getImUserid();
List<String> list = Arrays.asList(ids.split(","));
Set<String> set = new HashSet<>();
set.addAll(list);
Query query = new Query(Criteria.where("id").in(set));
query.addCriteria(Criteria.where("userId").is(userId));
mongoTemplate.remove(query, Msg.class, "s_msg");
return ObjectRestResponse.succ();
}
/** /**
......
...@@ -35,4 +35,9 @@ public class MsgController { ...@@ -35,4 +35,9 @@ public class MsgController {
public ObjectRestResponse getByUserId(Integer page, Integer limit, Integer type) { public ObjectRestResponse getByUserId(Integer page, Integer limit, Integer type) {
return msgBiz.getMsgListByUserId(page, limit, type); return msgBiz.getMsgListByUserId(page, limit, type);
} }
@GetMapping(value = "/delete")
public ObjectRestResponse deleteByIds(String ids) {
return msgBiz.deleteByList(ids);
}
} }
package com.xxfc.platform.order.contant.enumerate;
import java.util.HashMap;
import java.util.Map;
public enum AccountTypeEnum {
//账款类型 1*--入账;2*--出账
//账款类型 记帐类型 101--订单支付;201--取消订单退款;202--全部押金退款;203--部分押金退款;204--剩余押金退款
IN_ORDER_PAY(101, "订单支付"),
OUT_ORDER_FUND(201, "订单款"),
OUT_DEPOSIT(202, "所有押金"),
OUT_PART_DEPOSIT(203, "部分押金(扣除该扣除的 + 保留违章预备金)"),
OUT_RESIDUE_DEPOSIT(204, "剩余押金(扣除该扣除的)"),
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
//Maps.newHashMap();
static{
for(AccountTypeEnum enumE : AccountTypeEnum.values()){
codeAndDesc.put(enumE.getCode(),enumE.getDesc());
}
}
AccountTypeEnum(Integer code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
}
\ No newline at end of file
...@@ -7,6 +7,7 @@ public enum CrosstownTypeEnum { ...@@ -7,6 +7,7 @@ public enum CrosstownTypeEnum {
DEPARTURE(1, "交车"), DEPARTURE(1, "交车"),
ARRIVE(2, "还车"), ARRIVE(2, "还车"),
FIXED_LOSS(3, "定损"), FIXED_LOSS(3, "定损"),
FIXED_LOSS_NOW(4, "定损"),
; ;
/** /**
* 编码 * 编码
......
package com.xxfc.platform.order.contant.enumerate;
import java.util.HashMap;
import java.util.Map;
public enum DeductionTypeEnum {
//账款类型 1--违约金;2--消费金额;3--赔偿金(定损);4--违章相关
VIOLATE_CANCEL(101, "提前取消违约金"),
VIOLATE_ADVANCE(102, "提前还车违约金"),
VIOLATE_DELAY(103, "延迟还车违约金"),
EXTRA(201, "消费金额"),
DAMAGES(301, "赔偿金(定损)"),
VIOLATE_TRAFFIC_DEDUCT(401, "违章扣款"),
VIOLATE_TRAFFIC_KEEP(402, "违章扣款保留金"),
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
//Maps.newHashMap();
static{
for(DeductionTypeEnum enumE : DeductionTypeEnum.values()){
codeAndDesc.put(enumE.getCode(),enumE.getDesc());
}
}
DeductionTypeEnum(Integer code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
}
\ No newline at end of file
...@@ -4,12 +4,18 @@ import java.util.HashMap; ...@@ -4,12 +4,18 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
public enum OrderCostEnum { public enum OrderCostEnum {
RentVehicle(1, "租车费用明细"), RENT_VEHICLE("01", "租车费用明细"),
TOUR("02", "旅游费用明细"),
CANCEL_NO_START("03", "取消违约金明细"),
CANCEL_STARTED("04", "取消费用明细"),
FINLISH_ADVANCE("05", "租车费用明细"),
FINLISH_DELAY("06", "租车费用明细"),
; ;
/** /**
* 编码 * 编码
*/ */
private Integer code; private String code;
/** /**
* 类型描述 * 类型描述
*/ */
...@@ -17,16 +23,16 @@ public enum OrderCostEnum { ...@@ -17,16 +23,16 @@ public enum OrderCostEnum {
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>(); private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
OrderCostEnum(Integer code, String desc){ OrderCostEnum(String code, String desc){
this.code=code; this.code=code;
this.desc=desc; this.desc=desc;
} }
public Integer getCode() { public String getCode() {
return code; return code;
} }
public void setCode(Integer code) { public void setCode(String code) {
this.code = code; this.code = code;
} }
......
...@@ -6,7 +6,8 @@ import java.util.Map; ...@@ -6,7 +6,8 @@ import java.util.Map;
public enum OrderViolateEnum { public enum OrderViolateEnum {
BEFORE(1, "提前"), BEFORE(1, "提前"),
AFTER(2, "延期") AFTER(2, "延期"),
EXCESS(3, "消费超额金")
; ;
/** /**
* 编码 * 编码
......
...@@ -78,10 +78,10 @@ public class BaseOrder implements Serializable { ...@@ -78,10 +78,10 @@ public class BaseOrder implements Serializable {
private BigDecimal goodsAmount; private BigDecimal goodsAmount;
/** /**
* 订单价格 * 订单总金额
*/ */
@Column(name = "order_amount") @Column(name = "order_amount")
@ApiModelProperty(value = "订单价格") @ApiModelProperty(value = "订单总金额")
private BigDecimal orderAmount; private BigDecimal orderAmount;
/** /**
......
...@@ -7,6 +7,7 @@ import org.springframework.format.annotation.DateTimeFormat; ...@@ -7,6 +7,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
...@@ -15,7 +16,9 @@ import java.util.Date; ...@@ -15,7 +16,9 @@ import java.util.Date;
* @author Administrator * @author Administrator
*/ */
@Data @Data
public class DailyOrderStatistics { public class DailyOrderStatistics implements Serializable {
private static final long serialVersionUID = 1L;
@Id @Id
@GeneratedValue(generator = "JDBC") @GeneratedValue(generator = "JDBC")
private Integer id; private Integer id;
......
...@@ -13,9 +13,15 @@ import java.math.BigDecimal; ...@@ -13,9 +13,15 @@ import java.math.BigDecimal;
@Data @Data
@Table(name = "daily_travel_order_statistics") @Table(name = "daily_travel_order_statistics")
public class DailyTravelOrderStatistics extends DailyOrderStatistics { public class DailyTravelOrderStatistics extends DailyOrderStatistics {
/**
* 违约总额
*/
@Column(name = "default_money ")
private BigDecimal defaultMoney ;
/** /**
* 取消订单总 * 退还订单金
*/ */
@Column(name = "penal_sum") @Column(name = "return_gmv")
private BigDecimal penalSum; private BigDecimal returnGmv;
} }
...@@ -17,27 +17,28 @@ import java.util.Date; ...@@ -17,27 +17,28 @@ import java.util.Date;
/** /**
* 每日租车订单统计 * 每日租车订单统计
*
* @author Administrator * @author Administrator
*/ */
@Data @Data
@Table(name = "daily_vehicle_order_statistics") @Table(name = "daily_vehicle_order_statistics")
public class DailyVehicleOrderStatistics extends DailyOrderStatistics{ public class DailyVehicleOrderStatistics extends DailyOrderStatistics {
/** /**
* 预交押金总额 * 预交押金总额
*/ */
@Column(name = "security_deposit") @Column(name = "security_deposit")
private BigDecimal securityDeposit; private BigDecimal securityDeposit;
/** /**
* 退还押金总额 * 退还押金总额
*/ */
@Column(name = "refund_security_deposit") @Column(name = "refund_security_deposit")
private BigDecimal refundSecurityDeposit; private BigDecimal refundSecurityDeposit;
/** /**
* 赔偿总额 * 损坏赔偿总额
*/ */
@Column(name = "compensation") @Column(name = "compensation")
private BigDecimal compensation; private BigDecimal compensation;
...@@ -46,19 +47,25 @@ public class DailyVehicleOrderStatistics extends DailyOrderStatistics{ ...@@ -46,19 +47,25 @@ public class DailyVehicleOrderStatistics extends DailyOrderStatistics{
* 违章总额 * 违章总额
*/ */
@Column(name = "forfeit") @Column(name = "forfeit")
private BigDecimal violationMoney; private BigDecimal violationMoney;
/** /**
* 延期总 * 退还订单金
*/ */
@Column(name = "postpone") @Column(name = "return_gmv")
private BigDecimal postpone; private BigDecimal returnGmv;
// /** /**
// * 取消订单扣款总额 * 违约总额
// */ */
// @Column(name = "penal_sum") @Column(name = "default_money ")
// private BigDecimal penalSum; private BigDecimal defaultMoney ;
/**
* 消费金总额
*/
@Column(name = "total_expenditure")
private BigDecimal totalExpenditure;
} }
package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 订单帐目
*
* @author zhoujw
* @email 18178966185@163.com
* @date 2019-09-09 15:51:16
*/
@Data
@Table(name = "order_account")
public class OrderAccount implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键")
private Integer id;
/**
* 订单id
*/
@Column(name = "order_id")
@ApiModelProperty(value = "订单id")
private Integer orderId;
/**
* 账款对应的流水号
*/
@Column(name = "trade_no")
@ApiModelProperty(value = "账款对应的流水号")
private String tradeNo;
/**
* 记账时间
*/
@Column(name = "account_time")
@ApiModelProperty(value = "记账时间")
private Long accountTime;
/**
* 记帐类型 101--订单支付;201--取消订单退款;202--全部押金退款;203--部分押金退款;204--剩余押金退款
*/
@Column(name = "account_type")
@ApiModelProperty(value = "记帐类型 101--订单支付;201--取消订单退款;202--全部押金退款;203--部分押金退款;204--剩余押金退款")
private Integer accountType;
/**
* 账款状态 1--成功;2--失败
*/
@Column(name = "account_status")
@ApiModelProperty(value = "账款状态 1--成功;2--失败")
private Integer accountStatus;
/**
* 账款金额
*/
@Column(name = "account_amount")
@ApiModelProperty(value = "账款金额")
private BigDecimal accountAmount;
/**
* 账款说明
*/
@Column(name = "account_desc")
@ApiModelProperty(value = "账款说明")
private String accountDesc;
/**
* 账款详情
*/
@Column(name = "account_detail")
@ApiModelProperty(value = "账款详情")
private String accountDetail;
/**
* 创建时间
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 原金额
*/
@Column(name = "original_amount")
@ApiModelProperty(value = "原金额")
private BigDecimal originalAmount;
/**
* 扣除金额
*/
@Column(name = "deduct_amount")
@ApiModelProperty(value = "扣除金额")
private BigDecimal deductAmount;
}
...@@ -146,6 +146,14 @@ public class OrderItem implements Serializable { ...@@ -146,6 +146,14 @@ public class OrderItem implements Serializable {
return calculateAmount; return calculateAmount;
} }
public BigDecimal getBuyAmount() {
return getUnitPrice().multiply(new BigDecimal(getBuyNum() + ""));
}
public BigDecimal getCutAmount() {
return getUnitPrice().multiply(new BigDecimal(getCutNum() + ""));
}
public BigDecimal handleCouponAmount(BigDecimal couponAmount) { public BigDecimal handleCouponAmount(BigDecimal couponAmount) {
BigDecimal realAmountResidue = getRealAmount().subtract(couponAmount); BigDecimal realAmountResidue = getRealAmount().subtract(couponAmount);
//剩余价格小于0 即优惠价格超出本item的实际价格,返回剩余优惠 //剩余价格小于0 即优惠价格超出本item的实际价格,返回剩余优惠
......
package com.xxfc.platform.order.entity; package com.xxfc.platform.order.entity;
import com.github.wxiaoqi.security.common.util.JsonUtil;
import com.xxfc.platform.order.pojo.price.CostDetailExtend;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -315,4 +317,20 @@ public class OrderRentVehicleDetail implements Serializable { ...@@ -315,4 +317,20 @@ public class OrderRentVehicleDetail implements Serializable {
// @Column(name = "back_free_days") // @Column(name = "back_free_days")
// Integer backFreeDays; // Integer backFreeDays;
@ApiModelProperty(value = "违章金额")
@Column(name = "violate_traffic_amount")
BigDecimal violateTrafficAmount;
@ApiModelProperty(value = "使用天数")
@Column(name = "used_day")
Integer usedDay;
@Column(name = "cost_detail_extend")
@ApiModelProperty(value = "费用其他明细 type:1--取消违约金;2--取消费用明细;3--提前还车费用明细;4--延期还车费用明细")
private String costDetailExtend;
public void handelCostDetailExtend(CostDetailExtend costDetailExtend) {
this.costDetailExtend = JsonUtil.objectToJson(((CostDetailExtend)costDetailExtend));
}
} }
...@@ -12,48 +12,58 @@ import java.math.BigDecimal; ...@@ -12,48 +12,58 @@ import java.math.BigDecimal;
*/ */
@Data @Data
@ApiModel(value = "订单统计实体") @ApiModel(value = "历史订单统计实体")
public class OrderStatistics { public class OrderStatistics {
/** /**
* 月成交总金额 * 历史交总金额
*/ */
@ApiModelProperty(value = "月成交总金额") @ApiModelProperty(value = "历史交总金额")
private BigDecimal totalGmv; private BigDecimal totalGmv;
/** /**
* 押金总额 * 历史押金总额
*/ */
@ApiModelProperty(value = "押金总额") @ApiModelProperty(value = "历史押金总额")
private BigDecimal totalSecurityDeposit; private BigDecimal totalSecurityDeposit;
/** /**
* 退还押金总额 * 历史退还押金总额
*/ */
@ApiModelProperty(value = "退还押金总额") @ApiModelProperty(value = "历史退还押金总额")
private BigDecimal totalRefundSecurityDeposit; private BigDecimal totalRefundSecurityDeposit;
/** /**
* 赔偿总额 * 历史赔偿总额
*/ */
@ApiModelProperty(value = "赔偿总额") @ApiModelProperty(value = "历史赔偿总额")
private BigDecimal totalCompensation; private BigDecimal totalCompensation;
/** /**
* 违章总额 * 历史违章总额
*/ */
@ApiModelProperty(value = "违章总额") @ApiModelProperty(value = "历史违章总额")
private BigDecimal totalForfeit; private BigDecimal totalForfeit;
/**
* 历史订单退款
*/
@ApiModelProperty(value = "历史订单退款")
private BigDecimal totalReturnGmv;
/** /**
* 月取消订单扣款总额 * 历史延期扣款总额
*/ */
@ApiModelProperty(value = "月取消订单扣款总额") @ApiModelProperty(value = "历史延期扣款总额")
private BigDecimal totalPenalSum; private BigDecimal totalDefaultMoney;
/** /**
* 月延期扣款总额 * 历史实际消费总额
*/ */
@ApiModelProperty(value = "月延期扣款总额") @ApiModelProperty(value = "历史实际消费总额")
private BigDecimal totalPostpone; private BigDecimal totalExpenditure;
} }
package com.xxfc.platform.order.entity; package com.xxfc.platform.order.entity;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.util.JsonUtil;
import com.xxfc.platform.order.pojo.price.CostDetailExtend;
import com.xxfc.platform.tour.entity.TourUser; import com.xxfc.platform.tour.entity.TourUser;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -245,6 +247,14 @@ public class OrderTourDetail implements Serializable { ...@@ -245,6 +247,14 @@ public class OrderTourDetail implements Serializable {
@ApiModelProperty(value = "是否省外 1--省外;0--省内") @ApiModelProperty(value = "是否省外 1--省外;0--省内")
private Integer isOutside; private Integer isOutside;
@Column(name = "cost_detail_extend")
@ApiModelProperty(value = "费用其他明细 type:1--取消违约金;2--取消费用明细;3--提前还车费用明细;4--延期还车费用明细")
private String costDetailExtend;
@Transient @Transient
private List<TourUser> userVoList; private List<TourUser> userVoList;
public void handelCostDetailExtend(CostDetailExtend costDetailExtend) {
this.costDetailExtend = JsonUtil.objectToJson(((CostDetailExtend)costDetailExtend));
}
} }
...@@ -7,6 +7,9 @@ import java.util.List; ...@@ -7,6 +7,9 @@ import java.util.List;
@Data @Data
public class DedDetailDTO { public class DedDetailDTO {
//public static final int TYPE_VIOLATE_ADVANCE = 1;
/** /**
* : 扣除项名称 * : 扣除项名称
*/ */
...@@ -17,13 +20,19 @@ public class DedDetailDTO { ...@@ -17,13 +20,19 @@ public class DedDetailDTO {
*/ */
BigDecimal cost; BigDecimal cost;
/**
* 订单超额费用
*/
BigDecimal excessCost;
/** /**
* 编号(用于顺序) * 编号(用于顺序)
*/ */
Integer id; Integer id;
//1、延期, 2、车辆损坏 3、其他 //作为:DedDetail :2、车辆损坏 3、其他
//作为:violate_amount_detail 1--提前还车 2--延期还车 3--消费超额
Integer type; Integer type;
//小雨都不知道什么东西 //小雨都不知道什么东西
......
package com.xxfc.platform.order.pojo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class HomePageOrderData {
/**
* 订单总额
*/
private BigDecimal totalOrders;
/**
* 为退还押金总额
*/
private BigDecimal totalOutstandingDeposit;
/**
* 额外赔款
*/
private BigDecimal additionalIndemnity;
}
package com.xxfc.platform.order.pojo.account;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xxfc.platform.order.entity.OrderAccount;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
@Data
public class OrderAccountDTO extends OrderAccount {
@Column(name = "companyId")
private Integer companyId;
@Column(name = "oneDay")
private String oneDay;
}
package com.xxfc.platform.order.pojo.account;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class OrderAccountDeduction {
public static final int ORIGIN_ORDER = 1;
public static final int ORIGIN_DEPOSIT = 2;
public static final int ORIGIN_ORDER_DEPOSIT = 3;
public static final int ORIGIN_DEPOSIT_ORDERß = 4;
/**
* 名称
*/
String name;
/**
* 类型
*/
Integer type;
/**
* 来源 1--订单款 2--押金
*/
Integer origin;
/**
* 金额
*/
BigDecimal amount;
}
package com.xxfc.platform.order.pojo.account;
import lombok.Data;
import org.assertj.core.util.Lists;
import java.math.BigDecimal;
import java.util.List;
@Data
public class OrderAccountDetail {
/**
* 实际返回订单款 账单的的orderAmount 对应的是 订单的商品金额
*/
BigDecimal orderAmount = BigDecimal.ZERO;
/**
* 实际返回押金款
*/
BigDecimal depositAmount = BigDecimal.ZERO;
/**
* 原来要返回的订单款 账单的的orderAmount 对应的是 订单的商品金额
*/
BigDecimal originOrderAmount = BigDecimal.ZERO;
/**
* 原来要返回的押金款
*/
BigDecimal originDepositAmount = BigDecimal.ZERO;
/**
* 扣款列表
*/
List<OrderAccountDeduction> deductions = Lists.newArrayList();
}
...@@ -23,6 +23,36 @@ public class InProgressVO { ...@@ -23,6 +23,36 @@ public class InProgressVO {
*/ */
BigDecimal extraAmount = BigDecimal.ZERO; BigDecimal extraAmount = BigDecimal.ZERO;
/**
* 实际消费金额
*/
BigDecimal consumeAmount = BigDecimal.ZERO;
/**
* 已使用天数
*/
Integer usedDays = 0;
/**
* 已使用的金额
*/
BigDecimal usedAmount = BigDecimal.ZERO;
/**
* 已使用免费天数
*/
Integer usedfreeDays = 0;
/**
* 已使用的免费天数对应的费用
*/
BigDecimal usedFreeDaysAmount = BigDecimal.ZERO;
/**
* 返回订单款金额
*/
BigDecimal refundOrderAmount = BigDecimal.ZERO;
/** /**
* 返还的优惠券 * 返还的优惠券
*/ */
...@@ -32,4 +62,9 @@ public class InProgressVO { ...@@ -32,4 +62,9 @@ public class InProgressVO {
* 返还的免费天数 * 返还的免费天数
*/ */
Integer backFreeDays = 0; Integer backFreeDays = 0;
String cancelCostDetail = "";
String advanceDelayCostDetail = "";
} }
...@@ -30,6 +30,7 @@ public class OrderListVo extends BaseOrder { ...@@ -30,6 +30,7 @@ public class OrderListVo extends BaseOrder {
private String endCompanyName; private String endCompanyName;
private String realName;
/** /**
* 是否是用户匹配公司 * 是否是用户匹配公司
*/ */
......
package com.xxfc.platform.order.pojo.order; package com.xxfc.platform.order.pojo.order;
import com.xxfc.platform.order.entity.*; import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.DedDetailDTO;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense; import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
import lombok.Data; import lombok.Data;
...@@ -33,6 +34,8 @@ public class OrderPageVO extends BaseOrder { ...@@ -33,6 +34,8 @@ public class OrderPageVO extends BaseOrder {
private String telephone; private String telephone;
//订单违约金
private String dedDetailDTO;
/** /**
* 車輛編碼 * 車輛編碼
*/ */
......
package com.xxfc.platform.order.pojo.price;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CancelNoStartVO extends CostDetailExtend{
/**
* 违约金描述
*/
private String violateDesc;
/**
* 违约金额
*/
private BigDecimal violateAmount = BigDecimal.ZERO;
public CancelNoStartVO() {
this.type = CANCEL_NO_START;
}
}
package com.xxfc.platform.order.pojo.price;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CancelStartedVO extends CostDetailExtend {
/**
* 消费金额(实际计费)
*/
private BigDecimal consumeAmount = BigDecimal.ZERO;
/**
* 租车单价
*/
private BigDecimal modelAmount = BigDecimal.ZERO;
/**
* 使用天数
*/
private Integer usedDayNum = 0;
/**
* 使用金额
*/
private BigDecimal usedAmount = BigDecimal.ZERO;
/**
* 使用免费天数
*/
private Integer usedfreeDayNum = 0;
/**
* 使用免费金额
*/
private BigDecimal usedFreeAmount = BigDecimal.ZERO;
/**
* 违约金描述
*/
private String violateDesc;
/**
* 违约金金额
*/
private BigDecimal violateAmount = BigDecimal.ZERO;
/**
* 优惠金额
*/
private BigDecimal couponAmount = BigDecimal.ZERO;
/**
* 优惠描述
*/
private String couponDesc;
/**
* 原订单是否包含优惠券
*/
private Boolean hadConpon = Boolean.FALSE;
}
package com.xxfc.platform.order.pojo.price;
import lombok.Data;
@Data
public class CostDetailExtend {
public static final int CANCEL_NO_START = 1;
public static final int CANCEL_STARTED = 2;
public static final int FINLISH_ADVANCE = 3;
public static final int FINLISH_DELAY = 4;
private String costDetail;
/**
* type:1--取消违约金;2--取消费用明细;3--提前还车费用明细;4--延期还车费用明细
*/
protected Integer type;
}
...@@ -7,7 +7,7 @@ import java.math.BigDecimal; ...@@ -7,7 +7,7 @@ import java.math.BigDecimal;
@Data @Data
public class OrderPriceVO { public class OrderPriceVO {
@ApiModelProperty(value = "订单价格") @ApiModelProperty(value = "订单总金额")
public BigDecimal orderAmount; public BigDecimal orderAmount;
@ApiModelProperty(value = "商品价格") @ApiModelProperty(value = "商品价格")
public BigDecimal goodsAmount; public BigDecimal goodsAmount;
......
...@@ -33,4 +33,29 @@ public class RentVehiclePriceVO extends OrderPriceVO{ ...@@ -33,4 +33,29 @@ public class RentVehiclePriceVO extends OrderPriceVO{
BigDecimal damageSafePrice; BigDecimal damageSafePrice;
@ApiModelProperty(value = "费用详情") @ApiModelProperty(value = "费用详情")
private String costDetail; private String costDetail;
// /**
// * 原租车天数
// */
// private Integer originDayNum;
/**
* 免费天数
*/
private Integer freeDayNum;
/**
* 免费价格
*/
private BigDecimal freeAmount;
/**
* 购买的租车金额
*/
private BigDecimal buyVehicleAmount;
/**
* 优惠描述
*/
private String couponDesc = "";
} }
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.google.common.collect.Lists;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.DailyMembersOrderStatistics; import com.xxfc.platform.order.entity.DailyMembersOrderStatistics;
import com.xxfc.platform.order.entity.OrderAccount;
import com.xxfc.platform.order.entity.OrderStatistics; import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.DailyMembersOrderStatisticsMapper; import com.xxfc.platform.order.mapper.DailyMembersOrderStatisticsMapper;
import com.xxfc.platform.order.pojo.account.OrderAccountDTO;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
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.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -33,31 +42,31 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta ...@@ -33,31 +42,31 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta
@Value("${order.day}") @Value("${order.day}")
private Integer day; private Integer day;
/**
* 总公司id默认为1
*/
private final Integer OMPANY_ID=1;
@Autowired
private OrderAccountBiz accountBiz;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean memberOrderStatistics() { public boolean saveDailyMembersOrderRecord() {
try { try {
List<OrderAccountDTO> accountList = accountBiz.getOrderAccountByOrderType(OrderTypeEnum.MEMBER.getCode(), day);
Map<String, Object> travelGmv = mapper.getTravelGmv(day); if (CollectionUtils.isNotEmpty(accountList)) {
if (travelGmv.isEmpty()) { DailyMembersOrderStatistics orderStatistics = new DailyMembersOrderStatistics();
return true; ArrayList<OrderAccountDetail> orderAccountDetails = getOrderAccountDetail(accountList);
} if (CollectionUtils.isNotEmpty(orderAccountDetails)) {
//获取订单总额
BigDecimal gmv = getOrderAmountTotal(orderAccountDetails);
DailyMembersOrderStatistics MembersStatistics = new DailyMembersOrderStatistics(); orderStatistics.setGmv(gmv);
BeanUtils.copyProperties(MembersStatistics, travelGmv); orderStatistics.setBranchCompanyId(OMPANY_ID);
orderStatistics.setOneDay(accountList.get(0).getOneDay());
String oneDay = MembersStatistics.getOneDay(); }
insertSelectiveRe(orderStatistics);
if (StringUtils.isBlank(oneDay)) {
throw new BaseException();
} }
Example exa = new Example(DailyMembersOrderStatistics.class);
exa.createCriteria().andEqualTo("oneDay", oneDay);
List<DailyMembersOrderStatistics> statistics = selectByExample(exa);
if (CollectionUtils.isEmpty(statistics)) {
insertSelective(MembersStatistics);
}
return true; return true;
} catch (Exception e) { } catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
...@@ -66,6 +75,37 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta ...@@ -66,6 +75,37 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta
} }
} }
/**
* 获取押金和
*
* @param orderAccountDetails
* @return
*/
private BigDecimal getOrderAmountTotal(ArrayList<OrderAccountDetail> orderAccountDetails) {
return orderAccountDetails.stream()
.map(OrderAccountDetail::getOrderAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
/**
* 获取所有订单详情数据
*
* @param orderAccountDTOS
* @return
*/
private ArrayList<OrderAccountDetail> getOrderAccountDetail(List<OrderAccountDTO> orderAccountDTOS) {
ArrayList<OrderAccountDetail> arrayList = Lists.newArrayList();
orderAccountDTOS.parallelStream()
.map(OrderAccount::getAccountDetail)
.forEach(detail -> {
if (StringUtils.isNotBlank(detail)) {
arrayList.add(JSONUtil.toBean(detail, OrderAccountDetail.class));
}
});
return arrayList;
}
@Override @Override
public int insertSelectiveRe(DailyMembersOrderStatistics entity) { public int insertSelectiveRe(DailyMembersOrderStatistics entity) {
Date date = new Date(); Date date = new Date();
......
...@@ -27,9 +27,9 @@ public class DailyOrderStatisticsBiz extends BaseBiz<DailyOrderStatisticsMapper, ...@@ -27,9 +27,9 @@ public class DailyOrderStatisticsBiz extends BaseBiz<DailyOrderStatisticsMapper,
@Scheduled(cron = "0 0 2 * * ?") @Scheduled(cron = "0 0 2 * * ?")
public boolean statisticalOrder(){ public boolean statisticalOrder(){
boolean vehicleFlag = vehicleStatisticsBiz.StatisticsOfCarRentalOrders(); boolean vehicleFlag = vehicleStatisticsBiz.saveDailyVehicleOrderRecord();
boolean travelFlag = travelStatisticsBiz.StatisticsOfTravelOrders(); boolean travelFlag = travelStatisticsBiz.saveDailyTravelOrderRecord();
boolean membersFlag= membersStatisticsBiz.memberOrderStatistics(); boolean membersFlag= membersStatisticsBiz.saveDailyMembersOrderRecord();
if (vehicleFlag&&travelFlag&&membersFlag){ if (vehicleFlag&&travelFlag&&membersFlag){
log.info("----statisticalOrder:成功-----"); log.info("----statisticalOrder:成功-----");
return true; return true;
......
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.entity.OrderStatistics; import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.OrderStatisticsMapper; import com.xxfc.platform.order.mapper.OrderStatisticsMapper;
import com.xxfc.platform.order.pojo.HomePageOrderData;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -26,37 +28,48 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat ...@@ -26,37 +28,48 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
@Autowired @Autowired
private DailyMembersOrderStatisticsBiz membersBiz; private DailyMembersOrderStatisticsBiz membersBiz;
public OrderStatistics getTotalOrder(Integer companyId) { public HomePageOrderData getTotalOrder(Integer companyId) {
OrderStatistics result = new OrderStatistics(); HomePageOrderData result = new HomePageOrderData();
ArrayList<OrderStatistics> orderStatistics = new ArrayList<>(); ArrayList<HomePageOrderData> orderStatistics = new ArrayList<>();
OrderStatistics vehicle = vehicleBiz.findAll(companyId); OrderStatistics vehicle = vehicleBiz.findAll(companyId);
if (vehicle != null) { if (vehicle != null) {
orderStatistics.add(vehicle); HomePageOrderData data = new HomePageOrderData() {{
setTotalOrders(vehicle.getTotalGmv().subtract(vehicle.getTotalReturnGmv()));
setAdditionalIndemnity(vehicle.getTotalCompensation()
.add(vehicle.getTotalForfeit())
.add(vehicle.getTotalDefaultMoney())
.add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv().subtract(vehicle.getTotalReturnGmv())))
);
}};
orderStatistics.add(data);
} }
OrderStatistics tour = TravelBiz.findAll(companyId); OrderStatistics tour = TravelBiz.findAll(companyId);
if (vehicle != null) { if (vehicle != null) {
orderStatistics.add(tour); HomePageOrderData data = new HomePageOrderData() {{
setTotalOrders(tour.getTotalGmv().subtract(tour.getTotalReturnGmv()));
setAdditionalIndemnity(tour.getTotalDefaultMoney());
}};
orderStatistics.add(data);
} }
OrderStatistics member = membersBiz.findAll(companyId); OrderStatistics member = membersBiz.findAll(companyId);
if (vehicle != null) { if (vehicle != null) {
orderStatistics.add(member); HomePageOrderData data = new HomePageOrderData() {{
} setTotalOrders(member.getTotalGmv());
result.setTotalGmv(orderStatistics.stream().map(OrderStatistics::getTotalGmv).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add)); }};
orderStatistics.add(data);
}
result.setTotalForfeit(orderStatistics.stream().map(OrderStatistics::getTotalForfeit).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalCompensation(orderStatistics.stream().map(OrderStatistics::getTotalCompensation).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalRefundSecurityDeposit(orderStatistics.stream().map(OrderStatistics::getTotalRefundSecurityDeposit).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalSecurityDeposit(orderStatistics.stream().map(OrderStatistics::getTotalSecurityDeposit).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add)); result.setTotalOrders(orderStatistics.stream().map(HomePageOrderData::getTotalOrders).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalPenalSum(orderStatistics.stream().map(OrderStatistics::getTotalPenalSum).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add)); result.setTotalOutstandingDeposit(orderStatistics.stream().map(HomePageOrderData::getTotalOutstandingDeposit).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalPostpone(orderStatistics.stream().map(OrderStatistics::getTotalPostpone).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add)); result.setAdditionalIndemnity(orderStatistics.stream().map(HomePageOrderData::getAdditionalIndemnity).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
return result; return result;
} }
......
...@@ -5,11 +5,18 @@ import cn.hutool.extra.template.Template; ...@@ -5,11 +5,18 @@ import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateEngine; import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.TemplateUtil; import cn.hutool.extra.template.TemplateUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.google.common.collect.Maps;
import com.xxfc.platform.order.contant.enumerate.OrderCostEnum;
import com.xxfc.platform.order.entity.OrderTemplate; import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.mapper.OrderTemplateMapper; import com.xxfc.platform.order.mapper.OrderTemplateMapper;
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 org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -57,4 +64,70 @@ public class OrderTemplateBiz extends BaseBiz<OrderTemplateMapper,OrderTemplate> ...@@ -57,4 +64,70 @@ public class OrderTemplateBiz extends BaseBiz<OrderTemplateMapper,OrderTemplate>
return template.render(map); return template.render(map);
} }
public OrderTemplate selectByCode(String code) {
return selectOne(new OrderTemplate(){{
setCode(code);
}});
}
public <T extends CostDetailExtend> void handleCostDetailExtend(T costDetailExtend) {
switch (costDetailExtend.getType()) {
case CostDetailExtend.CANCEL_NO_START :
break;
case CostDetailExtend.CANCEL_STARTED :
OrderTemplate template = selectByCode(OrderCostEnum.RENT_VEHICLE.getCode());
template.setTemplate(result(template.getTemplate(), new HashMap(){{
put("children", handleChildren(costDetailExtend));
put("consumeAmount", ((CancelStartedVO)costDetailExtend).getConsumeAmount());
}}));
break;
case CostDetailExtend.FINLISH_ADVANCE :
break;
case CostDetailExtend.FINLISH_DELAY :
break;
default:
break;
}
OrderTemplate template = selectByCode(OrderCostEnum.CANCEL_NO_START.getCode());
costDetailExtend.setCostDetail(result(template.getTemplate(), Dict.parse(costDetailExtend)));
}
public <T extends CostDetailExtend> String handleChildren(T costDetailExtend) {
StringBuffer childrenStr = new StringBuffer("");
if(costDetailExtend instanceof CancelStartedVO) {
CancelStartedVO cancelStartedVO = (CancelStartedVO)costDetailExtend;
childrenStr.append(",${tem_0401}");
if(cancelStartedVO.getUsedfreeDayNum() > 0 ) {
childrenStr.append(",${tem_0402}");
}
if(cancelStartedVO.getHadConpon()) {
if(cancelStartedVO.getCouponAmount().compareTo(BigDecimal.ZERO) > 0) {
childrenStr.append(",${tem_0901}");
}else {
childrenStr.append(",${tem_0902}");
}
}
if(cancelStartedVO.getViolateAmount().compareTo(BigDecimal.ZERO) > 0) {
childrenStr.append(",${tem_0903}");
}
}
if(childrenStr.length() > 0){
childrenStr.deleteCharAt(0);
}
return childrenStr.toString();
}
public static void main(String[] args) {
String tempStr = "{\"key\":\"费用明细\", \"val\":\"\", \"consumeAmount\":\"${consumeAmount}\",\"children\":[${children}]}";
Map map = Maps.newHashMap();
map.put("consumeAmount", "");
map.put("children", "{\"test\" : \"1111\" }");
//匹配参数 填充参数
TemplateEngine engine = TemplateUtil.createEngine();
Template template = engine.getTemplate(tempStr);
String result = template.render(new Dict(map));
System.out.println(result);
}
} }
\ No newline at end of file
...@@ -68,7 +68,7 @@ public class OrderTourVerificationBiz{ ...@@ -68,7 +68,7 @@ public class OrderTourVerificationBiz{
if(baseOrder==null){ if(baseOrder==null){
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
} }
if(baseOrder.getStatus()!=OrderStatusEnum.ORDER_TOSTART.getCode()){ if(baseOrder.getHasPay()==0){
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_PAY.getCode(), ResCode.ORDER_IS_NOT_PAY.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_PAY.getCode(), ResCode.ORDER_IS_NOT_PAY.getDesc());
} }
Integer orderId=baseOrder.getId(); Integer orderId=baseOrder.getId();
......
package com.xxfc.platform.order.biz.inner; package com.xxfc.platform.order.biz.inner;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Dict;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.activity.entity.Coupon; import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign; import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.app.entity.Cofig;
import com.xxfc.platform.app.feign.ConfigFeign; import com.xxfc.platform.app.feign.ConfigFeign;
import com.xxfc.platform.order.biz.OrderAccountBiz;
import com.xxfc.platform.order.biz.OrderItemBiz; import com.xxfc.platform.order.biz.OrderItemBiz;
import com.xxfc.platform.order.biz.OrderRefundBiz; import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum; import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.contant.enumerate.RefundStatusEnum;
import com.xxfc.platform.order.contant.enumerate.RefundTypeEnum;
import com.xxfc.platform.order.entity.*; 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.calculate.InProgressVO;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.universal.dto.SmsTemplateDTO;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Lists; import org.assertj.core.util.Lists;
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 java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.HOUR_MINUTE_FORMATTE_HUTOOL;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
/** /**
* 订单退款记录表 * 订单退款记录表
...@@ -71,22 +57,34 @@ public class OrderCalculateBiz { ...@@ -71,22 +57,34 @@ public class OrderCalculateBiz {
@Autowired @Autowired
OrderItemBiz orderItemBiz; OrderItemBiz orderItemBiz;
public InProgressVO inProgressCalculate(BaseOrder baseOrder, OrderItem orderItem, Integer freeDays, Integer useDays) { @Autowired
OrderAccountBiz orderAccountBiz;
public InProgressVO inProgressCalculate(BaseOrder baseOrder, OrderItem orderItem, Integer freeDays, Integer useDays, OrderAccountDetail oad) {
BigDecimal refundAmount = BigDecimal.ZERO;
BigDecimal consumeAmount = BigDecimal.ZERO;
InProgressVO inProgressVO = new InProgressVO();
inProgressVO.setUsedDays(useDays);
inProgressVO.setUsedfreeDays(freeDays);
inProgressVO.setUsedAmount(orderItem.getUnitPrice().multiply(new BigDecimal(useDays+ "")));
inProgressVO.setUsedFreeDaysAmount(orderItem.getUnitPrice().multiply(new BigDecimal(freeDays+ "")));
//计算:剩余免费天数 //计算:剩余免费天数
Integer backFreeDays = freeDays - useDays; Integer backFreeDays = freeDays - useDays;
//待返还的免费天数
List<String> backCouponNos = Lists.newArrayList();
//剩余天数
Integer residueDays = orderItem.getTotalNum() - useDays;
//过了出发时间取消订单 ,优先使用免费天数 //过了出发时间取消订单 ,优先使用免费天数
if(backFreeDays <= 0) { if(backFreeDays <= 0) {
//大于总天数 只返回押金 //使用天数 小于 总天数
if(useDays >= orderItem.getTotalNum()) { if(useDays < orderItem.getTotalNum()) {
//退押金
//orderRefundBiz.rentRefundDepositProcess(hasUpdateOrder, orvd.getDeposit(), timeLag, APP_ORDER+ "_"+ RENT_REFUND, freeDayAmount);
}else {
//需要扣除订单费用 //需要扣除订单费用
//判断是否达到优惠券条件 不符合则返还优惠券 //判断是否达到优惠券条件 不符合则返还优惠券
//消费天数
Integer consumeDays = 0 - backFreeDays; Integer consumeDays = 0 - backFreeDays;
//计算使用天数的费用 //计算使用天数的费用
BigDecimal consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+"")); consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+""));
List<String> backCouponNos = Lists.newArrayList();
List<BigDecimal> couponAmounts = Lists.newArrayList(); List<BigDecimal> couponAmounts = Lists.newArrayList();
for(String tickerNo : baseOrder.getCouponTickerNos().split(",")) { for(String tickerNo : baseOrder.getCouponTickerNos().split(",")) {
BigDecimal couponAmount = activityFeign.use(baseOrder.getUserId(), Lists.newArrayList(tickerNo), baseOrder.getNo(), Coupon.CHANNEL_RENT, consumeAmount, ActivityFeign.TYPE_CHECK); BigDecimal couponAmount = activityFeign.use(baseOrder.getUserId(), Lists.newArrayList(tickerNo), baseOrder.getNo(), Coupon.CHANNEL_RENT, consumeAmount, ActivityFeign.TYPE_CHECK);
...@@ -97,14 +95,60 @@ public class OrderCalculateBiz { ...@@ -97,14 +95,60 @@ public class OrderCalculateBiz {
backCouponNos.add(tickerNo); backCouponNos.add(tickerNo);
} }
} }
for(BigDecimal couponAmount : couponAmounts) {
consumeAmount = consumeAmount.subtract(couponAmount);
}
if(consumeAmount.compareTo(orderItem.getRealAmount()) > 0) {
//消费金额 大于真实的金额 增加额外费用
inProgressVO.setExtraAmount(consumeAmount.subtract(orderItem.getRealAmount()));
// consumeAmount = orderItem
OrderAccountDeduction extraDeduction = orderAccountBiz.initDeduction(inProgressVO.getExtraAmount(), "消费额外费用", DeductionTypeEnum.EXTRA, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(extraDeduction);
}else {
//否则,设置返回钱
refundAmount = refundAmount.add(orderItem.getRealAmount().subtract(consumeAmount));
}
} else {
} }
}else { }else {
//返回剩余免费天数,返回优惠券,订单款 //返回剩余免费天数,返回优惠券,订单款
refundAmount = refundAmount.add(orderItem.getRealAmount());
inProgressVO.setBackFreeDays(backFreeDays);
}
inProgressVO.setRefundOrderAmount(refundAmount);
inProgressVO.setBackCoupons(backCouponNos);
//计算违约金
//residueDays * 身份价格
if(residueDays > 0) {
if(residueDays > 2) {
residueDays = 2;
}
inProgressVO.setViolateAmount(orderItem.getUnitPrice().multiply(new BigDecimal((residueDays + ""))));
OrderAccountDeduction violateDeduction = orderAccountBiz.initDeduction(inProgressVO.getViolateAmount(), "违约金", DeductionTypeEnum.VIOLATE_ADVANCE, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(violateDeduction);
}else if(residueDays < 0){
//如果订单 出发中 或者 已完成 或者定损中
if(OrderStatusEnum.ORDER_WAIT.equals(baseOrder.getStatus()) ||
OrderStatusEnum.ORDER_FINISH.equals(baseOrder.getStatus()) ||
OrderStatusEnum.ORDER_FIXED_LOSS.equals(baseOrder.getStatus())) {
Integer overDays = 0 - residueDays;
if(overDays > 2) {
overDays = 2;
}
//超过的天数 * 200% * 单价
inProgressVO.setViolateAmount(orderItem.getUnitPrice().multiply(new BigDecimal(2+ "")).multiply(new BigDecimal((overDays + ""))));
OrderAccountDeduction violateDeduction = orderAccountBiz.initDeduction(inProgressVO.getViolateAmount(), "违约金", DeductionTypeEnum.VIOLATE_DELAY, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(violateDeduction);
}
} }
return new InProgressVO(); return inProgressVO;
} }
public InProgressVO inProgressCalculate(BaseOrder baseOrder, Integer useDays) { public InProgressVO inProgressCalculate(BaseOrder baseOrder, Integer useDays) {
...@@ -113,6 +157,15 @@ public class OrderCalculateBiz { ...@@ -113,6 +157,15 @@ public class OrderCalculateBiz {
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}); }});
Integer freeDays = (null == orderItem.getCutNum())?0 :orderItem.getCutNum(); Integer freeDays = (null == orderItem.getCutNum())?0 :orderItem.getCutNum();
return inProgressCalculate(baseOrder, orderItem, freeDays, useDays); return inProgressCalculate(baseOrder, orderItem, freeDays, useDays, new OrderAccountDetail());
}
public InProgressVO calculateOrderComplete(BaseOrder baseOrder, OrderRentVehicleDetail orvd, OrderAccountDetail oad, OrderItem orderItem, Integer useDays) {
InProgressVO inProgressVO = inProgressCalculate(baseOrder, orderItem, orvd.getFreeDays(), useDays, oad);
oad.setDepositAmount(orvd.getDeposit().subtract(inProgressVO.getExtraAmount()).subtract(inProgressVO.getViolateAmount()));
oad.setOrderAmount(inProgressVO.getRefundOrderAmount());
oad.setOriginDepositAmount(orvd.getDeposit());
oad.setOriginOrderAmount(baseOrder.getRealAmount());
return inProgressVO;
} }
} }
\ No newline at end of file
...@@ -10,6 +10,7 @@ import com.xxfc.platform.order.entity.BaseOrder; ...@@ -10,6 +10,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.entity.OrderViolation; import com.xxfc.platform.order.entity.OrderViolation;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
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;
...@@ -61,6 +62,9 @@ public class RentDepositJobHandler extends IJobHandler { ...@@ -61,6 +62,9 @@ public class RentDepositJobHandler extends IJobHandler {
@Autowired @Autowired
OrderRefundBiz orderRefundBiz; OrderRefundBiz orderRefundBiz;
@Autowired
OrderAccountBiz orderAccountBiz;
@Autowired @Autowired
OrderMsgBiz orderMsgBiz; OrderMsgBiz orderMsgBiz;
...@@ -120,7 +124,9 @@ public class RentDepositJobHandler extends IJobHandler { ...@@ -120,7 +124,9 @@ public class RentDepositJobHandler extends IJobHandler {
refundAmont = orvd.getReturnPayResidue(); refundAmont = orvd.getReturnPayResidue();
refundDesc += refundAmont.toString(); refundDesc += refundAmont.toString();
} }
orderRefundBiz.refundTrigger(baseOrder, orvd, BigDecimal.ZERO, orvd.getReturnPayResidue(), refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), RefundTypeEnum.RESIDUE_DEPOSIT); OrderAccountDetail oad = new OrderAccountDetail();
orderAccountBiz.refundTrigger(baseOrder, orvd, BigDecimal.ZERO, orvd.getReturnPayResidue(), refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), AccountTypeEnum.OUT_RESIDUE_DEPOSIT, oad);
//orderRefundBiz.refundTrigger(baseOrder, orvd, BigDecimal.ZERO, orvd.getReturnPayResidue(), refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), RefundTypeEnum.RESIDUE_DEPOSIT);
orderDepositRefundRecordBiz.completeRecordStatus(crosstown.getId(), DepositRefundStatus.VIOLATIONARRIVAL); orderDepositRefundRecordBiz.completeRecordStatus(crosstown.getId(), DepositRefundStatus.VIOLATIONARRIVAL);
orderMsgBiz.handelMsgDeposit(orvd, baseOrder, userFeign.userDetailById(baseOrder.getUserId()).getData()); orderMsgBiz.handelMsgDeposit(orvd, baseOrder, userFeign.userDetailById(baseOrder.getUserId()).getData());
} }
......
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderAccount;
import com.xxfc.platform.order.pojo.account.OrderAccountDTO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
* 订单帐目
*
* @author zhoujw
* @email 18178966185@163.com
* @date 2019-09-09 15:51:16
*/
public interface OrderAccountMapper extends Mapper<OrderAccount> {
List<OrderAccountDTO> getOrderAccountByOrderType(@Param("type") Integer type, @Param("day") Integer day);
}
This diff is collapsed.
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