package com.jshoperx.action.backstage.pay;
import com.jshoperx.action.backstage.base.BaseTAction;
import com.jshoperx.action.backstage.utils.BaseTools;
import com.jshoperx.action.backstage.utils.enums.BaseEnums;
import com.jshoperx.action.backstage.utils.statickey.StaticKey;
import com.jshoperx.entity.PaymentM;
import com.jshoperx.service.PaymentMService;
import com.jshoperx.service.impl.Serial;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import javax.annotation.Resource;
import java.util.*;
@Namespace("")
@ParentPackage("jshoperx")
public class PaymentMAction extends BaseTAction {
private static final long serialVersionUID = 1L;
@Resource
private PaymentMService paymentMService;
private String paymentid;
private String paymentname;
private String paymentCode;
private String paymentFree;
private String paymentInterface;
private String account;
private String safecode;
private String partnerid;
private String des;
private String isFast;
private String state;
private String shopid;
private PaymentM bean = new PaymentM();
private List<PaymentM> beanlist = new ArrayList<PaymentM>();
private List<Map<String, Object>> rows = new ArrayList<Map<String, Object>>();
private int rp;
private int page = 1;
private int total = 0;
private boolean sucflag;
public String getPaymentid() {
return paymentid;
}
public void setPaymentid(String paymentid) {
this.paymentid = paymentid;
}
public String getPaymentname() {
return paymentname;
}
public void setPaymentname(String paymentname) {
this.paymentname = paymentname;
}
public String getPaymentCode() {
return paymentCode;
}
public void setPaymentCode(String paymentCode) {
this.paymentCode = paymentCode;
}
public String getPaymentFree() {
return paymentFree;
}
public void setPaymentFree(String paymentFree) {
this.paymentFree = paymentFree;
}
public String getPaymentInterface() {
return paymentInterface;
}
public void setPaymentInterface(String paymentInterface) {
this.paymentInterface = paymentInterface;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getSafecode() {
return safecode;
}
public void setSafecode(String safecode) {
this.safecode = safecode;
}
public String getPartnerid() {
return partnerid;
}
public void setPartnerid(String partnerid) {
this.partnerid = partnerid;
}
public String getDes() {
return des;
}
public void setDes(String des) {
this.des = des;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public List<Map<String, Object>> getRows() {
return rows;
}
public void setRows(List<Map<String, Object>> rows) {
this.rows = rows;
}
public int getRp() {
return rp;
}
public void setRp(int rp) {
this.rp = rp;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public PaymentM getBean() {
return bean;
}
public void setBean(PaymentM bean) {
this.bean = bean;
}
public String getIsFast() {
return isFast;
}
public void setIsFast(String isFast) {
this.isFast = isFast;
}
public boolean isSucflag() {
return sucflag;
}
public void setSucflag(boolean sucflag) {
this.sucflag = sucflag;
}
public List<PaymentM> getBeanlist() {
return beanlist;
}
public void setBeanlist(List<PaymentM> beanlist) {
this.beanlist = beanlist;
}
public String getShopid() {
return shopid;
}
public void setShopid(String shopid) {
this.shopid = shopid;
}
/**
* 清理错误
*/
@Override
public void validate() {
this.clearErrorsAndMessages();
}
/**
* 增加支付方式
*
* @return
*/
@Action(value = "addPayment", results = { @Result(name = "json", type = "json") })
public String addPayment() {
PaymentM pm = new PaymentM();
pm.setPaymentid(this.getSerial().Serialid(Serial.PAYMENT));
pm.setPaymentname(this.getPaymentname().trim());
pm.setPaymentCode(this.getPaymentCode().trim());
pm.setPaymentFree(this.getPaymentFree());
pm.setPaymentInterface(this.getPaymentInterface());
pm.setAccount(this.getAccount().trim());
pm.setSafecode(this.getSafecode().trim());
pm.setPartnerid(this.getPartnerid().trim());
pm.setDes(this.getDes().trim());
pm.setIsFast(this.getIsFast().trim());
pm.setState(this.getState().trim());
pm.setShopid(BaseTools.getShopId());
pm.setShopname(BaseTools.getShopName());
this.paymentMService.save(pm);
this.setSucflag(true);
return JSON;
}
/**
* 增加支付方式
*
* @return
*/
@Action(value = "updatePayment", results = { @Result(name = "json", type = "json") })
public String updatePayment() {
if (StringUtils.isBlank(this.getPaymentid())) {
return JSON;
}
PaymentM pm = this.paymentMService.findByPK(PaymentM.class,
this.getPaymentid());
if (pm != null) {
pm.setPaymentname(this.getPaymentname().trim());
pm.setPaymentCode(this.getPaymentCode().trim());
pm.setPaymentFree(this.getPaymentFree());
pm.setPaymentInterface(this.getPaymentInterface());
pm.setAccount(this.getAccount().trim());
pm.setSafecode(this.getSafecode().trim());
pm.setPartnerid(this.getPartnerid().trim());
pm.setDes(this.getDes().trim());
pm.setIsFast(this.getIsFast().trim());
pm.setState(this.getState().trim());
pm.setShopid(BaseTools.getShopId());
pm.setShopname(BaseTools.getShopName());
this.paymentMService.update(pm);
this.setSucflag(true);
return JSON;
}
return JSON;
}
/**
* 查询所有支付方式
*
* @return
*/
@Action(value = "findAllPayment", results = { @Result(name = "json", type = "json") })
public String findAllPayment() {
if (StringUtils.equals(StaticKey.SC, this.getQtype())) {
this.findDefaultAllPayment();
} else {
if(StringUtils.isBlank(this.getQuery())) {
return JSON;
} else {
return JSON;
}
}
return JSON;
}
public void findDefaultAllPayment() {
int currentPage = page;
int lineSize = rp;
Order order=Order.desc("paymentid");
total = this.paymentMService.count(PaymentM.class).intValue();
List<PaymentM> list = this.paymentMService.findByCriteriaByPage(PaymentM.class, order, currentPage, lineSize);
this.processPayment(list);
}
public void processPayment(List<PaymentM> list) {
rows.clear();
for (Iterator<PaymentM> it = list.iterator(); it.hasNext();) {
PaymentM pm = (PaymentM) it.next();
if(StringUtils.equals(BaseEnums.PayMentType.INSTANTINTERFACE.getState(), pm.getPaymentInterface())){
pm.setPaymentInterface(BaseEnums.PayMentType.INSTANTINTERFACE.getName());
}
if(StringUtils.equals(BaseEnums.PayMentType.SECUREDINTERFACE.getState(), pm.getPaymentInterface())){
pm.setPaymentInterface(BaseEnums.PayMentType.SECUREDINTERFACE.getName());
}
if(StringUtils.equals(BaseEnums.PayMentType.STANDARD.getState(), pm.getPaymentInterface())){
pm.setPaymentInterface(BaseEnums.PayMentType.STANDARD.getName());
}
if(StringUtils.equals(BaseEnums.SupportType.SUPPORT.getState(), pm.getIsFast())){
pm.setIsFast(BaseEnums.SupportType.SUPPORT.getName());
}
if(StringUtils.equals(BaseEnums.SupportType.UNSUPPORT.getState(), pm.getIsFast())){
pm.setIsFast(BaseEnums.SupportType.UNSUPPORT.getName());
}
pm.setState(BaseEnums.DataUsingState.getName(pm.getState()));
Map<String, Object> cellMap = new HashMap<String, Object>();
cellMap.put("id", pm.getPaymentid());
cellMap.put(
"cell",
new Object[] {pm.getShopname(), pm.getPaymentname(), pm.getPaymentCode(),
pm.getPaymentFree(), pm.getPaymentInterface(),
pm.getDes(), pm.getIsFast(), pm.getState()});
rows.add(cellMap);
}
}
/**
* 开启支付方式
*
* @return
*/
@Action(value = "openPayment", results = { @Result(name = "json", type = "json") })
public String openPayment() {
if (StringUtils.isNotBlank(this.getPaymentid())) {
String[] strs = StringUtils.split(this.getPaymentid(), StaticKey.SPLITDOT);
for(String s:strs){
PaymentM pm=this.paymentMService.findByPK(PaymentM.class, s);
if(pm!=null){
pm.setState(BaseEnums.DataUsingState.USING.getState());
this.paymentMService.update(pm);
}
}
this.setSucflag(true);
return JSON;
}
return JSON;
}
/**
* 禁止支付方式
*
* @return
*/
@Action(value = "closePayment", results = { @Result(name = "json", type = "json") })
public String closePayment() {
if (StringUtils.isNotBlank(this.getPaymentid())) {
String[] strs = StringUtils.split(this.getPaymentid(),StaticKey.SPLITDOT);
for(String s:strs){
PaymentM pm=this.paymentMService.findByPK(PaymentM.class, s);
if(pm!=null){
pm.setState(BaseEnums.DataUsingState.UNUSING.getState());
this.paymentMService.update(pm);
}
}
this.setSucflag(true);
return JSON;
}
return JSON;
}
/**
* 根据支付方式id获取支付方式
*
* @return
*/
@Action(value = "findPaymentbyId", results = { @Result(name = "json", type = "json") })
public String findPaymentbyId() {
if (StringUtils.isNotBlank(this.getPaymentid())) {
bean = this.paymentMService.findByPK(PaymentM.class, this.getPaymentid());
if (bean != null) {
this.setSucflag(true);
return JSON;
}
}
return JSON;
}
/**
* 禁止支付方式
*
* @return
*/
@Action(value = "delPaymentByid", results = { @Result(name = "json", type = "json") })
public String delPaymentByid() {
if (StringUtils.isNotBlank(this.getPaymentid())) {
String[] strs = StringUtils.split(this.getPaymentid(), StaticKey.SPLITDOT);
for(String s:strs){
PaymentM pm=this.paymentMService.findByPK(PaymentM.class, s);
if(pm!=null){
this.paymentMService.delete(pm);
}
}
this.setSucflag(true);
}
return JSON;
}
/**
* 获取后台新增订单时所需要的支付方式信息
*/
@Action(value = "findAllPaymentForbsOrder", results = { @Result(name = "json", type = "json") })
public String findAllPaymentForbsOrder() {
Criterion criterion=Restrictions.eq("state", BaseEnums.DataUsingState.USING.getState());
beanlist = this.paymentMService.findByCriteria(PaymentM.class, criterion);
if (!beanlist.isEmpty()) {
this.setSucflag(true);
}
return JSON;
}
}