支付模块-下单接口

This commit is contained in:
2024-12-24 17:39:49 +08:00
parent b7eec65e6d
commit 27eac91d1c
21 changed files with 658 additions and 1 deletions

View File

@ -0,0 +1,18 @@
package com.fastbee.rechargecard.domain.dto;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class WeChatRecharge {
private Integer cardnumber;//卡号
private BigDecimal amount;//充值金额
private Integer type;//充值方式
private Integer areacode;//区域码
private String deviceNumber;//设备码
private Integer water;//充值水量
private String rechargeCode;//订单号
private String openId;//openId
private BigDecimal total;//amount中的total
private String currency;//amount中的currency
}

View File

@ -0,0 +1,13 @@
package com.fastbee.rechargecard.domain.dto;
import lombok.Data;
@Data
public class WeChatRechargeBacktracking {
private String id;
private String create_time;
private String resource_type;
private String event_type;
private String summary;
private WeChatRechargeBacktrackingResource resource;
}

View File

@ -0,0 +1,13 @@
package com.fastbee.rechargecard.domain.dto;
import lombok.Data;
@Data
public class WeChatRechargeBacktrackingResource{
private String original_type;
private String algorithm;
private String cliphertext;
private String associated_data;
private String nonce;
}

View File

@ -3,6 +3,7 @@ package com.fastbee.rechargecard.mapper;
import java.util.List;
import com.fastbee.rechargecard.domain.NgUserRechargeRecords;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
/**
* 用户充值记录Mapper接口
@ -13,6 +14,13 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface NgUserRechargeRecordsMapper
{
/**
* 根据订单号查询充值记录
* @param rechargeCode
* @return
*/
@Select("select * from ng_user_recharge_records where recharge_code=#{rechargeCode}")
public NgUserRechargeRecords SelectRechargeRecodeByRechargeCode(String rechargeCode);
/**
* 查询用户充值记录
*
@ -21,6 +29,13 @@ public interface NgUserRechargeRecordsMapper
*/
public List<NgUserRechargeRecords> selectNgUserRechargeRecordsByCardNumber(NgUserRechargeRecords ngUserRechargeRecords);
/**
* 根据订单编号查询用户充值记录
* @param rechargeCode
* @return
*/
public NgUserRechargeRecords selectNgUserRechargeRecordsByRechargeCode(String rechargeCode);
/**
* 查询充值机充值记录
*
@ -53,6 +68,11 @@ public interface NgUserRechargeRecordsMapper
*/
public int updateNgUserRechargeRecords(NgUserRechargeRecords ngUserRechargeRecords);
/**
* 微信支付成功后修改用户充值记录状态为已支付
*/
public int updateNgUserRechargeRecordsWechat(NgUserRechargeRecords ngUserRechargeRecords);
/**
* 删除用户充值记录
*

View File

@ -2,6 +2,8 @@ package com.fastbee.rechargecard.service;
import java.util.List;
import com.fastbee.rechargecard.domain.NgUserRechargeRecords;
import com.fastbee.rechargecard.domain.dto.RechargecardUser;
import com.fastbee.rechargecard.domain.dto.WeChatRecharge;
import com.fastbee.rechargecard.mapper.NgUserRechargeRecordsMapper;
/**
@ -12,6 +14,21 @@ import com.fastbee.rechargecard.mapper.NgUserRechargeRecordsMapper;
*/
public interface INgUserRechargeRecordsService
{
/**
* 根据订单编号查找充值记录
* @param rechargeCode
* @return
*/
public NgUserRechargeRecords SelectRechargeRecodeByRechargeCode(String rechargeCode);
/**
* 微信充值-新增用户充值记录
*
* @param
* @return 结果
*/
public int insertNgUserRechargeRecordsWeChat(WeChatRecharge recharge);
/**
* 查询用户充值记录
*

View File

@ -3,6 +3,7 @@ package com.fastbee.rechargecard.service;
import java.util.List;
import com.fastbee.rechargecard.domain.UserConsumptionDetails;
import com.fastbee.rechargecard.domain.dto.UserConsumptionDetailsDto;
import com.fastbee.rechargecard.domain.dto.WeChatRecharge;
import org.springframework.stereotype.Service;
/**
@ -83,4 +84,9 @@ public interface IUserConsumptionDetailsService
* @return 结果
*/
public int deleteUserConsumptionDetailsById(Long id);
/**
* 插入微信支付用户充值卡账单明细记录
*/
public int insertUserConsumptionDetailsWechat(WeChatRecharge recharge);
}

View File

