Browse Source

12.14 方便工作台工作,消费-金币未完成

detached
lv123 5 months ago
parent
commit
24f5b51163
  1. 28
      src/main/java/com/example/demo/config/JacksonConfig.java
  2. 28
      src/main/java/com/example/demo/config/LocalDateTimeDeserializer.java
  3. 27
      src/main/java/com/example/demo/config/LocalDateTimeSerializer.java
  4. 12
      src/main/java/com/example/demo/controller/StatisticsController.java
  5. 33
      src/main/java/com/example/demo/domain/entity/Activity.java
  6. 22
      src/main/java/com/example/demo/domain/vo/Meium.java
  7. 6
      src/main/java/com/example/demo/domain/vo/Page.java
  8. 1
      src/main/java/com/example/demo/mapper/RechargeMapper.java
  9. 33
      src/main/java/com/example/demo/mapper/StatisticsMapper.java
  10. 14
      src/main/java/com/example/demo/mapper/UserMapper.java
  11. 11
      src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java
  12. 11
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  13. 44
      src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
  14. 7
      src/main/java/com/example/demo/sevice/StatisticsService.java

28
src/main/java/com/example/demo/config/JacksonConfig.java

@ -0,0 +1,28 @@
package com.example.demo.config;
//import com.example.demo.config.LocalDateTimeSerializer;
//import com.example.demo.config.LocalDateTimeDeserializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.time.LocalDateTime;
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
SimpleModule module = new SimpleModule();
module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer());
module.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer());
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(module);
return mapper;
}
}

28
src/main/java/com/example/demo/config/LocalDateTimeDeserializer.java

@ -0,0 +1,28 @@
package com.example.demo.config;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTimeDeserializer extends StdDeserializer<LocalDateTime> {
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public LocalDateTimeDeserializer() {
this(null);
}
public LocalDateTimeDeserializer(Class<?> vc) {
super(vc);
}
@Override
public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
return LocalDateTime.parse(p.getValueAsString(), formatter);
}
}

27
src/main/java/com/example/demo/config/LocalDateTimeSerializer.java

@ -0,0 +1,27 @@
package com.example.demo.config;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTimeSerializer extends StdSerializer<LocalDateTime> {
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public LocalDateTimeSerializer() {
this(null);
}
public LocalDateTimeSerializer(Class<LocalDateTime> t) {
super(t);
}
@Override
public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider provider) throws IOException {
gen.writeString(value.format(formatter));
}
}

12
src/main/java/com/example/demo/controller/StatisticsController.java

@ -1,6 +1,7 @@
package com.example.demo.controller;
import com.example.demo.domain.vo.Meium;
import com.example.demo.domain.vo.Result;
import com.example.demo.domain.vo.Statistics;
import com.example.demo.domain.vo.UserVo;
@ -8,6 +9,7 @@ import com.example.demo.serviceImpl.UserServiceImpl;
import com.example.demo.sevice.StatisticsService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -84,4 +86,14 @@ public class StatisticsController {
}
//中间右侧支付消费--部门--金币类型--时间
@PostMapping("/getMee")
public Result getMee(@RequestBody Meium meium){
return Result.success(statisticsService.getMee(meium));
}
@PostMapping("/getMediu")
public Result getMediu(){
return Result.success(statisticsService.getMediu());
}
}

33
src/main/java/com/example/demo/domain/entity/Activity.java

@ -2,7 +2,11 @@ package com.example.demo.domain.entity;
import com.example.demo.config.LocalDateTimeDeserializer;
import com.example.demo.config.LocalDateTimeSerializer;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ -17,15 +21,34 @@ public class Activity implements Serializable {
private Integer activityId;
private Integer adminId;
private String dept;
private Date startTime;
private Date endTime;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime startTime;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime endTime;
private String activityName;
private BigDecimal rechargeRatio;
private Date createTime;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime createTime;
private Integer activityFlag;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private String name;
private Integer status;
private Date startDate;
private Date endDate;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime startDate;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime endDate;
private String token; // 新增的token字段
}

22
src/main/java/com/example/demo/domain/vo/Meium.java

@ -1,24 +1,40 @@
package com.example.demo.domain.vo;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Data
@NoArgsConstructor
public class Meium {
public class Meium implements Serializable {
//中间-11个月 每月充值金币
private BigDecimal rechargeSumCoin;
//中间-11个月 每月免费金币
private BigDecimal freeSumCoin;
//中间-11个月 每月任务金币
private BigDecimal taskSumCoin;
private String area;
private String store;
private BigDecimal totalRechargeSum;
private Date searchStartTime;
private Date searchEndTime;
private LocalDateTime searchStartTime;
private LocalDateTime searchEndTime;
private String updateType;
private String type;
private String token; // 新增的token字段
// 如果有更多的未知字段可以使用@JsonAnySetter来捕获它们
private Map<String, Object> additionalProperties = new HashMap<>();
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}

6
src/main/java/com/example/demo/domain/vo/Page.java

@ -2,13 +2,17 @@ package com.example.demo.domain.vo;
import com.example.demo.domain.entity.*;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
public class Page {
@JsonIgnoreProperties(ignoreUnknown = true)
public class Page implements Serializable {
private Integer pageNum;
private Integer pageSize;

1
src/main/java/com/example/demo/mapper/RechargeMapper.java

@ -43,6 +43,7 @@ public interface RechargeMapper {
"<if test='adminId!=null'>and recharge.admin_id=#{adminId}</if>",
"<if test='startDate != null and endDate != null'>AND recharge.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"<if test='payWay!=null and payWay.length>0 '>and pay_way like concat('%',#{payWay},'%')</if>",
"<if test='rechargeWay!=null and rechargeWay.length>0 '>and recharge_way like concat('%',#{rechargeWay},'%')</if>",
"<if test='area!=null and area.length>0'>and area=#{area}</if>",
"<if test='status!=null'>and audit.status=#{status}</if>",
"</where>",

33
src/main/java/com/example/demo/mapper/StatisticsMapper.java

@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@ -324,13 +325,13 @@ public interface StatisticsMapper {
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by freeSumCoin desc",
"</script>"
})
List<SumCoin> getBuyAndFree( Meium meium);
List<Meium> getBuyAndFree(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
@ -344,13 +345,13 @@ public interface StatisticsMapper {
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by rechargeSumCoin desc",
"</script>"
})
List<SumCoin> getBuyAndRecharge( Meium meium);
List<Meium> getBuyAndRecharge(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
@ -364,13 +365,13 @@ public interface StatisticsMapper {
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by taskSumCoin desc",
"</script>"
})
List<SumCoin> getBuyAndTask( Meium meium);
List<Meium> getBuyAndTask(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
@ -384,13 +385,13 @@ public interface StatisticsMapper {
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by totalRechargeSum desc",
"</script>"
})
List<SumCoin> getBuy( Meium meium);
List<Meium> getBuy(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
@ -404,13 +405,13 @@ public interface StatisticsMapper {
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by freeSumCoin asc",
"</script>"
})
List<SumCoin> getPayAndFree( Meium meium);
List<Meium> getPayAndFree(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
@ -424,13 +425,13 @@ public interface StatisticsMapper {
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by rechargeSumCoin asc",
"</script>"
})
List<SumCoin> getPayAndRecharge( Meium meium);
List<Meium> getPayAndRecharge(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
@ -444,13 +445,13 @@ public interface StatisticsMapper {
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by taskSumCoin asc",
"</script>"
})
List<SumCoin> getPayAndTask( Meium meium);
List<Meium> getPayAndTask(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
@ -464,11 +465,11 @@ public interface StatisticsMapper {
"FROM detail d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"and d.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"GROUP BY ad.area, ad.store",
"order by totalRechargeSum asc",
"</script>"
})
List<SumCoin> getPay( Meium meium);
List<Meium> getPay(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime);
}

14
src/main/java/com/example/demo/mapper/UserMapper.java

@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal;
import java.util.List;
@Mapper
@ -80,4 +81,17 @@ public interface UserMapper {
"</script>",
})
int update(User user);
// //去掉免费金币先去6个月再去12月
// @Update({
// "<script>",
// "update user",
// "<set>",
// "<if test='Free6!=null'>free_6=#{Free6},</if>",
// "<if test='Free12!=null'>free_12=#{Free12},</if>",
// "</set>",
// "where jwcode=#{jwcode}",
// "</script>",
// })
// int updatecoin();
}

11
src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java

@ -17,6 +17,7 @@ import com.github.pagehelper.PageInfo;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@ -81,15 +82,15 @@ public class ActivityServiceImpl implements ActivityService {
public PageInfo<Activity> searchForPage(Integer pageNum, Integer pageSize, Activity activity) {
PageHelper.startPage(pageNum, pageSize);
List<Activity> list = activityMapper.select(activity);
Date nowDate = new Date();
LocalDateTime nowDate = LocalDateTime.now();
for (Activity activity1 : list) {
Date startTime = activity1.getStartTime();
Date endTime = activity1.getEndTime();
LocalDateTime startTime = activity1.getStartTime();
LocalDateTime endTime = activity1.getEndTime();
if (nowDate.before(startTime)) {
if (nowDate.isBefore(startTime)) {
activity1.setStatus(0); // 设置状态为 0
} else if (nowDate.after(endTime)) {
} else if (nowDate.isAfter(endTime)) {
activity1.setStatus(2); // 设置状态为 2
} else {
activity1.setStatus(1); // 设置状态为 1

11
src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java

@ -80,6 +80,17 @@ public class ConsumeServiceImpl implements ConsumeService {
detail.setOrderCode(uuid);
//添加表单数据
result =consumeMapper.insert(detail);
//消费完成后需要将用户的三币从user表中去掉
//消费记录添加完成
// if(result==1){
// userMapper.updateFreecoin(detail.getFreeCoin());
// userMapper.updateRechargeCoin(detail.getRechargeCoin());
// userMapper.updateTaskCoin(detail.getTaskCoin());
// }
return result;
}
@Cacheable(key="#root.method.name")

44
src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java

@ -2,12 +2,14 @@ package com.example.demo.serviceImpl;
import com.example.demo.Util.CheckIfNullUtil;
import com.example.demo.domain.vo.Meium;
import com.example.demo.domain.vo.Statistics;
import com.example.demo.domain.vo.Statisticss;
import com.example.demo.domain.vo.SumCoin;
import com.example.demo.mapper.StatisticsMapper;
import com.example.demo.sevice.StatisticsService;
import lombok.RequiredArgsConstructor;
import org.apache.ibatis.annotations.Param;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@ -86,8 +88,8 @@ public class StatisticsServiceImpl implements StatisticsService {
return a;
}
//----------------------------------------------------------------------------------------------------//
@Cacheable(key="#root.method.name")
//----------------------------------------------------------------------------------------------------//
@Cacheable(key="#root.method.name")
public SumCoin getSumCoin(){
return statisticsMapper.getSumCoin();
}
@ -126,4 +128,42 @@ public class StatisticsServiceImpl implements StatisticsService {
}
@Override
public List<Meium> getMee( Meium meium) {
if("充值".equals(meium.getUpdateType())){
if("免费金币".equals(meium.getType())){
return statisticsMapper.getBuyAndFree(meium.getSearchStartTime(),meium.getSearchEndTime());
}else if("充值金币".equals(meium.getType())){
return statisticsMapper.getBuyAndRecharge(meium.getSearchStartTime(),meium.getSearchEndTime());
}else if("任务金币".equals(meium.getType())){
return statisticsMapper.getBuyAndTask(meium.getSearchStartTime(),meium.getSearchEndTime());
}else{
return statisticsMapper.getBuy(meium.getSearchStartTime(),meium.getSearchEndTime());
}
}else if("消费".equals(meium.getUpdateType())){
if("免费金币".equals(meium.getType())){
return statisticsMapper.getPayAndFree(meium.getSearchStartTime(),meium.getSearchEndTime());
}else if("充值金币".equals(meium.getType())){
return statisticsMapper.getPayAndRecharge(meium.getSearchStartTime(),meium.getSearchEndTime());
}else if("任务金币".equals(meium.getType())){
return statisticsMapper.getPayAndTask(meium.getSearchStartTime(),meium.getSearchEndTime());
}else{
return statisticsMapper.getPay(meium.getSearchStartTime(),meium.getSearchEndTime());
}
} else{ return null;}
}
@Override
public List<SumCoin> getMediu() {
return statisticsMapper.getMediu();
}
}

7
src/main/java/com/example/demo/sevice/StatisticsService.java

@ -1,9 +1,11 @@
package com.example.demo.sevice;
import com.example.demo.domain.vo.Meium;
import com.example.demo.domain.vo.Statistics;
import com.example.demo.domain.vo.Statisticss;
import com.example.demo.domain.vo.SumCoin;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import java.util.List;
@ -22,4 +24,9 @@ public interface StatisticsService {
SumCoin getMess(Integer jwcode);
List<SumCoin> getMediumAreaPay();
List<SumCoin> getMediumAreaConsume();
List<Meium> getMee(Meium meium);
List<SumCoin> getMediu();
}
Loading…
Cancel
Save