Browse Source
Merge branch 'milestone-20250702-金币重构一期' into sunjiabei/feature-20250623130922-消费功能
暂用(不合并)
Merge branch 'milestone-20250702-金币重构一期' into sunjiabei/feature-20250623130922-消费功能
暂用(不合并)
34 changed files with 1053 additions and 133 deletions
-
2src/main/java/com/example/demo/DemoApplication.java
-
31src/main/java/com/example/demo/Util/RedisUtil.java
-
2src/main/java/com/example/demo/config/RedisConfig.java
-
1src/main/java/com/example/demo/controller/GoldDetailController.java
-
66src/main/java/com/example/demo/controller/PermissionController.java
-
13src/main/java/com/example/demo/controller/StatisticsController.java
-
49src/main/java/com/example/demo/controller/WorkbenchController.java
-
1src/main/java/com/example/demo/domain/entity/Admin.java
-
18src/main/java/com/example/demo/domain/entity/Export.java
-
8src/main/java/com/example/demo/domain/entity/Statistics.java
-
2src/main/java/com/example/demo/domain/entity/User.java
-
2src/main/java/com/example/demo/domain/vo/Page.java
-
27src/main/java/com/example/demo/domain/vo/Permission.java
-
17src/main/java/com/example/demo/domain/vo/TestRequest.java
-
45src/main/java/com/example/demo/domain/vo/WorkbenchCard.java
-
65src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java
-
17src/main/java/com/example/demo/mapper/AdminMapper.java
-
31src/main/java/com/example/demo/mapper/PermissionMapper.java
-
15src/main/java/com/example/demo/mapper/StatisticsMapper.java
-
23src/main/java/com/example/demo/mapper/WorkBenchMapper.java
-
1src/main/java/com/example/demo/service/GeneralService.java
-
29src/main/java/com/example/demo/service/PermissionService.java
-
16src/main/java/com/example/demo/service/StatisticsService.java
-
19src/main/java/com/example/demo/service/WorkbenchService.java
-
3src/main/java/com/example/demo/serviceImpl/GeneralServiceImpl.java
-
1src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java
-
115src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java
-
101src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
-
212src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java
-
2src/main/resources/application.yml
-
9src/main/resources/mapper/AdminMapper.xml
-
73src/main/resources/mapper/PermissionMapper.xml
-
68src/main/resources/mapper/StatisticsMapper.xml
-
86src/main/resources/mapper/WorkBenchMapper.xml
@ -0,0 +1,66 @@ |
|||||
|
package com.example.demo.controller; |
||||
|
|
||||
|
import com.example.demo.domain.entity.Admin; |
||||
|
import com.example.demo.domain.entity.AdminRole; |
||||
|
import com.example.demo.domain.vo.Page; |
||||
|
import com.example.demo.domain.vo.Permission; |
||||
|
import com.example.demo.domain.vo.Result; |
||||
|
import com.example.demo.service.PermissionService; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import java.util.Arrays; |
||||
|
|
||||
|
/** |
||||
|
* @program: GOLD |
||||
|
* @ClassName PermissionController |
||||
|
* @description: |
||||
|
* @author: huangqizhen |
||||
|
* @create: 2025−06-26 13:22 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@RestController |
||||
|
@RequestMapping("/permission") |
||||
|
@RequiredArgsConstructor |
||||
|
@Slf4j |
||||
|
@CrossOrigin |
||||
|
public class PermissionController { |
||||
|
private final PermissionService permissionService; |
||||
|
@PostMapping("/getposition") |
||||
|
public Result getposition(@RequestBody String token){ |
||||
|
return Result.success(permissionService.getposition(token)); |
||||
|
} |
||||
|
@PostMapping("/getmarket") |
||||
|
public Result getmarket(@RequestBody String token){ |
||||
|
return Result.success(permissionService.getmarket(token)); |
||||
|
} |
||||
|
@PostMapping("/getPermission") |
||||
|
public Result getPermission(@RequestBody Page page){ |
||||
|
return Result.success(permissionService.getpermission(page.getPageNum(), page.getPageSize(), page.getPermission())); |
||||
|
} |
||||
|
@PostMapping("/addPermission") |
||||
|
public Result addPermission(@RequestBody Admin admin) throws Exception { |
||||
|
System.out.println( admin); |
||||
|
try { |
||||
|
return Result.success(permissionService.addpermission(admin)); |
||||
|
} |
||||
|
catch (Exception e) { |
||||
|
log.error(Arrays.toString(e.getStackTrace())); |
||||
|
return Result.error(e.getMessage()); |
||||
|
} |
||||
|
} |
||||
|
@PostMapping("/getRole") |
||||
|
public Result getRole(@RequestBody String token){ |
||||
|
return Result.success(permissionService.getRole(token)); |
||||
|
} |
||||
|
@PostMapping("/deleteAdmin") |
||||
|
public Result deleteAdmin(@RequestBody Admin admin){ |
||||
|
return Result.success(permissionService.deleteAdmin(admin.getId())); |
||||
|
} |
||||
|
@PostMapping("/updateAdminRole") |
||||
|
public Result updateAdminRole(@RequestBody AdminRole adminrole){ |
||||
|
return Result.success(permissionService.updateAdminRole(adminrole)); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
package com.example.demo.domain.vo; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
import lombok.NoArgsConstructor; |
||||
|
|
||||
|
/** |
||||
|
* @program: GOLD |
||||
|
* @ClassName Permission |
||||
|
* @description: |
||||
|
* @author: huangqizhen |
||||
|
* @create: 2025−06-26 10:54 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Data |
||||
|
@NoArgsConstructor |
||||
|
public class Permission { |
||||
|
private String token; |
||||
|
private String id; |
||||
|
private String name; //姓名 |
||||
|
private String account; //账号 |
||||
|
private String market; //地区 |
||||
|
private String postiton; //职位 |
||||
|
private String roleName; //角色 |
||||
|
private String remark; //备注 |
||||
|
private Integer adminStatus; //状态 |
||||
|
private Integer roleId; //角色id |
||||
|
} |
@ -0,0 +1,17 @@ |
|||||
|
package com.example.demo.domain.vo; |
||||
|
|
||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
|
import lombok.Data; |
||||
|
import lombok.NoArgsConstructor; |
||||
|
|
||||
|
import java.util.Date; |
||||
|
@Data |
||||
|
@NoArgsConstructor |
||||
|
public class TestRequest { |
||||
|
private String market; |
||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss") |
||||
|
private Date date; |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,65 @@ |
|||||
|
package com.example.demo.domain.vo; |
||||
|
|
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.Data; |
||||
|
import lombok.NoArgsConstructor; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName WorkbenchMarketCard |
||||
|
* @description: |
||||
|
* @author: Ethan |
||||
|
* @create: 2025−06-25 16:20 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
@Data |
||||
|
@NoArgsConstructor |
||||
|
@AllArgsConstructor |
||||
|
public class WorkbenchMarketCard implements Serializable { |
||||
|
|
||||
|
private String market;//地区 |
||||
|
// 卡片一:当前金币相关 |
||||
|
private Integer currentGold; // 当前金币余量 |
||||
|
private Integer dailyChange; // 余量较前一天的变化 |
||||
|
private Integer currentPermanent; // 永久金币余量 |
||||
|
private Integer currentFreeJune; // 六月到期免费金币余量 |
||||
|
private Integer currentFreeDecember; // 十二月到期免费金币余量 |
||||
|
private Integer currentTask; // 任务金币余量 |
||||
|
private Integer currentFree; // 免费金币余量(currentFreeJune + currentFreeDecember) |
||||
|
|
||||
|
// 卡片二:充值相关 |
||||
|
private Integer recharge; // 当日充值金币数 |
||||
|
private Integer money; // 当日金额(永久金币) |
||||
|
private Integer yearlyRecharge; // 全年累计充值金币数 |
||||
|
private Integer yearlyMoney; // 全年累计金额 |
||||
|
|
||||
|
// 卡片三:当日消费/退款/消耗相关 |
||||
|
private Integer consumePermanent; // 当日新增消费(永久) |
||||
|
private Integer consumeFreeJune; // 当日新增消费(六月免费) |
||||
|
private Integer consumeFreeDecember; // 当日新增消费(十二月免费) |
||||
|
private Integer consumeTask; // 当日新增消费(任务) |
||||
|
private Integer refundPermanent; // 当日新增退款(永久) |
||||
|
private Integer refundFreeJune; // 当日新增退款(六月免费) |
||||
|
private Integer refundFreeDecember; // 当日新增退款(十二月免费) |
||||
|
private Integer refundTask; // 当日新增退款(任务) |
||||
|
private Integer dailyConsume; // 当日总消耗 = consumePermanent + consumeFreeJune + consumeFreeDecember + consumeTask - (refundPermanent + refundFreeJune + refundFreeDecember + refundTask) |
||||
|
private Integer yearlyConsume; // 全年累计消费 |
||||
|
private Integer yearlyRefund; // 全年累计退款金币数 |
||||
|
private Integer yearlyReduce; // 全年累计消耗金币数 = yearlyConsume - yearlyRefund |
||||
|
|
||||
|
// 卡片四:人头数相关 |
||||
|
private Integer rechargeNum; // 当日充值人数 |
||||
|
private Integer firstRecharge; // 当日首充人数 |
||||
|
private Integer wow; // 周同比(%) |
||||
|
private Integer daily; // 日环比(%) |
||||
|
private Integer yearlyRechargeNum; // 全年累计充值人头数 |
||||
|
//图表 |
||||
|
private Integer SumRechargePermanent; //合计充值永久金币 |
||||
|
private Integer SumRechargeFree; //合计充值免费金币 |
||||
|
private Integer SumConsumePermanent; //合计消费永久金币 |
||||
|
private Integer SumConsumeFree; //合计消费免费金币 |
||||
|
private Integer SumConsumeTask; //合计消费任务金币 |
||||
|
} |
@ -0,0 +1,17 @@ |
|||||
|
package com.example.demo.mapper; |
||||
|
|
||||
|
import com.example.demo.domain.entity.Admin; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
/** |
||||
|
* @program: GOLD |
||||
|
* @ClassName AdminMapper |
||||
|
* @description: |
||||
|
* @author: huangqizhen |
||||
|
* @create: 2025−06-27 17:21 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Mapper |
||||
|
public interface AdminMapper { |
||||
|
Admin getAdmin(String account); |
||||
|
} |
@ -0,0 +1,31 @@ |
|||||
|
package com.example.demo.mapper; |
||||
|
|
||||
|
import com.example.demo.domain.entity.Admin; |
||||
|
import com.example.demo.domain.entity.AdminRole; |
||||
|
import com.example.demo.domain.entity.Role; |
||||
|
import com.example.demo.domain.vo.Permission; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @program: GOLD |
||||
|
* @ClassName PermissionMapper |
||||
|
* @description: |
||||
|
* @author: huangqizhen |
||||
|
* @create: 2025−06-26 11:25 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Mapper |
||||
|
public interface PermissionMapper { |
||||
|
List<String> getposition(String token); |
||||
|
List<String> getmarket(String token); |
||||
|
List<Permission> getPermission(Permission permission); |
||||
|
Integer updatePermission(Admin admin); |
||||
|
Integer addPermission(Admin admin); |
||||
|
List<Role> getRole(String token); |
||||
|
Integer addadminRole(AdminRole adminRole); |
||||
|
Integer deleteAdmin(Integer id); |
||||
|
Integer deleteAdminRole(Integer id); |
||||
|
Integer updateAdminRole(AdminRole adminRole); |
||||
|
} |
@ -0,0 +1,29 @@ |
|||||
|
package com.example.demo.service; |
||||
|
|
||||
|
import com.example.demo.domain.entity.Admin; |
||||
|
import com.example.demo.domain.entity.AdminRole; |
||||
|
import com.example.demo.domain.entity.Role; |
||||
|
import com.example.demo.domain.vo.Page; |
||||
|
import com.example.demo.domain.vo.Permission; |
||||
|
import com.github.pagehelper.PageInfo; |
||||
|
|
||||
|
import javax.swing.*; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @program: GOLD |
||||
|
* @ClassName PermissionService |
||||
|
* @description: |
||||
|
* @author: huangqizhen |
||||
|
* @create: 2025−06-26 13:18 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
public interface PermissionService { |
||||
|
List<String> getposition(String token); |
||||
|
List<String> getmarket(String token); |
||||
|
PageInfo<Permission> getpermission(Integer pageNum, Integer pageSize, Permission permission); |
||||
|
Integer addpermission(Admin admin) throws Exception; |
||||
|
List<Role> getRole(String token); |
||||
|
Integer deleteAdmin(Integer id); |
||||
|
Integer updateAdminRole(AdminRole adminRole); |
||||
|
} |
@ -0,0 +1,115 @@ |
|||||
|
package com.example.demo.serviceImpl; |
||||
|
|
||||
|
import com.example.demo.domain.entity.Admin; |
||||
|
import com.example.demo.domain.entity.AdminRole; |
||||
|
import com.example.demo.domain.entity.Role; |
||||
|
import com.example.demo.domain.entity.User; |
||||
|
import com.example.demo.domain.vo.Permission; |
||||
|
import com.example.demo.domain.vo.Result; |
||||
|
import com.example.demo.mapper.AdminMapper; |
||||
|
import com.example.demo.mapper.PermissionMapper; |
||||
|
import com.example.demo.service.PermissionService; |
||||
|
import com.github.pagehelper.PageHelper; |
||||
|
import com.github.pagehelper.PageInfo; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.transaction.annotation.Transactional; |
||||
|
import org.springframework.util.ObjectUtils; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @program: GOLD |
||||
|
* @ClassName PermissionServiceImpl |
||||
|
* @description: |
||||
|
* @author: huangqizhen |
||||
|
* @create: 2025−06-26 13:20 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Service |
||||
|
public class PermissionServiceImpl implements PermissionService { |
||||
|
|
||||
|
@Autowired |
||||
|
private PermissionMapper permissionMapper; |
||||
|
@Autowired |
||||
|
private AdminMapper adminMapper; |
||||
|
@Override |
||||
|
public List<String> getposition(String token) { |
||||
|
return permissionMapper.getposition(token); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<String> getmarket(String token) { |
||||
|
return permissionMapper.getmarket(token); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public PageInfo<Permission> getpermission(Integer pageNum, Integer pageSize, Permission permission) { |
||||
|
PageHelper.startPage(pageNum, pageSize); |
||||
|
List<Permission> list= permissionMapper.getPermission(permission); |
||||
|
return new PageInfo<>(list); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional |
||||
|
public Integer addpermission(Admin admin) throws Exception { |
||||
|
|
||||
|
if(!ObjectUtils.isEmpty(adminMapper.getAdmin(admin.getAccount()))){ |
||||
|
throw new Exception("账号已存在"); |
||||
|
} |
||||
|
if(ObjectUtils.isEmpty(admin.getAccount())){ |
||||
|
throw new Exception("账号为空!"); |
||||
|
} |
||||
|
if(ObjectUtils.isEmpty( admin.getMarket())){ |
||||
|
throw new Exception("地区为空!"); |
||||
|
} |
||||
|
if(ObjectUtils.isEmpty( admin.getPostiton())){ |
||||
|
throw new Exception("职位为空!"); |
||||
|
} |
||||
|
if (ObjectUtils.isEmpty( admin.getRoleId())){ |
||||
|
throw new Exception("权限类别为空!"); |
||||
|
} |
||||
|
if(ObjectUtils.isEmpty( admin.getAdminName())){ |
||||
|
throw new Exception("用户名为空!"); |
||||
|
} |
||||
|
if(ObjectUtils.isEmpty( admin.getMachineId())){ |
||||
|
throw new Exception("机器编号为空!"); |
||||
|
} |
||||
|
if (admin.getMachineId().contains(",")) { |
||||
|
throw new Exception("机器编号格式错误"); |
||||
|
} |
||||
|
else { |
||||
|
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); |
||||
|
admin.setPassword(passwordEncoder.encode(("123456"))); |
||||
|
permissionMapper.addPermission(admin); |
||||
|
AdminRole adminRole = new AdminRole(); |
||||
|
adminRole.setAdminId(admin.getId()); |
||||
|
adminRole.setRoleId(admin.getRoleId()); |
||||
|
return permissionMapper.addadminRole(adminRole); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<Role> getRole(String token) { |
||||
|
return permissionMapper.getRole(token); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional |
||||
|
public Integer deleteAdmin(Integer id) { |
||||
|
if (id == null){ |
||||
|
return -1; |
||||
|
} |
||||
|
|
||||
|
permissionMapper.deleteAdminRole(id); |
||||
|
return permissionMapper.deleteAdmin(id); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Integer updateAdminRole(AdminRole adminRole) { |
||||
|
return permissionMapper.updateAdminRole(adminRole); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,9 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.example.demo.mapper.AdminMapper"> |
||||
|
|
||||
|
<select id="getAdmin" resultType="com.example.demo.domain.entity.Admin"> |
||||
|
select * from admin |
||||
|
where account=#{account} |
||||
|
</select> |
||||
|
</mapper> |
@ -0,0 +1,73 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.example.demo.mapper.PermissionMapper"> |
||||
|
<insert id="addPermission" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> |
||||
|
insert into admin(admin_name,machine_id,account,password,market,postiton,remark,admin_status) |
||||
|
values(#{adminName},#{machineId},#{account},#{password},#{market},#{postiton},#{remark},1) |
||||
|
</insert> |
||||
|
<insert id="addadminRole"> |
||||
|
insert into admin_role(admin_id,role_id) |
||||
|
values(#{adminId},#{roleId}) |
||||
|
</insert> |
||||
|
<update id="updatePermission"> |
||||
|
update admin |
||||
|
<set> |
||||
|
<if test="name!=null"> |
||||
|
admin_name=#{name}, |
||||
|
</if> |
||||
|
<if test="market!=null"> |
||||
|
market=#{market}, |
||||
|
</if> |
||||
|
<if test="postiton!=null"> |
||||
|
postiton=#{postiton}, |
||||
|
</if> |
||||
|
<if test="role!=null"> |
||||
|
roleId=#{role}, |
||||
|
</if> |
||||
|
</set> |
||||
|
where id= #{id} |
||||
|
</update> |
||||
|
<update id="updateAdminRole"> |
||||
|
update admin_role |
||||
|
<set> |
||||
|
<if test="roleId!=null"> |
||||
|
role_id= #{roleId}, |
||||
|
</if> |
||||
|
</set> |
||||
|
where admin_id= #{adminId} |
||||
|
</update> |
||||
|
<delete id="deleteAdmin"> |
||||
|
delete from admin where id=#{id} |
||||
|
</delete> |
||||
|
<delete id="deleteAdminRole"> |
||||
|
delete from admin_role where admin_id= #{id} |
||||
|
</delete> |
||||
|
<select id="getposition" resultType="java.lang.String"> |
||||
|
select distinct postiton from admin |
||||
|
</select> |
||||
|
<select id="getmarket" resultType="java.lang.String"> |
||||
|
select distinct market from admin |
||||
|
</select> |
||||
|
<select id="getPermission" resultType="com.example.demo.domain.vo.Permission"> |
||||
|
select admin.id,admin.admin_name,admin.account,admin.market,admin.postiton,admin.remark,admin.admin_status,role.role_name |
||||
|
from admin |
||||
|
left join admin_role on admin.id=admin_role.admin_id |
||||
|
left join role on admin_role.role_id=role.id |
||||
|
|
||||
|
<where> |
||||
|
<if test="account!=null and account.length>0"> |
||||
|
admin.account=#{account} |
||||
|
</if> |
||||
|
<if test="market!=null and market.length>0"> |
||||
|
admin.market=#{market} |
||||
|
</if> |
||||
|
<if test="postiton!=null and postiton.length>0"> |
||||
|
admin.postiton=#{postiton} |
||||
|
</if> |
||||
|
</where> |
||||
|
</select> |
||||
|
<select id="getRole" resultType="com.example.demo.domain.entity.Role"> |
||||
|
select * from role |
||||
|
</select> |
||||
|
|
||||
|
</mapper> |
@ -1,5 +1,91 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!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.example.demo.mapper.WorkBenchMapper"> |
<mapper namespace="com.example.demo.mapper.WorkBenchMapper"> |
||||
|
<!--起止时间内的该地区充值金币数(永久+免费)若为空则默认0--> |
||||
|
<select id="sumRecharge" resultType="java.lang.Integer"> |
||||
|
select sum( |
||||
|
|
||||
|
COALESCE(recharge, 0) |
||||
|
) |
||||
|
from statistics |
||||
|
where market = #{market} |
||||
|
and current_datetime |
||||
|
between #{startDate} and #{endDate} |
||||
|
</select> |
||||
|
<!--起止时间内的该地区充值金额(永久金币数)--> |
||||
|
<select id="sumMoney" resultType="java.lang.Integer"> |
||||
|
SELECT SUM(money) |
||||
|
FROM statistics |
||||
|
WHERE market = #{market} |
||||
|
AND current_datetime BETWEEN #{startDate} and #{endDate} |
||||
|
</select> |
||||
|
<!-- 起止时间内该地区消费金币数(永久+免费+任务)--> |
||||
|
<select id="sumConsume" resultType="java.lang.Integer"> |
||||
|
SELECT SUM( |
||||
|
COALESCE(consume_permanent, 0) + |
||||
|
COALESCE(consume_free_june, 0) + |
||||
|
COALESCE(consume_free_december, 0) + |
||||
|
COALESCE(consume_task, 0) |
||||
|
) |
||||
|
FROM statistics |
||||
|
WHERE market = #{market} |
||||
|
AND current_datetime BETWEEN |
||||
|
#{startDate} and #{endDate} |
||||
|
</select> |
||||
|
<!--起止时间内的该地区退款金币数(永久+免费+任务)--> |
||||
|
<select id="sumRefund" resultType="java.lang.Integer"> |
||||
|
SELECT SUM( |
||||
|
COALESCE(refund_permanent, 0) + |
||||
|
COALESCE(refund_free_june, 0) + |
||||
|
COALESCE(refund_free_december, 0) + |
||||
|
COALESCE(refund_task, 0) |
||||
|
) |
||||
|
FROM statistics |
||||
|
WHERE market = #{market} |
||||
|
AND current_datetime BETWEEN |
||||
|
#{startDate} and #{endDate} |
||||
|
</select> |
||||
|
<!--起止时间内该地区充值人头数(根据精网号去重,老数据有多人共用一个精网号的问题)--> |
||||
|
<select id="countRechargeNum" resultType="java.lang.Integer"> |
||||
|
SELECT COUNT(DISTINCT ugr.jwcode) |
||||
|
FROM user_gold_record ugr |
||||
|
INNER JOIN user u ON ugr.jwcode = u.jwcode |
||||
|
WHERE u.market = #{market} |
||||
|
AND ugr.pay_time BETWEEN |
||||
|
#{startDate} and #{endDate} |
||||
|
AND ugr.audit_status IN (1,3) |
||||
|
|
||||
|
</select> |
||||
|
<!--给定时间范围内的该地区消费永久金币数--> |
||||
|
<select id="sumCPermanent" resultType="java.lang.Integer"> |
||||
|
SELECT SUM( |
||||
|
COALESCE(consume_permanent, 0) |
||||
|
) |
||||
|
FROM statistics |
||||
|
WHERE market = #{market} |
||||
|
AND current_datetime BETWEEN |
||||
|
#{startDate} and #{endDate} |
||||
|
</select> |
||||
|
<!--给定时间范围内的该地区消费免费金币数--> |
||||
|
<select id="sumCFree" resultType="java.lang.Integer"> |
||||
|
SELECT SUM( |
||||
|
COALESCE(refund_free_june, 0) + |
||||
|
COALESCE(refund_free_december, 0) |
||||
|
) |
||||
|
FROM statistics |
||||
|
WHERE market = #{market} |
||||
|
AND current_datetime BETWEEN |
||||
|
#{startDate} and #{endDate} |
||||
|
</select> |
||||
|
<!--给定时间范围内的该地区消费任务金币数--> |
||||
|
<select id="sumCTask" resultType="java.lang.Integer"> |
||||
|
SELECT SUM( |
||||
|
COALESCE(refund_task, 0) |
||||
|
) |
||||
|
FROM statistics |
||||
|
WHERE market = #{market} |
||||
|
AND current_datetime BETWEEN |
||||
|
#{startDate} and #{endDate} |
||||
|
</select> |
||||
|
|
||||
</mapper> |
</mapper> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue