修订Oam缺陷
This commit is contained in:
parent
5e0039ea95
commit
8de9bd498f
@ -16,7 +16,7 @@ public enum OrderSource {
|
|||||||
/**
|
/**
|
||||||
* 微信支付
|
* 微信支付
|
||||||
*/
|
*/
|
||||||
EASY_LEARN("easyLearn",0.002);
|
EASY_LEARN("EasyLearn",0.002);
|
||||||
|
|
||||||
OrderSource(String name, Double rate) {
|
OrderSource(String name, Double rate) {
|
||||||
this.rate = rate;
|
this.rate = rate;
|
||||||
|
|||||||
@ -2,8 +2,7 @@ package com.cpop.core.config;
|
|||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.http.client.ClientHttpRequestFactory;
|
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
|
||||||
import org.springframework.http.client.SimpleClientHttpRequestFactory;
|
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -15,18 +14,15 @@ import org.springframework.web.client.RestTemplate;
|
|||||||
public class RestTemplateConfig {
|
public class RestTemplateConfig {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
|
public RestTemplate restTemplate() {
|
||||||
return new RestTemplate(factory);
|
// 创建一个 HttpComponentsClientHttpRequestFactory 客户端请求工厂实例
|
||||||
}
|
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
|
||||||
|
// 设置连接超时时间为 5 秒
|
||||||
@Bean
|
requestFactory.setConnectTimeout(5000);
|
||||||
public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
|
// 设置读取超时时间为 10 秒
|
||||||
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
|
requestFactory.setReadTimeout(10000);
|
||||||
factory.setReadTimeout(5000);
|
// 使用 HttpComponentsClientHttpRequestFactory 客户端请求工厂实例创建 RestTemplate 实例
|
||||||
factory.setConnectTimeout(15000);
|
return new RestTemplate(requestFactory);
|
||||||
// 设置代理
|
|
||||||
//factory.setProxy(null);
|
|
||||||
return factory;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,49 +22,62 @@ public class OncePlaceOrderBo {
|
|||||||
/**
|
/**
|
||||||
* 品牌id
|
* 品牌id
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("品牌id")
|
@NotBlank(message = "品牌id不能为空")
|
||||||
|
@ApiModelProperty(value = "品牌id",required = true)
|
||||||
private String brandCloudId;
|
private String brandCloudId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校区id
|
* 校区id
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("校区id")
|
@NotBlank(message = "校区id不能为空")
|
||||||
|
@ApiModelProperty(value = "校区id",required = true)
|
||||||
private String storeCloudId;
|
private String storeCloudId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 客户名
|
* 客户名
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("客户名")
|
@NotBlank(message = "客户名不能为空")
|
||||||
|
@ApiModelProperty(value = "客户名",required = true)
|
||||||
private String customerName;
|
private String customerName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 客户电话
|
* 客户电话
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("客户电话")
|
@NotBlank(message = "客户电话不能为空")
|
||||||
|
@ApiModelProperty(value = "客户电话",required = true)
|
||||||
private String customerPhone;
|
private String customerPhone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 产品/课卡id
|
* 云id
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("产品/课卡id")
|
@NotBlank(message = "云订单id不能为空")
|
||||||
private String productId;
|
@ApiModelProperty(value = "云订单id",required = true)
|
||||||
|
private String orderCloudId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总金额
|
* 总金额
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("总金额")
|
@NotNull(message = "总金额不能为空")
|
||||||
|
@ApiModelProperty(value = "总金额",required = true)
|
||||||
private BigDecimal totalAmount;
|
private BigDecimal totalAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总支付金额
|
* 总支付金额
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("总支付金额")
|
@NotNull(message = "总支付金额不能为空")
|
||||||
|
@ApiModelProperty(value = "总支付金额",required = true)
|
||||||
private BigDecimal totalPayAmount;
|
private BigDecimal totalPayAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 员工id
|
* 校区/店铺员工云id
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("员工id")
|
@ApiModelProperty("校区/店铺员工云id")
|
||||||
private String staffId;
|
private String storeStaffCloudId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* openId
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("openId")
|
||||||
|
private String openId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -93,9 +93,9 @@ public class EasyLearnController {
|
|||||||
* @param bo 下单请求对象
|
* @param bo 下单请求对象
|
||||||
* @return com.cpop.core.base.R<java.lang.Void>
|
* @return com.cpop.core.base.R<java.lang.Void>
|
||||||
*/
|
*/
|
||||||
@PostMapping("/oncePlaceOrderBo")
|
@PostMapping("/oncePlaceOrder")
|
||||||
@ApiOperation("一次性支付下单")
|
@ApiOperation("一次性支付下单")
|
||||||
public R<Object> oncePlaceOrderBo(@RequestBody @Validated @ApiParam("一次性支付") OncePlaceOrderBo bo) {
|
public R<Object> oncePlaceOrder(@RequestBody @Validated @ApiParam("一次性支付") OncePlaceOrderBo bo) {
|
||||||
return R.ok(easyLearnOrderService.oncePlaceOrderBo(bo));
|
return R.ok(easyLearnOrderService.oncePlaceOrder(bo));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "果酱-放心学回调接口")
|
@Api(tags = "果酱-放心学回调接口")
|
||||||
@RequestMapping("/easyLearn/callBack")
|
@RequestMapping("/easyLearn/callback")
|
||||||
public class EasyLearnCallBackController {
|
public class EasyLearnCallBackController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -29,9 +29,9 @@ public class EasyLearnCallBackController {
|
|||||||
* @param xmlData 数据
|
* @param xmlData 数据
|
||||||
* @return java.lang.String
|
* @return java.lang.String
|
||||||
*/
|
*/
|
||||||
@PostMapping("/notify/order")
|
@PostMapping("/notify/oncePay")
|
||||||
public String parseOrderNotifyResult(@RequestBody String xmlData){
|
public String oncePayResult(@RequestBody String xmlData){
|
||||||
easyLearnOrderService.wxPayNotifyOrder(xmlData);
|
easyLearnOrderService.oncePayResult(xmlData);
|
||||||
return WxPayNotifyResponse.success("成功");
|
return WxPayNotifyResponse.success("成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,21 @@ public class EasyLearnOrder extends BaseEntity implements Serializable {
|
|||||||
@Id
|
@Id
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付状态(0:未支付;1已支付)
|
||||||
|
*/
|
||||||
|
private Integer orderStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 云id
|
||||||
|
*/
|
||||||
|
private String orderCloudId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校区/店铺员工云id
|
||||||
|
*/
|
||||||
|
private String storeStaffCloudId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 外部订单号
|
* 外部订单号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -42,7 +42,7 @@ public interface EasyLearnOrderService extends IService<EasyLearnOrder> {
|
|||||||
* @since 2023/12/21
|
* @since 2023/12/21
|
||||||
* @param xmlData 数据
|
* @param xmlData 数据
|
||||||
*/
|
*/
|
||||||
void wxPayNotifyOrder(String xmlData);
|
void oncePayResult(String xmlData);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 一次性支付下单
|
* 一次性支付下单
|
||||||
@ -50,5 +50,5 @@ public interface EasyLearnOrderService extends IService<EasyLearnOrder> {
|
|||||||
* @since 2023/10/23 12:15
|
* @since 2023/10/23 12:15
|
||||||
* @param bo 下单请求对象
|
* @param bo 下单请求对象
|
||||||
*/
|
*/
|
||||||
Object oncePlaceOrderBo(OncePlaceOrderBo bo);
|
Object oncePlaceOrder(OncePlaceOrderBo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,7 +22,9 @@ import com.cpop.jambox.business.service.BrandExtendService;
|
|||||||
import com.cpop.jambox.business.service.EasyLearnOrderService;
|
import com.cpop.jambox.business.service.EasyLearnOrderService;
|
||||||
import com.cpop.jambox.business.service.StoreExtendService;
|
import com.cpop.jambox.business.service.StoreExtendService;
|
||||||
import com.cpop.jambox.business.vo.EasyLearnPageVo;
|
import com.cpop.jambox.business.vo.EasyLearnPageVo;
|
||||||
|
import com.cpop.jambox.framework.constant.JamboxCloudUrl;
|
||||||
import com.cpop.jambox.framework.constant.JamboxRedisConstant;
|
import com.cpop.jambox.framework.constant.JamboxRedisConstant;
|
||||||
|
import com.cpop.pay.framewok.config.wxPay.WxPayConfiguration;
|
||||||
import com.cpop.pay.framewok.handler.wxPay.WxPayHandler;
|
import com.cpop.pay.framewok.handler.wxPay.WxPayHandler;
|
||||||
import com.cpop.pay.framewok.task.WxPayAsyncTask;
|
import com.cpop.pay.framewok.task.WxPayAsyncTask;
|
||||||
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
|
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
|
||||||
@ -40,6 +42,7 @@ import com.mybatisflex.core.row.Row;
|
|||||||
import com.mybatisflex.core.row.RowUtil;
|
import com.mybatisflex.core.row.RowUtil;
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
@ -59,6 +62,7 @@ import static com.cpop.jambox.business.entity.table.StoreExtendTableDef.STORE_EX
|
|||||||
* @since 2023-12-14
|
* @since 2023-12-14
|
||||||
*/
|
*/
|
||||||
@Service("easyLearnOrderService")
|
@Service("easyLearnOrderService")
|
||||||
|
@Slf4j
|
||||||
public class EasyLearnOrderServiceImpl extends ServiceImpl<EasyLearnOrderMapper, EasyLearnOrder> implements EasyLearnOrderService {
|
public class EasyLearnOrderServiceImpl extends ServiceImpl<EasyLearnOrderMapper, EasyLearnOrder> implements EasyLearnOrderService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -68,9 +72,14 @@ public class EasyLearnOrderServiceImpl extends ServiceImpl<EasyLearnOrderMapper,
|
|||||||
private WxPayAsyncTask wxPayAsyncTask;
|
private WxPayAsyncTask wxPayAsyncTask;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 一次性支付回调地址
|
* 一次性支付回调地址(本地内网穿透)
|
||||||
*/
|
*/
|
||||||
private final String ONCE_PAY_NOTIFY_URL = "https://api.jamboxsys.com/Cpop-Mall/easyLearn/callback/notify/order";
|
private final String ONCE_PAY_DEV_NOTIFY_URL = "https://frp-bid.top:60778/Cpop-Oam/easyLearn/callback/notify/oncePay";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 一次性支付回调地址(测试地址)
|
||||||
|
*/
|
||||||
|
private final String ONCE_PAY_TEST_NOTIFY_URL = "https://test.cpopsz.com/Cpop-Oam/easyLearn/callback/notify/oncePay";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取放心学分页
|
* 获取放心学分页
|
||||||
@ -347,13 +356,13 @@ public class EasyLearnOrderServiceImpl extends ServiceImpl<EasyLearnOrderMapper,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信支付订单通知
|
* 放心学一次性订单通知
|
||||||
* @author DB
|
* @author DB
|
||||||
* @since 2023/12/21
|
* @since 2023/12/21
|
||||||
* @param xmlData 数据
|
* @param xmlData 数据
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void wxPayNotifyOrder(String xmlData) {
|
public void oncePayResult(String xmlData) {
|
||||||
try {
|
try {
|
||||||
WxPayService wxPayService = wxPayHandler.getWxPayService();
|
WxPayService wxPayService = wxPayHandler.getWxPayService();
|
||||||
WxPayOrderNotifyResult notifyResult = wxPayService.parseOrderNotifyResult(xmlData);
|
WxPayOrderNotifyResult notifyResult = wxPayService.parseOrderNotifyResult(xmlData);
|
||||||
@ -361,19 +370,45 @@ public class EasyLearnOrderServiceImpl extends ServiceImpl<EasyLearnOrderMapper,
|
|||||||
throw new ServiceException(notifyResult.getReturnMsg());
|
throw new ServiceException(notifyResult.getReturnMsg());
|
||||||
}
|
}
|
||||||
String orderId = notifyResult.getOutTradeNo();
|
String orderId = notifyResult.getOutTradeNo();
|
||||||
//需要分账
|
|
||||||
if (notifyResult.getTotalFee() >= Math.ceil(1 / OrderSource.MALL.getRate())) {
|
|
||||||
//获取订单信息
|
//获取订单信息
|
||||||
EasyLearnOrder easyLearnOrder = this.getById(orderId);
|
EasyLearnOrder easyLearnOrder = this.getById(orderId);
|
||||||
|
//需要分账
|
||||||
|
String subMchId = wxPayHandler.getSubMchId(easyLearnOrder.getBrandId(), easyLearnOrder.getStoreId());
|
||||||
|
log.info("支付金额:{}", notifyResult.getTotalFee());
|
||||||
|
if (notifyResult.getTotalFee() >= Math.ceil(1 / OrderSource.EASY_LEARN.getRate())) {
|
||||||
//设置子商户
|
//设置子商户
|
||||||
WxPayConfig config = wxPayService.getConfig();
|
WxPayConfig config = wxPayService.getConfig();
|
||||||
config.setSubMchId(wxPayHandler.getSubMchId(easyLearnOrder.getBrandId(), easyLearnOrder.getStoreId()));
|
config.setSubMchId(subMchId);
|
||||||
wxPayAsyncTask.asyncWxPayProfitSharing(orderId, notifyResult, wxPayService, OrderSource.EASY_LEARN);
|
wxPayAsyncTask.asyncWxPayProfitSharing(orderId, notifyResult, wxPayService, OrderSource.EASY_LEARN);
|
||||||
}
|
}
|
||||||
//更新订单
|
//更新订单
|
||||||
this.updateChain().set(EASY_LEARN_ORDER.OUT_ORDER_NO, notifyResult.getTransactionId()).where(EASY_LEARN_ORDER.ID.eq(orderId)).update();
|
this.updateChain().set(EASY_LEARN_ORDER.OUT_ORDER_NO, notifyResult.getTransactionId()).where(EASY_LEARN_ORDER.ID.eq(orderId)).update();
|
||||||
//TODO: 通知波哥办卡
|
//课卡信息
|
||||||
SpringUtils.getBean(RestTemplate.class);
|
JSONObject jsonBody = new JSONObject();
|
||||||
|
jsonBody.put("_type", "addPeriod");
|
||||||
|
//办卡实收金额
|
||||||
|
jsonBody.put("money", easyLearnOrder.getTotalPayAmount());
|
||||||
|
//获取云校区id
|
||||||
|
StoreExtend storeExtend = SpringUtils.getBean(StoreExtendService.class).getOne(QueryWrapper.create().where(STORE_EXTEND.STORE_ID.eq(easyLearnOrder.getStoreId())));
|
||||||
|
//店铺/校区
|
||||||
|
jsonBody.put("storeId", storeExtend.getStoreCloudId());
|
||||||
|
//手机号
|
||||||
|
jsonBody.put("phone", easyLearnOrder.getCustomerPhone());
|
||||||
|
//客户名称
|
||||||
|
jsonBody.put("customerName", easyLearnOrder.getCustomerName());
|
||||||
|
//模板id
|
||||||
|
jsonBody.put("templateId", easyLearnOrder.getOrderCloudId());
|
||||||
|
//订单来源
|
||||||
|
jsonBody.put("orderSource", OrderSource.EASY_LEARN.toString());
|
||||||
|
//订单来源
|
||||||
|
jsonBody.put("subMchId", subMchId);
|
||||||
|
//获取课卡信息
|
||||||
|
JSONObject result = SpringUtils.getBean(RestTemplate.class).postForObject(JamboxCloudUrl.COMMON_CARD_URL, jsonBody, JSONObject.class);
|
||||||
|
if (result == null){
|
||||||
|
throw new ServiceException("放心学一次性支付办卡失败!");
|
||||||
|
}
|
||||||
|
easyLearnOrder.setProductId(result.getString("data")).setOrderStatus(1);
|
||||||
|
this.updateById(easyLearnOrder);
|
||||||
} catch (WxPayException e) {
|
} catch (WxPayException e) {
|
||||||
throw new ServiceException(e.getMessage());
|
throw new ServiceException(e.getMessage());
|
||||||
}
|
}
|
||||||
@ -386,11 +421,17 @@ public class EasyLearnOrderServiceImpl extends ServiceImpl<EasyLearnOrderMapper,
|
|||||||
* @param bo 下单请求对象
|
* @param bo 下单请求对象
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Object oncePlaceOrderBo(OncePlaceOrderBo bo) {
|
public Object oncePlaceOrder(OncePlaceOrderBo bo) {
|
||||||
//获取当前下单用户信息
|
|
||||||
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
|
|
||||||
//分布式锁进行幂等处理
|
//分布式锁进行幂等处理
|
||||||
RedisService redisService = SpringUtils.getBean(RedisService.class);
|
RedisService redisService = SpringUtils.getBean(RedisService.class);
|
||||||
|
String openId;
|
||||||
|
if (StringUtils.isBlank(bo.getOpenId())){
|
||||||
|
//获取当前下单用户信息
|
||||||
|
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
|
||||||
|
openId = loginUserInfo.getString("openId");
|
||||||
|
}else {
|
||||||
|
openId = bo.getOpenId();
|
||||||
|
}
|
||||||
//分布式锁进行幂等处理
|
//分布式锁进行幂等处理
|
||||||
Lock userIdLock = redisService.distributedLock(JamboxRedisConstant.ONCE_PAY_LOCK_USER_PAY + bo.getCustomerPhone());
|
Lock userIdLock = redisService.distributedLock(JamboxRedisConstant.ONCE_PAY_LOCK_USER_PAY + bo.getCustomerPhone());
|
||||||
if (userIdLock.tryLock()) {
|
if (userIdLock.tryLock()) {
|
||||||
@ -399,12 +440,27 @@ public class EasyLearnOrderServiceImpl extends ServiceImpl<EasyLearnOrderMapper,
|
|||||||
BrandExtend brandExtend = SpringUtils.getBean(BrandExtendService.class).queryChain().where(BRAND_EXTEND.BRAND_CLOUD_ID.eq(bo.getBrandCloudId())).one();
|
BrandExtend brandExtend = SpringUtils.getBean(BrandExtendService.class).queryChain().where(BRAND_EXTEND.BRAND_CLOUD_ID.eq(bo.getBrandCloudId())).one();
|
||||||
//获取校区
|
//获取校区
|
||||||
StoreExtend storeExtend = SpringUtils.getBean(StoreExtendService.class).queryChain().where(STORE_EXTEND.STORE_CLOUD_ID.eq(bo.getStoreCloudId())).one();
|
StoreExtend storeExtend = SpringUtils.getBean(StoreExtendService.class).queryChain().where(STORE_EXTEND.STORE_CLOUD_ID.eq(bo.getStoreCloudId())).one();
|
||||||
|
EasyLearnOrder easyLearnOrder = this.getOne(QueryWrapper.create().where(EASY_LEARN_ORDER.ORDER_CLOUD_ID.eq(bo.getOrderCloudId())));
|
||||||
|
if (easyLearnOrder == null) {
|
||||||
//创建订单
|
//创建订单
|
||||||
EasyLearnOrder easyLearnOrder = BeanUtils.mapToClass(bo, EasyLearnOrder.class);
|
easyLearnOrder = BeanUtils.mapToClass(bo, EasyLearnOrder.class);
|
||||||
easyLearnOrder.setOrderType(2).setBrandId(brandExtend.getBrandId()).setStoreId(storeExtend.getStoreId());
|
easyLearnOrder.setOrderType(2).setBrandId(brandExtend.getBrandId()).setStoreId(storeExtend.getStoreId());
|
||||||
this.save(easyLearnOrder);
|
this.save(easyLearnOrder);
|
||||||
|
} else {
|
||||||
|
if (easyLearnOrder.getOrderStatus() == 1){
|
||||||
|
throw new ServiceException("当前订单已支付,请勿重复支付");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String payNotifyUrl;
|
||||||
|
if (StringUtils.equals("prod", SpringUtils.getActiveProfile())) {
|
||||||
|
payNotifyUrl = SpringUtils.getBean(WxPayConfiguration.class).getProperties().getNotifyUrl();
|
||||||
|
} else if (StringUtils.equals("test", SpringUtils.getActiveProfile())){
|
||||||
|
payNotifyUrl = ONCE_PAY_TEST_NOTIFY_URL;
|
||||||
|
} else {
|
||||||
|
payNotifyUrl = ONCE_PAY_DEV_NOTIFY_URL;
|
||||||
|
}
|
||||||
//获取商户信息
|
//获取商户信息
|
||||||
WxPayService wxPayService = wxPayHandler.getWxPayService(null, wxPayHandler.getSubMchId(brandExtend.getBrandId(), storeExtend.getStoreId()), ONCE_PAY_NOTIFY_URL);
|
WxPayService wxPayService = wxPayHandler.getWxPayService(null, wxPayHandler.getSubMchId(brandExtend.getBrandId(), storeExtend.getStoreId()), payNotifyUrl);
|
||||||
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
|
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
|
||||||
//需要分账
|
//需要分账
|
||||||
if (bo.getTotalAmount().scaleByPowerOfTen(2).intValue() >= Math.ceil(1 / OrderSource.EASY_LEARN.getRate())) {
|
if (bo.getTotalAmount().scaleByPowerOfTen(2).intValue() >= Math.ceil(1 / OrderSource.EASY_LEARN.getRate())) {
|
||||||
@ -412,7 +468,7 @@ public class EasyLearnOrderServiceImpl extends ServiceImpl<EasyLearnOrderMapper,
|
|||||||
orderRequest.setProfitSharing("Y");
|
orderRequest.setProfitSharing("Y");
|
||||||
}
|
}
|
||||||
orderRequest.setSpbillCreateIp(IpUtils.getHostIp())
|
orderRequest.setSpbillCreateIp(IpUtils.getHostIp())
|
||||||
.setOpenid(loginUserInfo.getString("openId"))
|
.setOpenid(openId)
|
||||||
//商品描述
|
//商品描述
|
||||||
.setBody("一次性支付")
|
.setBody("一次性支付")
|
||||||
.setOutTradeNo(easyLearnOrder.getId())
|
.setOutTradeNo(easyLearnOrder.getId())
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
wx:
|
wx:
|
||||||
pay:
|
pay:
|
||||||
#支付通知地址
|
#支付通知地址
|
||||||
notify-url: https://api.jamboxsys.com/Cpop-Mall/easyLearn/callback/notify/order
|
notify-url: https://oamapi.cpopsz.com/Cpop-Oam/easyLearn/callback/notify/oncePay
|
||||||
@ -1,11 +1,8 @@
|
|||||||
package com.cpop.mall.web;
|
package com.cpop.mall.web;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cpop.core.utils.SpringUtils;
|
|
||||||
import com.cpop.core.utils.uuid.IdUtils;
|
import com.cpop.core.utils.uuid.IdUtils;
|
||||||
import com.cpop.pay.framewok.config.wxPay.WxPayProperties;
|
import com.cpop.pay.framewok.config.wxPay.WxPayProperties;
|
||||||
import com.cpop.system.business.entity.Brand;
|
|
||||||
import com.cpop.system.business.service.BrandService;
|
|
||||||
import com.github.binarywang.wxpay.bean.profitsharing.ProfitSharingFinishRequest;
|
import com.github.binarywang.wxpay.bean.profitsharing.ProfitSharingFinishRequest;
|
||||||
import com.github.binarywang.wxpay.bean.profitsharing.ProfitSharingQueryRequest;
|
import com.github.binarywang.wxpay.bean.profitsharing.ProfitSharingQueryRequest;
|
||||||
import com.github.binarywang.wxpay.bean.profitsharing.ProfitSharingQueryResult;
|
import com.github.binarywang.wxpay.bean.profitsharing.ProfitSharingQueryResult;
|
||||||
@ -47,7 +44,7 @@ public class CpopWxPayTests {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void refund() throws WxPayException {
|
public void refund() throws WxPayException {
|
||||||
Brand brand = SpringUtils.getBean(BrandService.class).getById("75140168047210496");
|
//Brand brand = SpringUtils.getBean(BrandService.class).getById("75140168047210496");
|
||||||
//Order order = SpringUtils.getBean(OrderService.class).getById("78954327589658624");
|
//Order order = SpringUtils.getBean(OrderService.class).getById("78954327589658624");
|
||||||
WxPayRefundV3Request request = new WxPayRefundV3Request();
|
WxPayRefundV3Request request = new WxPayRefundV3Request();
|
||||||
WxPayRefundV3Request.Amount amount = new WxPayRefundV3Request.Amount();
|
WxPayRefundV3Request.Amount amount = new WxPayRefundV3Request.Amount();
|
||||||
@ -58,14 +55,14 @@ public class CpopWxPayTests {
|
|||||||
.setTotal(refund)
|
.setTotal(refund)
|
||||||
.setCurrency("CNY");
|
.setCurrency("CNY");
|
||||||
request.setSubMchid(wxPayService.getConfig().getSubMchId())
|
request.setSubMchid(wxPayService.getConfig().getSubMchId())
|
||||||
.setTransactionId("4200002028202312069539269015")
|
.setTransactionId("4200002091202312282284574621")
|
||||||
.setOutTradeNo("89825115260416000")
|
.setOutTradeNo("97795855209209856")
|
||||||
//.setTransactionId(order.getOutOrderNo())
|
//.setTransactionId(order.getOutOrderNo())
|
||||||
//.setOutTradeNo(order.getId())
|
//.setOutTradeNo(order.getId())
|
||||||
.setNotifyUrl(wxPayProperties.getNotifyRefund())
|
.setNotifyUrl(wxPayProperties.getNotifyRefund())
|
||||||
.setOutRefundNo(IdUtils.fastSimpleUUID())
|
.setOutRefundNo(IdUtils.fastSimpleUUID())
|
||||||
.setSubMchid("1661807764")
|
.setSubMchid("1661323640")
|
||||||
.setReason("接口测试退款")
|
.setReason("一次性支付退款")
|
||||||
.setAmount(amount);
|
.setAmount(amount);
|
||||||
WxPayRefundV3Result result = wxPayService.refundV3(request);
|
WxPayRefundV3Result result = wxPayService.refundV3(request);
|
||||||
System.out.println(result);
|
System.out.println(result);
|
||||||
@ -83,10 +80,10 @@ public class CpopWxPayTests {
|
|||||||
//ProfitSharing profitSharing = SpringUtils.getBean(ProfitSharingService.class).getById("77860920238751744");
|
//ProfitSharing profitSharing = SpringUtils.getBean(ProfitSharingService.class).getById("77860920238751744");
|
||||||
//profitSharingReturnRequest.setOrderId(profitSharing.getOutProfitSharingId());
|
//profitSharingReturnRequest.setOrderId(profitSharing.getOutProfitSharingId());
|
||||||
//profitSharingReturnRequest.setOutReturnNo(profitSharing.getId());
|
//profitSharingReturnRequest.setOutReturnNo(profitSharing.getId());
|
||||||
profitSharingReturnRequest.setOrderId("4200002013202311178836140400");
|
profitSharingReturnRequest.setOrderId("30000502582023122858656805224");
|
||||||
profitSharingReturnRequest.setOutReturnNo("83058677266882560");
|
profitSharingReturnRequest.setOutReturnNo("97795889866743808");
|
||||||
profitSharingReturnRequest.setDescription("分账退款");
|
profitSharingReturnRequest.setDescription("分账退款");
|
||||||
profitSharingReturnRequest.setSubMchId("1659765332");
|
profitSharingReturnRequest.setSubMchId("1661323640");
|
||||||
profitSharingReturnRequest.setReturnMchid("1618884922");
|
profitSharingReturnRequest.setReturnMchid("1618884922");
|
||||||
//profitSharingReturnRequest.setAmount(profitSharing.getAmount());
|
//profitSharingReturnRequest.setAmount(profitSharing.getAmount());
|
||||||
profitSharingReturnRequest.setAmount(1L);
|
profitSharingReturnRequest.setAmount(1L);
|
||||||
|
|||||||
@ -4,7 +4,7 @@ cpop:
|
|||||||
profile: E:/Cpop/uploadPath
|
profile: E:/Cpop/uploadPath
|
||||||
jwt:
|
jwt:
|
||||||
#白名单
|
#白名单
|
||||||
whiteList: /websocket/*,/login,/getCaptcha,/profile/**,/doc.html,/webjars/**,/favicon.ico,/v2/api-docs/**,/swagger-resources,/wxCp/*,/wxCp/portal/*/registerCode,/sysCommon/miniSyncBrandAndStore
|
whiteList: /websocket/*,/login,/getCaptcha,/profile/**,/doc.html,/webjars/**,/favicon.ico,/v2/api-docs/**,/swagger-resources,/wxCp/*,/wxCp/portal/*/registerCode,/sysCommon/miniSyncBrandAndStore,/easyLearn/callback/**,/easyLearn/oncePlaceOrder
|
||||||
gateway:
|
gateway:
|
||||||
rsa-keypair:
|
rsa-keypair:
|
||||||
# 公钥文件
|
# 公钥文件
|
||||||
@ -38,6 +38,7 @@ spring:
|
|||||||
max-active: 16
|
max-active: 16
|
||||||
#
|
#
|
||||||
max-wait: -1ms
|
max-wait: -1ms
|
||||||
|
client-type: jedis
|
||||||
data:
|
data:
|
||||||
mongodb:
|
mongodb:
|
||||||
host: localhost
|
host: localhost
|
||||||
@ -89,6 +90,12 @@ knife4j:
|
|||||||
api-rule: package
|
api-rule: package
|
||||||
api-rule-resources:
|
api-rule-resources:
|
||||||
- com.cpop.system
|
- com.cpop.system
|
||||||
|
#果酱
|
||||||
|
Jambox:
|
||||||
|
group-name: Jambox
|
||||||
|
api-rule: package
|
||||||
|
api-rule-resources:
|
||||||
|
- com.cpop.jambox
|
||||||
|
|
||||||
#微信
|
#微信
|
||||||
wx:
|
wx:
|
||||||
|
|||||||
@ -4,7 +4,7 @@ cpop:
|
|||||||
profile: /root/cpop-union/cpop-oam/upload
|
profile: /root/cpop-union/cpop-oam/upload
|
||||||
jwt:
|
jwt:
|
||||||
#白名单
|
#白名单
|
||||||
whiteList: /websocket/*,/login,/getCaptcha,/profile/**,/wxOpen/receiveTicket,/wxOpen/*/callback,/wxOpen/bindOpenAccount/*,/wxCp/portal/*,/wxCp/*,/wxCp/portal/*/registerCode,/sysCommon/miniSyncBrandAndStore
|
whiteList: /websocket/*,/login,/getCaptcha,/profile/**,/wxOpen/receiveTicket,/wxOpen/*/callback,/wxOpen/bindOpenAccount/*,/wxCp/portal/*,/wxCp/*,/wxCp/portal/*/registerCode,/sysCommon/miniSyncBrandAndStore,/easyLearn/callback/**,/easyLearn/oncePlaceOrder
|
||||||
#拦截
|
#拦截
|
||||||
gateway:
|
gateway:
|
||||||
rsa-keypair:
|
rsa-keypair:
|
||||||
@ -39,6 +39,7 @@ spring:
|
|||||||
max-active: 16
|
max-active: 16
|
||||||
#
|
#
|
||||||
max-wait: -1ms
|
max-wait: -1ms
|
||||||
|
client-type: jedis
|
||||||
data:
|
data:
|
||||||
mongodb:
|
mongodb:
|
||||||
host: localhost
|
host: localhost
|
||||||
|
|||||||
@ -4,7 +4,7 @@ cpop:
|
|||||||
profile: /root/cpop-union/cpop-mall/upload
|
profile: /root/cpop-union/cpop-mall/upload
|
||||||
jwt:
|
jwt:
|
||||||
#白名单
|
#白名单
|
||||||
whiteList: /websocket/*,/login,/getCaptcha,/profile/**,/doc.html,/webjars/**,/favicon.ico,/v2/api-docs/**,/swagger-resources,/wxOpen/receiveTicket,/wxOpen/*/callback,/wxOpen/bindOpenAccount/*,/wxCp/portal/*,/wxCp/portal/*/registerCode,/wxCp/*,/sysCommon/miniSyncBrandAndStore
|
whiteList: /websocket/*,/login,/getCaptcha,/profile/**,/doc.html,/webjars/**,/favicon.ico,/v2/api-docs/**,/swagger-resources,/wxOpen/receiveTicket,/wxOpen/*/callback,/wxOpen/bindOpenAccount/*,/wxCp/portal/*,/wxCp/portal/*/registerCode,/wxCp/*,/sysCommon/miniSyncBrandAndStore,/easyLearn/callback/**,/easyLearn/oncePlaceOrder
|
||||||
#拦截
|
#拦截
|
||||||
gateway:
|
gateway:
|
||||||
rsa-keypair:
|
rsa-keypair:
|
||||||
@ -43,6 +43,7 @@ spring:
|
|||||||
max-active: 16
|
max-active: 16
|
||||||
#
|
#
|
||||||
max-wait: -1ms
|
max-wait: -1ms
|
||||||
|
client-type: jedis
|
||||||
data:
|
data:
|
||||||
mongodb:
|
mongodb:
|
||||||
host: localhost
|
host: localhost
|
||||||
|
|||||||
@ -31,7 +31,7 @@ spring:
|
|||||||
max-file-size: 1024MB
|
max-file-size: 1024MB
|
||||||
max-request-size: 300MB
|
max-request-size: 300MB
|
||||||
profiles:
|
profiles:
|
||||||
active: dev,core
|
active: dev,core,jambox
|
||||||
datasource:
|
datasource:
|
||||||
type: com.zaxxer.hikari.HikariDataSource
|
type: com.zaxxer.hikari.HikariDataSource
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
|||||||
@ -22,13 +22,18 @@ import com.cpop.system.business.service.*;
|
|||||||
import com.mybatisflex.core.FlexGlobalConfig;
|
import com.mybatisflex.core.FlexGlobalConfig;
|
||||||
import com.mybatisflex.core.datasource.DataSourceKey;
|
import com.mybatisflex.core.datasource.DataSourceKey;
|
||||||
import com.mybatisflex.core.datasource.FlexDataSource;
|
import com.mybatisflex.core.datasource.FlexDataSource;
|
||||||
import com.mybatisflex.core.row.*;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
|
import com.mybatisflex.core.row.Db;
|
||||||
|
import com.mybatisflex.core.row.DbChain;
|
||||||
|
import com.mybatisflex.core.row.Row;
|
||||||
|
import com.mybatisflex.core.row.RowUtil;
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.test.context.ActiveProfiles;
|
import org.springframework.test.context.ActiveProfiles;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -57,11 +62,15 @@ public class CpopImportTests {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void importBrandJson() throws IOException {
|
public void importBrandJson() throws IOException {
|
||||||
String brandFileUrl = "C:\\Users\\Administrator\\Desktop\\brand.json";
|
/*String brandFileUrl = "C:\\Users\\Administrator\\Desktop\\brand.json";
|
||||||
List<String> filterList = new ArrayList<>();
|
List<String> filterList = new ArrayList<>();
|
||||||
filterList.add("b00064a760d0c4f121b0835d09b909ca");
|
filterList.add("b00064a760d0c4f121b0835d09b909ca");
|
||||||
filterList.add("ac1268b164d1d20700080aae1703ecf8");
|
filterList.add("41ae62ef621ee0f909da5583399ff318");
|
||||||
filterList.add("0122a5876468513f0d42569d389e8264");
|
filterList.add("0122a5876468513f0d42569d389e8264");
|
||||||
|
filterList.add("0ab5303b62c68da00d302cc2079b7fbe");
|
||||||
|
filterList.add("41ae62ef6228587e0b430c3a16483a9a");
|
||||||
|
filterList.add("ac1268b164d1d20700080aae1703ecf8");
|
||||||
|
filterList.add("def1da45654259bc090e5054208e9b9c");
|
||||||
List<JsonBrand> jsonBrands = JSONArray.parseArray(readJson(brandFileUrl), JsonBrand.class);
|
List<JsonBrand> jsonBrands = JSONArray.parseArray(readJson(brandFileUrl), JsonBrand.class);
|
||||||
//过滤已存在的品牌
|
//过滤已存在的品牌
|
||||||
List<JsonBrand> filterBrand = jsonBrands.stream().filter(item -> !filterList.contains(item.getBrandCloudId())).collect(Collectors.toList());
|
List<JsonBrand> filterBrand = jsonBrands.stream().filter(item -> !filterList.contains(item.getBrandCloudId())).collect(Collectors.toList());
|
||||||
@ -69,8 +78,7 @@ public class CpopImportTests {
|
|||||||
Map<BrandExtend, Brand> brandJsonBrandMap = new HashMap<>();
|
Map<BrandExtend, Brand> brandJsonBrandMap = new HashMap<>();
|
||||||
filterBrand.forEach(item -> {
|
filterBrand.forEach(item -> {
|
||||||
Brand brand = new Brand();
|
Brand brand = new Brand();
|
||||||
brand.setSourceType(SourceType.JAMBOX.toString())
|
brand.setSourceType(SourceType.JAMBOX.toString()).setBrandName(item.getBrandName());
|
||||||
.setBrandName(item.getBrandName());
|
|
||||||
BrandExtend brandExtend = new BrandExtend();
|
BrandExtend brandExtend = new BrandExtend();
|
||||||
brandExtend.setBrandCloudId(item.getBrandCloudId());
|
brandExtend.setBrandCloudId(item.getBrandCloudId());
|
||||||
brandJsonBrandMap.put(brandExtend, brand);
|
brandJsonBrandMap.put(brandExtend, brand);
|
||||||
@ -80,7 +88,22 @@ public class CpopImportTests {
|
|||||||
brandJsonBrandMap.forEach((key, value) -> {
|
brandJsonBrandMap.forEach((key, value) -> {
|
||||||
key.setBrandId(value.getId());
|
key.setBrandId(value.getId());
|
||||||
});
|
});
|
||||||
SpringUtils.getBean(BrandExtendService.class).saveBatch(brandJsonBrandMap.keySet());
|
SpringUtils.getBean(BrandExtendService.class).saveBatch(brandJsonBrandMap.keySet());*/
|
||||||
|
//更新商户号
|
||||||
|
try {
|
||||||
|
//查询旧表
|
||||||
|
DataSourceKey.use("jambox");
|
||||||
|
List<Row> rowList = DbChain.table("j_merchant_info")
|
||||||
|
.select("jmi.wx_mch_id as wxMchId")
|
||||||
|
.select("tbi.brand_id as brandCloudId")
|
||||||
|
.from("j_merchant_info").as("jmi")
|
||||||
|
.leftJoin("t_brand_info").as("tbi").on("tbi.id = jmi.main_id")
|
||||||
|
.where("jmi.main_type = 1")
|
||||||
|
.list();
|
||||||
|
log.info(JSONArray.toJSONString(rowList));
|
||||||
|
} finally {
|
||||||
|
DataSourceKey.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -92,10 +115,8 @@ public class CpopImportTests {
|
|||||||
@Test
|
@Test
|
||||||
public void importStoreJson() throws IOException {
|
public void importStoreJson() throws IOException {
|
||||||
String storeFileUrl = "C:\\Users\\Administrator\\Desktop\\store.json";
|
String storeFileUrl = "C:\\Users\\Administrator\\Desktop\\store.json";
|
||||||
List<String> filterList = new ArrayList<>();
|
List<String> filterList = Db.selectListByQuery(STORE_EXTEND.getTableName(), QueryWrapper.create().select(STORE_EXTEND.STORE_CLOUD_ID))
|
||||||
filterList.add("b00064a760d0c4f121b0835d09b909ca");
|
.stream().map(item -> item.getString("storeCloudId")).collect(Collectors.toList());
|
||||||
filterList.add("ac1268b164d1d20700080aae1703ecf8");
|
|
||||||
filterList.add("0122a5876468513f0d42569d389e8264");
|
|
||||||
List<JsonStore> jsonStores = JSONArray.parseArray(readJson(storeFileUrl), JsonStore.class);
|
List<JsonStore> jsonStores = JSONArray.parseArray(readJson(storeFileUrl), JsonStore.class);
|
||||||
//过滤已存在的品牌
|
//过滤已存在的品牌
|
||||||
List<JsonStore> filterStore = jsonStores.stream()
|
List<JsonStore> filterStore = jsonStores.stream()
|
||||||
@ -257,8 +278,6 @@ public class CpopImportTests {
|
|||||||
"ness_license_id as licenseCode", "corp_name as licenseUserName", "reg_pic as licensePicUrl")
|
"ness_license_id as licenseCode", "corp_name as licenseUserName", "reg_pic as licensePicUrl")
|
||||||
.where("reg_addr is not null")
|
.where("reg_addr is not null")
|
||||||
.list();
|
.list();
|
||||||
|
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
DataSourceKey.clear();
|
DataSourceKey.clear();
|
||||||
}
|
}
|
||||||
@ -351,7 +370,16 @@ public class CpopImportTests {
|
|||||||
DataSourceKey.clear();
|
DataSourceKey.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
getTestDynamicDataSource();
|
//获取校区
|
||||||
|
Map<String, String> storeMap = SpringUtils.getBean(StoreExtendService.class).list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId));
|
||||||
|
rowList.forEach(item->{
|
||||||
|
item.set("storeId",storeMap.get(item.getString("storeCloudId")));
|
||||||
|
});
|
||||||
|
List<StoreRenew> entityList = RowUtil.toEntityList(rowList, StoreRenew.class);
|
||||||
|
Set<StoreRenew> filterStoreList = entityList.stream().filter(item -> item.getStoreId() != null ).collect(Collectors.toSet());
|
||||||
|
SpringUtils.getBean(StoreRenewService.class).saveBatch(filterStoreList);
|
||||||
|
|
||||||
|
/*getTestDynamicDataSource();
|
||||||
try {
|
try {
|
||||||
DataSourceKey.use("dev");
|
DataSourceKey.use("dev");
|
||||||
//获取校区
|
//获取校区
|
||||||
@ -364,7 +392,7 @@ public class CpopImportTests {
|
|||||||
SpringUtils.getBean(StoreRenewService.class).saveBatch(filterStoreList);
|
SpringUtils.getBean(StoreRenewService.class).saveBatch(filterStoreList);
|
||||||
} finally {
|
} finally {
|
||||||
DataSourceKey.clear();
|
DataSourceKey.clear();
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -391,8 +419,21 @@ public class CpopImportTests {
|
|||||||
} finally {
|
} finally {
|
||||||
DataSourceKey.clear();
|
DataSourceKey.clear();
|
||||||
}
|
}
|
||||||
getTestDynamicDataSource();
|
//获取校区
|
||||||
|
Map<String, String> storeMap = SpringUtils.getBean(StoreExtendService.class).list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId));
|
||||||
|
Map<String, String> brandMap = SpringUtils.getBean(BrandExtendService.class).list().stream().collect(Collectors.toMap(BrandExtend::getBrandCloudId, BrandExtend::getBrandId));
|
||||||
|
rowList.forEach(item->{
|
||||||
|
item.set("orderType",3);
|
||||||
|
item.set("brandId",brandMap.get(item.getString("brandCloudId")));
|
||||||
|
item.set("storeId",storeMap.get(item.getString("storeCloudId")));
|
||||||
|
});
|
||||||
|
|
||||||
|
List<EasyLearnOrder> entityList = RowUtil.toEntityList(rowList, EasyLearnOrder.class);
|
||||||
|
SpringUtils.getBean(EasyLearnOrderService.class).saveBatch(entityList);
|
||||||
|
|
||||||
|
/*getTestDynamicDataSource();
|
||||||
try {
|
try {
|
||||||
|
DataSourceKey.use("dev");
|
||||||
//获取校区
|
//获取校区
|
||||||
Map<String, String> storeMap = SpringUtils.getBean(StoreExtendService.class).list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId));
|
Map<String, String> storeMap = SpringUtils.getBean(StoreExtendService.class).list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId));
|
||||||
Map<String, String> brandMap = SpringUtils.getBean(BrandExtendService.class).list().stream().collect(Collectors.toMap(BrandExtend::getBrandCloudId, BrandExtend::getBrandId));
|
Map<String, String> brandMap = SpringUtils.getBean(BrandExtendService.class).list().stream().collect(Collectors.toMap(BrandExtend::getBrandCloudId, BrandExtend::getBrandId));
|
||||||
@ -406,7 +447,7 @@ public class CpopImportTests {
|
|||||||
SpringUtils.getBean(EasyLearnOrderService.class).saveBatch(entityList);
|
SpringUtils.getBean(EasyLearnOrderService.class).saveBatch(entityList);
|
||||||
}finally {
|
}finally {
|
||||||
DataSourceKey.clear();
|
DataSourceKey.clear();
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -492,13 +533,11 @@ public class CpopImportTests {
|
|||||||
/**
|
/**
|
||||||
* 手机号
|
* 手机号
|
||||||
*/
|
*/
|
||||||
@JSONField(name = "phone")
|
private String phone;
|
||||||
private String phoneNumber;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 姓名
|
* 姓名
|
||||||
*/
|
*/
|
||||||
@JSONField(name = "name")
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -74,8 +74,7 @@ public class StaffBo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 昵称
|
* 昵称
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "昵称不能为空")
|
@ApiModelProperty(value = "昵称")
|
||||||
@ApiModelProperty(value = "昵称",required = true)
|
|
||||||
private String nickName;
|
private String nickName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.cpop.oam.business.vo.BrandManagePageVo;
|
|||||||
import com.cpop.system.business.vo.StoreListByBrandVo;
|
import com.cpop.system.business.vo.StoreListByBrandVo;
|
||||||
import com.mybatisflex.core.paginate.Page;
|
import com.mybatisflex.core.paginate.Page;
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -50,6 +51,7 @@ public class BrandManagerController {
|
|||||||
*/
|
*/
|
||||||
@ApiOperation("查询品牌管理员分页")
|
@ApiOperation("查询品牌管理员分页")
|
||||||
@GetMapping("/getBrandManagePage")
|
@GetMapping("/getBrandManagePage")
|
||||||
|
@PreAuthorize("@aps.hasPermission('brandStore:brandStaff:list')")
|
||||||
public R<Page<BrandManagePageVo>> getBrandManagePage(BrandManagerPageBo bo) {
|
public R<Page<BrandManagePageVo>> getBrandManagePage(BrandManagerPageBo bo) {
|
||||||
Page<BrandManagePageVo> page = brandManageService.getBrandManagerPage(bo);
|
Page<BrandManagePageVo> page = brandManageService.getBrandManagerPage(bo);
|
||||||
return R.ok(page);
|
return R.ok(page);
|
||||||
|
|||||||
@ -2,7 +2,6 @@ package com.cpop.oam.business.dto;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import org.checkerframework.checker.units.qual.C;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author DB
|
* @author DB
|
||||||
@ -26,5 +25,5 @@ public class DataImportParamsDto {
|
|||||||
/**
|
/**
|
||||||
* 是否清空
|
* 是否清空
|
||||||
*/
|
*/
|
||||||
private String emptyTag;
|
private Integer emptyTag;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -106,7 +106,7 @@ public class DataImportServiceImpl extends ServiceImpl<DataImportMapper, DataImp
|
|||||||
public void importNow(DataImport dataImport) {
|
public void importNow(DataImport dataImport) {
|
||||||
//读取数据
|
//读取数据
|
||||||
DataImportParamsDto dataImportParamsDto = new DataImportParamsDto();
|
DataImportParamsDto dataImportParamsDto = new DataImportParamsDto();
|
||||||
dataImportParamsDto.setFileUrl(dataImport.getFileUrl()).setEmptyTag(dataImport.getIsClear() ? "清空" : "不清空");
|
dataImportParamsDto.setFileUrl(dataImport.getFileUrl()).setEmptyTag(dataImport.getIsClear() ? 1 : 0);
|
||||||
if (SourceType.valueOf(dataImport.getSourceType()) == SourceType.JAMBOX) {
|
if (SourceType.valueOf(dataImport.getSourceType()) == SourceType.JAMBOX) {
|
||||||
StoreExtend storeExtend = SpringUtils.getBean(StoreExtendService.class).queryChain().where(STORE_EXTEND.STORE_ID.eq(dataImport.getStoreId())).one();
|
StoreExtend storeExtend = SpringUtils.getBean(StoreExtendService.class).queryChain().where(STORE_EXTEND.STORE_ID.eq(dataImport.getStoreId())).one();
|
||||||
dataImportParamsDto.setStoreId(storeExtend.getStoreCloudId());
|
dataImportParamsDto.setStoreId(storeExtend.getStoreCloudId());
|
||||||
|
|||||||
@ -1,26 +1,23 @@
|
|||||||
package com.cpop.oam.business.service.impl;
|
package com.cpop.oam.business.service.impl;
|
||||||
|
|
||||||
import com.cpop.api.tencent.wxWork.handler.WebHookSendHandler;
|
import com.cpop.api.tencent.wxWork.handler.WebHookSendHandler;
|
||||||
import com.cpop.core.base.exception.ServiceException;
|
|
||||||
import com.cpop.core.base.table.SysUser;
|
|
||||||
import com.cpop.oam.business.dto.StaffDto;
|
|
||||||
import com.cpop.oam.business.vo.StaffPageVo;
|
|
||||||
import com.cpop.oam.business.vo.StaffVo;
|
|
||||||
import com.cpop.oam.framework.constant.WebHookKeyConstant;
|
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
|
||||||
import com.mybatisflex.core.row.DbChain;
|
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
|
||||||
import com.cpop.common.utils.DateUtils;
|
import com.cpop.common.utils.DateUtils;
|
||||||
import com.cpop.common.utils.StringUtils;
|
import com.cpop.common.utils.StringUtils;
|
||||||
|
import com.cpop.core.base.exception.ServiceException;
|
||||||
import com.cpop.core.utils.SpringUtils;
|
import com.cpop.core.utils.SpringUtils;
|
||||||
import com.cpop.oam.business.bo.DutyBo;
|
import com.cpop.oam.business.bo.DutyBo;
|
||||||
import com.cpop.oam.business.bo.DutyListBo;
|
import com.cpop.oam.business.bo.DutyListBo;
|
||||||
|
import com.cpop.oam.business.dto.StaffDto;
|
||||||
import com.cpop.oam.business.entity.Duty;
|
import com.cpop.oam.business.entity.Duty;
|
||||||
import com.cpop.oam.business.entity.Staff;
|
import com.cpop.oam.business.entity.Staff;
|
||||||
import com.cpop.oam.business.mapper.DutyMapper;
|
import com.cpop.oam.business.mapper.DutyMapper;
|
||||||
import com.cpop.oam.business.service.DutyService;
|
import com.cpop.oam.business.service.DutyService;
|
||||||
import com.cpop.oam.business.service.StaffService;
|
import com.cpop.oam.business.service.StaffService;
|
||||||
import com.cpop.oam.business.vo.DutyListVo;
|
import com.cpop.oam.business.vo.DutyListVo;
|
||||||
|
import com.cpop.oam.framework.constant.WebHookKeyConstant;
|
||||||
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
|
import com.mybatisflex.core.row.DbChain;
|
||||||
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -148,6 +145,7 @@ public class DutyServiceImpl extends ServiceImpl<DutyMapper, Duty> implements Du
|
|||||||
LocalDate now = LocalDate.now();
|
LocalDate now = LocalDate.now();
|
||||||
//获取当天值班员工
|
//获取当天值班员工
|
||||||
Duty one = this.queryChain().where(DUTY.DUTY_DATE.eq(now)).one();
|
Duty one = this.queryChain().where(DUTY.DUTY_DATE.eq(now)).one();
|
||||||
|
if (one != null){
|
||||||
//获取当天技术值班人员
|
//获取当天技术值班人员
|
||||||
StaffDto staff = DbChain.table(SYS_USER).select(SYS_USER.PHONE_NUMBER, STAFF.NAME).from(SYS_USER)
|
StaffDto staff = DbChain.table(SYS_USER).select(SYS_USER.PHONE_NUMBER, STAFF.NAME).from(SYS_USER)
|
||||||
.leftJoin(STAFF).on(STAFF.USER_ID.eq(SYS_USER.ID))
|
.leftJoin(STAFF).on(STAFF.USER_ID.eq(SYS_USER.ID))
|
||||||
@ -162,3 +160,4 @@ public class DutyServiceImpl extends ServiceImpl<DutyMapper, Duty> implements Du
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -78,7 +78,8 @@ public class FinanceReimburseServiceImpl extends ServiceImpl<FinanceReimburseMap
|
|||||||
//用户id
|
//用户id
|
||||||
.where(SYS_USER.ID.eq(loginUser.getUserId()))
|
.where(SYS_USER.ID.eq(loginUser.getUserId()))
|
||||||
//类型
|
//类型
|
||||||
.and(FINANCE_REIMBURSE.TYPE_ID.eq(bo.getTypeId())),
|
.and(FINANCE_REIMBURSE.TYPE_ID.eq(bo.getTypeId()))
|
||||||
|
.orderBy(FINANCE_REIMBURSE.UPDATE_TIME.desc()),
|
||||||
FinanceReimbursePageVo.class);
|
FinanceReimbursePageVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,7 +124,7 @@ public class FinanceReimburseServiceImpl extends ServiceImpl<FinanceReimburseMap
|
|||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
List<FinanceReimburseStage> financeReimburseStages = new ArrayList<>();
|
List<FinanceReimburseStage> financeReimburseStages = new ArrayList<>();
|
||||||
//审批批量转下款
|
//审批批量转下款
|
||||||
if (list.get(0).getStatus() == 1) {
|
if (list.get(0).getStatus() == 0) {
|
||||||
Map<String, FinanceReimburse> idToPrice = list.stream().collect(Collectors.toMap(FinanceReimburse::getId, item->item));
|
Map<String, FinanceReimburse> idToPrice = list.stream().collect(Collectors.toMap(FinanceReimburse::getId, item->item));
|
||||||
list.forEach(item -> {
|
list.forEach(item -> {
|
||||||
FinanceReimburseStage entity = new FinanceReimburseStage();
|
FinanceReimburseStage entity = new FinanceReimburseStage();
|
||||||
@ -138,12 +139,14 @@ public class FinanceReimburseServiceImpl extends ServiceImpl<FinanceReimburseMap
|
|||||||
.where(FINANCE_REIMBURSE_STAGE.FINANCE_REIMBURSE_ID.in(finishReimburseIds)).list()
|
.where(FINANCE_REIMBURSE_STAGE.FINANCE_REIMBURSE_ID.in(finishReimburseIds)).list()
|
||||||
.stream().collect(Collectors.groupingBy(FinanceReimburseStage::getFinanceReimburseId));
|
.stream().collect(Collectors.groupingBy(FinanceReimburseStage::getFinanceReimburseId));
|
||||||
list.forEach(item -> {
|
list.forEach(item -> {
|
||||||
|
FinanceReimburseStage entity = new FinanceReimburseStage();
|
||||||
if (stageMap.get(item.getId()) != null) {
|
if (stageMap.get(item.getId()) != null) {
|
||||||
//减去已下发的
|
//减去已下发的
|
||||||
FinanceReimburseStage entity = new FinanceReimburseStage();
|
|
||||||
entity.setStageAmount(item.getPrice().subtract(stageMap.get(item.getId()).stream().map(FinanceReimburseStage::getStageAmount).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
entity.setStageAmount(item.getPrice().subtract(stageMap.get(item.getId()).stream().map(FinanceReimburseStage::getStageAmount).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
||||||
item.setStatus(2);
|
} else {
|
||||||
|
entity.setFinanceReimburseId(item.getId()).setPaymentTime(now).setStageAmount(item.getPrice());
|
||||||
}
|
}
|
||||||
|
item.setStatus(2);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//批量修改
|
//批量修改
|
||||||
@ -193,11 +196,11 @@ public class FinanceReimburseServiceImpl extends ServiceImpl<FinanceReimburseMap
|
|||||||
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
|
JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo();
|
||||||
List<FinanceReimburse> list = this.list(QueryWrapper.create()
|
List<FinanceReimburse> list = this.list(QueryWrapper.create()
|
||||||
.where(FINANCE_REIMBURSE.STAFF_ID.eq(loginUserInfo.getString("id")))
|
.where(FINANCE_REIMBURSE.STAFF_ID.eq(loginUserInfo.getString("id")))
|
||||||
.and(FINANCE_REIMBURSE.STATUS.ne(4)));
|
.and(FINANCE_REIMBURSE.STATUS.ne(-1)));
|
||||||
//统计
|
//统计
|
||||||
ReimbursePersonStatisticVo vo = new ReimbursePersonStatisticVo();
|
ReimbursePersonStatisticVo vo = new ReimbursePersonStatisticVo();
|
||||||
vo.setUnPay(list.stream().filter(s -> s.getStatus() != 3).map(FinanceReimburse::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
|
vo.setUnPay(list.stream().filter(s -> s.getStatus() != 2).map(FinanceReimburse::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
vo.setHavePay(list.stream().filter(s -> s.getStatus() == 3).map(FinanceReimburse::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
|
vo.setHavePay(list.stream().filter(s -> s.getStatus() == 2).map(FinanceReimburse::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -479,7 +479,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|||||||
TaskStaffGroupService taskStaffGroupService = SpringUtils.getBean(TaskStaffGroupService.class);
|
TaskStaffGroupService taskStaffGroupService = SpringUtils.getBean(TaskStaffGroupService.class);
|
||||||
List<TaskStaffGroup> taskStaffGroups = taskStaffGroupService.queryChain().where(TASK_STAFF_GROUP.TASK_ID.eq(taskId)).list();
|
List<TaskStaffGroup> taskStaffGroups = taskStaffGroupService.queryChain().where(TASK_STAFF_GROUP.TASK_ID.eq(taskId)).list();
|
||||||
//逾期完成3天内只计算有效绩点的80%
|
//逾期完成3天内只计算有效绩点的80%
|
||||||
if (day < 3) {
|
if (day <= 3) {
|
||||||
//3天以上50%
|
//3天以上50%
|
||||||
taskStaffGroups.forEach(item -> {
|
taskStaffGroups.forEach(item -> {
|
||||||
//向下取整
|
//向下取整
|
||||||
|
|||||||
@ -192,7 +192,7 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
|
|||||||
PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
|
PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
|
||||||
return this.mapper.paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()),
|
return this.mapper.paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()),
|
||||||
QueryWrapper.create()
|
QueryWrapper.create()
|
||||||
.select(TASK_WORK_ORDER.FINISH_STAFF_ID, TASK_WORK_ORDER.FINISH_TIME)
|
.select(TASK_WORK_ORDER.ID, TASK_WORK_ORDER.FINISH_STAFF_ID, TASK_WORK_ORDER.FINISH_TIME)
|
||||||
.select(TASK.TASK_CONTENT)
|
.select(TASK.TASK_CONTENT)
|
||||||
.from(TASK_WORK_ORDER)
|
.from(TASK_WORK_ORDER)
|
||||||
.leftJoin(TASK)
|
.leftJoin(TASK)
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -19,6 +18,12 @@ import java.time.LocalDateTime;
|
|||||||
@ApiModel(value = "TaskWorkOrderPageVo对象", description = "任务-工单-记录")
|
@ApiModel(value = "TaskWorkOrderPageVo对象", description = "任务-工单-记录")
|
||||||
public class TaskWorkOrderPageVo {
|
public class TaskWorkOrderPageVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单id
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("工单id")
|
||||||
|
private String id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务内容
|
* 任务内容
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import com.cpop.system.business.bo.StorePageBo;
|
|||||||
import com.cpop.system.business.vo.StorePageVo;
|
import com.cpop.system.business.vo.StorePageVo;
|
||||||
import com.mybatisflex.core.paginate.Page;
|
import com.mybatisflex.core.paginate.Page;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -33,6 +34,7 @@ public class StoreController {
|
|||||||
* @Author Administrator
|
* @Author Administrator
|
||||||
* @Date: 2023/6/7 0007 10:18
|
* @Date: 2023/6/7 0007 10:18
|
||||||
*/
|
*/
|
||||||
|
@PreAuthorize("@aps.hasPermission('brandStore:store:list')")
|
||||||
@ApiOperation("查询校区分页列表")
|
@ApiOperation("查询校区分页列表")
|
||||||
@GetMapping("/getStorePage")
|
@GetMapping("/getStorePage")
|
||||||
public R<Page<StorePageVo>> getStorePage(StorePageBo bo) {
|
public R<Page<StorePageVo>> getStorePage(StorePageBo bo) {
|
||||||
|
|||||||
@ -6,20 +6,19 @@ import com.cpop.system.business.bo.StoreRenewPageBo;
|
|||||||
import com.cpop.system.business.bo.StoreRenewXmlBo;
|
import com.cpop.system.business.bo.StoreRenewXmlBo;
|
||||||
import com.cpop.system.business.bo.StoreRunOffBo;
|
import com.cpop.system.business.bo.StoreRunOffBo;
|
||||||
import com.cpop.system.business.dto.StoreRenewDto;
|
import com.cpop.system.business.dto.StoreRenewDto;
|
||||||
|
import com.cpop.system.business.service.StoreSignService;
|
||||||
import com.cpop.system.business.vo.StoreRenewPageVo;
|
import com.cpop.system.business.vo.StoreRenewPageVo;
|
||||||
import com.mybatisflex.core.paginate.Page;
|
import com.mybatisflex.core.paginate.Page;
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import com.cpop.system.business.service.StoreSignService;
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校区-签约表 控制层。
|
* 校区-签约表 控制层。
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.cpop.system.business.service.impl;
|
package com.cpop.system.business.service.impl;
|
||||||
|
|
||||||
|
import com.cpop.common.utils.StringUtils;
|
||||||
import com.cpop.core.base.entity.PageDomain;
|
import com.cpop.core.base.entity.PageDomain;
|
||||||
import com.cpop.core.utils.SpringUtils;
|
import com.cpop.core.utils.SpringUtils;
|
||||||
import com.cpop.core.utils.sql.SqlUtils;
|
import com.cpop.core.utils.sql.SqlUtils;
|
||||||
@ -46,6 +47,12 @@ public class StoreSignServiceImpl extends ServiceImpl<StoreSignMapper, StoreSign
|
|||||||
public Page<StoreRenewPageVo> getStoreRenewPage(StoreRenewPageBo bo) {
|
public Page<StoreRenewPageVo> getStoreRenewPage(StoreRenewPageBo bo) {
|
||||||
PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
|
PageDomain pageDomain = SqlUtils.getInstance().getPageDomain();
|
||||||
QueryWrapper queryWrapper = QueryWrapper.create();
|
QueryWrapper queryWrapper = QueryWrapper.create();
|
||||||
|
if (StringUtils.isNotBlank(bo.getAddrOrName())){
|
||||||
|
queryWrapper.and(STORE_LICENSE.LICENSE_ADDR.like(bo.getAddrOrName()).or(STORE_LICENSE.LICENSE_NAME.like(bo.getAddrOrName())));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(bo.getBrandOrStore())){
|
||||||
|
queryWrapper.and(BRAND.BRAND_NAME.like(bo.getBrandOrStore()).or(STORE.STORE_NAME.like(bo.getBrandOrStore())));
|
||||||
|
}
|
||||||
switch (bo.getRenewStatus()){
|
switch (bo.getRenewStatus()){
|
||||||
//待续费
|
//待续费
|
||||||
case 0:
|
case 0:
|
||||||
@ -69,9 +76,7 @@ public class StoreSignServiceImpl extends ServiceImpl<StoreSignMapper, StoreSign
|
|||||||
.leftJoin(BRAND).on(BRAND.ID.eq(STORE.BRAND_ID))
|
.leftJoin(BRAND).on(BRAND.ID.eq(STORE.BRAND_ID))
|
||||||
.leftJoin(STORE_LICENSE).on(STORE_LICENSE.STORE_ID.eq(STORE.ID))
|
.leftJoin(STORE_LICENSE).on(STORE_LICENSE.STORE_ID.eq(STORE.ID))
|
||||||
.leftJoin(STORE_SIGN).on(STORE_SIGN.STORE_ID.eq(STORE.ID))
|
.leftJoin(STORE_SIGN).on(STORE_SIGN.STORE_ID.eq(STORE.ID))
|
||||||
.leftJoin("cp_oam_staff").as("cos").on("`cos`.`id` = cp_sys_store_renew.renew_staff_id")
|
.leftJoin("cp_oam_staff").as("cos").on("`cos`.`id` = cp_sys_store_renew.renew_staff_id"),
|
||||||
.and(BRAND.BRAND_NAME.like(bo.getBrandOrStore()).or(STORE.STORE_NAME.like(bo.getBrandOrStore())))
|
|
||||||
.and(STORE_LICENSE.LICENSE_ADDR.like(bo.getAddrOrName()).or(STORE_LICENSE.LICENSE_NAME.like(bo.getAddrOrName()))),
|
|
||||||
StoreRenewPageVo.class);
|
StoreRenewPageVo.class);
|
||||||
//已流失
|
//已流失
|
||||||
default:
|
default:
|
||||||
@ -89,12 +94,10 @@ public class StoreSignServiceImpl extends ServiceImpl<StoreSignMapper, StoreSign
|
|||||||
.leftJoin(BRAND).on(BRAND.ID.eq(STORE.BRAND_ID))
|
.leftJoin(BRAND).on(BRAND.ID.eq(STORE.BRAND_ID))
|
||||||
.leftJoin(STORE_LICENSE).on(STORE_LICENSE.STORE_ID.eq(STORE.ID))
|
.leftJoin(STORE_LICENSE).on(STORE_LICENSE.STORE_ID.eq(STORE.ID))
|
||||||
.leftJoin(STORE_RENEW).on(STORE_RENEW.STORE_ID.eq(STORE.ID))
|
.leftJoin(STORE_RENEW).on(STORE_RENEW.STORE_ID.eq(STORE.ID))
|
||||||
.leftJoin("cp_oam_staff").as("cos").on("`cos`.`id` = `cp_sys_store_renew`.`renew_staff_id`")
|
.leftJoin("cp_oam_staff").as("cos").on("`cos`.`id` = `cp_sys_store_renew`.`renew_staff_id`"),
|
||||||
.and(BRAND.BRAND_NAME.like(bo.getBrandOrStore()).or(STORE.STORE_NAME.like(bo.getBrandOrStore())))
|
|
||||||
.and(STORE_LICENSE.LICENSE_ADDR.like(bo.getAddrOrName()).or(STORE_LICENSE.LICENSE_NAME.like(bo.getAddrOrName()))),
|
|
||||||
StoreRenewPageVo.class,
|
StoreRenewPageVo.class,
|
||||||
//子查询
|
//子查询
|
||||||
item -> item.field(StoreRenewPageVo::getLastUpdateUserId)
|
item -> item.field(StoreRenewPageVo::getLastUpdateStaffName)
|
||||||
.queryWrapper(updateStaff -> queryChain()
|
.queryWrapper(updateStaff -> queryChain()
|
||||||
.select("name")
|
.select("name")
|
||||||
.from("cp_oam_staff")
|
.from("cp_oam_staff")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user