Forráskód Böngészése

update 特定收款账户特定财务分部

周箭河 5 éve
szülő
commit
f181c7fae8

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysTenantAccountDetailDao.java

@@ -3,7 +3,17 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.entity.SysTenantAccountDetail;
 import com.ym.mec.common.dal.BaseDAO;
 
+import java.util.List;
+import java.util.Map;
+
 public interface SysTenantAccountDetailDao extends BaseDAO<Long, SysTenantAccountDetail> {
 
 	SysTenantAccountDetail queryByOrderNo(String orderNo);
+
+	/**
+	 * 统计交易分钟数
+	 * @param params
+	 * @return
+	 */
+	Integer sumTransMinutes(Map<String, Object> params);
 }

+ 29 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/PageInfoTenantDto.java

@@ -0,0 +1,29 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.common.page.PageInfo;
+
+import java.math.BigDecimal;
+
+public class PageInfoTenantDto<T> extends PageInfo<T> {
+
+    private Integer totalTransMinutes = 0;
+
+    public PageInfoTenantDto() {
+    }
+
+    public PageInfoTenantDto(Integer pageNo) {
+        super(pageNo);
+    }
+
+    public PageInfoTenantDto(Integer pageNo, int pageSize) {
+        super(pageNo, pageSize);
+    }
+
+    public Integer getTotalTransMinutes() {
+        return totalTransMinutes;
+    }
+
+    public void setTotalTransMinutes(Integer totalTransMinutes) {
+        this.totalTransMinutes = totalTransMinutes;
+    }
+}

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TenantAccountDetailQueryInfo.java

@@ -3,15 +3,23 @@ package com.ym.mec.biz.dal.page;
 import com.ym.mec.biz.dal.entity.SysTenantAccountDetail.TransStatus;
 import com.ym.mec.biz.dal.entity.SysTenantAccountDetail.TransType;
 import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
 
 public class TenantAccountDetailQueryInfo extends QueryInfo {
 
+	@ApiModelProperty(value = "类型",required = false)
 	private TransType transType;
 
 	private TransStatus transStatus;
 
 	private Integer userId;
 
+	@ApiModelProperty(value = "开始时间",required = false)
+	private String startTime;
+
+	@ApiModelProperty(value = "结束时间",required = false)
+	private String endTime;
+
 	public TransType getTransType() {
 		return transType;
 	}
@@ -35,4 +43,20 @@ public class TenantAccountDetailQueryInfo extends QueryInfo {
 	public void setUserId(Integer userId) {
 		this.userId = userId;
 	}
+
+	public String getStartTime() {
+		return startTime;
+	}
+
+	public void setStartTime(String startTime) {
+		this.startTime = startTime;
+	}
+
+	public String getEndTime() {
+		return endTime;
+	}
+
+	public void setEndTime(String endTime) {
+		this.endTime = endTime;
+	}
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysTenantAccountDetailService.java

@@ -1,8 +1,12 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.PageInfoTenantDto;
 import com.ym.mec.biz.dal.entity.SysTenantAccountDetail;
+import com.ym.mec.biz.dal.page.TenantAccountDetailQueryInfo;
 import com.ym.mec.common.service.BaseService;
+import org.apache.poi.ss.formula.functions.T;
 
 public interface SysTenantAccountDetailService extends BaseService<Long, SysTenantAccountDetail> {
 
+    PageInfoTenantDto<SysTenantAccountDetail> getPageList(TenantAccountDetailQueryInfo queryInfo);
 }

+ 43 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysTenantAccountDetailServiceImpl.java

@@ -1,5 +1,10 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dto.PageInfoTenantDto;
+import com.ym.mec.biz.dal.page.TenantAccountDetailQueryInfo;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.util.collection.MapUtil;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -9,15 +14,43 @@ import com.ym.mec.biz.service.SysTenantAccountDetailService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 @Service
-public class SysTenantAccountDetailServiceImpl extends BaseServiceImpl<Long, SysTenantAccountDetail>  implements SysTenantAccountDetailService {
-	
-	@Autowired
-	private SysTenantAccountDetailDao sysTenantAccountDetailDao;
-
-	@Override
-	public BaseDAO<Long, SysTenantAccountDetail> getDAO() {
-		return sysTenantAccountDetailDao;
-	}
-	
+public class SysTenantAccountDetailServiceImpl extends BaseServiceImpl<Long, SysTenantAccountDetail> implements SysTenantAccountDetailService {
+
+    @Autowired
+    private SysTenantAccountDetailDao sysTenantAccountDetailDao;
+
+    @Override
+    public BaseDAO<Long, SysTenantAccountDetail> getDAO() {
+        return sysTenantAccountDetailDao;
+    }
+
+    @Override
+    public PageInfoTenantDto<SysTenantAccountDetail> getPageList(TenantAccountDetailQueryInfo queryInfo) {
+        PageInfoTenantDto<SysTenantAccountDetail> pageInfo = new PageInfoTenantDto<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<SysTenantAccountDetail> dataList = null;
+        int count = this.findCount(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = this.getDAO().queryPage(params);
+            Integer totalTransMinutes = sysTenantAccountDetailDao.sumTransMinutes(params);
+            if (totalTransMinutes != null) {
+                pageInfo.setTotalTransMinutes(totalTransMinutes);
+            }
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

+ 14 - 3
mec-biz/src/main/resources/config/mybatis/SysTenantAccountDetailMapper.xml

@@ -18,7 +18,7 @@
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 	</resultMap>
-	
+
 	<sql id="queryCondition">
 		<where>
 			<if test="transType != null">
@@ -30,6 +30,11 @@
 			<if test="userId != null">
 				and user_id_ = #{userId}
 			</if>
+			<if test="startTime != null">
+				and create_time_ >= #{startTime}
+			</if>
+			<if test="endTime != null">
+				<![CDATA[and create_time_ <= #{startTime}]]></if>
 		</where>
 	</sql>
 
@@ -37,7 +42,7 @@
 	<select id="get" resultMap="SysTenantAccountDetail">
 		SELECT * FROM sys_tenant_account_detail WHERE id_ = #{id}
 	</select>
-	
+
 	<select id="queryByOrderNo" resultMap="SysTenantAccountDetail">
 		SELECT * FROM sys_tenant_account_detail WHERE order_no_ = #{orderNo}
 	</select>
@@ -50,7 +55,7 @@
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysTenantAccountDetail"
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
+		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval
 			AS ID FROM DUAL </selectKey> -->
 		INSERT INTO sys_tenant_account_detail
 		(id_,user_id_,order_no_,trans_type_,trans_status_,trans_no_,trans_cash_amount_,total_available_minutes_,trans_minutes_,memo_,create_time_,update_time_)
@@ -119,4 +124,10 @@
 		SELECT COUNT(*) FROM sys_tenant_account_detail
 		<include refid="queryCondition" />
 	</select>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="sumTransMinutes" resultType="int">
+		SELECT SUM(trans_minutes_) FROM sys_tenant_account_detail
+		<include refid="queryCondition" />
+	</select>
 </mapper>

+ 105 - 0
mec-web/src/main/java/com/ym/mec/web/controller/SysTenantAccountController.java

@@ -0,0 +1,105 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.SysTenantAccountDetail;
+import com.ym.mec.biz.dal.page.TenantAccountDetailQueryInfo;
+import com.ym.mec.biz.service.SysTenantAccountDetailService;
+import com.ym.mec.biz.service.SysTenantAccountService;
+import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.math.BigDecimal;
+
+@RequestMapping("sysTenantAccount")
+@Api(tags = "后台租客账户管理")
+@RestController
+public class SysTenantAccountController extends BaseController {
+
+    @Autowired
+    private SysTenantAccountService sysTenantAccountService;
+
+    @Autowired
+    private SysTenantAccountDetailService sysTenantAccountDetailService;
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "获取账户信息")
+    @GetMapping("/get")
+    @PreAuthorize("@pcs.hasPermissions('userCashAccount/get')")
+    public Object get() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+
+        return succeed(sysTenantAccountService.get(sysUser.getId()));
+    }
+
+    @ApiOperation(value = "获取账户明细")
+    @GetMapping("/queryTenantAccountDetail")
+    @PreAuthorize("@pcs.hasPermissions('userCashAccount/queryTenantAccountDetail')")
+    public Object queryTenantAccountDetail(TenantAccountDetailQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        queryInfo.setUserId(sysUser.getId());
+
+        return succeed(sysTenantAccountDetailService.getPageList(queryInfo));
+    }
+
+    @ApiOperation(value = "增加分钟数")
+    @PostMapping("/addMinutes")
+    @PreAuthorize("@pcs.hasPermissions('userCashAccount/addMinutes')")
+    public Object addMinutes(Integer minutes, String memo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        if(minutes == null || minutes < 0){
+			return failed("充值分钟数必须大于0");
+		}
+		if(memo == null || memo.isEmpty()){
+			return failed("备注信息不能为空");
+		}
+		Integer userId = sysUser.getId();
+		boolean updateRes = sysTenantAccountService.update(userId, minutes, null, SysTenantAccountDetail.TransType.CONSUME, null, BigDecimal.ZERO, memo);
+		if(!updateRes){
+			return failed("充值失败,请重试");
+		}
+		return succeed("充值成功");
+	}
+
+    @ApiOperation(value = "减分钟数")
+    @PostMapping("/subtractMinutes")
+    @PreAuthorize("@pcs.hasPermissions('userCashAccount/subtractMinutes')")
+    public Object subtractMinutes(Integer minutes, String memo) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		if(minutes == null || minutes < 0){
+			return failed("扣除分钟数必须大于0");
+		}
+		if(memo == null || memo.isEmpty()){
+			return failed("备注信息不能为空");
+		}
+		Integer userId = sysUser.getId();
+		boolean updateRes = sysTenantAccountService.update(userId, -minutes, null, SysTenantAccountDetail.TransType.CONSUME, null, BigDecimal.ZERO, memo);
+		if(!updateRes){
+			return failed("充值失败,请重试");
+		}
+		return succeed("充值成功");
+    }
+
+}