Commit 815a9333 authored by 周健威's avatar 周健威

Merge remote-tracking branch 'origin/dev' into dev

parents dfb40ff3 107b79a5
...@@ -9,3 +9,5 @@ target/ ...@@ -9,3 +9,5 @@ target/
ace-modules/ace-tool/src/main/resources/application-dev.yml ace-modules/ace-tool/src/main/resources/application-dev.yml
src/main/test/** src/main/test/**
logs/** logs/**
xx-order/xx-order-server/logs/**
package com.github.wxiaoqi.security.admin.dto; package com.github.wxiaoqi.security.admin.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
import java.util.Set; import java.util.Set;
/** /**
...@@ -49,6 +45,11 @@ public class AppUserManageDTO { ...@@ -49,6 +45,11 @@ public class AppUserManageDTO {
private Long registrationTimeEnd; private Long registrationTimeEnd;
/**
* 身份标识 0:除普通用户外 1:与1相反
*/
private Integer postionState;
/** /**
* 用户来源:0-自来,1-用户邀请 * 用户来源:0-自来,1-用户邀请
*/ */
......
...@@ -166,4 +166,9 @@ public class AppUserManageVo { ...@@ -166,4 +166,9 @@ public class AppUserManageVo {
* 邀请人用户名 * 邀请人用户名
*/ */
private String inviter; private String inviter;
/**
* 身份信息
*/
private String positionName;
} }
...@@ -5,6 +5,7 @@ import com.ace.cache.annotation.CacheClear; ...@@ -5,6 +5,7 @@ import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail; import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.mapper.AppUserDetailMapper; import com.github.wxiaoqi.security.admin.mapper.AppUserDetailMapper;
import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService; import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService;
import com.github.wxiaoqi.security.admin.vo.AppUserInfoVo;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
...@@ -128,4 +129,19 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -128,4 +129,19 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
public void updateUserPositionByUserId(Integer userId, Integer positionId) { public void updateUserPositionByUserId(Integer userId, Integer positionId) {
mapper.updateUserPositionByUserId(userId,positionId); mapper.updateUserPositionByUserId(userId,positionId);
} }
public AppUserInfoVo findUserInfoByCode(String code) {
AppUserInfoVo appUserInfoVo = new AppUserInfoVo();
AppUserDetail appUserDetail = new AppUserDetail();
appUserDetail.setCode(code);
AppUserDetail userDetail = mapper.selectOne(appUserDetail);
if (userDetail==null){
return appUserInfoVo;
}
appUserInfoVo.setHeadimgurl(userDetail.getHeadimgurl());
appUserInfoVo.setNickname(userDetail.getNickname());
return appUserInfoVo;
}
} }
...@@ -348,7 +348,8 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -348,7 +348,8 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
public void deleteByMemberIds(Collection<Integer> userIds) { public void deleteByMemberIds(Collection<Integer> userIds) {
Example example = new Example(AppUserSellingWater.class); Example example = new Example(AppUserSellingWater.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
criteria.andIn("sourceId",userIds); criteria.orIn("sourceId",userIds);
criteria.orIn("userId",userIds);
mapper.deleteByExample(example); mapper.deleteByExample(example);
} }
} }
\ No newline at end of file
...@@ -5,8 +5,11 @@ import com.github.wxiaoqi.security.admin.biz.*; ...@@ -5,8 +5,11 @@ import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.entity.*; import com.github.wxiaoqi.security.admin.entity.*;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserGroups; import com.github.wxiaoqi.security.admin.vo.AppUserGroups;
import com.github.wxiaoqi.security.admin.vo.AppUserInfoVo;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo; import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil; import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo; import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
...@@ -269,4 +272,12 @@ public class AppUserController extends CommonBaseController { ...@@ -269,4 +272,12 @@ public class AppUserController extends CommonBaseController {
Map<String, Integer> findAppusersByUserNames(@RequestParam(value = "phones") List<String> phones){ Map<String, Integer> findAppusersByUserNames(@RequestParam(value = "phones") List<String> phones){
return appUserLoginBiz.findPhoneAndUserIdMapByPhones(phones); return appUserLoginBiz.findPhoneAndUserIdMapByPhones(phones);
} }
@GetMapping("/app/unauth/user_info/{code}")
@IgnoreUserToken
@IgnoreClientToken
public ObjectRestResponse<AppUserInfoVo> findUserInfoByCode(@PathVariable("code") String code){
AppUserInfoVo appUserInfoVo = userDetailBiz.findUserInfoByCode(code);
return ObjectRestResponse.succ(appUserInfoVo);
}
} }
...@@ -70,11 +70,21 @@ ...@@ -70,11 +70,21 @@
m.crt_time as timeOfMembership, m.crt_time as timeOfMembership,
m.recent_recharge as recentRecharge, m.recent_recharge as recentRecharge,
m.name as memberName, m.name as memberName,
ul.username as inviter ul.username as inviter,
aup.name as `positionName`
from from
app_user_login l app_user_login l
left join inner join
app_user_detail d (select * from app_user_detail where 1=1 <if test="postionState != null">
<choose>
<when test="postionState == 0">
and `position_id`=#{postionState}
</when>
<otherwise>
and <![CDATA[`position_id`<>#{postionState}]]>
</otherwise>
</choose>
</if>) d
on on
d.userid = l.id d.userid = l.id
left join left join
...@@ -95,6 +105,9 @@ ...@@ -95,6 +105,9 @@
) m ) m
on on
l.id = m.user_id l.id = m.user_id
left join
`app_user_position` as aup
on d.position_id= aup.level
where l.isdel = 0 where l.isdel = 0
<if test="mobile !=null and mobile !='' "> <if test="mobile !=null and mobile !='' ">
and l.username like CONCAT('%',#{mobile},'%') and l.username like CONCAT('%',#{mobile},'%')
...@@ -119,7 +132,6 @@ ...@@ -119,7 +132,6 @@
and d.source = #{source} and d.source = #{source}
</if> </if>
order by l.id ASC order by l.id ASC
</select> </select>
<update id="updateUserMemberStatusByUserId"> <update id="updateUserMemberStatusByUserId">
......
package com.xxfc.platform.activity.biz; package com.xxfc.platform.activity.biz;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.dto.UserInfoDTO; import com.github.wxiaoqi.security.admin.dto.UserInfoDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin; import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
...@@ -160,32 +161,66 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> { ...@@ -160,32 +161,66 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> {
} }
// list.sort(Comparator.comparing(UserCouponVo::getStatus)); // list.sort(Comparator.comparing(UserCouponVo::getStatus));
} }
BigDecimal mAmount=BigDecimal.ZERO; UserCouponVo userCouponVo=null;
if (list2.size()>0){ if (list2.size()>0){
if (mAmount.compareTo(BigDecimal.ZERO)==0){ userCouponVo=list2.get(0);
UserCouponVo userCouponVo=list2.get(0);
if (userCouponVo!=null){ if (userCouponVo!=null){
mAmount=userCouponVo.getUsedAmount();
userCouponVo.setIsChecked(1); userCouponVo.setIsChecked(1);
list2.set(0,userCouponVo); list2.set(0,userCouponVo);
} }
}
list2.sort(Comparator.comparing(UserCouponVo::getStatus)); list2.sort(Comparator.comparing(UserCouponVo::getStatus));
} }
if (list1.size()>0){ if (list1.size()>0){
UserCouponVo userCouponVo=list1.get(0); if (userCouponVo==null){
if (userCouponVo!=null){ userCouponVo=list1.get(0);
mAmount=userCouponVo.getUsedAmount(); if (userCouponVo!=null){
userCouponVo.setIsChecked(1); userCouponVo.setIsChecked(1);
list1.set(0,userCouponVo); list1.set(0,userCouponVo);
}
} }
list1.sort(Comparator.comparing(UserCouponVo::getStatus)); list1.sort(Comparator.comparing(UserCouponVo::getStatus));
} }
JSONArray array = new JSONArray();
JSONObject object=new JSONObject(); JSONObject object=new JSONObject();
object.put("1",list1); object.put("type",1);
object.put("3",list2); object.put("list",list1);
object.put("mAmount",mAmount); array.add(object);
return ObjectRestResponse.succ(object); JSONObject object1=new JSONObject();
object1.put("type",3);
object1.put("list",list2);
array.add(object1);
JSONObject result=new JSONObject();
result.put("coupon",userCouponVo);
result.put("array",array);
return ObjectRestResponse.succ(result);
}
//获取我的优惠卷
public ObjectRestResponse getUserCouponList(Integer userId,int type,Integer channel,BigDecimal amout) {
if (userId == null || userId == 0) {
log.error("----参数不能为空");
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE, "参数不能为空");
}
Long time = System.currentTimeMillis();
List<UserCouponVo> list = mapper.getUserCouponsByType(userId, type, time, channel);
if (list.size() > 0) {
for (UserCouponVo couponVo : list) {
Integer status = 2;
if (amout.compareTo(new BigDecimal("0.00")) > 0) {
if (couponVo.getType() == 1) {
if (amout.compareTo(couponVo.getWithAmount()) >= 0) {
status = 1;
}
} else if (couponVo.getType() == 3) {
status = 1;
}
}
couponVo.setStatus(status);
}
list.sort(Comparator.comparing(UserCouponVo::getStatus));
}
return ObjectRestResponse.succ(list);
} }
......
...@@ -45,6 +45,25 @@ public class UserCouponController extends ActivityBaseController<UserCouponBiz> ...@@ -45,6 +45,25 @@ public class UserCouponController extends ActivityBaseController<UserCouponBiz>
if(userId==null){ if(userId==null){
return ObjectRestResponse.createDefaultFail(); return ObjectRestResponse.createDefaultFail();
} }
return baseBiz.getUserCouponList(userId,type,channel,amount);
}
/**
*
* @param type 0-未使用;1-已使用;3-已过期
* @param channel 1-租车;2-旅游;null-全部
* @return
*/
@ApiOperation("订单我的优惠卷")
@RequestMapping(value = "/coupon/typelist", method = RequestMethod.GET)
public ObjectRestResponse typelist(@RequestParam(value = "type",defaultValue = "0") Integer type,
@RequestParam(value = "channel",required = false) Integer channel,
@RequestParam(value = "amount",defaultValue = "0.00") BigDecimal amount) {
AppUserDTO userInfo = getUserInfo();
Integer userId = userInfo.getUserid();
if(userId==null){
return ObjectRestResponse.createDefaultFail();
}
return baseBiz.getCouponList(userId,type,channel,amount); return baseBiz.getCouponList(userId,type,channel,amount);
} }
......
...@@ -89,4 +89,10 @@ public class BuyVehicleForm implements Serializable { ...@@ -89,4 +89,10 @@ public class BuyVehicleForm implements Serializable {
@Column(name = "user_id") @Column(name = "user_id")
@ApiModelProperty(value = "用户id") @ApiModelProperty(value = "用户id")
private Integer userId; private Integer userId;
/**
* 0未处理 1已处理
*/
@Column(name = "status")
private Integer status;
} }
package com.xxfc.platform.app.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/9 15:36
*/
@Data
public class BuyVehicleFormPageVo {
/**
* 主键
*/
@ApiModelProperty("主键")
private Integer id;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 车型id
*/
@ApiModelProperty(value = "车型id")
private Integer modelId;
/**
* 联系人名称
*/
@ApiModelProperty(value = "联系人名称")
private String contactName;
/**
* 联系人电话
*/
@ApiModelProperty(value = "联系人电话")
private String contactPhone;
/**
* 预约时间
*/
@ApiModelProperty(value = "预约时间")
private Long bookTime;
/**
* 公司
*/
@ApiModelProperty(value = "公司")
private String companyName;
/**
* 0未处理 1已处理
*/
private Integer status;
/**
* 申请人
*/
private String applyName;
/**
* 申请人电话
*/
private String applyPhone;
}
package com.xxfc.platform.app.biz; package com.xxfc.platform.app.biz;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.app.entity.dto.BuyVehicleFormFindDTO;
import com.xxfc.platform.app.entity.vo.BuyVehicleFormPageVo;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.app.entity.BuyVehicleForm; import com.xxfc.platform.app.entity.BuyVehicleForm;
import com.xxfc.platform.app.mapper.BuyVehicleFormMapper; import com.xxfc.platform.app.mapper.BuyVehicleFormMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* 购房车提交表单 * 购房车提交表单
* *
...@@ -14,5 +27,51 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -14,5 +27,51 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
* @date 2019-07-09 19:39:47 * @date 2019-07-09 19:39:47
*/ */
@Service @Service
public class BuyVehicleFormBiz extends BaseBiz<BuyVehicleFormMapper,BuyVehicleForm> { public class BuyVehicleFormBiz extends BaseBiz<BuyVehicleFormMapper, BuyVehicleForm> {
@Autowired
private VehicleFeign vehicleFeign;
public PageDataVO<BuyVehicleFormPageVo> findBuyVehicleFormWithPage(BuyVehicleFormFindDTO buyVehicleFormFindDTO) {
PageDataVO<BuyVehicleFormPageVo> buyVehicleFormPage = new PageDataVO<>();
List<Integer> cpyIds = new ArrayList<>();
if(Objects.nonNull(buyVehicleFormFindDTO.getAreaId())){
List<Integer> companyIds = vehicleFeign.findCompanyIdsByAreaId(buyVehicleFormFindDTO.getAreaId());
if (Objects.isNull(buyVehicleFormFindDTO.getCompanyId())){
cpyIds.addAll(companyIds);
}else {
boolean flag = companyIds.contains(buyVehicleFormFindDTO.getCompanyId());
if (flag){
cpyIds.add(buyVehicleFormFindDTO.getCompanyId());
}
}
}else {
if (Objects.nonNull(buyVehicleFormFindDTO.getCompanyId())){
cpyIds.add(buyVehicleFormFindDTO.getCompanyId());
}
}
PageDataVO<BuyVehicleForm> pageDataVO = PageDataVO.pageInfo(buyVehicleFormFindDTO.getPage(),buyVehicleFormFindDTO.getLimit(),()->mapper.findBuyVehicleForms(buyVehicleFormFindDTO, cpyIds));
List<BuyVehicleForm> data = pageDataVO.getData();
if (CollectionUtils.isEmpty(data)){
return buyVehicleFormPage;
}
List<Integer> userIds = data.stream().map(BuyVehicleForm::getUserId).collect(Collectors.toList());
List<BuyVehicleFormPageVo> buyVehicleFormPageVoList = new ArrayList<>();
BuyVehicleFormPageVo buyVehicleFormPageVo;
for (BuyVehicleForm buyVehicleForm : data) {
buyVehicleFormPageVo = new BuyVehicleFormPageVo();
BeanUtils.copyProperties(buyVehicleForm,buyVehicleFormPageVo);
buyVehicleFormPageVoList.add(buyVehicleFormPageVo);
}
buyVehicleFormPage.setData(buyVehicleFormPageVoList);
buyVehicleFormPage.setPageSize(pageDataVO.getPageSize());
buyVehicleFormPage.setPageNum(pageDataVO.getPageNum());
buyVehicleFormPage.setTotalPage(pageDataVO.getTotalPage());
buyVehicleFormPage.setTotalCount(pageDataVO.getTotalCount());
return buyVehicleFormPage;
}
} }
\ No newline at end of file
package com.xxfc.platform.app.mapper; package com.xxfc.platform.app.mapper;
import com.xxfc.platform.app.entity.BuyVehicleForm; import com.xxfc.platform.app.entity.BuyVehicleForm;
import com.xxfc.platform.app.entity.dto.BuyVehicleFormFindDTO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 购房车提交表单 * 购房车提交表单
* *
...@@ -11,5 +15,6 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -11,5 +15,6 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-07-09 19:39:47 * @date 2019-07-09 19:39:47
*/ */
public interface BuyVehicleFormMapper extends Mapper<BuyVehicleForm> { public interface BuyVehicleFormMapper extends Mapper<BuyVehicleForm> {
List<BuyVehicleForm> findBuyVehicleForms(@Param("bvf") BuyVehicleFormFindDTO buyVehicleFormFindDTO,@Param("companyIds") List<Integer> companyIds);
} }
package com.xxfc.platform.app.rest.admin; package com.xxfc.platform.app.rest.admin;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.app.biz.BuyVehicleFormBiz; import com.xxfc.platform.app.biz.BuyVehicleFormBiz;
import com.xxfc.platform.app.entity.dto.BuyVehicleFormFindDTO;
import com.xxfc.platform.app.entity.vo.BuyVehicleFormPageVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
/** /**
...@@ -11,8 +18,20 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -11,8 +18,20 @@ import org.springframework.web.bind.annotation.RestController;
* @data 2019/8/9 13:55 * @data 2019/8/9 13:55
*/ */
@RestController @RestController
@RequestMapping("buy_vehicle")
public class BuyVehicleFormAdminController { public class BuyVehicleFormAdminController {
@Autowired @Autowired
private BuyVehicleFormBiz vehicleFormBiz; private BuyVehicleFormBiz vehicleFormBiz;
@PostMapping("/page")
public ObjectRestResponse<BuyVehicleFormPageVo> findBuyVehicleFormWithPage(BuyVehicleFormFindDTO buyVehicleFormFindDTO){
PageDataVO<BuyVehicleFormPageVo> pageDataVO = vehicleFormBiz.findBuyVehicleFormWithPage(buyVehicleFormFindDTO);
return ObjectRestResponse.succ(pageDataVO);
}
@PostMapping("/status/id")
public ObjectRestResponse<Void> processApplyById(@PathVariable("id") Integer id){
}
} }
...@@ -8,13 +8,34 @@ ...@@ -8,13 +8,34 @@
<result property="id" column="id"/> <result property="id" column="id"/>
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/> <result property="updTime" column="upd_time"/>
<result property="name" column="name"/>
<result property="modelId" column="model_id"/> <result property="modelId" column="model_id"/>
<result property="contactName" column="contact_name"/> <result property="contactName" column="contact_name"/>
<result property="contactPhone" column="contact_phone"/> <result property="contactPhone" column="contact_phone"/>
<result property="bookTime" column="book_time"/> <result property="bookTime" column="book_time"/>
<result property="companyId" column="company_id"/> <result property="companyId" column="company_id"/>
<result property="remark" column="remark"/> <result property="remark" column="remark"/>
<result property="status" column="status"/>
</resultMap> </resultMap>
<select id="findBuyVehicleForms" resultMap="buyVehicleFormMap">
select * from `buy_vehicle_form` where 1=1
<if test="bvf.startTime != null and bvf.endTime !=null">
and `bookTime` between #{bvf.startTime} and #{bvf.endTime}
</if>
<if test="bvf.startTime != null and bvf.endTime == null">
and `bookTime`>= #{bvf.startTime}
</if>
<if test="bvf.endTime != null and bvf.startTime == null">
and <![CDATA[ `bookTime`<= #{bvf.endTime}]]>
</if>
<if test="bvf.areaId != null || bvf.companyId !=null">
<if test="companyIds != null and companyIds.size() != 0">
and `company_id` in
<foreach collection="companyIds" item="companyId" separator=",">
#{companyId}
</foreach>
</if>
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -68,4 +68,9 @@ public class CampsiteShopDetailDTO { ...@@ -68,4 +68,9 @@ public class CampsiteShopDetailDTO {
@ApiModelProperty(value = "电话") @ApiModelProperty(value = "电话")
private String phone; private String phone;
/**
* 店铺logo
*/
private String logo;
} }
...@@ -92,4 +92,9 @@ public class CampsiteShopDetailVo { ...@@ -92,4 +92,9 @@ public class CampsiteShopDetailVo {
@ApiModelProperty(value = "電話") @ApiModelProperty(value = "電話")
private String phone; private String phone;
/**
* 店铺logo
*/
private String logo;
} }
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,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`, select `name` as `name`,`province_name` as `provinceName`,`city_name` as `cityName`,`address` as `address`,`service_phone` as `phone`,`logo` as `logo`,
`content` as `content`,`configure` as `configure`,`longitude` as `longitude`,`latitude` as `latitude` from `campsite_shop` where `id`=#{id} `content` as `content`,`configure` as `configure`,`longitude` as `longitude`,`latitude` as `latitude` from `campsite_shop` where `id`=#{id}
</select> </select>
......
...@@ -7,6 +7,7 @@ import com.github.pagehelper.PageInfo; ...@@ -7,6 +7,7 @@ import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.vo.ImiVo; 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.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.model.Comment; import com.xxfc.platform.im.model.Comment;
...@@ -122,6 +123,36 @@ public class MsgBiz { ...@@ -122,6 +123,36 @@ public class MsgBiz {
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
public ObjectRestResponse getMsgListByUserId(Integer page, Integer limit) {
//获取所有朋友圈
page = page == null ? 1 : page;
limit = limit == null ? 10 : limit;
AppUserDTO appUserDTO = userBiz.getUserInfo();
Integer userId = null;
if(appUserDTO != null) {
userId = appUserDTO.getImUserid();
} else {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, "token失效");
}
Pageable pageable = PageRequest.of(--page, limit);
List<Integer> ids = new ArrayList<>();
ids.add(2);
ids.add(4);
Query query = new Query(Criteria.where("body.type").in(ids));
query.addCriteria(Criteria.where("userId").is(userId));
int totalSize = mongoTemplate.find(query, Msg.class, "s_msg").size();
query.with(pageable);
query.with(new Sort(Sort.Direction.DESC, "time"));
List<Msg> msgList = fetchAndAttach(mongoTemplate.find(query, Msg.class, "s_msg"), userId);
PageInfo<Msg> goodPageInfo = new PageInfo<>(msgList);
goodPageInfo.setPageSize(totalSize%limit == 0 ?totalSize/limit : totalSize/limit + 1);
return ObjectRestResponse.succ(goodPageInfo);
}
/** /**
* 添加评论和点赞 * 添加评论和点赞
* *
......
...@@ -31,4 +31,8 @@ public class MsgController { ...@@ -31,4 +31,8 @@ public class MsgController {
return msgBiz.get(id); return msgBiz.get(id);
} }
@GetMapping(value = "/getByUserId")
public ObjectRestResponse getByUserId(Integer page, Integer limit) {
return msgBiz.getMsgListByUserId(page, limit);
}
} }
...@@ -26,6 +26,13 @@ public class DailyOrderStatistics { ...@@ -26,6 +26,13 @@ public class DailyOrderStatistics {
@Column(name = "one_day") @Column(name = "one_day")
private String oneDay; private String oneDay;
/**
* 分公司id
*/
@Column(name = "branch_company_id")
private Integer branchCompanyId;
/** /**
* 成交总金额 * 成交总金额
*/ */
......
...@@ -23,11 +23,6 @@ import java.util.Date; ...@@ -23,11 +23,6 @@ import java.util.Date;
@Table(name = "daily_vehicle_order_statistics") @Table(name = "daily_vehicle_order_statistics")
public class DailyVehicleOrderStatistics extends DailyOrderStatistics{ public class DailyVehicleOrderStatistics extends DailyOrderStatistics{
/**
* 成交总金额
*/
@Column(name = "gmv")
private BigDecimal gmv;
/** /**
* 预交押金总额 * 预交押金总额
...@@ -60,5 +55,10 @@ public class DailyVehicleOrderStatistics extends DailyOrderStatistics{ ...@@ -60,5 +55,10 @@ public class DailyVehicleOrderStatistics extends DailyOrderStatistics{
@Column(name = "postpone") @Column(name = "postpone")
private BigDecimal postpone; private BigDecimal postpone;
/**
* 取消订单扣款总额
*/
@Column(name = "penal_sum")
private BigDecimal penalSum;
} }
...@@ -69,9 +69,5 @@ public class DepositRefundRecord { ...@@ -69,9 +69,5 @@ public class DepositRefundRecord {
@Transient @Transient
Long rentDepositAutoRefundTime; Long rentDepositAutoRefundTime;
/**
* 客服电话
*/
@Transient
private String customerPhone;
} }
\ No newline at end of file
package com.xxfc.platform.order.entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Administrator
*/
@Data
@ApiModel(value = "月订单统计实体")
public class OrderStatistics {
/**
* 月成交总金额
*/
@ApiModelProperty(value = "月成交总金额")
private BigDecimal totalGmv;
/**
* 月押金总额
*/
@ApiModelProperty(value = "月押金总额")
private BigDecimal totalSecurityDeposit;
/**
* 月退还押金总额
*/
@ApiModelProperty(value = "月退还押金总额")
private BigDecimal totalRefundSecurityDeposit;
/**
* 月赔偿总额
*/
@ApiModelProperty(value = "月赔偿总额")
private BigDecimal totalCompensation;
/**
* 月违章总额
*/
@ApiModelProperty(value = "月违章总额")
private BigDecimal totalForfeit;
/**
* 月取消订单扣款总额
*/
@ApiModelProperty(value = "月取消订单扣款总额")
private BigDecimal totalPenalSum;
/**
* 月延期扣款总额
*/
@ApiModelProperty(value = "月延期扣款总额")
private BigDecimal totalPostpone;
}
...@@ -19,6 +19,6 @@ import java.util.Set; ...@@ -19,6 +19,6 @@ import java.util.Set;
*/ */
@FeignClient(name = "order") @FeignClient(name = "order")
public interface OrderFeign { public interface OrderFeign {
// @GetMapping("/baseOrder/entityList") @GetMapping("/baseOrder/entityList")
// public ObjectRestResponse<List<BaseOrder>> baseOrderEntityList(@RequestParam("entity") Map<String, Object> entity); public ObjectRestResponse<List<BaseOrder>> baseOrderEntityList(@RequestParam("entity") Map<String, Object> entity);
} }
...@@ -28,10 +28,15 @@ public class OrderVehicleCrosstownDto extends OrderVehicleCrosstown { ...@@ -28,10 +28,15 @@ public class OrderVehicleCrosstownDto extends OrderVehicleCrosstown {
* 驾驶人身份证号 * 驾驶人身份证号
*/ */
private String licenseIdCard; private String licenseIdCard;
/**
* 客服电话
*/
private String customerPhone;
private String vehicleNumberPlat; private String vehicleNumberPlat;
private String username; private String username;
List<DepositRefundRecord> depositRefundRecord; List<DepositRefundRecord> depositRefundRecord;
} }
...@@ -38,6 +38,13 @@ ...@@ -38,6 +38,13 @@
<artifactId>spring-boot-starter-amqp</artifactId> <artifactId>spring-boot-starter-amqp</artifactId>
</dependency> </dependency>
<!-- hutool工具类-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.10</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -3,14 +3,20 @@ package com.xxfc.platform.order.biz; ...@@ -3,14 +3,20 @@ package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.entity.DailyMembersOrderStatistics; import com.xxfc.platform.order.entity.DailyMembersOrderStatistics;
import com.xxfc.platform.order.entity.DailyTravelOrderStatistics; import com.xxfc.platform.order.entity.DailyTravelOrderStatistics;
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.mapper.DailyTravelOrderStatisticsMapper; import com.xxfc.platform.order.mapper.DailyTravelOrderStatisticsMapper;
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.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -19,19 +25,26 @@ import java.util.Map; ...@@ -19,19 +25,26 @@ import java.util.Map;
* @author Administrator * @author Administrator
*/ */
@Service @Service
@Slf4j
public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderStatisticsMapper, DailyMembersOrderStatistics> { public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderStatisticsMapper, DailyMembersOrderStatistics> {
private final Integer headOfficeId = 1;
@Transactional(rollbackFor = Exception.class)
public boolean memberOrderStatistics() { public boolean memberOrderStatistics() {
try { try {
HashMap<String, Object> resultMap = new HashMap<>(); List<Map<String, Object>> travelGmv = mapper.getTravelGmv();
Map<String, Object> travelGmv = mapper.getTravelGmv(); if (CollectionUtils.isEmpty(travelGmv)) {
resultMap.putAll(travelGmv); return true;
DailyMembersOrderStatistics MembersStatistics = new DailyMembersOrderStatistics(); }
BeanUtils.copyProperties(MembersStatistics, resultMap); for (Map<String, Object> stringObjectMap : travelGmv) {
insertSelective(MembersStatistics); DailyMembersOrderStatistics MembersStatistics = new DailyMembersOrderStatistics();
BeanUtils.copyProperties(MembersStatistics, stringObjectMap);
insertSelective(MembersStatistics);
}
return true; return true;
} catch (Exception e) { } catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
e.printStackTrace(); e.printStackTrace();
return false; return false;
} }
...@@ -39,7 +52,16 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta ...@@ -39,7 +52,16 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta
@Override @Override
public int insertSelectiveRe(DailyMembersOrderStatistics entity) { public int insertSelectiveRe(DailyMembersOrderStatistics entity) {
entity.setCrtTime(new Date()); Date date = new Date();
if (log.isDebugEnabled()){
log.debug("时间******[{}]",date);
}
entity.setBranchCompanyId(headOfficeId);
entity.setCrtTime(date);
return mapper.insertSelective(entity); return mapper.insertSelective(entity);
} }
public OrderStatistics findAll(Integer companyId) {
return mapper.monthOrderTotal(companyId);
}
} }
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.util.EntityUtils;
import com.xxfc.platform.order.entity.DailyTravelOrderStatistics; import com.xxfc.platform.order.entity.DailyTravelOrderStatistics;
import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.DailyTravelOrderStatisticsMapper; import com.xxfc.platform.order.mapper.DailyTravelOrderStatisticsMapper;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.math.BigDecimal; import java.util.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/** /**
* 每日旅游订单统计 * 每日旅游订单统计
...@@ -20,27 +21,54 @@ import java.util.Map; ...@@ -20,27 +21,54 @@ import java.util.Map;
@Service @Service
public class DailyTravelOrderStatisticsBiz extends BaseBiz<DailyTravelOrderStatisticsMapper, DailyTravelOrderStatistics> { public class DailyTravelOrderStatisticsBiz extends BaseBiz<DailyTravelOrderStatisticsMapper, DailyTravelOrderStatistics> {
@Transactional(rollbackFor = Exception.class)
public boolean StatisticsOfTravelOrders() { public boolean StatisticsOfTravelOrders() {
try { try {
HashMap<String, Object> resultMap = new HashMap<>();
Map<String, Object> travelGmv = mapper.getTravelGmv(); ArrayList<DailyTravelOrderStatistics> objects = new ArrayList<>();
BigDecimal travelPenalSum = mapper.getTravelPenalSum(); List<DailyTravelOrderStatistics> travelGmv = mapper.getTravelGmv();
resultMap.putAll(travelGmv); objects.addAll(travelGmv);
resultMap.put("penalSum", travelPenalSum); List<DailyTravelOrderStatistics> travelPenalSum = mapper.getTravelPenalSum();
DailyTravelOrderStatistics TravelStatistics = new DailyTravelOrderStatistics(); objects.addAll(travelPenalSum);
BeanUtils.copyProperties(TravelStatistics, resultMap); insertByList(objects);
insertSelective(TravelStatistics);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return false; return false;
} }
} }
private void insertByList(ArrayList<DailyTravelOrderStatistics> objects) throws Exception {
if (CollectionUtils.isNotEmpty(objects)) {
HashMap<Integer, DailyTravelOrderStatistics> map = new HashMap<>();
for (DailyTravelOrderStatistics object : objects) {
DailyTravelOrderStatistics statistics = map.get(object.getBranchCompanyId());
if (statistics == null) {
statistics = new DailyTravelOrderStatistics();
map.put(object.getBranchCompanyId(), statistics);
}
BeanUtil.copyProperties(object, statistics, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
}
for (Map.Entry<Integer, DailyTravelOrderStatistics> e : map.entrySet()) {
insertSelectiveRe(e.getValue());
}
}
}
@Override @Override
public int insertSelectiveRe(DailyTravelOrderStatistics entity) { public int insertSelectiveRe(DailyTravelOrderStatistics entity) {
entity.setCrtTime(new Date()); entity.setCrtTime(new Date());
return mapper.insertSelective(entity); return mapper.insertSelective(entity);
} }
public OrderStatistics findAll(Integer branchCompanyId) {
return mapper.monthOrderTotal(branchCompanyId);
}
} }
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.entity.DailyMembersOrderStatistics;
import com.xxfc.platform.order.entity.DailyVehicleOrderStatistics; import com.xxfc.platform.order.entity.DailyVehicleOrderStatistics;
import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.DailyVehicleOrderStatisticsMapper; import com.xxfc.platform.order.mapper.DailyVehicleOrderStatisticsMapper;
import com.xxfc.platform.order.pojo.DedDetailDTO; import com.xxfc.platform.order.pojo.DedDetailDTO;
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.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 java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
/** 每日租车订单统计 /**
* 每日租车订单统计
*
* @author Administrator * @author Administrator
*/ */
@Service @Service
...@@ -23,33 +28,39 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta ...@@ -23,33 +28,39 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta
private final Integer TYPE_DEFERRED = 1; private final Integer TYPE_DEFERRED = 1;
private final Integer TYPE_DAMAGE = 2; private final Integer TYPE_DAMAGE = 2;
private final Integer TYPE_OTHER = 3;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean StatisticsOfCarRentalOrders() { public boolean StatisticsOfCarRentalOrders() {
try { try {
HashMap<String, Object> resultMap = new HashMap<>();
ArrayList<DailyVehicleOrderStatistics> result = new ArrayList<>();
// 获取每日租车订单成交金和押金总额 // 获取每日租车订单成交金和押金总额
Map<String, BigDecimal> gmvAndMarginTotal = mapper.getGmvAndMarginTotal(); List<DailyVehicleOrderStatistics> gmvAndMarginTotal = mapper.getGmvAndMarginTotal();
resultMap.putAll(gmvAndMarginTotal); result.addAll(gmvAndMarginTotal);
// 获取车辆
BigDecimal penalSum = mapper.getPenalSum(); // 获取取消订单扣款总额
resultMap.put("penalSum", penalSum); List<DailyVehicleOrderStatistics> penalSum = mapper.getPenalSum();
result.addAll(penalSum);
// 获取订单退还押金总额 // 获取订单退还押金总额
BigDecimal refundSecurityDeposit = mapper.getRefundSecurityDeposit(); List<DailyVehicleOrderStatistics> refundSecurityDeposit = mapper.getRefundSecurityDeposit();
resultMap.put("refundSecurityDeposit", refundSecurityDeposit); result.addAll(refundSecurityDeposit);
// 获取违章查询总和
BigDecimal violationMoney = mapper.getViolationMoney(); // 获取违章查询总和
resultMap.put("violationMoney", violationMoney); List<DailyVehicleOrderStatistics> violationMoney = mapper.getViolationMoney();
// 获取赔偿和延期JSON字符串 result.addAll(violationMoney);
List<String> compensationAndPostpone = mapper.getCompensationAndPostpone();
// 获取赔偿和延期JSON字符串转换为map // 获取赔偿和延期JSON字符串
Map<String, BigDecimal> cpMap = getCompensationAndPostponeMap(compensationAndPostpone); List<Map> compensationAndPostpone = mapper.getCompensationAndPostpone();
resultMap.putAll(cpMap); // 获取赔偿和延期JSON字符串转换为map
DailyVehicleOrderStatistics orderStatistics = new DailyVehicleOrderStatistics(); List<DailyVehicleOrderStatistics> compensationAndPostpones = getCompensationAndPostpones(compensationAndPostpone);
BeanUtils.copyProperties(orderStatistics,resultMap); result.addAll(compensationAndPostpones);
insertSelective(orderStatistics);
InsertByList(result);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -59,53 +70,127 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta ...@@ -59,53 +70,127 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta
} }
private void InsertByList(ArrayList<DailyVehicleOrderStatistics> result) throws Exception {
if(CollectionUtils.isNotEmpty(result)) {
Map<Integer, DailyVehicleOrderStatistics> map = new HashMap<>();
for (DailyVehicleOrderStatistics value : result) {
Integer branchCompanyId = value.getBranchCompanyId();
DailyVehicleOrderStatistics statistics = map.get(branchCompanyId);
if (statistics == null) {
statistics = new DailyVehicleOrderStatistics();
map.put(branchCompanyId, statistics);
BeanUtil.copyProperties(
value,
statistics,
CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
}
for (Map.Entry<Integer, DailyVehicleOrderStatistics> entry : map.entrySet()) {
insertSelectiveRe(entry.getValue());
}
}
}
}
/** /**
* 获取赔偿总额和延期总额 * 获取赔偿总额和延期总额
*/ */
private Map<String, BigDecimal> getCompensationAndPostponeMap(List<String> compensationAndPostpone) { private List<DailyVehicleOrderStatistics> getCompensationAndPostpones(List<Map> list) {
if (CollectionUtils.isNotEmpty(compensationAndPostpone)) {
List<DedDetailDTO> sumDedDetailDTOs = new ArrayList<>(); if (CollectionUtils.isNotEmpty(list)) {
for (String value : compensationAndPostpone) { //获取分公全部赔偿和延期DedDetailDTO
List<DedDetailDTO> dedDetailDTOS = JSON.parseArray(value, DedDetailDTO.class); HashMap<Integer, List<DedDetailDTO>> map = new HashMap<>();
sumDedDetailDTOs.addAll(dedDetailDTOS);
for (Map value : list) {
if (value != null) {
//获取分公司id
Integer branchCompanyId = (Integer) value.get("branchCompanyId");
List<DedDetailDTO> strings = map.get(branchCompanyId);
if (strings == null) {
strings = new ArrayList<DedDetailDTO>();
map.put(branchCompanyId, strings);
}
String str = (String) value.get("dedDetail");
if (StringUtils.isNotBlank(str)) {
List<DedDetailDTO> dedDetailDTOS = JSON.parseArray(str, DedDetailDTO.class);
if (CollectionUtils.isNotEmpty(dedDetailDTOS)) {
strings.addAll(dedDetailDTOS);
}
}
}
} }
List<DailyVehicleOrderStatistics> result = new ArrayList<>();
if (!map.isEmpty()) {
//获取分工对象集合
for (Map.Entry<Integer, List<DedDetailDTO>> entry : map.entrySet()) {
DailyVehicleOrderStatistics statistics = new DailyVehicleOrderStatistics();
//公司id添加到对象当中
statistics.setBranchCompanyId(entry.getKey());
//获取公司的JSON字符串
List<DedDetailDTO> sumDedDetailDTOs = entry.getValue();
// 获取赔偿金额总和 // 获取赔偿金额总和
BigDecimal compensation = get(sumDedDetailDTOs, TYPE_DAMAGE); BigDecimal compensation = get(sumDedDetailDTOs, TYPE_DAMAGE);
statistics.setCompensation(compensation);
// 获取延期金额总和 // 获取延期金额总和
BigDecimal postpone = get(sumDedDetailDTOs, TYPE_DEFERRED); BigDecimal postpone = get(sumDedDetailDTOs, TYPE_DEFERRED);
Map<String, BigDecimal> resultMap = new HashMap<>(); statistics.setPostpone(postpone);
resultMap.put("compensation", compensation); //// 其他款项总金额
resultMap.put("postpone", postpone); // BigDecimal other = get(sumDedDetailDTOs, TYPE_OTHER);
return resultMap;
result.add(statistics);
}
}
return result;
} }
return new HashMap<String, BigDecimal>(); return new ArrayList<>();
} }
/** /**
* 根据type获取对应的金额总和 * 根据type获取对应的金额总和
* *
* @param sumDedDetailDTOs * @param sumDedDetailDTOs
* @param TYPE_DAMAGE * @param type 金额类型
* @return * @return
*/ */
private BigDecimal get(List<DedDetailDTO> sumDedDetailDTOs, Integer TYPE_DAMAGE) { private BigDecimal get(List<DedDetailDTO> sumDedDetailDTOs, Integer type) {
if (CollectionUtils.isNotEmpty(sumDedDetailDTOs)) { if (CollectionUtils.isNotEmpty(sumDedDetailDTOs)) {
BigDecimal aggregateAmount = sumDedDetailDTOs.stream() BigDecimal aggregateAmount = sumDedDetailDTOs.stream()
.filter(d -> TYPE_DAMAGE.equals(d.getType())) .filter(d -> type.equals(d.getType()))
.map(DedDetailDTO::getCost) .map(DedDetailDTO::getCost)
.reduce(BigDecimal.ZERO, BigDecimal::add); .reduce(BigDecimal.ZERO, BigDecimal::add);
return aggregateAmount; return aggregateAmount;
} }
return null; return BigDecimal.ZERO;
} }
@Override @Override
public int insertSelectiveRe(DailyVehicleOrderStatistics entity) { public int insertSelectiveRe(DailyVehicleOrderStatistics entity) {
Date date = new Date();
entity.setCrtTime(new Date()); entity.setCrtTime(new Date());
return mapper.insertSelective(entity); return mapper.insertSelective(entity);
} }
public OrderStatistics findAll(Integer companyId) {
return mapper.monthOrderTotal(companyId);
}
} }
...@@ -2,6 +2,7 @@ package com.xxfc.platform.order.biz; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.order.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.contant.enumerate.CrosstownTypeEnum; import com.xxfc.platform.order.contant.enumerate.CrosstownTypeEnum;
import com.xxfc.platform.order.contant.enumerate.DepositRefundStatus; import com.xxfc.platform.order.contant.enumerate.DepositRefundStatus;
...@@ -11,6 +12,7 @@ import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto; ...@@ -11,6 +12,7 @@ import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto;
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;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -33,6 +35,12 @@ public class OrderDepositRefundRecordBiz extends BaseBiz<DepositRefundRecordMapp ...@@ -33,6 +35,12 @@ public class OrderDepositRefundRecordBiz extends BaseBiz<DepositRefundRecordMapp
BaseOrderBiz baseOrderBiz; BaseOrderBiz baseOrderBiz;
@Autowired @Autowired
OrderRentVehicleBiz orderRentVehicleBiz; OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
UserFeign userFeign;
@Autowired
VehicleFeign vehicleFeign;
@Autowired @Autowired
OrderVehicleCrosstownBiz orderVehicleCrosstownBiz; OrderVehicleCrosstownBiz orderVehicleCrosstownBiz;
......
package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.OrderStatisticsMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import static io.lettuce.core.ZStoreArgs.Builder.sum;
import static java.util.stream.Collectors.groupingBy;
/**
* @author Administrator
*/
@Service
public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper,OrderStatistics> {
@Autowired
private DailyVehicleOrderStatisticsBiz vehicleBiz;
@Autowired
private DailyTravelOrderStatisticsBiz TravelBiz;
@Autowired
private DailyMembersOrderStatisticsBiz membersBiz;
public OrderStatistics getToalOrder(Integer companyId) {
OrderStatistics result = new OrderStatistics();
ArrayList<OrderStatistics> orderStatistics = new ArrayList<>();
OrderStatistics vehicle = vehicleBiz.findAll(companyId);
if (vehicle!=null) {orderStatistics.add(vehicle);}
OrderStatistics tour = TravelBiz.findAll(companyId);
if (vehicle!=null) {orderStatistics.add(tour);}
OrderStatistics member = membersBiz.findAll(companyId);
if (vehicle!=null) {orderStatistics.add(member);}
result.setTotalGmv(orderStatistics.stream().map(OrderStatistics::getTotalGmv).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalForfeit(orderStatistics.stream().map(OrderStatistics::getTotalForfeit).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalCompensation(orderStatistics.stream().map(OrderStatistics::getTotalCompensation).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalRefundSecurityDeposit(orderStatistics.stream().map(OrderStatistics::getTotalRefundSecurityDeposit).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalSecurityDeposit(orderStatistics.stream().map(OrderStatistics::getTotalSecurityDeposit).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalPenalSum(orderStatistics.stream().map(OrderStatistics::getTotalPenalSum).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalPostpone(orderStatistics.stream().map(OrderStatistics::getTotalPostpone).reduce(BigDecimal.ZERO,BigDecimal::add));
return result;
}
}
...@@ -27,6 +27,7 @@ import com.xxfc.platform.vehicle.common.RestResponse; ...@@ -27,6 +27,7 @@ import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.VehicleArrivalVo; import com.xxfc.platform.vehicle.pojo.VehicleArrivalVo;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureVo; import com.xxfc.platform.vehicle.pojo.VehicleDepartureVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -77,6 +78,15 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -77,6 +78,15 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
List<OrderVehicleCrosstownDto> list = mapper.selectByOrderId(orderVehicleCrosstownDto); List<OrderVehicleCrosstownDto> list = mapper.selectByOrderId(orderVehicleCrosstownDto);
for (OrderVehicleCrosstownDto value : list) { for (OrderVehicleCrosstownDto value : list) {
if(value != null && value.getOrperaterId() != null && value.getType() != 1) {
UserDTO userDTO = userFeign.userinfoByUid(value.getOrperaterId()).getData();
if(userDTO != null) {
CompanyDetail branchCompany = vehicleFeign.getCompanyDetail(userDTO.getCompanyId()).getData();
if(branchCompany != null) {
value.setCustomerPhone(branchCompany.getVehiceServicePhone());
}
}
}
updateCrossRecord(value); updateCrossRecord(value);
List<DepositRefundRecord> depositRefundRecords = orderDepositRefundRecordBiz.selectByCrossId(value.getId()); List<DepositRefundRecord> depositRefundRecords = orderDepositRefundRecordBiz.selectByCrossId(value.getId());
value.setDepositRefundRecord(depositRefundRecords == null || depositRefundRecords.size() <= 0 ? null : depositRefundRecords); value.setDepositRefundRecord(depositRefundRecords == null || depositRefundRecords.size() <= 0 ? null : depositRefundRecords);
......
...@@ -62,7 +62,7 @@ public class SwaggerConfig { ...@@ -62,7 +62,7 @@ public class SwaggerConfig {
return new ApiInfoBuilder() return new ApiInfoBuilder()
.title("api swagger document") .title("api swagger document")
.description("前后端联调swagger api 文档") .description("前后端联调swagger api 文档")
.version("2.1.5.5") .version("2.1.5.5")
.build(); .build();
} }
} }
\ No newline at end of file
package com.xxfc.platform.order.mapper; package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.DailyMembersOrderStatistics; import com.xxfc.platform.order.entity.DailyMembersOrderStatistics;
import com.xxfc.platform.order.entity.OrderStatistics;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -10,6 +12,9 @@ import java.util.Map; ...@@ -10,6 +12,9 @@ import java.util.Map;
* @author Administrator * @author Administrator
*/ */
public interface DailyMembersOrderStatisticsMapper extends Mapper<DailyMembersOrderStatistics> { public interface DailyMembersOrderStatisticsMapper extends Mapper<DailyMembersOrderStatistics> {
Map<String, Object> getTravelGmv();
List<Map<String, Object>> getTravelGmv();
OrderStatistics monthOrderTotal(Integer companyId);
} }
package com.xxfc.platform.order.mapper; package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.DailyTravelOrderStatistics; import com.xxfc.platform.order.entity.DailyTravelOrderStatistics;
import org.springframework.stereotype.Repository; import com.xxfc.platform.order.entity.OrderStatistics;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -13,7 +14,9 @@ import java.util.Map; ...@@ -13,7 +14,9 @@ import java.util.Map;
public interface DailyTravelOrderStatisticsMapper extends Mapper<DailyTravelOrderStatistics> { public interface DailyTravelOrderStatisticsMapper extends Mapper<DailyTravelOrderStatistics> {
Map<String,Object> getTravelGmv(); List<DailyTravelOrderStatistics> getTravelGmv();
BigDecimal getTravelPenalSum(); List<DailyTravelOrderStatistics> getTravelPenalSum();
OrderStatistics monthOrderTotal(Integer branchCompanyId);
} }
package com.xxfc.platform.order.mapper; package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.DailyVehicleOrderStatistics; import com.xxfc.platform.order.entity.DailyVehicleOrderStatistics;
import com.xxfc.platform.order.entity.OrderStatistics;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -13,13 +14,15 @@ import java.util.Map; ...@@ -13,13 +14,15 @@ import java.util.Map;
*/ */
public interface DailyVehicleOrderStatisticsMapper extends Mapper<DailyVehicleOrderStatistics> { public interface DailyVehicleOrderStatisticsMapper extends Mapper<DailyVehicleOrderStatistics> {
Map<String, BigDecimal> getGmvAndMarginTotal(); List<DailyVehicleOrderStatistics> getGmvAndMarginTotal();
List<String> getCompensationAndPostpone(); List<Map> getCompensationAndPostpone();
BigDecimal getPenalSum(); List<DailyVehicleOrderStatistics> getPenalSum();
BigDecimal getRefundSecurityDeposit(); List<DailyVehicleOrderStatistics> getRefundSecurityDeposit();
BigDecimal getViolationMoney(); List<DailyVehicleOrderStatistics> getViolationMoney();
OrderStatistics monthOrderTotal(Integer companyId);
} }
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderStatistics;
import tk.mybatis.mapper.common.Mapper;
/**
* @author Administrator
*/
public interface OrderStatisticsMapper extends Mapper<OrderStatistics> {
}
package com.xxfc.platform.order.rest.background;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.biz.DailyMembersOrderStatisticsBiz;
import com.xxfc.platform.order.biz.DailyTravelOrderStatisticsBiz;
import com.xxfc.platform.order.biz.DailyVehicleOrderStatisticsBiz;
import com.xxfc.platform.order.biz.OrderStatisticsBiz;
import com.xxfc.platform.order.entity.OrderStatistics;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author Administrator
*/
@RestController
@RequestMapping("orderStatistics")
@Api(description = "每月总的订单统计")
public class OrderStatisticsController extends BaseController<OrderStatisticsBiz, OrderStatistics> {
@Autowired
private UserFeign userFeign;
@Autowired
private UserAuthConfig userAuthConfig;
/**
* 租车订单
*/
private final Integer TYEP_VEHICLE = 1;
/**
* 旅游订单
*/
private final Integer TYEP_TOUR = 2;
/**
* 购买会员订单
*/
private final Integer TYEP_MEMBER = 3;
/**
* 月总数据
*/
private final Integer TYEP_TOTAL = 4;
@Autowired
private DailyVehicleOrderStatisticsBiz vehicleBiz;
@Autowired
private DailyTravelOrderStatisticsBiz TravelBiz;
@Autowired
private DailyMembersOrderStatisticsBiz membersBiz;
@ApiOperation("获取订单统计数据")
@GetMapping("/findAll/{type}")
public ObjectRestResponse findAll(@PathVariable Integer type) {
ObjectRestResponse<UserDTO> userDTOObjectRestResponse = userFeign.userinfoByToken(userAuthConfig.getToken(getRequest()));
if (userDTOObjectRestResponse==null||userDTOObjectRestResponse.getData()==null) {
throw new BaseException("请登录!");
}
UserDTO user = userDTOObjectRestResponse.getData();
Integer companyId = user.getCompanyId();
if (TYEP_VEHICLE.equals(type)) {
OrderStatistics vehicle = vehicleBiz.findAll(companyId);
return ObjectRestResponse.succ(vehicle);
}
if (TYEP_TOUR.equals(type)) {
OrderStatistics tour = TravelBiz.findAll(companyId);
return ObjectRestResponse.succ(tour);
}
if (TYEP_MEMBER.equals(type)) {
OrderStatistics member = membersBiz.findAll(companyId);
return ObjectRestResponse.succ(member);
}
if (TYEP_TOTAL.equals(type)){
baseBiz.getToalOrder(companyId);
}
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"参数为空!");
}
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.order.mapper.DailyMembersOrderStatisticsMapper"> <mapper namespace="com.xxfc.platform.order.mapper.DailyMembersOrderStatisticsMapper">
<!-- 获取每日租车订单成交金和押金总额--> <!-- 获取会员订单成交金-->
<select id="getTravelGmv" resultType="HashMap"> <select id="getTravelGmv" resultType="HashMap">
select select
COALESCE(date_format(FROM_UNIXTIME(pay_time/1000),'%Y-%c-%d'),date(DATE_SUB(now(),interval 1 day))) as oneDay, COALESCE(date_format(FROM_UNIXTIME(pay_time/1000),'%Y-%c-%d'),date(DATE_SUB(now(),interval 1 day))) as oneDay,
...@@ -14,4 +14,16 @@ ...@@ -14,4 +14,16 @@
AND AND
date(FROM_UNIXTIME(pay_time/1000))=date(DATE_SUB(now(),interval 1 day)) date(FROM_UNIXTIME(pay_time/1000))=date(DATE_SUB(now(),interval 1 day))
</select> </select>
<select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics">
SELECT
IFNULL(sum(gmv),0) as totalGmv
FROM
daily_travel_order_statistics
WHERE
branch_company_id =#{companyId}
and
DATE_FORMAT(one_day,'%Y-%c')=DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%c')
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -2,29 +2,41 @@ ...@@ -2,29 +2,41 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.order.mapper.DailyTravelOrderStatisticsMapper"> <mapper namespace="com.xxfc.platform.order.mapper.DailyTravelOrderStatisticsMapper">
<!-- 获取每日租车订单成交金和押金总额--> <!-- 获取旅游订单成交金-->
<select id="getTravelGmv" resultType="HashMap"> <select id="getTravelGmv" resultType="com.xxfc.platform.order.entity.DailyTravelOrderStatistics">
select select
COALESCE(date_format(FROM_UNIXTIME(pay_time/1000),'%Y-%c-%d'),date(DATE_SUB(now(),interval 1 day))) as oneDay, t.start_company_id as branchCompanyId,
IFNULL(SUM(real_amount),0) as gmv COALESCE(date_format(FROM_UNIXTIME(o.pay_time/1000),'%Y-%c-%d'),date(DATE_SUB(now(),interval 1 day))) as oneDay,
IFNULL(SUM(o.real_amount),0) as gmv
from from
base_order base_order o
left join
order_tour_detail t
on
o.id=t.order_id
where where
type=2 type=2
AND and
date(FROM_UNIXTIME(pay_time/1000))=date(DATE_SUB(now(),interval 1 day)) date(FROM_UNIXTIME(o.pay_time/1000))=date(DATE_SUB(now(),interval 1 day))
group by
t.start_company_id
</select> </select>
<!-- 取消订单扣除款项总和--> <!-- 取消订单扣除款项总和-->
<select id="getTravelPenalSum" resultType="BigDecimal"> <select id="getTravelPenalSum" resultType="com.xxfc.platform.order.entity.DailyTravelOrderStatistics">
SELECT SELECT
t.start_company_id as branchCompanyId,
IFNULL(SUM(r.deduct_amount),0) as penalSum IFNULL(SUM(r.deduct_amount),0) as penalSum
FROM FROM
base_order o
left join
order_refund r order_refund r
left join
base_order o
on on
o.id=r.order_id o.id=r.order_id
left join
order_tour_detail t
on
o.id=t.order_id
WHERE WHERE
o.type=2 o.type=2
and and
...@@ -33,5 +45,20 @@ ...@@ -33,5 +45,20 @@
r.refund_type =1 r.refund_type =1
and and
date(FROM_UNIXTIME(r.refund_time/1000))=date(DATE_SUB(now(),interval 1 day)) date(FROM_UNIXTIME(r.refund_time/1000))=date(DATE_SUB(now(),interval 1 day))
group by
t.start_company_id
</select>
<select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics">
SELECT
IFNULL(sum(gmv),0) as totalGmv,
IFNULL(sum(penal_sum) ,0) as totalPenalSum
FROM
daily_travel_order_statistics
WHERE
branch_company_id =#{branchCompanyId}
AND
DATE_FORMAT(one_day,'%Y-%c')=DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%c')
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -3,107 +3,155 @@ ...@@ -3,107 +3,155 @@
<mapper namespace="com.xxfc.platform.order.mapper.DailyVehicleOrderStatisticsMapper"> <mapper namespace="com.xxfc.platform.order.mapper.DailyVehicleOrderStatisticsMapper">
<!-- 获取每日租车订单成交金和押金总额--> <!-- 获取每日租车订单成交金和押金总额-->
<select id="getGmvAndMarginTotal" resultType="HashMap"> <select id="getGmvAndMarginTotal" resultType="com.xxfc.platform.order.entity.DailyVehicleOrderStatistics">
select SELECT
v.start_company_id AS branchCompanyId,
COALESCE(date_format(FROM_UNIXTIME(b.pay_time/1000),'%Y-%c-%d'),date(DATE_SUB(now(),interval 1 day))) as oneDay, COALESCE(date_format(FROM_UNIXTIME(b.pay_time/1000),'%Y-%c-%d'),date(DATE_SUB(now(),interval 1 day))) as oneDay,
IFNULL(SUM(b.real_amount-v.deposit),0) as gmv, IFNULL(SUM(b.real_amount-v.deposit),0) AS gmv,
IFNULL(SUM(v.deposit),0) as securityDeposit IFNULL(SUM(v.deposit),0) AS securityDeposit
from FROM
base_order b base_order b
left join LEFT JOIN
order_rent_vehicle_detail v order_rent_vehicle_detail v
on ON
b.id=v.order_id b.id=v.order_id
where WHERE
b.type=1 b.type=1
AND AND
date(FROM_UNIXTIME(b.pay_time/1000))=date(DATE_SUB(now(),interval 1 day)) DATE(FROM_UNIXTIME(b.pay_time/1000))=DATE(DATE_SUB(now(),INTERVAL 1 DAY))
GROUP BY
v.start_company_id
</select> </select>
<!-- 退还押金总额--> <!-- 退还押金总额-->
<select id="getRefundSecurityDeposit" resultType="BigDecimal"> <select id="getRefundSecurityDeposit" resultType="com.xxfc.platform.order.entity.DailyVehicleOrderStatistics">
SELECT SELECT
IFNULL(SUM(r.refund_amount),0) as refundSecurityDeposit v.start_company_id AS branchCompanyId,
IFNULL(SUM(r.refund_amount),0) AS refundSecurityDeposit
FROM FROM
base_order o base_order o
left join LEFT JOIN
order_refund r order_refund r
on ON
o.id=r.order_id o.id=r.order_id
LEFT JOIN
order_rent_vehicle_detail v
ON
v.order_id=o.id
WHERE WHERE
o.type=1 o.type=1
and AND
r.refund_status=1 r.refund_status=1
and AND
r.refund_type >1 r.refund_type >1
and AND
date(FROM_UNIXTIME(r.refund_time/1000))=date(DATE_SUB(now(),interval 1 day)) DATE(FROM_UNIXTIME(r.refund_time/1000))=DATE(DATE_SUB(now(),INTERVAL 1 DAY))
GROUP BY
v.start_company_id
</select> </select>
<!-- 取消订单扣除款项总和--> <!-- 取消订单扣除款项总和-->
<select id="getPenalSum" resultType="BigDecimal"> <select id="getPenalSum" resultType="com.xxfc.platform.order.entity.DailyVehicleOrderStatistics">
SELECT SELECT
v.start_company_id as branchCompanyId,
IFNULL(SUM(r.deduct_amount),0) as penalSum IFNULL(SUM(r.deduct_amount),0) as penalSum
FROM FROM
base_order o
left join
order_refund r order_refund r
on LEFT JOIN
base_order o
ON
o.id=r.order_id o.id=r.order_id
LEFT JOIN
order_rent_vehicle_detail v
ON
v.order_id=o.id
WHERE WHERE
o.type=1 o.type=1
and AND
r.refund_status=1 r.refund_status=1
and AND
r.refund_type =1 r.refund_type =1
and AND
date(FROM_UNIXTIME(r.refund_time/1000))=date(DATE_SUB(now(),interval 1 day)) date(FROM_UNIXTIME(r.refund_time/1000))=date(DATE_SUB(now(),interval 1 day))
GROUP BY
v.start_company_id
</select> </select>
<!-- 获取赔偿和延期JSON字符串--> <!-- 获取赔偿和延期JSON字符串-->
<select id="getCompensationAndPostpone" resultType="List"> <select id="getCompensationAndPostpone" resultType="HashMap">
SELECT SELECT
ded_detail v.start_company_id AS branchCompanyId,
c.ded_detail AS dedDetail
FROM FROM
order_refund r order_refund r
LEFT JOIN LEFT JOIN
order_vehicle_crosstown c order_vehicle_crosstown c
on on
r.order_id = c.order_id r.order_id = c.order_id
LEFT JOIN
order_rent_vehicle_detail v
ON
r.order_id=v.order_id
WHERE WHERE
r.refund_status=1 r.refund_status=1
and and
r.refund_type = 3 r.refund_type = 3
and and
c.type=2 c.type=3
and and
date(FROM_UNIXTIME(refund_time/1000))=date(DATE_SUB(now(),interval 1 day)) date(FROM_UNIXTIME(refund_time/1000))=date(DATE_SUB(now(),interval 1 day))
order by v.start_company_id asc
</select> </select>
<select id="getViolationMoney" resultType="BigDecimal"> <!--违章-->
<select id="getViolationMoney" resultType="com.xxfc.platform.order.entity.DailyVehicleOrderStatistics">
SELECT SELECT
v.price d.start_company_id AS branchCompanyId,
v.price as violationMoney
FROM FROM
order_refund r order_refund r
left JOIN LEFT JOIN
base_order o base_order o
on on
o.id=r.order_id r.order_id= o.id
LEFT JOIN LEFT JOIN
order_rent_vehicle_detail d order_rent_vehicle_detail d
on on
o.id = d.order_id r.order_id= d.order_id
left join left join
order_violation v order_violation v
on on
d.id = v.detail_id d.id = v.detail_id
WHERE WHERE
o.type=1
and
r.refund_status=1 r.refund_status=1
and and
r.refund_type = 4 r.refund_type = 4
and and
date(FROM_UNIXTIME(r.refund_time/1000))=date(DATE_SUB(now(),interval 1 day)) date(FROM_UNIXTIME(r.refund_time/1000))=date(DATE_SUB(now(),interval 1 day))
GROUP BY
d.start_company_id
</select>
<select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics">
SELECT
IFNULL(sum(gmv),0) as totalGmv,
IFNULL(sum(security_deposit),0) as totalSecurityDeposit,
IFNULL(sum(refund_security_deposit) ,0) as totalRefundSecurityDeposit,
IFNULL(sum(compensation) ,0) as totalCompensation,
IFNULL(sum(forfeit) ,0) as totalForfeit,
IFNULL(sum(penal_sum) ,0) as totalPenalSum,
IFNULL(sum(postpone) ,0) as totalPostpone
FROM
daily_vehicle_order_statistics
WHERE
branch_company_id =#{companyId}
and
DATE_FORMAT(one_day,'%Y-%c')=DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%c')
</select> </select>
</mapper> </mapper>
\ No newline at end of file
import com.xxfc.platform.order.OrderApplication;
import com.xxfc.platform.order.biz.DailyOrderStatisticsBiz;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/6 20:05
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = {OrderApplication.class})
public class ServiceTest {
@Autowired
private DailyOrderStatisticsBiz dailyOrderStatisticsBiz;
@Test
public void testSchedu(){
dailyOrderStatisticsBiz.statisticalOrder();
}
}
...@@ -134,5 +134,4 @@ public class TourGood implements Serializable { ...@@ -134,5 +134,4 @@ public class TourGood implements Serializable {
@Column(name = "poster_background") @Column(name = "poster_background")
@ApiModelProperty(value = "海报背景") @ApiModelProperty(value = "海报背景")
private String posterBackground; private String posterBackground;
} }
...@@ -128,7 +128,7 @@ public class TourGoodDetailVo { ...@@ -128,7 +128,7 @@ public class TourGoodDetailVo {
@ApiModelProperty(value = "商品标签") @ApiModelProperty(value = "商品标签")
List<GoodTagDTO> tagDTOS; List<GoodTagDTO> tagDTOS;
private String posterBackground;
} }
...@@ -16,7 +16,7 @@ import java.util.Set; ...@@ -16,7 +16,7 @@ import java.util.Set;
/** /**
* Created by ace on 2017/9/15. * Created by ace on 2017/9/15.
*/ */
@FeignClient(name = "vehicle") @FeignClient(name = "vehicle",contextId = "vh")
public interface VehicleFeign { public interface VehicleFeign {
@GetMapping(value = "/vehicleModel/{id}") @GetMapping(value = "/vehicleModel/{id}")
public ObjectRestResponse<VehicleModel> get(@PathVariable(value = "id") int id); public ObjectRestResponse<VehicleModel> get(@PathVariable(value = "id") int id);
...@@ -116,4 +116,7 @@ public interface VehicleFeign { ...@@ -116,4 +116,7 @@ public interface VehicleFeign {
@GetMapping("/accompanyingItem/app/unauth/items") @GetMapping("/accompanyingItem/app/unauth/items")
public RestResponse<List<AccompanyingItemVo>> listAccompanyingItem(); public RestResponse<List<AccompanyingItemVo>> listAccompanyingItem();
@GetMapping("/findByAreaId")
List<Integer> findCompanyIdsByAreaId(@RequestParam(value = "areaId") Integer areaId);
} }
...@@ -33,7 +33,7 @@ public class VehicleBookRecordVo extends VehicleBookRecord { ...@@ -33,7 +33,7 @@ public class VehicleBookRecordVo extends VehicleBookRecord {
private Integer liftStatus; private Integer liftStatus;
private Integer retStatus; private Integer retStatus;
private Integer state;
List<VehicleUpkeepItem> vehicleUpkeepItems; List<VehicleUpkeepItem> vehicleUpkeepItems;
} }
...@@ -327,4 +327,8 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -327,4 +327,8 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
} }
public List<Integer> selectCompanyIdsByAreaId(Integer areaId) {
return mapper.findCompanyIdsByAreaId(areaId);
}
} }
...@@ -5,7 +5,6 @@ import cn.hutool.core.bean.copier.CopyOptions; ...@@ -5,7 +5,6 @@ import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleActiveType; import com.xxfc.platform.vehicle.constant.VehicleActiveType;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.constant.VehicleDepartureState; import com.xxfc.platform.vehicle.constant.VehicleDepartureState;
import com.xxfc.platform.vehicle.constant.VehicleStatus; import com.xxfc.platform.vehicle.constant.VehicleStatus;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
......
...@@ -10,4 +10,6 @@ import java.util.Map; ...@@ -10,4 +10,6 @@ import java.util.Map;
public interface BranchCompanyMapper extends Mapper<BranchCompany> { public interface BranchCompanyMapper extends Mapper<BranchCompany> {
List<BranchCompany> search(@Param("lon") String lon, @Param("lat") String lat, @Param("addrCity") Integer addrCity); List<BranchCompany> search(@Param("lon") String lon, @Param("lat") String lat, @Param("addrCity") Integer addrCity);
List<BranchCompany> selectByZoneId(Map<String, Object> param); List<BranchCompany> selectByZoneId(Map<String, Object> param);
List<Integer> findCompanyIdsByAreaId(@Param("areaId") Integer areaId);
} }
\ No newline at end of file
...@@ -164,4 +164,9 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> { ...@@ -164,4 +164,9 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
//查询列表数据 //查询列表数据
return ObjectRestResponse.succ(baseBiz.selectList(entity)); return ObjectRestResponse.succ(baseBiz.selectList(entity));
} }
@GetMapping("/findByAreaId")
public List<Integer> findCompanyIdsByAreaId(@RequestParam(value = "areaId") Integer areaId){
return baseBiz.selectCompanyIdsByAreaId(areaId);
}
} }
...@@ -271,7 +271,6 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi ...@@ -271,7 +271,6 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
vehicleCata.setVehicleModelId(id); vehicleCata.setVehicleModelId(id);
vehicleCata.setIsdel(1); vehicleCata.setIsdel(1);
vehicleCataBiz.updateIsdalByVehicleModelId(vehicleCata); vehicleCataBiz.updateIsdalByVehicleModelId(vehicleCata);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
<result column="tour_service_phone" property="tourServicePhone"/> <result column="tour_service_phone" property="tourServicePhone"/>
<result column="longitude" property="longitude"/> <result column="longitude" property="longitude"/>
<result column="latitude" property="latitude"/> <result column="latitude" property="latitude"/>
<result column="zone_id" property="zoneId"/>
</resultMap> </resultMap>
<select id="search" resultType="com.xxfc.platform.vehicle.pojo.CompanySearchVO"> <select id="search" resultType="com.xxfc.platform.vehicle.pojo.CompanySearchVO">
...@@ -49,4 +50,7 @@ ...@@ -49,4 +50,7 @@
</foreach> </foreach>
</if> </if>
</select> </select>
<select id="findCompanyIdsByAreaId" resultType="integer">
select `id` from `branch_company` where `zone_id`=#{areaId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -442,7 +442,7 @@ ...@@ -442,7 +442,7 @@
<select id="getBookRecordInfo" resultMap="searchBookRecord" parameterType="java.util.Map"> <select id="getBookRecordInfo" resultMap="searchBookRecord" parameterType="java.util.Map">
select (CASE v1.lift_company WHEN #{userCompany} THEN 1 ELSE 0 end) liftStatus,(CASE v1.ret_company WHEN select (CASE v1.lift_company WHEN #{userCompany} THEN 1 ELSE 0 end) liftStatus,(CASE v1.ret_company WHEN
#{userCompany} THEN 1 ELSE 0 end) retStatus,bc4.name subordinateBranchName, bc1.`name` lift_company_name, #{userCompany} THEN 1 ELSE 0 end) retStatus,bc4.name subordinateBranchName, bc1.`name` lift_company_name,
bc2.`name` ret_company_name, v3.number_plate,v1.* bc2.`name` ret_company_name, v3.number_plate,v1.*
from vehicle_book_record v1 from vehicle_book_record v1
...@@ -451,6 +451,7 @@ ...@@ -451,6 +451,7 @@
LEFT JOIN vehicle v3 on v3.id = v1.vehicle_id LEFT JOIN vehicle v3 on v3.id = v1.vehicle_id
LEFT JOIN branch_company bc3 on v3.park_branch_company_id = bc3.id LEFT JOIN branch_company bc3 on v3.park_branch_company_id = bc3.id
LEFT JOIN branch_company bc4 on v3.subordinate_branch = bc4.id LEFT JOIN branch_company bc4 on v3.subordinate_branch = bc4.id
LEFT JOIN vehicle_departure_log v4 on v4.book_record_id = v1.id
<where> <where>
<if test="selectedMonth != null"> <if test="selectedMonth != null">
and (v1.book_start_date like CONCAT(#{selectedMonth}, "%") or v1.book_end_date like and (v1.book_start_date like CONCAT(#{selectedMonth}, "%") or v1.book_end_date like
...@@ -472,9 +473,15 @@ ...@@ -472,9 +473,15 @@
#{id} #{id}
</foreach>) </foreach>)
</if> </if>
<if test="status != null"> <if test="status != null and status != 0 and status != -1 and status != -2">
and v1.status = #{status} and v1.status = #{status}
</if> </if>
<if test="status != null and status == 0 ">
and v4.state = 0
</if>
<if test="status != null and status == -1 ">
and v4.state = 1
</if>
and v1.book_user != -2 and v1.book_user != -2
</where> </where>
group by v1.id group by v1.id
......
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