Commit f7a69b85 authored by jiaorz's avatar jiaorz

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

parents 2636ab69 37f4771a
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
/** /**
* 会员等级表 * 会员等级表
...@@ -75,6 +78,9 @@ public class BaseUserMemberLevel implements Serializable { ...@@ -75,6 +78,9 @@ public class BaseUserMemberLevel implements Serializable {
@Column(name = "number") @Column(name = "number")
@ApiModelProperty(value = "赠送免费天数") @ApiModelProperty(value = "赠送免费天数")
private Integer number; private Integer number;
@Column(name = "big_icon")
@ApiModelProperty(value = "大图标")
private String bigIcon;
} }
...@@ -83,6 +83,7 @@ public class AppUserDTO { ...@@ -83,6 +83,7 @@ public class AppUserDTO {
private String memberName; private String memberName;
//图标 //图标
private String icon; private String icon;
private String bigIcon;
private Integer memberNo; private Integer memberNo;
private Long cardLeave; private Long cardLeave;
private Integer isBind; private Integer isBind;
......
...@@ -4,10 +4,8 @@ import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO; ...@@ -4,10 +4,8 @@ import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDataFindDTO; import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDataFindDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO; import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberSaveDTO; import com.github.wxiaoqi.security.admin.dto.UserMemberSaveDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.entity.UserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberExportMapper; import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberExportMapper;
import com.github.wxiaoqi.security.admin.vo.BaseUserMemberExportVo; import com.github.wxiaoqi.security.admin.vo.BaseUserMemberExportVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
......
...@@ -2,9 +2,9 @@ package com.github.wxiaoqi.security.admin.biz; ...@@ -2,9 +2,9 @@ package com.github.wxiaoqi.security.admin.biz;
import com.ace.cache.annotation.Cache; import com.ace.cache.annotation.Cache;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.entity.UserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper; import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper;
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 org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
...@@ -51,4 +51,11 @@ public class UserMemberLevelBiz extends BaseBiz<BaseUserMemberLevelMapper,BaseUs ...@@ -51,4 +51,11 @@ public class UserMemberLevelBiz extends BaseBiz<BaseUserMemberLevelMapper,BaseUs
} }
return levelAndDiscountMap; return levelAndDiscountMap;
} }
public void updateMemberBaseInfo(BaseUserMemberLevel baseUserMemberLevel) {
int affectRows = mapper.updateByPrimaryKeySelective(baseUserMemberLevel);
if (affectRows==0){
throw new BaseException("更新会员等级失败");
}
}
} }
...@@ -153,6 +153,7 @@ public class AppUserController extends CommonBaseController{ ...@@ -153,6 +153,7 @@ public class AppUserController extends CommonBaseController{
if (memberLevel!=null){ if (memberLevel!=null){
String icon=memberLevel.getIcon(); String icon=memberLevel.getIcon();
userDTO.setIcon(icon); userDTO.setIcon(icon);
userDTO.setBigIcon(memberLevel.getBigIcon());
} }
} }
} }
......
...@@ -74,4 +74,9 @@ public class MemberLevelController extends BaseController<UserMemberLevelBiz, Ba ...@@ -74,4 +74,9 @@ public class MemberLevelController extends BaseController<UserMemberLevelBiz, Ba
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
@PutMapping("/update")
public ObjectRestResponse<Void> updateMemberBaseInfo(@RequestBody BaseUserMemberLevel baseUserMemberLevel){
getBaseBiz().updateMemberBaseInfo(baseUserMemberLevel);
return ObjectRestResponse.succ();
}
} }
...@@ -21,7 +21,6 @@ import org.springframework.web.bind.annotation.*; ...@@ -21,7 +21,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.charset.Charset; import java.nio.charset.Charset;
......
...@@ -254,5 +254,19 @@ public class AppUserRest { ...@@ -254,5 +254,19 @@ public class AppUserRest {
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
@ApiModelProperty("检查手机号验证码")
@GetMapping("/unauth/checkMobilecode")
public ObjectRestResponse checkMobilecode(@RequestParam(value = "phone") String phone,
@RequestParam(value = "mobilecode") String mobilecode){
if (StringUtils.isBlank(phone)||StringUtils.isBlank(mobilecode)){
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE, "参数为空");
}
String redisKey=appPermissionService.checkCodeByUsername(phone,mobilecode);
if (StringUtils.isBlank(redisKey)){
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "验证码错误");
}
return ObjectRestResponse.succ();
}
} }
package com.xxfc.platform.order.Utils; package com.xxfc.platform.order.Utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date;
public class OrderDateUtils { public class OrderDateUtils {
public static String getFirstDayOfMonth(int year, int month) { public static String getFirstDayOfMonth(int year, int month) {
String monthStr = month < 10 ? "0" + month : String.valueOf(month); String monthStr = String.valueOf(month);
return year + "-" + monthStr + "-" + "01"; return year + "-" + monthStr + "-" + "01";
} }
...@@ -75,4 +78,34 @@ public class OrderDateUtils { ...@@ -75,4 +78,34 @@ public class OrderDateUtils {
return cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" + return cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" +
cal.get(Calendar.DAY_OF_MONTH); cal.get(Calendar.DAY_OF_MONTH);
} }
public static String timeStampConversionToString(Long time) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(time);
return simpleDateFormat.format(date);
}
public static Long ConvertingStringsToTimestamps(String time) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
return simpleDateFormat.parse(time).getTime();
}
public static Integer getTodayOfWeek() {
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setTimeInMillis(System.currentTimeMillis());
return cal.get(Calendar.WEEK_OF_YEAR);
}
public static Integer getTodayOfMonth() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
return cal.get(Calendar.MONTH)+1;
}
public static Integer getThisYear() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
return cal.get(Calendar.YEAR);
}
} }
...@@ -21,7 +21,7 @@ public class OrderStatistics { ...@@ -21,7 +21,7 @@ public class OrderStatistics {
/** /**
* 历史交总金额 * 历史交总金额
*/ */
@ApiModelProperty(value = "历史交总金额") @ApiModelProperty(value = "历史交总金额")
private BigDecimal totalGmv; private BigDecimal totalGmv;
/** /**
......
...@@ -62,13 +62,16 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta ...@@ -62,13 +62,16 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta
orderStatistics.setBranchCompanyId(OMPANY_ID); orderStatistics.setBranchCompanyId(OMPANY_ID);
orderStatistics.setOneDay(accountList.get(0).getOneDay()); orderStatistics.setOneDay(accountList.get(0).getOneDay());
} }
log.info("Members:统计完成");
insertSelectiveRe(orderStatistics); insertSelectiveRe(orderStatistics);
log.info("Members:保存成功");
} }
return true; return true;
} catch (Exception e) { } catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
e.printStackTrace(); log.error("Members:"+ e.getMessage());
return false; return false;
} }
} }
......
...@@ -31,10 +31,11 @@ public class DailyOrderStatisticsBiz extends BaseBiz<DailyOrderStatisticsMapper, ...@@ -31,10 +31,11 @@ public class DailyOrderStatisticsBiz extends BaseBiz<DailyOrderStatisticsMapper,
boolean travelFlag = travelStatisticsBiz.saveDailyTravelOrderRecord(); boolean travelFlag = travelStatisticsBiz.saveDailyTravelOrderRecord();
boolean membersFlag= membersStatisticsBiz.saveDailyMembersOrderRecord(); boolean membersFlag= membersStatisticsBiz.saveDailyMembersOrderRecord();
if (vehicleFlag&&travelFlag&&membersFlag){ if (vehicleFlag&&travelFlag&&membersFlag){
log.info("----statisticalOrder:成功-----"); log.info("----statisticalOrder:成功-----");
return true; return true;
} }
log.info("----statisticalOrder:失败-----"); log.info("statisticalOrder:失败!(vehicleFlag="+vehicleFlag+"/travelFlag="+travelFlag+"membersFlag="+membersFlag+")");
return false; return false;
} }
......
...@@ -113,15 +113,18 @@ public class DailyTravelOrderStatisticsBiz extends BaseBiz<DailyTravelOrderStati ...@@ -113,15 +113,18 @@ public class DailyTravelOrderStatisticsBiz extends BaseBiz<DailyTravelOrderStati
try { try {
//获取每日订单统计 //获取每日订单统计
List<DailyTravelOrderStatistics> orderStatistics = getDailyTravelOrderStatistics(); List<DailyTravelOrderStatistics> orderStatistics = getDailyTravelOrderStatistics();
log.info("Travel:统计完成");
if (CollectionUtils.isNotEmpty(orderStatistics)) { if (CollectionUtils.isNotEmpty(orderStatistics)) {
for (DailyTravelOrderStatistics orderStatistic : orderStatistics) { for (DailyTravelOrderStatistics orderStatistic : orderStatistics) {
//保存统计 //保存统计
insertSelectiveRe(orderStatistic); insertSelectiveRe(orderStatistic);
} }
} }
log.info("Travel:保存成功");
return true; return true;
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage()); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
log.error("Travel:"+e.getMessage());
return false; return false;
} }
} }
...@@ -154,7 +157,7 @@ public class DailyTravelOrderStatisticsBiz extends BaseBiz<DailyTravelOrderStati ...@@ -154,7 +157,7 @@ public class DailyTravelOrderStatisticsBiz extends BaseBiz<DailyTravelOrderStati
List<OrderAccountDTO> list = typeMap.get(orderAccountDTO.getAccountType()); List<OrderAccountDTO> list = typeMap.get(orderAccountDTO.getAccountType());
if (list == null) { if (list == null) {
list = new ArrayList<>(); list = new ArrayList<>();
companyIdmap.put(orderAccountDTO.getAccountType(), list); typeMap.put(orderAccountDTO.getAccountType(), list);
} }
list.add(orderAccountDTO); list.add(orderAccountDTO);
} }
......
...@@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -22,6 +22,7 @@ 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 java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
...@@ -245,16 +246,18 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta ...@@ -245,16 +246,18 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta
try { try {
//获取每日订单统计 //获取每日订单统计
List<DailyVehicleOrderStatistics> orderStatistics = getDailyVehicleOrderRecord(); List<DailyVehicleOrderStatistics> orderStatistics = getDailyVehicleOrderRecord();
log.info("Vehicle:统计完成");
if (CollectionUtils.isNotEmpty(orderStatistics)) { if (CollectionUtils.isNotEmpty(orderStatistics)) {
for (DailyVehicleOrderStatistics orderStatistic : orderStatistics) { for (DailyVehicleOrderStatistics orderStatistic : orderStatistics) {
//保存统计 //保存统计
insertSelectiveRe(orderStatistic); insertSelectiveRe(orderStatistic);
} }
} }
log.info("Vehicle:保存成功");
return true; return true;
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage()); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
log.error("Vehicle:"+e.getMessage());
return false; return false;
} }
} }
...@@ -292,7 +295,7 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta ...@@ -292,7 +295,7 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta
List<OrderAccountDTO> list = typeMap.get(orderAccountDTO.getAccountType()); List<OrderAccountDTO> list = typeMap.get(orderAccountDTO.getAccountType());
if (list == null) { if (list == null) {
list = new ArrayList<>(); list = new ArrayList<>();
companyIdmap.put(orderAccountDTO.getAccountType(), list); typeMap.put(orderAccountDTO.getAccountType(), list);
} }
list.add(orderAccountDTO); list.add(orderAccountDTO);
......
package com.xxfc.platform.order.rest.background; package com.xxfc.platform.order.rest.background;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
...@@ -9,21 +13,30 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; ...@@ -9,21 +13,30 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.Query; import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.google.common.collect.Lists;
import com.xxfc.platform.order.biz.DailyMembersOrderStatisticsBiz; import com.xxfc.platform.order.biz.DailyMembersOrderStatisticsBiz;
import com.xxfc.platform.order.biz.DailyTravelOrderStatisticsBiz; import com.xxfc.platform.order.biz.DailyTravelOrderStatisticsBiz;
import com.xxfc.platform.order.biz.DailyVehicleOrderStatisticsBiz; import com.xxfc.platform.order.biz.DailyVehicleOrderStatisticsBiz;
import com.xxfc.platform.order.biz.OrderStatisticsBiz; import com.xxfc.platform.order.biz.OrderStatisticsBiz;
import com.xxfc.platform.order.entity.OrderStatistics; import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.pojo.HomePageOrderData; import com.xxfc.platform.order.pojo.HomePageOrderData;
import com.xxfc.platform.order.pojo.MembersOrderDto;
import com.xxfc.platform.order.pojo.OrderQuery; import com.xxfc.platform.order.pojo.OrderQuery;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.Array;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -39,6 +52,9 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -39,6 +52,9 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
@Autowired @Autowired
private UserAuthConfig userAuthConfig; private UserAuthConfig userAuthConfig;
@Autowired
private HttpServletResponse response;
/** /**
* 租车订单 * 租车订单
*/ */
...@@ -132,18 +148,43 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -132,18 +148,43 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
} }
@GetMapping("/order") @PostMapping("/order")
@ApiOperation(value = "会员统计") @ApiOperation(value = "会员统计")
public ObjectRestResponse getMemberOrderStatisticsData(@RequestBody OrderQuery query) { public ObjectRestResponse<List<MembersOrderDto>> getMemberOrderStatisticsData(@RequestBody OrderQuery query) throws ParseException {
//获取会员等级信息 //获取会员等级信息
List<BaseUserMemberLevel> memberLevels = userFeign.levels(); List<BaseUserMemberLevel> memberLevels = userFeign.levels();
//获取会员订单统计信息 //获取会员订单统计信息
baseBiz.getMemberOrderStatistics(memberLevels,query); return ObjectRestResponse.succ(baseBiz.getMemberOrderStatistics(memberLevels, query));
}
return ObjectRestResponse.succ();
} @PostMapping("/excel")
@ApiOperation(value = "下载excel表")
public void downloadExcel(@RequestBody OrderQuery query) throws Exception {
// 通过工具类创建writer,默认创建xls格式
ExcelWriter writer = ExcelUtil.getWriter(true);
List<BaseUserMemberLevel> memberLevels = userFeign.levels();
List<MembersOrderDto> list = baseBiz.getMemberOrderStatistics(memberLevels, query);
List<HashMap<Object, Object>> rows =baseBiz.getRows(list,memberLevels);
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(rows, true);
//out为OutputStream,需要写出到的目标流
//response为HttpServletResponse对象
response.setContentType("application/vnd.ms-excel;charset=utf-8");
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response.setHeader("Content-Disposition", "attachment;filename=hwddtj.xls");
ServletOutputStream out = response.getOutputStream();
writer.flush(out, true);
// 关闭writer,释放内存
writer.close();
//此处记得关闭输出Servlet流
IoUtil.close(out);
}
} }
...@@ -41,48 +41,52 @@ ...@@ -41,48 +41,52 @@
<select id="getMemberOrderStatistics" parameterType="com.xxfc.platform.order.pojo.OrderQuery" <select id="getMemberOrderStatistics" parameterType="com.xxfc.platform.order.pojo.OrderQuery"
resultMap="order"> resultMap="order">
SELECT SELECT
<if test="type==2"> <if test="type==2">
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%m') AS period, DATE_FORMAT(date( FROM_UNIXTIME( a.account_time / 1000 ) ),'%Y-%v') AS period,
</if> </if>
<if test="type==3"> <if test="type==3">
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%v') AS period, DATE_FORMAT(date( FROM_UNIXTIME( a.account_time / 1000 ) ),'%Y-%m') AS period,
</if> </if>
date( FROM_UNIXTIME( a.crt_time / 1000 ) ) AS period, <if test="type==1">
count( a.id ) AS number, date( FROM_UNIXTIME( a.account_time / 1000 ) ) AS period,
SUM( a.account_amount ) AS amount, </if>
d.member_level AS level count( a.id ) AS number,
FROM SUM( a.account_amount ) AS amount,
order_account a d.member_level AS level
LEFT JOIN base_order b ON a.order_id = b.id FROM
LEFT JOIN order_member_detail d ON d.order_id = b.id order_account a
WHERE LEFT JOIN base_order b ON a.order_id = b.id
a.account_status = 1 LEFT JOIN order_member_detail d ON d.order_id = b.id
AND a.account_type = 101 WHERE
AND b.type = 3 a.account_status = 1
<if test="startTime != null"> AND a.account_type = 101
AND a.crt_time &gt;= #{startTime} AND b.type = 3
</if> <if test="startTime != null">
<if test="endTime != null"> AND a.crt_time &gt;= #{startTime}
AND a.crt_time &lt;= #{endTime} </if>
</if> <if test="endTime != null">
GROUP BY AND a.crt_time &lt;= #{endTime}
<if test="type==2"> </if>
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%m'), GROUP BY
</if> <if test="type==2">
<if test="type==3"> DATE_FORMAT(date( FROM_UNIXTIME( a.account_time / 1000 ) ),'%Y-%v'),
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%v'), </if>
</if> <if test="type==3">
DATE_FORMAT(date( FROM_UNIXTIME( a.account_time / 1000 ) ),'%Y-%m'),
</if>
date( FROM_UNIXTIME( a.crt_time / 1000 ) ), <if test="type==1">
d.member_level date( FROM_UNIXTIME( a.account_time / 1000 ) ),
</if>
d.member_level
</select> </select>
<resultMap id="order" type="com.xxfc.platform.order.entity.MembersOrder"> <resultMap id="order" type="com.xxfc.platform.order.entity.MembersOrder">
<result column="period" property="period"></result> <result column="period" property="period"></result>
<collection property="members" ofType="com.xxfc.platform.order.pojo.Member"> <collection property="members" ofType="com.xxfc.platform.order.pojo.Member">
<result column="number" property="level"></result> <result column="number" property="number"></result>
<result column="amount" property="level"></result> <result column="amount" property="amount"></result>
<result column="level" property="level"></result> <result column="level" property="level"></result>
</collection> </collection>
</resultMap> </resultMap>
</mapper> </mapper>
\ No newline at end of file
...@@ -80,6 +80,11 @@ public class Activity { ...@@ -80,6 +80,11 @@ public class Activity {
@ApiModelProperty("活动场地(地址格式)") @ApiModelProperty("活动场地(地址格式)")
private String address; private String address;
@Column(name = "address_img")
@ApiModelProperty("地址图片")
private String addressImg;
@Column(name = "latitude") @Column(name = "latitude")
@ApiModelProperty("纬度(不展示") @ApiModelProperty("纬度(不展示")
private BigDecimal latitude; private BigDecimal latitude;
...@@ -88,9 +93,6 @@ public class Activity { ...@@ -88,9 +93,6 @@ public class Activity {
@ApiModelProperty("经度 (不展示)") @ApiModelProperty("经度 (不展示)")
private BigDecimal longitude; private BigDecimal longitude;
@Column(name = "content")
@ApiModelProperty("活动图文内容")
private String content;
@Column(name = "is_show") @Column(name = "is_show")
@ApiModelProperty("活动开关(1开,0关)") @ApiModelProperty("活动开关(1开,0关)")
...@@ -108,10 +110,22 @@ public class Activity { ...@@ -108,10 +110,22 @@ public class Activity {
@ApiModelProperty("0-默认;1-报名中,2-进行中;3-已结束") @ApiModelProperty("0-默认;1-报名中,2-进行中;3-已结束")
private Integer status; private Integer status;
@Column(name = "content")
@ApiModelProperty("活动图文内容(峰会主题)")
private String content;
@Column(name = "act_desc") @Column(name = "act_desc")
@ApiModelProperty("活动对象说明(不展示)") @ApiModelProperty("活动对象说明(诚邀莅临)")
private String actDesc; private String actDesc;
@Column(name = "company_desc")
@ApiModelProperty("公司简章")
private String companyDesc;
@Column(name = "vehicle_imgs")
@ApiModelProperty("房车介绍")
private String vehicleImgs;
@Column(name = "process_json") @Column(name = "process_json")
@ApiModelProperty("活动流程") @ApiModelProperty("活动流程")
private String processJson; private String processJson;
......
...@@ -24,13 +24,14 @@ public class ActivityShow { ...@@ -24,13 +24,14 @@ public class ActivityShow {
@ApiModelProperty("活动id") @ApiModelProperty("活动id")
private Integer activityId; private Integer activityId;
@Column(name = "type")
@ApiModelProperty("1-图片;2-视频")
private Integer type;
@Column(name = "path") @Column(name = "video_path")
@ApiModelProperty("图片或视频路径") @ApiModelProperty("视频路径(逗号分割)")
private String path; private String videoPath;
@Column(name = "picture_path")
@ApiModelProperty("图片路径(逗号分割)")
private String picturePath;
@Column(name = "crt_time") @Column(name = "crt_time")
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
...@@ -41,4 +42,6 @@ public class ActivityShow { ...@@ -41,4 +42,6 @@ public class ActivityShow {
private Integer isDel; private Integer isDel;
} }
...@@ -13,6 +13,8 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -13,6 +13,8 @@ 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 javax.xml.crypto.Data;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -40,21 +42,20 @@ public class ActivityBiz extends BaseBiz<ActivityMapper, Activity> { ...@@ -40,21 +42,20 @@ public class ActivityBiz extends BaseBiz<ActivityMapper, Activity> {
criteria.andLike("title", String.format("%%%s%%", query.getTitle().trim())); criteria.andLike("title", String.format("%%%s%%", query.getTitle().trim()));
} }
if (query.getStartTime() != null) { if (query.getStartTime() != null) {
criteria.andLike("startTime", query.getStartTime() / 1000 + "%"); criteria.andLike("startTime", query.getStartTime()/(1000*60*60)+"%");
} }
if (query.getStatus() != null) { if (query.getStatus() != null) {
criteria.andEqualTo("status", query.getStatus()); criteria.andEqualTo("status", query.getStatus());
} }
if (query.getType() != null && AccessType.PUBLIC.getCode().equals(query.getType())) { if (query.getType() != null && AccessType.PUBLIC.getCode().equals(query.getType())) {
criteria.andEqualTo("isPublish", PUBLISHED); criteria.andEqualTo("isPublish", PUBLISHED);
} }
exa.orderBy("rank").asc().orderBy("startTime").desc(); exa.orderBy("rank").asc().orderBy("startTime").desc();
if (AccessType.PUBLIC.getCode().equals(query.getType())) { // if (AccessType.PUBLIC.getCode().equals(query.getType())) {
return mapper.selectByExample(exa); //// return mapper.selectByExample(exa);
} //// }
PageHelper.startPage(query.getPage(), query.getLimit()); PageHelper.startPage(query.getPage(), query.getLimit());
......
...@@ -24,7 +24,9 @@ public class ActivityShowBiz extends BaseBiz<ActivityShowMapper, ActivityShow> { ...@@ -24,7 +24,9 @@ public class ActivityShowBiz extends BaseBiz<ActivityShowMapper, ActivityShow> {
private ActivityBiz activityBiz; private ActivityBiz activityBiz;
public ActivityShowDto getOne(Integer activityId) { public ActivityShowDto getOne(Integer activityId) {
return mapper.getOne(activityId); ActivityShow activityShow = new ActivityShow();
activityShow.setActivityId(activityId);
return mapper.getOne(activityId);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
......
...@@ -2,7 +2,7 @@ package com.xxfc.platform.summit.config; ...@@ -2,7 +2,7 @@ package com.xxfc.platform.summit.config;
import com.github.wxiaoqi.security.common.handler.GlobalExceptionHandler; import com.github.wxiaoqi.security.common.handler.GlobalExceptionHandler;
import com.xxfc.platform.summit.interceptor.WeChatH5LoginInterceoptor; import com.xxfc.platform.summit.interceptor.WeChatH5LoginInterceptor;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
...@@ -27,8 +27,8 @@ public class WebConfiguration implements WebMvcConfigurer { ...@@ -27,8 +27,8 @@ public class WebConfiguration implements WebMvcConfigurer {
} }
@Bean @Bean
WeChatH5LoginInterceoptor getWeChatH5LoginRestInterceptor() { WeChatH5LoginInterceptor getWeChatH5LoginRestInterceptor() {
return new WeChatH5LoginInterceoptor(); return new WeChatH5LoginInterceptor();
} }
/** /**
...@@ -38,7 +38,7 @@ public class WebConfiguration implements WebMvcConfigurer { ...@@ -38,7 +38,7 @@ public class WebConfiguration implements WebMvcConfigurer {
private ArrayList<String> getIncludePathPatterns() { private ArrayList<String> getIncludePathPatterns() {
ArrayList<String> list = new ArrayList<>(); ArrayList<String> list = new ArrayList<>();
String[] urls = { String[] urls = {
"/activity/**" "/auth/activity/**"
}; };
Collections.addAll(list, urls); Collections.addAll(list, urls);
return list; return list;
......
...@@ -5,6 +5,8 @@ import com.github.wxiaoqi.security.common.rest.BaseController; ...@@ -5,6 +5,8 @@ import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.summit.biz.ActivityBiz; import com.xxfc.platform.summit.biz.ActivityBiz;
import com.xxfc.platform.summit.entity.Activity; import com.xxfc.platform.summit.entity.Activity;
import com.xxfc.platform.summit.pojo.ActivityQuery; import com.xxfc.platform.summit.pojo.ActivityQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
/** /**
...@@ -12,16 +14,19 @@ import org.springframework.web.bind.annotation.*; ...@@ -12,16 +14,19 @@ import org.springframework.web.bind.annotation.*;
*/ */
@RestController @RestController
@RequestMapping("/activity") @RequestMapping("/activity")
@Api(tags = "峰会")
public class ActivityController extends BaseController<ActivityBiz, Activity> { public class ActivityController extends BaseController<ActivityBiz, Activity> {
@PostMapping("/app/unauth/list") @PostMapping("/app/unauth/list")
@ApiOperation(value = "峰会列表",notes = "峰会列表")
public ObjectRestResponse getList(@RequestBody ActivityQuery query ){ public ObjectRestResponse getList(@RequestBody ActivityQuery query ){
return ObjectRestResponse.succ(baseBiz.getList(query)); return ObjectRestResponse.succ(baseBiz.getList(query));
} }
@Override @Override
@PutMapping ("/update") @PutMapping ("/update")
@ApiOperation(value = "修改",notes = "修改")
public ObjectRestResponse update(@RequestBody Activity activity ){ public ObjectRestResponse update(@RequestBody Activity activity ){
if (baseBiz.update(activity)) { if (baseBiz.update(activity)) {
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
...@@ -31,6 +36,7 @@ public class ActivityController extends BaseController<ActivityBiz, Activity> { ...@@ -31,6 +36,7 @@ public class ActivityController extends BaseController<ActivityBiz, Activity> {
@Override @Override
@PostMapping("/add") @PostMapping("/add")
@ApiOperation(value = "添加",notes = "添加")
public ObjectRestResponse add(@RequestBody Activity activity ){ public ObjectRestResponse add(@RequestBody Activity activity ){
if (baseBiz.add(activity)) { if (baseBiz.add(activity)) {
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
......
...@@ -17,8 +17,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -17,8 +17,7 @@ import org.springframework.web.bind.annotation.*;
public class ActivityShowController extends BaseController<ActivityShowBiz, ActivityShow> { public class ActivityShowController extends BaseController<ActivityShowBiz, ActivityShow> {
@GetMapping("/one/{activityId}") @GetMapping("/one/{activityId}")
public ObjectRestResponse getOne(@PathVariable Integer activityId){ public ObjectRestResponse getOne(@PathVariable Integer activityId){
return ObjectRestResponse.succ(baseBiz.getOne(activityId));
return ObjectRestResponse.succ( baseBiz.getOne(activityId));
} }
...@@ -29,4 +28,6 @@ public class ActivityShowController extends BaseController<ActivityShowBiz, Acti ...@@ -29,4 +28,6 @@ public class ActivityShowController extends BaseController<ActivityShowBiz, Acti
} }
return ObjectRestResponse.createDefaultFail(); return ObjectRestResponse.createDefaultFail();
} }
} }
...@@ -29,7 +29,7 @@ import java.util.concurrent.TimeUnit; ...@@ -29,7 +29,7 @@ import java.util.concurrent.TimeUnit;
* *
*/ */
@Slf4j @Slf4j
public class WeChatH5LoginInterceoptor extends HandlerInterceptorAdapter { public class WeChatH5LoginInterceptor extends HandlerInterceptorAdapter {
@Autowired @Autowired
......
...@@ -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.summit.mapper.ActivityShowMapper"> <mapper namespace="com.xxfc.platform.summit.mapper.ActivityShowMapper">
<select id="getOne" parameterType="Integer" resultType="com.xxfc.platform.summit.entity.ActivityShow"> <select id="getOne" parameterType="Integer" resultType="com.xxfc.platform.summit.dto.ActivityShowDto">
SELECT SELECT
a.banner, a.banner,
s.* s.*
......
...@@ -184,7 +184,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv ...@@ -184,7 +184,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv
criteria.andEqualTo("isShow", 1); criteria.andEqualTo("isShow", 1);
//位置 //位置
criteria.andIn("location", Arrays.asList(location, 0)); criteria.andIn("location", Arrays.asList(location, 0));
criteria.andGreaterThan("endTime", Instant.now().toEpochMilli()); // criteria.andGreaterThan("endTime", Instant.now().toEpochMilli());
List<SummitActivity> summitActivities = mapper.selectByExample(example); List<SummitActivity> summitActivities = mapper.selectByExample(example);
......
...@@ -55,7 +55,7 @@ public class SummitActivityController { ...@@ -55,7 +55,7 @@ public class SummitActivityController {
@GetMapping("/list") @GetMapping("/list")
public ObjectRestResponse<PageDataVO<SummitActivityVo>> findSummitActivityWithPage(@RequestParam(value = "page", defaultValue = "1", required = false) Integer page, public ObjectRestResponse<PageDataVO<SummitActivityVo>> findSummitActivityWithPage(@RequestParam(value = "page", defaultValue = "1", required = false) Integer page,
@RequestParam(value = "limit", defaultValue = "6", required = false) Integer limit, @RequestParam(value = "limit", defaultValue = "6", required = false) Integer limit,
@RequestParam(value = "location", defaultValue = "0", required = false) Integer location, @RequestParam(value = "location", defaultValue = "1", required = false) Integer location,
@RequestParam(value = "title",required = false) String title) { @RequestParam(value = "title",required = false) String title) {
PageDataVO<SummitActivityVo> pageDataVO = summitActivityBiz.findSummitActivityWithPage(page, limit,location,title); PageDataVO<SummitActivityVo> pageDataVO = summitActivityBiz.findSummitActivityWithPage(page, limit,location,title);
return ObjectRestResponse.succ(pageDataVO); return ObjectRestResponse.succ(pageDataVO);
......
...@@ -8,7 +8,9 @@ import lombok.NoArgsConstructor; ...@@ -8,7 +8,9 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
public enum FileTypeEnum { public enum FileTypeEnum {
FILE_TYPE_ZIP("application/zip", ".zip"), FILE_TYPE_ZIP("application/zip", ".zip"),
FILE_TYPE_RAR("application/octet-stream", ".rar"); FILE_TYPE_RAR("application/octet-stream", ".rar"),
FILE_TYPE_X_ZIP("application/x-zip-compressed", ".zip");
public String type; public String type;
public String fileStufix; public String fileStufix;
......
...@@ -8,6 +8,7 @@ import com.xxfc.platform.universal.dto.ImgDTO; ...@@ -8,6 +8,7 @@ import com.xxfc.platform.universal.dto.ImgDTO;
import com.xxfc.platform.universal.dto.UploadImgDTO; import com.xxfc.platform.universal.dto.UploadImgDTO;
import com.xxfc.platform.universal.service.FileUploadService; import com.xxfc.platform.universal.service.FileUploadService;
import com.xxfc.platform.universal.service.UploadService; import com.xxfc.platform.universal.service.UploadService;
import com.xxfc.platform.universal.service.UploadZipService;
import com.xxfc.platform.universal.utils.ImgBase64Util; import com.xxfc.platform.universal.utils.ImgBase64Util;
import com.xxfc.platform.universal.utils.PublicMsg; import com.xxfc.platform.universal.utils.PublicMsg;
import com.xxfc.platform.universal.vo.Ueditor; import com.xxfc.platform.universal.vo.Ueditor;
...@@ -38,10 +39,12 @@ import java.util.Map; ...@@ -38,10 +39,12 @@ import java.util.Map;
@Slf4j @Slf4j
public class UploadController{ public class UploadController{
@Autowired @Autowired
UploadService uploadService; UploadService uploadService;
@Autowired @Autowired
FileUploadService fileUploadService; FileUploadService fileUploadService;
@Autowired
UploadZipService uploadZipService;
private static Integer MAX_DRIVING_LICENSE_SIZE = 10 * 1024 * 1024;//10M private static Integer MAX_DRIVING_LICENSE_SIZE = 10 * 1024 * 1024;//10M
...@@ -177,5 +180,12 @@ public class UploadController{ ...@@ -177,5 +180,12 @@ public class UploadController{
@RequestParam(value = "prefix",defaultValue = "renovate")String prefix) throws Exception { @RequestParam(value = "prefix",defaultValue = "renovate")String prefix) throws Exception {
return fileUploadService.handlerUpload(upfile,null,prefix); return fileUploadService.handlerUpload(upfile,null,prefix);
} }
@PostMapping(value="/app/unauth/pictureZip")
public ObjectRestResponse pictureZip(
@RequestBody MultipartFile file,
@RequestBody String password) throws Exception {
return uploadZipService.uploadPictureZip(file,password);
}
} }
package com.xxfc.platform.universal.service;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import net.lingala.zip4j.exception.ZipException;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
public interface UploadZipService {
ObjectRestResponse uploadPictureZip(MultipartFile file, String password) throws IOException;
}
...@@ -29,6 +29,8 @@ public class FileUploadServiceImpl implements FileUploadService { ...@@ -29,6 +29,8 @@ public class FileUploadServiceImpl implements FileUploadService {
private static final String APK_SUFFIX=".apk"; private static final String APK_SUFFIX=".apk";
private static final String APK_NAME="xxfc.apk"; private static final String APK_NAME="xxfc.apk";
private static final String JPG=".jpg";
private static final String PNG=".png";
@Override @Override
public ObjectRestResponse handlerUpload(MultipartFile zipFile,String password,String prefix)throws Exception { public ObjectRestResponse handlerUpload(MultipartFile zipFile,String password,String prefix)throws Exception {
...@@ -100,7 +102,4 @@ public class FileUploadServiceImpl implements FileUploadService { ...@@ -100,7 +102,4 @@ public class FileUploadServiceImpl implements FileUploadService {
zin.closeEntry(); zin.closeEntry();
return path; return path;
} }
} }
package com.xxfc.platform.universal.service.impl;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.universal.constant.enumerate.FileTypeEnum;
import com.xxfc.platform.universal.service.UploadZipService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.Enumeration;
import java.util.Objects;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@Slf4j
@Service
public class UploadZipServiceImpl implements UploadZipService {
@Value("${universal.uploadPath}")
private String uploadPath ;
@Value("${universal.url}")
private String xx_url ;
private static final String APK_SUFFIX=".apk";
private static final String APK_NAME="xxfc.apk";
private static final String JPG=".jpg";
private static final String PNG=".png";
@Override
public ObjectRestResponse uploadPictureZip(MultipartFile file, String password) throws IOException {
if (Objects.isNull(file)) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"请上传压缩文件!");
}
String fileContentType = file.getContentType();
//将压缩包保存在指定路径
String packFilePath = uploadPath + File.separator + file.getName();
if (FileTypeEnum.FILE_TYPE_ZIP.type.equals(fileContentType)||FileTypeEnum.FILE_TYPE_X_ZIP.type.equals(fileContentType)) {
//zip解压缩处理
packFilePath += FileTypeEnum.FILE_TYPE_ZIP.fileStufix;
} else {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"上传的压缩包格式不正确,仅支持zip压缩文件!");
}
File fi = new File(packFilePath);
try {
file.transferTo(fi);
} catch (IOException e) {
log.error("zip file save to " + uploadPath + " error", e.getMessage(), e);
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"保存压缩文件到:" + uploadPath + " 失败!");
}
//zip压缩包
return unPackZip(fi, password, uploadPath);
}
public ObjectRestResponse unPackZip(File file, String password, String destPath) throws IOException {
ZipFile zipFile = new ZipFile(file);
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
if (entry.isDirectory()) {
destPath =destPath+File.separator+ entry.getName();
File dir = new File(destPath);
dir.mkdir();
}else {
}
}
return null;
}
}
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