Browse Source

后端整合模块

detached
huangqizhen 5 months ago
parent
commit
443616b4f6
  1. 9
      src/main/java/com/example/demo/controller/DetailYController.java
  2. 17
      src/main/java/com/example/demo/controller/RechargeController.java
  3. 3
      src/main/java/com/example/demo/domain/entity/Rate.java
  4. 1
      src/main/java/com/example/demo/domain/entity/UserGold.java
  5. 19
      src/main/java/com/example/demo/domain/vo/DetailYgold.java
  6. 1
      src/main/java/com/example/demo/domain/vo/Page.java
  7. 15
      src/main/java/com/example/demo/mapper/ConsumeMapper.java
  8. 27
      src/main/java/com/example/demo/mapper/DetailYMapper.java
  9. 12
      src/main/java/com/example/demo/mapper/RechargeMapper.java
  10. 2
      src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
  11. 31
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  12. 17
      src/main/java/com/example/demo/serviceImpl/DetailYServiceImpl.java
  13. 1
      src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
  14. 3
      src/main/java/com/example/demo/sevice/DetailYService.java

9
src/main/java/com/example/demo/controller/DetailYController.java

@ -41,4 +41,13 @@ public class DetailYController {
return Result.success(detailYService.getDetailByPage(page.getPageNum(), page.getPageSize(), page.getDetailY()));
}
}
@PostMapping("/select")
public Result searchgold(@RequestBody Page page) {
if(ObjectUtils.isEmpty(page.getPageNum())){
return Result.success(detailYService.getgold(page.getDetailYgold()));
}
else {
return Result.success(detailYService.selectgold(page.getPageNum(), page.getPageSize(), page.getDetailYgold()));
}
}
}

17
src/main/java/com/example/demo/controller/RechargeController.java

@ -13,6 +13,7 @@ import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/recharge/recharge")
@ -25,6 +26,22 @@ public class RechargeController {
@Autowired
private KafkaProducer kafkaProducer;
@PostMapping("/addmore")
public Result add(@RequestBody List<Recharge> recharge) {
try {
// Recharge 对象转换为 JSON 字符串
ObjectMapper objectMapper = new ObjectMapper();
String rechargeJson = objectMapper.writeValueAsString(recharge);
// 发送消息到 Kafka 队列
kafkaProducer.sendMessage("recharge-topic", rechargeJson);
return Result.success("Request added to Kafka queue");
} catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
}
}
@PostMapping("/add")
public Result add(@RequestBody Recharge recharge) {

3
src/main/java/com/example/demo/domain/entity/Rate.java

@ -5,6 +5,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ -18,7 +19,7 @@ public class Rate {
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
private String currency;
private String exchangeRate;
private BigDecimal exchangeRate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;

1
src/main/java/com/example/demo/domain/entity/UserGold.java

@ -13,6 +13,7 @@ import java.util.Date;
public class UserGold {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private String jwcode;
private Date createTime;
private String signature;

19
src/main/java/com/example/demo/domain/vo/DetailYgold.java

@ -0,0 +1,19 @@
package com.example.demo.domain.vo;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
public class DetailYgold {
private String name;
private String area;
private BigDecimal buyJb;
private BigDecimal coreJb;
private BigDecimal free12;
private BigDecimal free6;
private String jwcode;
private Integer Rcoin;
private Integer Scoin;
}

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

@ -26,6 +26,7 @@ public class Page implements Serializable {
private Admin admin;
private DetailY detailY;
private DetailYVo detailYVo;
private DetailYgold detailYgold;
}

15
src/main/java/com/example/demo/mapper/ConsumeMapper.java

@ -26,10 +26,17 @@ public interface ConsumeMapper {
Admin getByadminId(@Param("adminId") Integer adminId);
//新增消费记录
@Insert({
"insert into detail",
"(jwcode,activity_id,recharge_way,product_id,consume_platform,consume_type,refund_type,refund_goods,contact_id,remark,recharge_coin,free_coin,task_coin,admin_id,update_type,detail_flag,create_time,refund_flag,order_code)",
"values",
"(#{jwcode},#{activityId},#{rechargeWay},#{productId},'金币系统','购买商品',#{refundType},#{refundGoods},#{contactId},#{remark},#{rechargeCoin},#{freeCoin},#{taskCoin},#{adminId},#{updateType},1,now(),1,#{orderCode})"
// "insert into detail",
// "(jwcode,activity_id,recharge_way,product_id,consume_platform,consume_type,refund_type,refund_goods,contact_id,remark,recharge_coin,free_coin,task_coin,admin_id,update_type,detail_flag,create_time,refund_flag,order_code)",
// "values",
// "(#{jwcode},#{activityId},#{rechargeWay},#{productId},'金币系统','购买商品',#{refundType},#{refundGoods},#{contactId},#{remark},#{rechargeCoin},#{freeCoin},#{taskCoin},#{adminId},#{updateType},1,now(),1,#{orderCode})"
"insert into detail_y",
"(jwcode,order_code,activity_id,recharge_way,product_id,consume_platform,consume_type,refund_type,refund_goods," +
"contact_id,remark,recharge_coin,free_coin,task_coin,admin_id,update_type,detail_flag,create_time,first_recharge)",
"values ",
"(#{jwcode},#{orderCode},#{activityId},#{rechargeWay},#{productId},'金币系统','购买商品',#{refundType}" +
",#{refundGoods},#{contactId},#{remark},#{rechargeCoin}" +
",#{freeCoin},#{taskCoin},#{adminId},#{updateType},1,now(),#{firstRecharge})"
})
// 获取自增主键
@Options(useGeneratedKeys = true,keyColumn = "detail_id",keyProperty = "detailId")

27
src/main/java/com/example/demo/mapper/DetailYMapper.java

@ -1,7 +1,7 @@
package com.example.demo.mapper;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.vo.DetailYgold;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
@ -29,6 +29,31 @@ public interface DetailYMapper {
@Select({
"<script>",
"SELECT ",
"`user`.name,`user`.area,user_gold.buy_jb,user_gold.core_jb,user_gold.free_12,user_gold.free_6,",
"user_gold.jwcode,",
"SUM(CASE WHEN detail_y.update_type = 0 THEN detail_y.recharge_coin ELSE 0 END) AS Rcoin,",
"SUM(CASE WHEN detail_y.update_type = 1 THEN detail_y.recharge_coin ELSE 0 END) AS Scoin",
"FROM ",
"detail_y",
"LEFT JOIN ",
"user_gold ON detail_y.jwcode = user_gold.jwcode",
"LEFT JOIN",
"`user` ON detail_y.jwcode = `user`.jwcode",
"<where>",
"<if test='jwcode!=null and jwcode.length>0'>and detail_y.jwcode=#{jwcode}</if>",
"</where>",
"GROUP BY",
"user_gold.jwcode",
"ORDER BY ",
"Rcoin DESC",
"</script>"
})
List<DetailYgold> selectgold(DetailYgold detailYgold);
@Select({
"<script>",
"select * from detail_y",
// "select detail_y.*,admin.name,admin.area,user.name as uname,audit.status from detail",
// "left join `admin` on `detail_y`.admin_id = `admin`.admin_id",

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

@ -19,6 +19,17 @@ public interface RechargeMapper {
@Options(useGeneratedKeys = true,keyColumn = "recharge_id",keyProperty = "rechargeId")
int insert(Recharge recharge);
@Insert({
"INSERT INTO recharge (",
"jwcode, order_code, activity_id, paid_gold, free_gold, recharge_gold, pay_way, recharge_way, recharge_time, recharge_voucher, admin_id, remark, flag)",
"VALUES ",
"<foreach collection='list' item='recharge' separator=','>",
"(#{recharge.jwcode}, #{recharge.orderCode}, #{recharge.activityId}, #{recharge.paidGold}, #{recharge.freeGold}, #{recharge.rechargeGold}, #{recharge.payWay}, #{recharge.rechargeWay}, #{recharge.rechargeTime}, #{recharge.rechargeVoucher}, #{recharge.adminId}, #{recharge.remark}, 1)",
"</foreach>"
})
@Options(useGeneratedKeys = true, keyColumn = "recharge_id", keyProperty = "rechargeId")
int insertBatch(List<Recharge> list);
@Update({
"<script>",
"UPDATE recharge",
@ -41,6 +52,7 @@ public interface RechargeMapper {
"LEFT JOIN `admin` on recharge.admin_id = `admin`.admin_id",
"<where>",
"flag='1'",
"<if test='jwcode!=null and jwcode.length>0'>and recharge.jwcode=#{jwcode}</if>",
"<if test='activityId!=null'>and recharge.activity_id=#{activityId}</if>",
"<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>",

2
src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java

@ -129,7 +129,7 @@ public class AuditServiceImpl implements AuditService {
detailY.setReson(reson);
detailY.setFlag(flag);
detailY.setCreateTime(createTime);
detailY.setConsumePlatform("金币客服充值");

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

@ -2,10 +2,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.Product;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.entity.*;
import com.example.demo.domain.vo.ConsumeDetail;
import com.example.demo.domain.vo.DetailVo;
import com.example.demo.domain.vo.DetailYVo;
@ -38,7 +35,7 @@ public class ConsumeServiceImpl implements ConsumeService {
ConsumeMapper consumeMapper;
private final UserMapper userMapper;
private final UserServiceImpl userService;
@CacheEvict(value = "consume", allEntries = true)
@CacheEvict(value = "consume,detailY", allEntries = true)
@Override
//新增消费记录
public int insert(Detail detail) throws Exception {
@ -51,14 +48,14 @@ public class ConsumeServiceImpl implements ConsumeService {
BigDecimal freeGold1 =detail.getFreeCoin();
BigDecimal taskGold1 =detail.getTaskCoin();
String jwcode = detail.getJwcode();
User user = userMapper.get(jwcode);
BigDecimal buyJb =user.getBuyJb();
BigDecimal coreJb=user.getCoreJb();
UserGold userGold = userMapper.selectGold(jwcode);
BigDecimal buyJb =userGold.getBuyJb();
BigDecimal coreJb=userGold.getCoreJb();
buyJb = buyJb.add(paidGold1);
coreJb = coreJb.add(taskGold1);
// 设置更新后的Sumgold回到user对象
user.setBuyJb(buyJb);
user.setCoreJb(coreJb);
userGold.setBuyJb(buyJb);
userGold.setCoreJb(coreJb);
LocalDate now = LocalDate.now();
// 判断当前日期是在六月之前还是之后
@ -70,17 +67,17 @@ public class ConsumeServiceImpl implements ConsumeService {
// 根据月份更新 free6 free12
if (isBeforeJune||isJune) {
// 如果是六月前更新 free6
BigDecimal free6 = user.getFree6().add(freeGold1);
user.setFree6(free6);
BigDecimal free6 = userGold.getFree6().add(freeGold1);
userGold.setFree6(free6);
} else if (isAfterJune) {
// 如果是六月后更新 free12
BigDecimal free12 = user.getFree12().add(freeGold1);
user.setFree12(free12);
BigDecimal free12 = userGold.getFree12().add(freeGold1);
userGold.setFree12(free12);
}
// 设置更新后的Sumgold回到user对象
System.out.println(user+"----------------------------------------------------------");
result = userMapper.update(user);
System.out.println(userGold+"----------------------------------------------------------");
result = userMapper.updateGold(userGold);
if (result != 1) {
throw new Exception("Failed to insert another entity");
}
@ -90,7 +87,7 @@ public class ConsumeServiceImpl implements ConsumeService {
//添加表单数据
// 更新用户对象以反映新的余额
result = userMapper.update(user);
result = userMapper.updateGold(userGold);

17
src/main/java/com/example/demo/serviceImpl/DetailYServiceImpl.java

@ -1,6 +1,7 @@
package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.vo.DetailYgold;
import com.example.demo.mapper.DetailYMapper;
import com.example.demo.sevice.DetailYService;
import com.github.pagehelper.PageHelper;
@ -25,14 +26,26 @@ public class DetailYServiceImpl implements DetailYService {
public int add(DetailY detailY) {
return detailYMapper.add(detailY);
}
@Cacheable(key = "#root.method.name + ':' + #detailY.hashCode()")
@Override
public DetailY getCount(DetailY detailY) {
return detailYMapper.getCount(detailY);
}
@Override
public DetailYgold getgold(DetailYgold detailYgold) {
return (DetailYgold) detailYMapper.selectgold(detailYgold);
}
@Override
public PageInfo<DetailYgold> selectgold(int pageNum, int pageSize, DetailYgold detailYgold) {
PageHelper.startPage(pageNum, pageSize);
List<DetailYgold> list = detailYMapper.selectgold(detailYgold);
return new PageInfo<>(list);
}
@Cacheable(key = "#root.method.name + ':' + #pageNum + '-' + #pageSize + '-' + T(java.util.Objects).hashCode(#detailY)")
@Cacheable(key = "#root.method.name + ':' + #pageNum + '-' + #pageSize + '-' + #detailY.hashCode()")
@Override
public PageInfo<DetailY> getDetailByPage(int pageNum, int pageSize, DetailY detailY) {
PageHelper.startPage(pageNum, pageSize);

1
src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java

@ -98,6 +98,7 @@ public class RechargeServiceImpl implements RechargeService {
detail.setRemark(remark);
detail.setUpdateType(0);
detail.setAdminId(adminId);
detail.setConsumePlatform("金币客服充值");
System.out.println(uuid+"/*/*/*-/-*/-/*-/-*/-/*-/*-/-*");

3
src/main/java/com/example/demo/sevice/DetailYService.java

@ -1,10 +1,13 @@
package com.example.demo.sevice;
import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.vo.DetailYgold;
import com.github.pagehelper.PageInfo;
public interface DetailYService {
int add(DetailY detailY);
DetailY getCount(DetailY detailY);
DetailYgold getgold(DetailYgold detailYgold);
PageInfo<DetailYgold> selectgold(int pageNum, int pageSize, DetailYgold detailYgold);
PageInfo<DetailY> getDetailByPage(int pageNum, int pageSize, DetailY detailY);
}
Loading…
Cancel
Save