|
@@ -5,6 +5,7 @@ import com.demo.wjj.bo.CreateOrderResult;
|
|
|
import com.demo.wjj.po.DiggerAgent;
|
|
|
import com.demo.wjj.po.DiggerAgentAddress;
|
|
|
import com.demo.wjj.po.IntegralRecord;
|
|
|
+import com.demo.wjj.po.Sale;
|
|
|
import com.demo.wjj.service.*;
|
|
|
import com.demo.wjj.utils.ApiResult;
|
|
|
import com.demo.wjj.utils.ExecuteResult;
|
|
@@ -52,6 +53,8 @@ public class PayforPresentController {
|
|
|
private PresentService presentService;
|
|
|
@Autowired
|
|
|
private AgentService agentService;
|
|
|
+ @Autowired
|
|
|
+ private SaleService saleService;
|
|
|
|
|
|
/**
|
|
|
* 创建礼品支付订单
|
|
@@ -312,4 +315,234 @@ public class PayforPresentController {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 创建销售员礼品支付订单
|
|
|
+ *
|
|
|
+ * @param productId 产品id
|
|
|
+ * @param agentId 商家id
|
|
|
+ * @param openId openId
|
|
|
+ * @param name 联系人姓名
|
|
|
+ * @param mobile 联系人手机
|
|
|
+ * @param tp 是否通票
|
|
|
+ * @param integral 兑换礼品所需积分
|
|
|
+ * @param code 兑换礼品所需金钱
|
|
|
+ * @param presentName 礼品名称
|
|
|
+ * @param address 车商收货人地址
|
|
|
+ * @param province 省
|
|
|
+ * @param city 市
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @PostMapping("/createSaleOrder")
|
|
|
+ public ApiResult createSaleOrder(@RequestParam(required = false) String productId,
|
|
|
+ @RequestParam(required = false) String agentId,
|
|
|
+ @RequestParam(required = false) String openId,
|
|
|
+ @RequestParam(required = false) String name,
|
|
|
+ @RequestParam(required = false) String mobile,
|
|
|
+ @RequestParam(required = false) String tp,
|
|
|
+ @RequestParam(required = false) String integral,
|
|
|
+ @RequestParam(required = false) String code,
|
|
|
+ @RequestParam(required = false) String presentName,
|
|
|
+ @RequestParam(required = false) String address,
|
|
|
+ @RequestParam(required = false) String province,
|
|
|
+ @RequestParam(required = false) String city,
|
|
|
+ @RequestParam(required = false) String district,
|
|
|
+ HttpServletRequest request) {
|
|
|
+
|
|
|
+ LOG.info("调用创建礼品微信支付订单(/pay/createOrder)接口, productId:{}, agentId:{}, openId:{}", productId, agentId, openId);
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(productId)) {
|
|
|
+ LOG.info("productId为空");
|
|
|
+ return ApiResult.createFailure();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(agentId)) {
|
|
|
+ LOG.info("agentId为空");
|
|
|
+ return ApiResult.createFailure();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(openId)) {
|
|
|
+ LOG.info("openId为空");
|
|
|
+ return ApiResult.createFailure();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(name)) {
|
|
|
+ LOG.info("name为空");
|
|
|
+ return ApiResult.createFailure();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(mobile)) {
|
|
|
+ LOG.info("mobile为空");
|
|
|
+ return ApiResult.createFailure();
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(integral)) {
|
|
|
+ LOG.info("integral为空");
|
|
|
+ return ApiResult.createFailure();
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(code)) {
|
|
|
+ LOG.info("code为空");
|
|
|
+ return ApiResult.createFailure();
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 手机端用户不能设置通票 wangqing 201811302208
|
|
|
+ if (StringUtils.isBlank(tp)) {
|
|
|
+ tp = "0";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ final String[] tps = {"1", "0"};
|
|
|
+ if (!ArrayUtils.contains(tps, tp)) {
|
|
|
+ LOG.info("tp值非法, tp:{}", tp);
|
|
|
+ return ApiResult.createFailure();
|
|
|
+ }*/
|
|
|
+ Integer codeNew = Integer.parseInt(code);
|
|
|
+ String addressNew = province + city + district + address;
|
|
|
+
|
|
|
+ if (codeNew == 0) {
|
|
|
+ //DiggerAgent diggerAgent = diggerAgentService.getDiggerAgent(agentId, openId);
|
|
|
+ Sale sale = saleService.getSale(agentId, openId);
|
|
|
+ Integer integralOld = sale.getIntegral();//diggerAgentService.getOne(diggerAgent.getDaId()).getIntegral();
|
|
|
+ String userId = sale.getSaleId();//.getdiggerAgent.getDaId();
|
|
|
+ Integer integralAnd = Integer.parseInt(integral);
|
|
|
+ Integer integralNew = integralOld - integralAnd;
|
|
|
+ //更新车商积分
|
|
|
+ //diggerAgentService.updateIntegral(userId, integralNew);
|
|
|
+ saleService.addIntegral(openId, -integralAnd);
|
|
|
+ IntegralRecord integralRecord = new IntegralRecord();
|
|
|
+ integralRecord.setPresentName(presentName);
|
|
|
+ integralRecord.setUserName(sale.getSaleName());
|
|
|
+ integralRecord.setMemberLevel(sale.getMemberLevel());
|
|
|
+ integralRecord.setPhone(mobile);
|
|
|
+ integralRecord.setAddress(addressNew);
|
|
|
+ Date date = new Date();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String time = sdf.format(date);
|
|
|
+ integralRecord.setExchangeTime(time);
|
|
|
+ integralRecord.setUserId(userId);
|
|
|
+ integralRecord.setIntegral(integralAnd);
|
|
|
+ integralRecord.setPrice(codeNew);
|
|
|
+ integralRecord.setAddId(agentId);
|
|
|
+ integralRecord.setAgentName(agentService.selectInteg(agentId).getAgentName());
|
|
|
+ integralRecord.setImageUrl(presentService.selectPresent(Integer.parseInt(productId)).getImageUrl());
|
|
|
+ integralRecord.setPresentId(Integer.parseInt(productId));
|
|
|
+ integralRecordService.save(integralRecord);
|
|
|
+ Integer presentId = Integer.parseInt(productId);
|
|
|
+ int storeNew;
|
|
|
+ Integer store = (presentService.selectPresent(presentId).getStore()) - 1;
|
|
|
+ if (store > 0) {
|
|
|
+ storeNew = store;
|
|
|
+ } else {
|
|
|
+ storeNew = 0;
|
|
|
+ }
|
|
|
+ presentService.updateStore(presentId, storeNew);
|
|
|
+ Map map = new HashMap();
|
|
|
+ map.put("status", "0");
|
|
|
+ return ApiResult.createSuccess(map);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ //DiggerAgent diggerAgent = diggerAgentService.getDiggerAgent(agentId, openId);
|
|
|
+ Sale sale = saleService.getSale(agentId, openId);
|
|
|
+ String diggerAgentId = sale.getSaleId();//diggerAgent.getDaId();
|
|
|
+ List userList = new ArrayList();
|
|
|
+ List<DiggerAgentAddress> list = diggerAgentAddressService.select();
|
|
|
+ if (list != null) {
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ userList.add(list.get(i).getUserId());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (userList != null) {
|
|
|
+ if (userList.contains(diggerAgentId)) {
|
|
|
+ diggerAgentAddressService.delete(diggerAgentId);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ DiggerAgentAddress diggerAgentAddress = new DiggerAgentAddress();
|
|
|
+ diggerAgentAddress.setAddress(addressNew);
|
|
|
+ diggerAgentAddress.setUserId(diggerAgentId);
|
|
|
+ diggerAgentAddress.setUserName(sale.getSaleName());
|
|
|
+ diggerAgentAddress.setPhone(mobile);
|
|
|
+ diggerAgentAddressService.save(diggerAgentAddress);
|
|
|
+
|
|
|
+
|
|
|
+ CreateOrderBo createOrderBo = new CreateOrderBo();
|
|
|
+ createOrderBo.setProductId(productId);
|
|
|
+ createOrderBo.setAgentId(agentId);
|
|
|
+ createOrderBo.setOpenId(openId);
|
|
|
+ createOrderBo.setName(name);
|
|
|
+ createOrderBo.setMobile(mobile);
|
|
|
+ /* 手机端用户不能设置通票 wangqing 201811302208
|
|
|
+ createOrderBo.setTp(Integer.parseInt(tp));
|
|
|
+ */
|
|
|
+ createOrderBo.setClientIp(IpUtils.getIp(request));
|
|
|
+ try {
|
|
|
+ ExecuteResult<CreateOrderResult> executeResult = payforPrensentService.createOrder(createOrderBo, code);
|
|
|
+ if (executeResult.isExecuteResult()) {
|
|
|
+ ApiResult<CreateOrderResult> apiResult = ApiResult.createSuccess(executeResult.getData());
|
|
|
+ LOG.info("调用创建保证金微信支付订单(/pay/createOrder)接口成功, apiResult:{}", apiResult);
|
|
|
+
|
|
|
+ return apiResult;
|
|
|
+ } else {
|
|
|
+ Result result = executeResult.getResult();
|
|
|
+ if (result == null) {
|
|
|
+ result = Result.Failure;
|
|
|
+ }
|
|
|
+ return new ApiResult(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ LOG.error("调用创建保证金微信支付订单(/pay/createOrder)接口异常", e);
|
|
|
+ return ApiResult.createFailure();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 调用销售员修改礼品兑换表
|
|
|
+ * @param agentId
|
|
|
+ * @param openId
|
|
|
+ * @param name
|
|
|
+ * @param mobile
|
|
|
+ * @param integral
|
|
|
+ * @param code
|
|
|
+ * @param presentName
|
|
|
+ * @param address
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @PostMapping("/updateSale")
|
|
|
+ public ApiResult updateSale(@RequestParam(required = false) String agentId,
|
|
|
+ @RequestParam(required = false) String openId,
|
|
|
+ @RequestParam(required = false) String name,
|
|
|
+ @RequestParam(required = false) String mobile,
|
|
|
+ @RequestParam(required = false) String integral,
|
|
|
+ @RequestParam(required = false) String code,
|
|
|
+ @RequestParam(required = false) String presentName,
|
|
|
+ @RequestParam(required = false) String address) {
|
|
|
+ LOG.info("调用修改礼品兑换表接口/payfor/update");
|
|
|
+ //DiggerAgent diggerAgent = diggerAgentService.getDiggerAgent(agentId, openId);
|
|
|
+ Sale sale = saleService.getSale(agentId, openId);
|
|
|
+ String userId = sale.getSaleId();//diggerAgent.getDaId();
|
|
|
+ Integer integralNew = Integer.parseInt(integral);
|
|
|
+ Integer codeNew = Integer.parseInt(code);
|
|
|
+ //diggerAgentService.updateIntegral(userId, 0);
|
|
|
+ saleService.addIntegral(openId, -sale.getIntegral());
|
|
|
+ IntegralRecord integralRecord = new IntegralRecord();
|
|
|
+ integralRecord.setPresentName(presentName);
|
|
|
+ integralRecord.setUserName(name);
|
|
|
+ integralRecord.setMemberLevel(sale.getMemberLevel());
|
|
|
+ integralRecord.setPhone(mobile);
|
|
|
+ integralRecord.setAddress(address);
|
|
|
+ Date date = new Date();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String time = sdf.format(date);
|
|
|
+ integralRecord.setExchangeTime(time);
|
|
|
+ integralRecord.setUserId(userId);
|
|
|
+ integralRecord.setIntegral(integralNew);
|
|
|
+ integralRecord.setPrice(codeNew);
|
|
|
+ integralRecordService.save(integralRecord);
|
|
|
+
|
|
|
+ return ApiResult.createSuccess("修改表格成功");
|
|
|
+ }
|
|
|
}
|