@ -48,6 +48,13 @@ public interface IUserRechargeCardsService
*/
public int updateUserRechargeCards(UserRechargeCards userRechargeCards);
/**
* 微信支付后修改用户充值卡余额以及订单状态
* @param rechargeCode
* @return
*/
public int updateUserRechargeWechat(String rechargeCode);
/**
* 批量删除用户充值卡
*

View File

@ -2,6 +2,8 @@ package com.fastbee.rechargecard.service.impl;
import java.util.List;
import com.fastbee.common.utils.DateUtils;
import com.fastbee.rechargecard.domain.dto.RechargecardUser;
import com.fastbee.rechargecard.domain.dto.WeChatRecharge;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.fastbee.rechargecard.mapper.NgUserRechargeRecordsMapper;
@ -20,6 +22,24 @@ public class NgUserRechargeRecordsServiceImpl implements INgUserRechargeRecordsS
@Autowired
private NgUserRechargeRecordsMapper ngUserRechargeRecordsMapper;
@Override
public NgUserRechargeRecords SelectRechargeRecodeByRechargeCode(String rechargeCode) {
return ngUserRechargeRecordsMapper.SelectRechargeRecodeByRechargeCode(rechargeCode);
}
@Override
public int insertNgUserRechargeRecordsWeChat(WeChatRecharge rechargecardUser) {
NgUserRechargeRecords ngUserRechargeRecords=new NgUserRechargeRecords();
ngUserRechargeRecords.setRechargeTime(DateUtils.getNowDate());
ngUserRechargeRecords.setBalance(rechargecardUser.getAmount());
ngUserRechargeRecords.setType(1);//微信
ngUserRechargeRecords.setStatus(0);//生成订单
ngUserRechargeRecords.setAreaCode(String.valueOf(rechargecardUser.getAreacode()));
ngUserRechargeRecords.setCardNumber(String.valueOf(rechargecardUser.getCardnumber()));
ngUserRechargeRecords.setRechargeCode(rechargecardUser.getRechargeCode());
return ngUserRechargeRecordsMapper.insertNgUserRechargeRecords(ngUserRechargeRecords);
}
/**
* 查询用户充值记录
*

View File

@ -6,6 +6,7 @@ import java.util.List;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.fastbee.common.utils.DateUtils;
import com.fastbee.rechargecard.domain.dto.UserConsumptionDetailsDto;
import com.fastbee.rechargecard.domain.dto.WeChatRecharge;
import com.fastbee.system.mapper.SysUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -201,4 +202,21 @@ public class UserConsumptionDetailsServiceImpl implements IUserConsumptionDetail
{
return userConsumptionDetailsMapper.deleteUserConsumptionDetailsById(id);
}
@Override
public int insertUserConsumptionDetailsWechat(WeChatRecharge recharge) {
UserConsumptionDetails userConsumptionDetails=new UserConsumptionDetails();
userConsumptionDetails.setCardNumber(String.valueOf(recharge.getCardnumber()));
userConsumptionDetails.setBillingType(0);
userConsumptionDetails.setAreaCode(String.valueOf(recharge.getAreacode()));
userConsumptionDetails.setAmountDue(recharge.getAmount());
userConsumptionDetails.setBillingDate(DateUtils.getNowDate());
userConsumptionDetails.setPaymentStatus(0);
userConsumptionDetails.setPaymentMethod(recharge.getType());
userConsumptionDetails.setPaymentTime(DateUtils.getNowDate());
userConsumptionDetails.setStatus(0);
userConsumptionDetails.setCreateTime(DateUtils.getNowDate());
return userConsumptionDetailsMapper.insertUserConsumptionDetails(userConsumptionDetails);
}
}

View File

@ -100,6 +100,58 @@ public class UserRechargeCardsServiceImpl implements IUserRechargeCardsService
return userRechargeCardsMapper.updateUserRechargeCards(userRechargeCards);
}
/**
* 微信支付后修改用户充值卡余额以及订单状态
* @param rechargeCode
* @return
*/
@Override
public int updateUserRechargeWechat(String rechargeCode) {
NgUserRechargeRecords ngUserRechargeRecords=new NgUserRechargeRecords();
ngUserRechargeRecords=userRechargeRecordsMapper.selectNgUserRechargeRecordsByRechargeCode(rechargeCode);//查询订单信息
ngUserRechargeRecords.setStatus(1);//状态更改为已支付
ngUserRechargeRecords.setRechargeCode(rechargeCode);
/* userConsumptionDetails.setCreateTime(DateUtils.getNowDate());
NgUserRechargeRecords ngUserRechargeRecords = NgUserRechargeRecords.builder()
.userId(info.getUserId()).userName(info.getUserName())
.cardNumber(info.getCardNumber()).areaCode(rechargecardUser.getAreacode())
.type(rechargecardUser.getStatus()).amount(rechargecardUser.getNumber())
.balance(info.getBalance()).rechargeTime(DateUtils.getNowDate())
.rechargeCode(null).status(0).serialNumber(null).deviceNumber(null).projectId(null)
.deptId(null)
.areaCode(rechargecardUser.getAreacode())
.build();*/
userRechargeRecordsMapper.updateNgUserRechargeRecordsWechat(ngUserRechargeRecords);
/*RechargecardUser rechargecardUser=new RechargecardUser();
// 计算新的余额
BigDecimal newBalance = rechargecardUser.getAmount().add(info.getBalance());*/
// 更新用户充值卡信息,包括新的余额
// info.setBalance(newBalance);
// info.setUpdateTime(DateUtils.getNowDate());
// info.setAreaCode(String.valueOf(rechargecardUser.getAreaCode()));
/*//构建主题
String topic ="hzlink/147/"+rechargecardUser.getDeviceNumber()+"/cmd/down";
//构建消息
Map<String,Object> param = new HashMap<>();
//远程阀控
param.put("cmd",1000);
Map<String,Object> data = new HashMap<>();
data.put("orderNum", ngUserRechargeRecords.getId());
data.put("cardNum",rechargecardUser.getCardnumber());
data.put("areaCode",rechargecardUser.getAreacode());
data.put("investBalance",rechargecardUser.getAmount().doubleValue());
data.put("investWater",rechargecardUser.getWater());
param.put("data",data);
pubMqttClient.publish(1,true,topic, JSONUtil.toJsonStr(param));*/
// int i = userRechargeCardsMapper.updateUserRechargeCards(info);
return 1;
}
/**
* 批量删除用户充值卡
*

View File

@ -76,6 +76,27 @@
</where>
</select>
<select id="selectNgUserRechargeRecordsByRechargeCode" parameterType="String" resultMap="NgUserRechargeRecordsResult">
<include refid="selectNgUserRechargeRecordsVo"/>
<where>
<if test="cardNumber != null and cardNumber != ''"> card_number = #{cardNumber}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
<if test="areaCode != null and areaCode != ''"> and area_code = #{areaCode}</if>
<if test="type != null "> and type = #{type}</if>
<if test="amount != null "> and amount = #{amount}</if>
<if test="balance != null "> and balance = #{balance}</if>
<if test="rechargeTime != null "> and recharge_time = #{rechargeTime}</if>
<if test="rechargeCode != null and rechargeCode != ''"> and recharge_code = #{rechargeCode}</if>
<if test="status != null "> and status = #{status}</if>
<if test="serialNumber != null and serialNumber != ''"> and serial_number = #{serialNumber}</if>
<if test="deviceNumber != null and deviceNumber != ''"> and device_number = #{deviceNumber}</if>
<if test="projectId != null "> and project_id = #{projectId}</if>
<if test="deptId != null "> and dept_id = #{deptId}</if>
</where>
</select>
<select id="selectNgUserRechargeRecordsBySerialNumber" parameterType="NgUserRechargeRecords" resultMap="NgUserRechargeRecordsResult">
<include refid="selectNgUserRechargeRecordsVo"/>
<where>
@ -168,6 +189,31 @@
where id = #{id}
</update>
<update id="updateNgUserRechargeRecordsWechat" parameterType="NgUserRechargeRecords">
update ng_user_recharge_records
<trim prefix="SET" suffixOverrides=",">
<if test="userId != null">user_id = #{userId},</if>
<if test="userName != null">user_name = #{userName},</if>
<if test="cardNumber != null and cardNumber != ''">card_number = #{cardNumber},</if>
<if test="areaCode != null">area_code = #{areaCode},</if>
<if test="type != null">type = #{type},</if>
<if test="amount != null">amount = #{amount},</if>
<if test="balance != null">balance = #{balance},</if>
<if test="rechargeTime != null">recharge_time = #{rechargeTime},</if>
<if test="status != null">status = #{status},</if>
<if test="serialNumber != null and serialNumber != ''">serial_number = #{serialNumber},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="deviceNumber != null">device_number = #{deviceNumber},</if>
<if test="projectId != null">project_id = #{projectId},</if>
<if test="deptId != null">dept_id = #{deptId},</if>
</trim>
where recharge_code = #{rechargeCode}
</update>
<delete id="deleteNgUserRechargeRecordsById" parameterType="Long">
delete from ng_user_recharge_records where id = #{id}
</delete>