Merge branch 'master' of https://e.coding.net/g-cphe0354/shouyinjixitong/cashier-client
This commit is contained in:
@@ -20,4 +20,5 @@ public interface TbUserInfoMapper {
|
|||||||
int updateByPrimaryKey(TbUserInfo record);
|
int updateByPrimaryKey(TbUserInfo record);
|
||||||
|
|
||||||
TbUserInfo selectByCardNo(String cardNo);
|
TbUserInfo selectByCardNo(String cardNo);
|
||||||
|
TbUserInfo selectByPhone(String phone);
|
||||||
}
|
}
|
||||||
@@ -24,6 +24,10 @@ public class TbGroupOrderCoupon implements Serializable {
|
|||||||
* 团购卷码
|
* 团购卷码
|
||||||
*/
|
*/
|
||||||
private String couponNo;
|
private String couponNo;
|
||||||
|
/**
|
||||||
|
* 退款订单号
|
||||||
|
*/
|
||||||
|
private String mchRefundNo;
|
||||||
/**
|
/**
|
||||||
* 是否已退款
|
* 是否已退款
|
||||||
* 0:否
|
* 0:否
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import com.chaozhanggui.system.cashierservice.util.SnowFlakeUtil;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
@@ -41,6 +42,9 @@ public class MemberService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
TbShopUserMapper tbShopUserMapper;
|
TbShopUserMapper tbShopUserMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
TbUserInfoMapper tbUserInfoMapper;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
TbMemberInMapper tbMemberInMapper;
|
TbMemberInMapper tbMemberInMapper;
|
||||||
@@ -122,8 +126,11 @@ public class MemberService {
|
|||||||
tbShopUserMapper.updateByPrimaryKeySelective(tbShopUser);
|
tbShopUserMapper.updateByPrimaryKeySelective(tbShopUser);
|
||||||
return Result.success(CodeEnum.SUCCESS);
|
return Result.success(CodeEnum.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
TbShopUser tbShopUser = new TbShopUser();
|
TbShopUser tbShopUser = new TbShopUser();
|
||||||
|
TbUserInfo tbUserInfo = tbUserInfoMapper.selectByPhone(phone);
|
||||||
|
if(tbUserInfo!=null){
|
||||||
|
tbShopUser.setUserId(tbUserInfo.getId().toString());
|
||||||
|
}
|
||||||
tbShopUser.setAmount(BigDecimal.ZERO);
|
tbShopUser.setAmount(BigDecimal.ZERO);
|
||||||
tbShopUser.setCreditAmount(BigDecimal.ZERO);
|
tbShopUser.setCreditAmount(BigDecimal.ZERO);
|
||||||
tbShopUser.setConsumeAmount(BigDecimal.ZERO);
|
tbShopUser.setConsumeAmount(BigDecimal.ZERO);
|
||||||
@@ -537,6 +544,12 @@ public class MemberService {
|
|||||||
|
|
||||||
shopUser.setAmount(shopUser.getAmount().add(amount));
|
shopUser.setAmount(shopUser.getAmount().add(amount));
|
||||||
shopUser.setUpdatedAt(System.currentTimeMillis());
|
shopUser.setUpdatedAt(System.currentTimeMillis());
|
||||||
|
if (StringUtils.isBlank(shopUser.getUserId())) {
|
||||||
|
TbUserInfo tbUserInfo = tbUserInfoMapper.selectByPhone(shopUser.getTelephone());
|
||||||
|
if (tbUserInfo != null) {
|
||||||
|
shopUser.setUserId(tbUserInfo.getId().toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
tbShopUserMapper.updateByPrimaryKeySelective(shopUser);
|
tbShopUserMapper.updateByPrimaryKeySelective(shopUser);
|
||||||
|
|
||||||
TbShopUserFlow flow = new TbShopUserFlow();
|
TbShopUserFlow flow = new TbShopUserFlow();
|
||||||
|
|||||||
@@ -556,12 +556,12 @@ public class PayService {
|
|||||||
return Result.fail(CodeEnum.MEMBERNOEXIST);
|
return Result.fail(CodeEnum.MEMBERNOEXIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (N.gt(orderInfo.getPayAmount(), user.getAmount())) {
|
if (N.gt(orderInfo.getOrderAmount(), user.getAmount())) {
|
||||||
return Result.fail(CodeEnum.MEMBERINSUFFICIENTFUNDS);
|
return Result.fail(CodeEnum.MEMBERINSUFFICIENTFUNDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
user.setAmount(user.getAmount().subtract(orderInfo.getOrderAmount()));
|
user.setAmount(user.getAmount().subtract(orderInfo.getOrderAmount()));
|
||||||
user.setConsumeAmount(user.getConsumeAmount().add(orderInfo.getPayAmount()));
|
user.setConsumeAmount(user.getConsumeAmount().add(orderInfo.getOrderAmount()));
|
||||||
user.setConsumeNumber(user.getConsumeNumber() + 1);
|
user.setConsumeNumber(user.getConsumeNumber() + 1);
|
||||||
user.setUpdatedAt(System.currentTimeMillis());
|
user.setUpdatedAt(System.currentTimeMillis());
|
||||||
tbShopUserMapper.updateByPrimaryKeySelective(user);
|
tbShopUserMapper.updateByPrimaryKeySelective(user);
|
||||||
@@ -1093,6 +1093,53 @@ public class PayService {
|
|||||||
if (param.getNum() > tbGroupOrderCoupons.size()) {
|
if (param.getNum() > tbGroupOrderCoupons.size()) {
|
||||||
return Result.fail("可退数量不足");
|
return Result.fail("可退数量不足");
|
||||||
}
|
}
|
||||||
|
if(groupOrderInfo.getPayType().equals("deposit")){
|
||||||
|
TbShopUser user= tbShopUserMapper.selectByUserIdAndShopId(groupOrderInfo.getUserId().toString(),groupOrderInfo.getShopId().toString());
|
||||||
|
if(ObjectUtil.isNull(user)||ObjectUtil.isEmpty(user)){
|
||||||
|
return Result.fail(ACCOUNTEIXST);
|
||||||
|
}
|
||||||
|
user.setAmount(user.getAmount().add(param.getRefundAmount().setScale(2, RoundingMode.DOWN)));
|
||||||
|
user.setConsumeAmount(user.getConsumeAmount().subtract(param.getRefundAmount().setScale(2, RoundingMode.DOWN)));
|
||||||
|
user.setUpdatedAt(System.currentTimeMillis());
|
||||||
|
tbShopUserMapper.updateByPrimaryKeySelective(user);
|
||||||
|
|
||||||
|
TbShopUserFlow flow = new TbShopUserFlow();
|
||||||
|
flow.setShopUserId(user.getId());
|
||||||
|
flow.setBizCode("returnGroupOrder");
|
||||||
|
flow.setBizName("会员储值卡退款");
|
||||||
|
flow.setAmount(param.getRefundAmount());
|
||||||
|
flow.setBalance(user.getAmount());
|
||||||
|
flow.setCreateTime(new Date());
|
||||||
|
tbShopUserFlowMapper.insert(flow);
|
||||||
|
}else {
|
||||||
|
TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(groupOrderInfo.getMerchantId());
|
||||||
|
MsgException.checkNull(thirdApply, "支付参数配置错误");
|
||||||
|
|
||||||
|
// TbOrderPayment payment= tbOrderPaymentMapper.selectByOrderId(groupOrderInfo.getOrderNo());
|
||||||
|
PublicResp<OrderReturnResp> publicResp = thirdPayService.returnOrder(
|
||||||
|
url,
|
||||||
|
thirdApply.getAppId(),
|
||||||
|
// groupOrderInfo.getOrderNo(),
|
||||||
|
"GPR"+DateUtils.getSsdfTimes(),
|
||||||
|
groupOrderInfo.getPayOrderNo(),
|
||||||
|
null,
|
||||||
|
"团购卷订单退款",
|
||||||
|
param.getRefundAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(),
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
thirdApply.getAppToken());
|
||||||
|
if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) {
|
||||||
|
GroupOrderReturnResp returnInfo = com.chaozhanggui.system.cashierservice.util.JSONUtil.parseJSONStr2T(publicResp.getBizData(), GroupOrderReturnResp.class);
|
||||||
|
if ("000000".equals(publicResp.getCode())) {
|
||||||
|
//TRADE_REFUND
|
||||||
|
if (!"SUCCESS".equals(returnInfo.getState()) && !"TRADE_SUCCESS".equals(returnInfo.getState()) && !returnInfo.getState().equals("ING")) {
|
||||||
|
return Result.fail("退款渠道调用失败,"+returnInfo.getNote());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return Result.fail("退款渠道调用失败,"+publicResp.getMsg());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
for (int i = 0; i < param.getNum(); i++) {
|
for (int i = 0; i < param.getNum(); i++) {
|
||||||
TbGroupOrderCoupon coupon = tbGroupOrderCoupons.get(i);
|
TbGroupOrderCoupon coupon = tbGroupOrderCoupons.get(i);
|
||||||
coupon.setIsRefund(1);
|
coupon.setIsRefund(1);
|
||||||
@@ -1101,32 +1148,6 @@ public class PayService {
|
|||||||
coupon.setRefundReason(param.getRefundReason());
|
coupon.setRefundReason(param.getRefundReason());
|
||||||
couponMapper.update(coupon);
|
couponMapper.update(coupon);
|
||||||
}
|
}
|
||||||
TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(groupOrderInfo.getMerchantId());
|
|
||||||
MsgException.checkNull(thirdApply, "支付参数配置错误");
|
|
||||||
|
|
||||||
TbOrderPayment payment= tbOrderPaymentMapper.selectByOrderId(param.getOrderId()+"");
|
|
||||||
PublicResp<OrderReturnResp> publicResp = thirdPayService.returnOrder(
|
|
||||||
url,
|
|
||||||
thirdApply.getAppId(),
|
|
||||||
groupOrderInfo.getOrderNo(),
|
|
||||||
payment.getTradeNumber(),
|
|
||||||
null,
|
|
||||||
"团购卷订单退款",
|
|
||||||
param.getRefundAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(),
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
thirdApply.getAppToken());
|
|
||||||
if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) {
|
|
||||||
GroupOrderReturnResp returnInfo = com.chaozhanggui.system.cashierservice.util.JSONUtil.parseJSONStr2T(publicResp.getBizData(), GroupOrderReturnResp.class);
|
|
||||||
if ("000000".equals(publicResp.getCode())) {
|
|
||||||
//TRADE_REFUND
|
|
||||||
if (!"SUCCESS".equals(returnInfo.getState()) && !"TRADE_SUCCESS".equals(returnInfo.getState()) && !returnInfo.getState().equals("ING")) {
|
|
||||||
return Result.fail("退款渠道调用失败,"+returnInfo.getNote());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return Result.fail("退款渠道调用失败:" + publicResp.getMsg());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
groupOrderInfo.setRefundNumber(groupOrderInfo.getRefundNumber() + param.getNum());
|
groupOrderInfo.setRefundNumber(groupOrderInfo.getRefundNumber() + param.getNum());
|
||||||
if (groupOrderInfo.getRefundAmount() == null) {
|
if (groupOrderInfo.getRefundAmount() == null) {
|
||||||
groupOrderInfo.setRefundAmount(param.getRefundAmount());
|
groupOrderInfo.setRefundAmount(param.getRefundAmount());
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
<result property="id" column="id" jdbcType="INTEGER"/>
|
<result property="id" column="id" jdbcType="INTEGER"/>
|
||||||
<result property="orderId" column="order_id" jdbcType="INTEGER"/>
|
<result property="orderId" column="order_id" jdbcType="INTEGER"/>
|
||||||
<result property="couponNo" column="coupon_no" jdbcType="VARCHAR"/>
|
<result property="couponNo" column="coupon_no" jdbcType="VARCHAR"/>
|
||||||
|
<result property="mchRefundNo" column="mch_refund_no" jdbcType="VARCHAR"/>
|
||||||
<result property="isRefund" column="is_refund" jdbcType="INTEGER"/>
|
<result property="isRefund" column="is_refund" jdbcType="INTEGER"/>
|
||||||
<result property="refundAmount" column="refund_amount" jdbcType="NUMERIC"/>
|
<result property="refundAmount" column="refund_amount" jdbcType="NUMERIC"/>
|
||||||
<result property="refundReason" column="refund_reason" jdbcType="VARCHAR"/>
|
<result property="refundReason" column="refund_reason" jdbcType="VARCHAR"/>
|
||||||
@@ -14,7 +15,7 @@
|
|||||||
|
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
id
|
id
|
||||||
, order_id, coupon_no, is_refund, refund_amount, refund_reason, refund_desc </sql>
|
, order_id, coupon_no,mch_refund_no, is_refund, refund_amount, refund_reason, refund_desc </sql>
|
||||||
|
|
||||||
<!--查询单个-->
|
<!--查询单个-->
|
||||||
<select id="queryById" resultMap="TbGroupOrderCouponMap">
|
<select id="queryById" resultMap="TbGroupOrderCouponMap">
|
||||||
@@ -59,6 +60,9 @@
|
|||||||
<if test="couponNo != null and couponNo != ''">
|
<if test="couponNo != null and couponNo != ''">
|
||||||
and coupon_no = #{couponNo}
|
and coupon_no = #{couponNo}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="mchRefundNo != null and mchRefundNo != ''">
|
||||||
|
and mch_refund_no = #{mchRefundNo}
|
||||||
|
</if>
|
||||||
<if test="isRefund != null">
|
<if test="isRefund != null">
|
||||||
and is_refund = #{isRefund}
|
and is_refund = #{isRefund}
|
||||||
</if>
|
</if>
|
||||||
@@ -77,15 +81,15 @@
|
|||||||
|
|
||||||
<!--新增所有列-->
|
<!--新增所有列-->
|
||||||
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
|
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
|
||||||
insert into tb_group_order_coupon(order_id, coupon_no, is_refund, refund_amount, refund_reason, refund_desc)
|
insert into tb_group_order_coupon(order_id, coupon_no,mch_refund_no, is_refund, refund_amount, refund_reason, refund_desc)
|
||||||
values (#{orderId}, #{couponNo}, #{isRefund}, #{refundAmount}, #{refundReason}, #{refundDesc})
|
values (#{orderId}, #{couponNo},#{mchRefundNo}, #{isRefund}, #{refundAmount}, #{refundReason}, #{refundDesc})
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
|
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
|
||||||
insert into tb_group_order_coupon(order_id, coupon_no, is_refund, refund_amount, refund_reason, refund_desc)
|
insert into tb_group_order_coupon(order_id, coupon_no,mch_refund_no, is_refund, refund_amount, refund_reason, refund_desc)
|
||||||
values
|
values
|
||||||
<foreach collection="entities" item="entity" separator=",">
|
<foreach collection="entities" item="entity" separator=",">
|
||||||
(#{entity.orderId}, #{entity.couponNo}, #{entity.isRefund}, #{entity.refundAmount}, #{entity.refundReason},
|
(#{entity.orderId}, #{entity.couponNo},#{entity.mchRefundNo} #{entity.isRefund}, #{entity.refundAmount}, #{entity.refundReason},
|
||||||
#{entity.refundDesc})
|
#{entity.refundDesc})
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
@@ -100,6 +104,9 @@
|
|||||||
<if test="couponNo != null and couponNo != ''">
|
<if test="couponNo != null and couponNo != ''">
|
||||||
coupon_no = #{couponNo},
|
coupon_no = #{couponNo},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="mchRefundNo != null and mchRefundNo != ''">
|
||||||
|
mch_refund_no = #{mchRefundNo},
|
||||||
|
</if>
|
||||||
<if test="isRefund != null">
|
<if test="isRefund != null">
|
||||||
is_refund = #{isRefund},
|
is_refund = #{isRefund},
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
@@ -565,6 +565,10 @@
|
|||||||
where id = #{id,jdbcType=INTEGER}
|
where id = #{id,jdbcType=INTEGER}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<select id="selectByPhone" resultMap="BaseResultMap">
|
||||||
|
select * from tb_user_info where telephone=#{phone,jdbcType=VARCHAR}
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="selectByCardNo" resultMap="BaseResultMap">
|
<select id="selectByCardNo" resultMap="BaseResultMap">
|
||||||
select * from tb_user_info where card_no=#{cardNo}
|
select * from tb_user_info where card_no=#{cardNo}
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
Reference in New Issue
Block a user