Commit d5b3927d by huluobin

经营端

parent f48b2f01
......@@ -191,7 +191,6 @@
</dependency>
<!--apache lang 工具包-->
<dependency>
<groupId>org.apache.commons</groupId>
......@@ -254,13 +253,6 @@
<version>1.5.21</version>
</dependency>
<!-- &lt;!&ndash; 自动生成接口文档 &ndash;&gt;-->
<!-- <dependency>-->
<!-- <groupId>io.springfox</groupId>-->
<!-- <artifactId>springfox-swagger-ui</artifactId>-->
<!-- <version>${springfox-swagger-ui.version}</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
......@@ -444,4 +436,5 @@
</resource>
</resources>
</build>
</project>
......@@ -33,4 +33,15 @@ public interface CustomerBalanceService extends IService<CustomerBalance> {
* @return 用户消费记录分页查询结果
*/
IPage<CustomerBalanceRecord> getBalanceRecordCard(Integer customerId, int pageNum, int pageSize);
/**
* <p>
* 会员余额迁移
* </p>
*
* @param sourcePhone
* @param targetPhone
*/
void transferBalance(String sourcePhone, String targetPhone);
}
......@@ -10,6 +10,7 @@ import com.gogirl.application.order.serve.OrderManageService;
import com.gogirl.application.user.customer.CustomerBalanceService;
import com.gogirl.domain.order.serve.OrderManage;
import com.gogirl.domain.store.store.StoreUser;
import com.gogirl.domain.user.customer.Customer;
import com.gogirl.domain.user.customer.CustomerBalance;
import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import com.gogirl.infrastructure.common.exception.ErrorCode;
......@@ -147,4 +148,54 @@ public class CustomerBalanceServiceImpl extends ServiceImpl<CustomerBalanceMappe
}
return page;
}
@Transactional(rollbackFor = Exception.class)
@Override
public void transferBalance(String sourcePhone, String targetPhone) {
Customer sourceCustomer = customerMapper.selectByPhone(sourcePhone);
Customer targetCustomer = customerMapper.selectByPhone(targetPhone);
if (sourceCustomer == null || targetCustomer == null) {
throw new RRException("用户不存在");
}
CustomerBalance sourceCustomerBalance = customerBalanceMapper.getByCustomerId(sourceCustomer.getId());
if (sourceCustomerBalance == null) {
throw new RRException("源用户异常");
}
Integer transferAmount = sourceCustomerBalance.getBalance();
CustomerBalanceRecord sourceCustomerBalanceRecord = new CustomerBalanceRecord();
sourceCustomerBalanceRecord.setCustomerId(sourceCustomer.getId());
sourceCustomerBalanceRecord.setOrderAmount(transferAmount);
sourceCustomerBalanceRecord.setSource(CustomerBalanceRecord.SOURCE_TRANSFER);
sourceCustomerBalanceRecord.setType(CustomerBalanceRecord.TYPE_TRANSFER_OUT);
customerBalanceRecordMapper.insert(sourceCustomerBalanceRecord);
sourceCustomerBalance.setBalance(0);
customerBalanceMapper.updateById(sourceCustomerBalance);
CustomerBalance targetCustomerBalance = customerBalanceMapper.getByCustomerId(targetCustomer.getId());
if (targetCustomerBalance == null) {
targetCustomerBalance = new CustomerBalance();
targetCustomerBalance.setCustomerId(targetCustomer.getId());
customerBalanceMapper.insert(targetCustomerBalance);
}
CustomerBalanceRecord targetCustomerBalanceRecord = new CustomerBalanceRecord();
targetCustomerBalanceRecord.setCustomerId(targetCustomer.getId());
targetCustomerBalanceRecord.setOrderAmount(transferAmount);
targetCustomerBalanceRecord.setSource(CustomerBalanceRecord.SOURCE_TRANSFER);
targetCustomerBalanceRecord.setType(CustomerBalanceRecord.TYPE_TRANSFER_IN);
customerBalanceRecordMapper.insert(targetCustomerBalanceRecord);
targetCustomerBalance.setBalance(targetCustomerBalance.getBalance() + transferAmount);
customerBalanceMapper.updateById(targetCustomerBalance);
}
}
......@@ -3,7 +3,6 @@ package com.gogirl.domain.user.customer;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gogirl.domain.order.serve.OrderManage;
import com.gogirl.domain.store.store.StoreUser;
......@@ -18,24 +17,27 @@ import java.util.Date;
@ApiModel("会员卡消费记录")
@TableName("customer_balance_record")
@Data
@Builder
@AllArgsConstructor
public class CustomerBalanceRecord implements Serializable {
public static final Integer TYPE_MALL_ORDER = 3;
/*类型:1:充值,2:首次充值,3:商城订单扣款:,-1:预约订单扣款*/
/*类型:1:充值,2:首次充值,3:商城订单扣款:,-1:预约订单扣款 4余额迁移*/
public static final Integer TYPE_CHARGE = 1;
public static final Integer TYPE_FIRST_CHARGE = 2;
public static final Integer TYPE_MALL_ORDER_CONSUME = 3;
public static final Integer TYPE_SCHEDULE_ORDER_CONSUME = -1;
public static final Integer TYPE_TRANSFER_IN = 4;
public static final Integer TYPE_TRANSFER_OUT = 5;
/*钱去到哪里了:1:用户端微信支付,2:会员卡收款,3:其他(目前没用到),4:用户端微信支付充值,5:pos收款,6:现金收款,7:大众点评收款,8:微信扫码支付,9:团购,10:免*/
public static final Integer SOURCE_WX = 1;
public static final Integer SOURCE_BALANCE = 2;
public static final Integer SOURCE_OTHER = 3;
/*12余额迁移*/
public static final Integer SOURCE_TRANSFER = 12;
@TableId(type = IdType.AUTO)
private Integer id;
......@@ -64,6 +66,7 @@ public class CustomerBalanceRecord implements Serializable {
private Integer newOrderId;
private Double discount;
@ApiModelProperty("赠送金额")
private Integer bestowAmount;
......
......@@ -6,5 +6,14 @@ import com.gogirl.domain.user.customer.CustomerBalance;
public interface CustomerBalanceMapper extends BaseMapper<CustomerBalance> {
/**
* <p>
* 根据会员id查询会员余额
* </p>
*
* @param customerId 会员Id
* @return
*/
CustomerBalance getByCustomerId(Integer customerId);
}
......@@ -31,4 +31,6 @@ public class AchievementsPersonaResultPageApiRequest implements Serializable {
private Integer page_store_id;
private Integer api_brand_id =1;
}
......@@ -56,5 +56,7 @@ public class GetTechnicianPageRequest implements Serializable {
private Integer page_store_id;
private Integer api_brand_id = 1
}
......@@ -29,10 +29,17 @@
customer_id, balance, current_discount, first_charge_time, update_time, total_charge,
total_bestow, total_expenditure, version, level,discount_rate
</sql>
<select id="selectByCustomerId" resultMap="BaseResultMap" parameterType="java.lang.Integer">
select
<include refid="Base_Column_List"/>
from customer_balance cb
where customer_id = #{customerId,jdbcType=INTEGER}
</select>
<select id="getByCustomerId" resultType="com.gogirl.domain.user.customer.CustomerBalance">
select *
from customer_balance
where customer_id = #{customerId}
</select>
</mapper>
......@@ -12,6 +12,7 @@ import com.gogirl.application.market.timescard.TimesCardUsedRecordService;
import com.gogirl.application.order.member.impl.ChargeOrderServiceImpl;
import com.gogirl.application.order.serve.OrderManageService;
import com.gogirl.application.store.store.StoreTechnicianService;
import com.gogirl.application.user.customer.CustomerBalanceService;
import com.gogirl.domain.common.xcx.GogirlToken;
import com.gogirl.domain.common.xcx.TimeNode;
import com.gogirl.domain.common.xcx.WeekConfig;
......@@ -760,4 +761,8 @@ public class Test {
couponService.sendCoupon(154, 23508);
}
@Resource
CustomerBalanceService customerBalanceService;
}
package com.gogirl.application.user.customer.impl;
import com.gogirl.application.user.customer.CustomerBalanceService;
import lombok.extern.slf4j.Slf4j;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/12 6:01 下午
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
@ActiveProfiles("prod")
public class CustomerBalanceServiceImplTest {
@Resource
CustomerBalanceService customerBalanceService;
@org.junit.Test
public void transferBalance() {
customerBalanceService.transferBalance("18021011577", "18221011577");
customerBalanceService.transferBalance("14714400703", "59347034");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment