Commit 48382681 authored by renjie's avatar renjie

支付宝接口

parent 1091834e
package com.edgec.browserbackend.account.controller; package com.edgec.browserbackend.account.controller;
import com.edgec.browserbackend.account.domain.*; import com.edgec.browserbackend.account.domain.*;
import com.edgec.browserbackend.account.dto.AlipayReturnDto;
import com.edgec.browserbackend.account.dto.MobileDto; import com.edgec.browserbackend.account.dto.MobileDto;
import com.edgec.browserbackend.account.dto.ResultDto; import com.edgec.browserbackend.account.dto.ResultDto;
import com.edgec.browserbackend.account.dto.BillQueryCriteriaDto; import com.edgec.browserbackend.account.dto.BillQueryCriteriaDto;
...@@ -279,9 +280,9 @@ public class AccountController { ...@@ -279,9 +280,9 @@ public class AccountController {
public void alipayPutOrder(HttpServletRequest request, HttpServletResponse response, @PathVariable int amount) throws Exception { public void alipayPutOrder(HttpServletRequest request, HttpServletResponse response, @PathVariable int amount) throws Exception {
String by = request.getParameter("by"); String by = request.getParameter("by");
String form = paymentService.alipayPutPayOrder(request.getUserPrincipal().getName(), amount, by); AlipayReturnDto dto= paymentService.alipayPutPayOrder(request.getUserPrincipal().getName(), amount, by);
response.setContentType("text/html;charset=utf-8"); response.setContentType("text/html;charset=utf-8");
response.getWriter().println(form); response.getWriter().println(dto);
} }
......
package com.edgec.browserbackend.account.dto;
/**
* @Desc
* @Author jason
* @CreateTime 2020/3/13 6:58 下午
**/
public class AlipayReturnDto {
private String tradeNo;
private String form;
public String getTradeNo() {
return tradeNo;
}
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
public String getForm() {
return form;
}
public void setForm(String form) {
this.form = form;
}
}
...@@ -12,12 +12,14 @@ public class SubUsersDto { ...@@ -12,12 +12,14 @@ public class SubUsersDto {
private String nickname; private String nickname;
private int permission; private int permission;
private String comment; private String comment;
private String passoword;
public SubUsersDto(Account account) { public SubUsersDto(Account account, String password) {
this.permission = account.getPermission(); this.permission = account.getPermission();
this.nickname = account.getNickname(); this.nickname = account.getNickname();
this.username = account.getName(); this.username = account.getName();
this.comment = account.getComment(); this.comment = account.getComment();
this.passoword = password;
} }
public String getComment() { public String getComment() {
...@@ -51,4 +53,12 @@ public class SubUsersDto { ...@@ -51,4 +53,12 @@ public class SubUsersDto {
public void setUsername(String username) { public void setUsername(String username) {
this.username = username; this.username = username;
} }
public String getPassoword() {
return passoword;
}
public void setPassoword(String passoword) {
this.passoword = passoword;
}
} }
...@@ -3,12 +3,13 @@ package com.edgec.browserbackend.account.service; ...@@ -3,12 +3,13 @@ package com.edgec.browserbackend.account.service;
import com.edgec.browserbackend.account.domain.UserBalance; import com.edgec.browserbackend.account.domain.UserBalance;
import com.edgec.browserbackend.account.domain.UserPaymentDto; import com.edgec.browserbackend.account.domain.UserPaymentDto;
import com.edgec.browserbackend.account.dto.AlipayReturnDto;
public interface PaymentService { public interface PaymentService {
UserPaymentDto wxPutPayOrder(String username, int amount); UserPaymentDto wxPutPayOrder(String username, int amount);
String alipayPutPayOrder(String username, int amount, String by); AlipayReturnDto alipayPutPayOrder(String username, int amount, String by);
String wechatPayCallback(String tradno); String wechatPayCallback(String tradno);
......
...@@ -530,7 +530,8 @@ public class AccountServiceImpl implements AccountService { ...@@ -530,7 +530,8 @@ public class AccountServiceImpl implements AccountService {
List<SubUsersDto> subUsersDtoList = new ArrayList<>(); List<SubUsersDto> subUsersDtoList = new ArrayList<>();
accounts.getContent().forEach(x -> { accounts.getContent().forEach(x -> {
subUsersDtoList.add(new SubUsersDto(x)); com.edgec.browserbackend.auth.domain.User user = userRepository.findById(x.getName()).orElse(null);
subUsersDtoList.add(new SubUsersDto(x, user.getPassword()));
}); });
subUserPageResultDto.setUserList(subUsersDtoList); subUserPageResultDto.setUserList(subUsersDtoList);
...@@ -595,6 +596,16 @@ public class AccountServiceImpl implements AccountService { ...@@ -595,6 +596,16 @@ public class AccountServiceImpl implements AccountService {
return account; return account;
} }
public static String makeRandomPassword(int len){
char charr[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@$%^&*.?".toCharArray();
StringBuilder sb = new StringBuilder();
Random r = new Random();
for (int x = 0; x < len; ++x) {
sb.append(charr[r.nextInt(charr.length)]);
}
return sb.toString();
}
@Override @Override
public void createSubUsers(String name, SubUsersRequestDto subUsersRequestDto) { public void createSubUsers(String name, SubUsersRequestDto subUsersRequestDto) {
Account existing = repository.findByName(name); Account existing = repository.findByName(name);
...@@ -629,7 +640,10 @@ public class AccountServiceImpl implements AccountService { ...@@ -629,7 +640,10 @@ public class AccountServiceImpl implements AccountService {
User authUser = new User(); User authUser = new User();
authUser.setUsername(user.getName()); authUser.setUsername(user.getName());
authUser.setPassword(subUsersRequestDto.getPassword()); if (org.apache.commons.lang3.StringUtils.isNotBlank(subUsersRequestDto.getPassword()))
authUser.setPassword(subUsersRequestDto.getPassword());
else
authUser.setPassword(makeRandomPassword(8));
authUser.setPhone(existing.getPhoneNumber()); authUser.setPhone(existing.getPhoneNumber());
authUser.setEnabled(true); authUser.setEnabled(true);
authUser.setPermission(subUsersRequestDto.getPermission()); authUser.setPermission(subUsersRequestDto.getPermission());
......
...@@ -7,6 +7,7 @@ import com.alipay.api.request.AlipayTradePagePayRequest; ...@@ -7,6 +7,7 @@ import com.alipay.api.request.AlipayTradePagePayRequest;
import com.alipay.api.request.AlipayTradeQueryRequest; import com.alipay.api.request.AlipayTradeQueryRequest;
import com.alipay.api.response.AlipayTradePagePayResponse; import com.alipay.api.response.AlipayTradePagePayResponse;
import com.alipay.api.response.AlipayTradeQueryResponse; import com.alipay.api.response.AlipayTradeQueryResponse;
import com.edgec.browserbackend.account.dto.AlipayReturnDto;
import com.edgec.browserbackend.account.exception.AccountErrorCode; import com.edgec.browserbackend.account.exception.AccountErrorCode;
import com.edgec.browserbackend.account.repository.UserBalanceRepository; import com.edgec.browserbackend.account.repository.UserBalanceRepository;
import com.edgec.browserbackend.account.repository.UserPaymentRepository; import com.edgec.browserbackend.account.repository.UserPaymentRepository;
...@@ -289,7 +290,7 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -289,7 +290,7 @@ public class PaymentServiceImpl implements PaymentService {
} }
@Override @Override
public String alipayPutPayOrder(String username, int amount, String by) { public AlipayReturnDto alipayPutPayOrder(String username, int amount, String by) {
Account byName = accountService.findByName(username); Account byName = accountService.findByName(username);
if (byName == null) if (byName == null)
...@@ -332,8 +333,10 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -332,8 +333,10 @@ public class PaymentServiceImpl implements PaymentService {
internalOrder.setTransId(response.getTradeNo()); internalOrder.setTransId(response.getTradeNo());
userPaymentRepository.save(internalOrder); userPaymentRepository.save(internalOrder);
String form = response.getBody(); AlipayReturnDto alipayReturnDto = new AlipayReturnDto();
return form; alipayReturnDto.setForm(response.getBody());
alipayReturnDto.setTradeNo(response.getTradeNo());
return alipayReturnDto;
} catch (Exception e) { } catch (Exception e) {
log.error("Alypay payment order generation fails", e); log.error("Alypay payment order generation fails", e);
......
...@@ -6,4 +6,6 @@ public interface UserShopRepositoryCustom { ...@@ -6,4 +6,6 @@ public interface UserShopRepositoryCustom {
void updateGroupId(String groupId_old, String groupId_new); void updateGroupId(String groupId_old, String groupId_new);
boolean deleteByShopIdExceptOwner(String shopId);
} }
...@@ -40,4 +40,16 @@ public class UserShopRepositoryCustomImpl implements UserShopRepositoryCustom { ...@@ -40,4 +40,16 @@ public class UserShopRepositoryCustomImpl implements UserShopRepositoryCustom {
update.set("groupId", groupId_new); update.set("groupId", groupId_new);
mongoTemplate.updateFirst(basicQuery, update, UserShop.class); mongoTemplate.updateFirst(basicQuery, update, UserShop.class);
} }
@Override
public boolean deleteByShopIdExceptOwner(String shopId) {
Document doc = new Document();
BasicQuery basicQuery = new BasicQuery(doc);
basicQuery.addCriteria(where("shopId").is(shopId));
DeleteResult operation = mongoTemplate.remove(basicQuery, UserShop.class);
if (operation.getDeletedCount() < 1)
return false;
else
return true;
}
} }
package com.edgec.browserbackend.browser.service.Impl; package com.edgec.browserbackend.browser.service.Impl;
import com.edgec.browserbackend.account.domain.Account; import com.edgec.browserbackend.account.domain.Account;
import com.edgec.browserbackend.account.domain.User;
import com.edgec.browserbackend.account.exception.AccountErrorCode; import com.edgec.browserbackend.account.exception.AccountErrorCode;
import com.edgec.browserbackend.account.repository.AccountRepository; import com.edgec.browserbackend.account.repository.AccountRepository;
import com.edgec.browserbackend.browser.ErrorCode.BrowserErrorCode; import com.edgec.browserbackend.browser.ErrorCode.BrowserErrorCode;
...@@ -269,13 +270,15 @@ public class ShopServiceImpl implements ShopService { ...@@ -269,13 +270,15 @@ public class ShopServiceImpl implements ShopService {
List<Account> accounts = accountRepository.findByNameIn(users); List<Account> accounts = accountRepository.findByNameIn(users);
if (accounts == null || accounts.size() != users.size()) if (accounts == null || accounts.size() != users.size())
throw new ClientRequestException(AccountErrorCode.NAMENOTEXIST); throw new ClientRequestException(AccountErrorCode.NAMENOTEXIST);
accounts.stream().forEach(x -> { shops.stream().forEach(shop -> {
try { try {
for (Shop shop:shops){ //todo 不删除owner
UserShop userShop1 = userShopRepository.findByUsernameAndShopId(x.getName(), shop.getShopId()); userShopRepository.deleteByShopIdExceptOwner(shop.getShopId());
for (Account account1 : accounts) {
UserShop userShop1 = userShopRepository.findByUsernameAndShopId(account1.getName(), shop.getShopId());
if (userShop1 != null) if (userShop1 != null)
return; return;
userShop1 = new UserShop(x.getName(), shop.getShopId(), "-1"); userShop1 = new UserShop(account1.getName(), shop.getShopId(), "-1");
if (shop.getIpId() != null) if (shop.getIpId() != null)
userShop1.setIpId(shop.getIpId()); userShop1.setIpId(shop.getIpId());
userShopRepository.save(userShop1); userShopRepository.save(userShop1);
......
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